Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Internal ClaudeMap runtime for turning a repository into a live architecture map and driving that map during walkthroughs. Prefer the public commands in .claude/commands for normal use.
.claude/skills/quinnaho-claudemap-runtime/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-06 | ✗→✓ | ▲ Improved | 27% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 18% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 23% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 43% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 179% | 0% |
ClaudeMap is a repo-to-architecture-map workflow.
High-level model:
@claudemap-architect to turn that snapshot into a detailed, human-legible graphPublic commands:
/setup-claudemap: build or rebuild the map for the current repository/open-claudemap: reopen the existing UI without rebuilding/create-map: create or refresh a scoped subsystem map from the current root graph/refresh: update the graph after code changes/explain: run a guided walkthrough through the live map/show: direct the live map for highlights, focus, presentation, and flowsIf this skill is invoked directly, default to the setup workflow.
Target repository:
$ARGUMENTS as the project root.Execution rules:
${CLAUDE_SKILL_DIR}.${CLAUDE_SKILL_DIR}/skill/commands/snapshot.js for the target project root.${CLAUDE_SKILL_DIR}/skill/prompts/enrichment.txt.@claudemap-architect subagent explicitly. Give it:${CLAUDE_SKILL_DIR}/tmp/claudemap-enrichment.json. Do not run the setup JS command until after this file has been written with non-empty valid graph JSON. Do not run setup in parallel with the subagent call.${CLAUDE_SKILL_DIR}/skill/commands/setup-claudemap.js for the target project root with --enrichment-file ${CLAUDE_SKILL_DIR}/tmp/claudemap-enrichment.json. The setup command is strict: if the file is missing, empty, or unparseable it will exit non-zero and refuse to render a heuristic graph. Do not retry setup without fixing the enrichment file first.--force-refresh only when the user explicitly asks for a fresh rebuild.--enrichment-file — that would render a heuristic graph and pollute the cache. The user should rerun /setup-claudemap once the architect issue is resolved.${CLAUDE_SKILL_DIR}/app/public/graph/ (served by the bundled Vite app as /graph/*).Does this map look right, or should I refine it?claudemap-cache.json graph and file snapshot as context when available instead of starting from a blank prompt again.@claudemap-architect, save the refined JSON to ${CLAUDE_SKILL_DIR}/tmp/claudemap-enrichment.json, and run ${CLAUDE_SKILL_DIR}/skill/commands/refresh.js with --enrichment-file so the graph iterates in place./create-map runs an architect-first scoped pipeline:
${CLAUDE_SKILL_DIR}/skill/prompts/scoped-enrichment.txt. This is a dedicated scoped prompt — do not reuse the root enrichment prompt.cachePath when one exists so the architect can refine rather than rebuild.@claudemap-architect subagent with the scoped snapshot, the scoped prompt, and any user instructions. Instruct it to emit a richer internal breakdown (2-6 internal subsystems, tighter edges, function nodes welcome) and to decide between edit-in-place and rebuild based on the intent of the request.${CLAUDE_SKILL_DIR}/tmp/claudemap-enrichment.json and run ${CLAUDE_SKILL_DIR}/skill/commands/create-map.js with --enrichment-file (plus --scope-json and optional --instructions). The command deletes the tmp file after it reads it.buildScopedGraphFromRoot by running without --enrichment-file, but warn the user the scoped map will be a plain filter view and suggest rerunning with architect enrichment for richer grouping.Does this map look right, or should I refine it?).buildScopedSnapshot's priorGraph option) and rerun the architect. Save the refined JSON to the tmp file and rerun create-map.js with the same --scope-json payload plus --enrichment-file./refresh is change-aware for scoped maps:
meta.source === 'claude-scoped'), the scoped map is preserved untouched — no rebuild, no filter fallback.needsRebuild: true so the next /create-map pass knows to rerun the architect for that scope.stale: true and needsRebuild: true and left for the user to confirm.Important details:
${CLAUDE_SKILL_DIR}./setup-claudemap should treat the @claudemap-architect path as the primary path, not an optional extra.claudemap-architect subagent in .claude/agents/ for system identification, graph refinement, and human-first graph restructuring.--force-refresh./open-claudemap instead of rerunning setup./refresh command shipped in .claude/commands/refresh.md.${CLAUDE_SKILL_DIR}/skill/commands/refresh.js --enrichment-file ... over rerunning setup so the current graph context is reused./show should be treated as a presentation-direction command, not just a low-level transport wrapper.| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 10,199 | 14,467 | +42% | 1 | 1 | 0% | 1,464 | 2,060 | +41% | 0 | 0 | — |
case-02 | fail→fail | 25,473 | 5,803 | -77% | 1 | 1 | 0% | 3,834 | 2,061 | -46% | 0 | 0 | — |
case-03 | fail→fail | 7,212 | 6,190 | -14% | 1 | 1 | 0% | 1,142 | 2,062 | +81% | 0 | 0 | — |
case-04 | fail→fail | 12,098 | 7,992 | -34% | 1 | 1 | 0% | 2,050 | 2,410 | +18% | 0 | 0 | — |
case-05 | fail→fail | 2,955 | 5,675 | +92% | 1 | 1 | 0% | 431 | 2,137 | +396% | 0 | 0 | — |
case-06 | fail→pass | 14,875 | 5,550 | -63% | 1 | 1 | 0% | 2,132 | 2,709 | +27% | 0 | 0 | — |
case-07 | fail→pass | 16,083 | 6,025 | -63% | 1 | 1 | 0% | 2,403 | 2,836 | +18% | 0 | 0 | — |
case-08 | pass→pass | 9,606 | 3,008 | -69% | 1 | 1 | 0% | 1,319 | 2,267 | +72% | 0 | 0 | — |
case-09 | fail→pass | 14,687 | 6,048 | -59% | 1 | 1 | 0% | 2,291 | 2,822 | +23% | 0 | 0 | — |
case-10 | fail→pass | 12,851 | 5,298 | -59% | 1 | 1 | 0% | 1,852 | 2,644 | +43% | 0 | 0 | — |
case-11 | fail→pass | 6,514 | 4,065 | -38% | 1 | 1 | 0% | 880 | 2,458 | +179% | 0 | 0 | — |
case-12 | pass→pass | 4,390 | 1,630 | -63% | 1 | 1 | 0% | 648 | 1,994 | +208% | 0 | 0 | — |
case-13 | fail→fail | 15,674 | 34,086 | +117% | 1 | 1 | 0% | 2,511 | 8,307 | +231% | 0 | 0 | — |
case-14 | fail→pass | 11,643 | 3,874 | -67% | 1 | 1 | 0% | 1,785 | 2,508 | +41% | 0 | 0 | — |
case-15 | fail→pass | 8,085 | 2,568 | -68% | 1 | 1 | 0% | 1,409 | 2,212 | +57% | 0 | 0 | — |
case-16 | pass→pass | 7,431 | 1,749 | -76% | 1 | 1 | 0% | 1,077 | 2,107 | +96% | 0 | 0 | — |
case-17 | fail→pass | 11,088 | 2,805 | -75% | 1 | 1 | 0% | 1,786 | 2,312 | +29% | 0 | 0 | — |
case-18 | pass→pass | 7,543 | 2,371 | -69% | 1 | 1 | 0% | 1,224 | 2,181 | +78% | 0 | 0 | — |
case-19 | fail→pass | 5,697 | 2,149 | -62% | 1 | 1 | 0% | 979 | 2,166 | +121% | 0 | 0 | — |
case-20 | pass→pass | 3,961 | 4,561 | +15% | 1 | 1 | 0% | 709 | 2,583 | +264% | 0 | 0 | — |
case-21 | pass→fail | 10,911 | 9,118 | -16% | 1 | 1 | 0% | 2,081 | 2,283 | +10% | 0 | 0 | — |
case-22 | pass→fail | 9,072 | 6,535 | -28% | 1 | 1 | 0% | 1,603 | 2,143 | +34% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 15 counted toward the lift figure. The other 7 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +32 percentage points is the difference between those two pass rates over the 15 comparable cases. 4 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.