Map Project Monorepo
Inputs
$request: Optional scope or refresh note such as all crates, only packages/api-*, or refresh workspace docs after adding the sql crate.
Goal
Refresh the root and per-member CLAUDE.md files so each workspace member has accurate, self-contained local guidance and the root stays thin and project-wide.
Step 0: Resolve workspace scope and detect monorepo shape
Determine:
- whether the repo is a Cargo workspace or a package monorepo
- whether the user wants a full refresh or a scoped member refresh
- which members exist and which already have
CLAUDE.md files
- which root-level memory files and architectural rules already exist and should be preserved
Load references/workspace-discovery.md for:
- workspace detection order
- member inventory expectations
- discovery rules for exported surface, wiring, and dependency mapping
Stop early if:
- the workspace shape cannot be identified
- the target member set is too ambiguous to update safely
Success criteria: The workspace shape and refresh scope are explicit before discovery starts.
Step 1: Discover members, public surface, and wiring
For every in-scope member, inventory:
- actual exported or reachable surface
- key source files
- wiring files such as crate roots, package entry points, manifests, barrels, startup hooks, registries, routers, or feature flags
- inter-member dependencies
- tests, benchmarks, or runtime entry points
- real consumer usage patterns when available
Also inventory workspace-wide capabilities (these belong in the root file, not per-member):
- project-committed skills (
.claude/skills/) and enabled MCP servers (.mcp.json /
.claude/settings*.json)
Rules:
- do not equate raw
pub or raw export counts with the real public surface
- verify what consumers can actually reach first
- prefer actual imports, re-exports, and runtime registration points over guesses
- preserve existing member docs when they are still correct; extend or tighten them instead of regenerating blindly
Load references/workspace-discovery.md and complete the relevant discovery steps for the detected monorepo shape.
Load references/skills-and-mcp.md for skill/MCP discovery sources and redaction rules.
Success criteria: You have enough concrete inventory to write self-contained member docs without placeholders or false surface claims.
Step 2: Refresh per-member CLAUDE.md files
For each in-scope member, update or create a focused local CLAUDE.md that covers:
- purpose
- public or exported surface
- key files
- dependencies
- wiring and entry points
- usage pattern
- architecture notes
- testing guidance
Load:
references/output-contract.md for required sections, size targets, and verification rules
references/package-template.md for library or package members
references/app-template.md for apps, binaries, or entrypoint-heavy members
Writing rules:
- use real workspace examples, not placeholders
- keep tables and bullets preferred over repetitive prose
- make each member file self-contained for Claude's lazy-loading behavior
- document hidden wiring points if a future change would need them to make behavior reachable
Success criteria: Every targeted member has an accurate, self-contained CLAUDE.md.
Step 3: Simplify the root CLAUDE.md
Treat the root file as the project-wide router:
- keep project-wide rules, locked decisions, testing policy, and workspace layout
- remove member-specific API tables or file listings from root
- ensure the root points clearly to member-local docs rather than duplicating them
- include a compact, INLINE "Available Skills & MCP — prefer these" section in the ROOT
CLAUDE.md,
plus a one-line pointer at the very top, so future agents use the repo's skills/MCP instead of
forgetting them (always-loaded text only — never a lazy reference, never per-member)
Rules:
- preserve root-level architectural constraints and steering decisions
- do not erase useful human-authored global rules
- move member detail down instead of letting the root become a second copy of every member file
Load references/output-contract.md for the root-file expectations and budget rules.
Load references/skills-and-mcp.md for the "Available Skills & MCP" section format and discovery sources.
Success criteria: Root stays thin and project-wide while member detail lives where Claude will lazy-load it.
Step 4: Verify coverage, self-containment, and budget
Validate the refresh before declaring completion:
- every in-scope member has a
CLAUDE.md
- member docs describe the real reachable surface, not just raw visibility markers
- wiring and entry points are documented where relevant
- root no longer duplicates member-local details heavily
- line budgets remain sane
- the refreshed docs would let an implementation agent work in a touched member without searching blindly
Load references/output-contract.md for verification gates and budget targets.
If verification fails:
- improve coverage
- restore missing sections
- tighten duplicated content
- correct stale reachability or wiring claims
Success criteria: The workspace memory is compact, member-local, and actually useful to future agents.
Step 5: Report what changed
Summarize:
- detected workspace shape
- members refreshed
- files created or updated
- coverage or inventory highlights
- budget status
- intentionally deferred or out-of-scope members
Do not claim a perfect refresh if the workspace is only partially covered or if the requested scope excluded some members.
Success criteria: The user gets a clear summary of what workspace memory was refreshed and how complete it is.
Guardrails
- Do not use this skill PROACTIVELY (it mutates durable project memory) — run it only on explicit user
intent or when an explicit user-invoked workflow composes it (e.g.
/ship-playbook). It is no longer
disable-model-invocation, so workflows can call it; that is not license to run it unprompted.
- Do not add
context: fork; this workflow writes into the active repository.
- Do not add
paths:; this is a generic maintenance skill.
- Do not overwrite useful root-level project rules without evidence they are stale.
- Do not keep workspace discovery matrices, template encyclopedias, or quality scorecards inline in
SKILL.md.
- Do not bloat the root
CLAUDE.md; push member detail down.
- Do not mark the refresh complete without verifying self-containment and reachability.
When To Load References
references/workspace-discovery.md
Use for workspace detection order, member discovery rules, and exported-surface versus raw-visibility guidance.
references/output-contract.md
Use for required member/root sections, budget rules, and verification gates.
references/package-template.md
Use when refreshing library-style members.
references/app-template.md
Use when refreshing binaries, apps, servers, or entrypoint-heavy members.
references/skills-and-mcp.md
Use to discover the repo's project skills and MCP servers and render the inline "Available Skills &
MCP — prefer these" section into the root CLAUDE.md.
Output Contract
Report:
- detected workspace shape and scope
- members refreshed
- files created or updated
- coverage and self-containment summary
- budget and verification result
- deferred or intentionally skipped members
1---2name: map-project-monorepo3description: Refresh a Cargo WORKSPACE or package monorepo's durable AI context — a self-contained `CLAUDE.md` per member that Claude lazy-loads, plus a thin project-wide root, so a change in any member has local guidance without bloating the root. Discovers each member's real reachable surface, key files, wiring, and inter-member dependencies, then keeps the root project-wide. User-only maintenance workflow that mutates durable memory across many members: it documents the ACTUAL exported/reachable surface (not raw `pub`/`export` counts), grounds every claim in code, and preserves locked root decisions. Use to refresh workspace-local context after refactors, member additions, or export changes.4---5
6<EXTREMELY-IMPORTANT>
7This skill mutates durable project memory across multiple workspace members. Non-negotiable rules:
81. Discover the real workspace shape before writing any member `CLAUDE.md`.
92. Document the actual exported or reachable surface, not raw visibility markers alone.
103. Keep each member file self-contained enough for Claude's lazy-loading model.
114. Preserve root-level project rules and locked architectural decisions unless discovery proves them stale.
125. Do not run this skill PROACTIVELY on your own initiative (it mutates durable project memory) — only
13 on explicit user intent, OR when an explicit user-invoked workflow composes it (e.g. `/ship-playbook`
14 refreshing the maps after a build).
15</EXTREMELY-IMPORTANT>
16
17# Map Project Monorepo
18
19## Inputs
20
21- `$request`: Optional scope or refresh note such as `all crates`, `only packages/api-*`, or `refresh workspace docs after adding the sql crate`.
22
23## Goal
24
25Refresh the root and per-member `CLAUDE.md` files so each workspace member has accurate, self-contained local guidance and the root stays thin and project-wide.
26
27## Step 0: Resolve workspace scope and detect monorepo shape
28
29Determine:
30
31- whether the repo is a Cargo workspace or a package monorepo
32- whether the user wants a full refresh or a scoped member refresh
33- which members exist and which already have `CLAUDE.md` files
34- which root-level memory files and architectural rules already exist and should be preserved
35
36Load `references/workspace-discovery.md` for:
37
38- workspace detection order
39- member inventory expectations
40- discovery rules for exported surface, wiring, and dependency mapping
41
42Stop early if:
43
44- the workspace shape cannot be identified
45- the target member set is too ambiguous to update safely
46
47**Success criteria**: The workspace shape and refresh scope are explicit before discovery starts.
48
49## Step 1: Discover members, public surface, and wiring
50
51For every in-scope member, inventory:
52
53- actual exported or reachable surface
54- key source files
55- wiring files such as crate roots, package entry points, manifests, barrels, startup hooks, registries, routers, or feature flags
56- inter-member dependencies
57- tests, benchmarks, or runtime entry points
58- real consumer usage patterns when available
59
60Also inventory workspace-wide capabilities (these belong in the root file, not per-member):
61
62- project-committed skills (`.claude/skills/`) and enabled MCP servers (`.mcp.json` /
63 `.claude/settings*.json`)
64
65Rules:
66
67- do not equate raw `pub` or raw `export` counts with the real public surface
68- verify what consumers can actually reach first
69- prefer actual imports, re-exports, and runtime registration points over guesses
70- preserve existing member docs when they are still correct; extend or tighten them instead of regenerating blindly
71
72Load `references/workspace-discovery.md` and complete the relevant discovery steps for the detected monorepo shape.
73Load `references/skills-and-mcp.md` for skill/MCP discovery sources and redaction rules.
74
75**Success criteria**: You have enough concrete inventory to write self-contained member docs without placeholders or false surface claims.
76
77## Step 2: Refresh per-member `CLAUDE.md` files
78
79For each in-scope member, update or create a focused local `CLAUDE.md` that covers:
80
81- purpose
82- public or exported surface
83- key files
84- dependencies
85- wiring and entry points
86- usage pattern
87- architecture notes
88- testing guidance
89
90Load:
91
92- `references/output-contract.md` for required sections, size targets, and verification rules
93- `references/package-template.md` for library or package members
94- `references/app-template.md` for apps, binaries, or entrypoint-heavy members
95
96Writing rules:
97
98- use real workspace examples, not placeholders
99- keep tables and bullets preferred over repetitive prose
100- make each member file self-contained for Claude's lazy-loading behavior
101- document hidden wiring points if a future change would need them to make behavior reachable
102
103**Success criteria**: Every targeted member has an accurate, self-contained `CLAUDE.md`.
104
105## Step 3: Simplify the root `CLAUDE.md`
106
107Treat the root file as the project-wide router:
108
109- keep project-wide rules, locked decisions, testing policy, and workspace layout
110- remove member-specific API tables or file listings from root
111- ensure the root points clearly to member-local docs rather than duplicating them
112- include a compact, INLINE "Available Skills & MCP — prefer these" section in the ROOT `CLAUDE.md`,
113 plus a one-line pointer at the very top, so future agents use the repo's skills/MCP instead of
114 forgetting them (always-loaded text only — never a lazy reference, never per-member)
115
116Rules:
117
118- preserve root-level architectural constraints and steering decisions
119- do not erase useful human-authored global rules
120- move member detail down instead of letting the root become a second copy of every member file
121
122Load `references/output-contract.md` for the root-file expectations and budget rules.
123Load `references/skills-and-mcp.md` for the "Available Skills & MCP" section format and discovery sources.
124
125**Success criteria**: Root stays thin and project-wide while member detail lives where Claude will lazy-load it.
126
127## Step 4: Verify coverage, self-containment, and budget
128
129Validate the refresh before declaring completion:
130
131- every in-scope member has a `CLAUDE.md`
132- member docs describe the real reachable surface, not just raw visibility markers
133- wiring and entry points are documented where relevant
134- root no longer duplicates member-local details heavily
135- line budgets remain sane
136- the refreshed docs would let an implementation agent work in a touched member without searching blindly
137
138Load `references/output-contract.md` for verification gates and budget targets.
139
140If verification fails:
141
142- improve coverage
143- restore missing sections
144- tighten duplicated content
145- correct stale reachability or wiring claims
146
147**Success criteria**: The workspace memory is compact, member-local, and actually useful to future agents.
148
149## Step 5: Report what changed
150
151Summarize:
152
153- detected workspace shape
154- members refreshed
155- files created or updated
156- coverage or inventory highlights
157- budget status
158- intentionally deferred or out-of-scope members
159
160Do not claim a perfect refresh if the workspace is only partially covered or if the requested scope excluded some members.
161
162**Success criteria**: The user gets a clear summary of what workspace memory was refreshed and how complete it is.
163
164## Guardrails
165
166- Do not use this skill PROACTIVELY (it mutates durable project memory) — run it only on explicit user
167 intent or when an explicit user-invoked workflow composes it (e.g. `/ship-playbook`). It is no longer
168 `disable-model-invocation`, so workflows can call it; that is not license to run it unprompted.
169- Do not add `context: fork`; this workflow writes into the active repository.
170- Do not add `paths:`; this is a generic maintenance skill.
171- Do not overwrite useful root-level project rules without evidence they are stale.
172- Do not keep workspace discovery matrices, template encyclopedias, or quality scorecards inline in `SKILL.md`.
173- Do not bloat the root `CLAUDE.md`; push member detail down.
174- Do not mark the refresh complete without verifying self-containment and reachability.
175
176## When To Load References
177
178- `references/workspace-discovery.md`
179 Use for workspace detection order, member discovery rules, and exported-surface versus raw-visibility guidance.
180
181- `references/output-contract.md`
182 Use for required member/root sections, budget rules, and verification gates.
183
184- `references/package-template.md`
185 Use when refreshing library-style members.
186
187- `references/app-template.md`
188 Use when refreshing binaries, apps, servers, or entrypoint-heavy members.
189
190- `references/skills-and-mcp.md`
191 Use to discover the repo's project skills and MCP servers and render the inline "Available Skills &
192 MCP — prefer these" section into the root `CLAUDE.md`.
193
194## Output Contract
195
196Report:
197
1981. detected workspace shape and scope
1992. members refreshed
2003. files created or updated
2014. coverage and self-containment summary
2025. budget and verification result
2036. deferred or intentionally skipped members