Mapping Suite Overview You have a small library of skills that map, audit, and document a system from different angles — , , , , , etc. They share conventions ( , mermaid + cited reports, cross-skill callout reuse, HTML output) and they share a common prior: a recent run is the foundational artifact most of the others can build on. Coordinating them by hand means resolving the same scope four times, threading the same prior through four different Phase 0 lookups, and ending up with four standalone HTMLs to share. This skill owns the coordination so you don't. The skill is a coach, not an auto…

body{font-family:system-ui,sans-serif;max-width:780px;margin:2rem auto;padding:0 1rem;line-height:1.5}\\n.step{border:1px solid #ddd;border-radius:6px;padding:1rem 1.25rem;margin:1rem 0}\\n.step.skipped,.step.pending{opacity:.6}\\n.step h2{margin-top:0}\\n.banner{max-width:100%;border-radius:6px;margin-bottom:1.5rem}'\nfi\n\n# Parse steps from the manifest. We need: id, skill, purpose, status,\n# actual_output, notes per step. yq makes this straightforward; the\n# fallback is best-effort.\ndeclare -a STEP_IDS STEP_SKILLS STEP_PURPOSES STEP_STATUSES STEP_OUTPUTS STEP_NOTES\n\nif [[ \"$YQ\" == \"1\" ]]; then\n # Use yq's array-output-as-tabbed mode for parseable output.\n while IFS=

Mapping Suite Overview You have a small library of skills that map, audit, and document a system from different angles — , , , , , etc. They share conventions ( , mermaid + cited reports, cross-skill callout reuse, HTML output) and they share a common prior: a recent run is the foundational artifact most of the others can build on. Coordinating them by hand means resolving the same scope four times, threading the same prior through four different Phase 0 lookups, and ending up with four standalone HTMLs to share. This skill owns the coordination so you don't. The skill is a coach, not an auto…

\\t' read -r id skill purpose status output notes; do\n STEP_IDS+=(\"$id\")\n STEP_SKILLS+=(\"$skill\")\n STEP_PURPOSES+=(\"$purpose\")\n STEP_STATUSES+=(\"$status\")\n STEP_OUTPUTS+=(\"$output\")\n STEP_NOTES+=(\"$notes\")\n done \u003c \u003c(yq -r '.steps[] | [.id, .skill, .purpose, .status, .actual_output // \"\", .notes // \"\"] | @tsv' \"$MANIFEST\")\nelse\n # Fallback parser: assumes steps are in YAML list form with field-per-line.\n # Brittle but works for the canonical schema.\n python3 - \"$MANIFEST\" \u003c\u003c'PYEOF' || echo \"warning: fallback parser failed; combined HTML may be incomplete\" >&2\nimport sys, re\nmanifest_path = sys.argv[1]\ntext = open(manifest_path).read()\n# Naive step extraction\nsteps = re.findall(r'(?ms)^\\s*-\\s+id:\\s*(\\d+)\\b.*?(?=^\\s*-\\s+id:\\s*\\d+|\\Z)', text)\n# Print TSV: id\\tskill\\tpurpose\\tstatus\\toutput\\tnotes\nPYEOF\nfi\n\n# If parsing produced nothing, exit with friendly error.\nif [[ ${#STEP_IDS[@]} -eq 0 ]]; then\n echo \"error: no steps parsed from $MANIFEST\" >&2\n echo \" check that the manifest follows the schema in references/suite-manifest.md\" >&2\n exit 1\nfi\n\n# Render each step. Completed steps get a primary entry; non-completed\n# go to the bottom in a muted section.\nCOMPLETED_HTML=\"\"\nSKIPPED_HTML=\"\"\nCOMPLETED_COUNT=0\n\nfor i in \"${!STEP_IDS[@]}\"; do\n id=\"${STEP_IDS[$i]}\"\n skill=\"${STEP_SKILLS[$i]}\"\n purpose=\"${STEP_PURPOSES[$i]}\"\n status=\"${STEP_STATUSES[$i]}\"\n output=\"${STEP_OUTPUTS[$i]}\"\n notes=\"${STEP_NOTES[$i]}\"\n\n # HTML-escape the simple fields (lightly; manifest is trusted but\n # & \u003c > shouldn't break the page).\n esc() { printf '%s' \"$1\" | sed 's/&/\\&/g; s/\u003c/\\</g; s/>/\\>/g'; }\n skill_esc=\"$(esc \"$skill\")\"\n purpose_esc=\"$(esc \"$purpose\")\"\n output_esc=\"$(esc \"$output\")\"\n notes_esc=\"$(esc \"$notes\")\"\n\n if [[ \"$status\" == \"completed\" && -n \"$output\" ]]; then\n # Find the standalone HTML inside the sibling output dir.\n SIBLING_DIR=\"$REPO_ROOT/$output\"\n if [[ ! -d \"$SIBLING_DIR\" ]]; then\n SIBLING_DIR=\"$output\"\n fi\n HTML_LINK=\"\"\n MD_LINK=\"\"\n if [[ -d \"$SIBLING_DIR\" ]]; then\n HTML_FILE=\"$(find \"$SIBLING_DIR\" -maxdepth 1 -name '*.html' -type f | head -1)\"\n MD_FILE=\"$SIBLING_DIR/README.md\"\n [[ -f \"$HTML_FILE\" ]] && HTML_LINK=\"$(realpath --relative-to=\"$SUITE_DIR\" \"$HTML_FILE\" 2>/dev/null || echo \"$HTML_FILE\")\"\n [[ -f \"$MD_FILE\" ]] && MD_LINK=\"$(realpath --relative-to=\"$SUITE_DIR\" \"$MD_FILE\" 2>/dev/null || echo \"$MD_FILE\")\"\n fi\n\n LINKS_HTML=\"\"\n [[ -n \"$HTML_LINK\" ]] && LINKS_HTML+=\"\u003ca class=\\\"primary\\\" href=\\\"$HTML_LINK\\\">Open standalone HTML →\u003c/a>\"\n [[ -n \"$MD_LINK\" ]] && LINKS_HTML+=\"\u003ca class=\\\"secondary\\\" href=\\\"$MD_LINK\\\">Read synthesis README →\u003c/a>\"\n if [[ -z \"$LINKS_HTML\" ]]; then\n LINKS_HTML=\"\u003cspan class=\\\"muted\\\">Output dir: \u003ccode>$output_esc\u003c/code> (no HTML or README detected)\u003c/span>\"\n fi\n\n NOTES_HTML=\"\"\n [[ -n \"$notes\" ]] && NOTES_HTML=\"\u003cp class=\\\"notes\\\">$notes_esc\u003c/p>\"\n\n COMPLETED_HTML+=\"\u003csection class=\\\"step completed\\\">\n \u003cdiv class=\\\"step-number\\\">Step $id\u003c/div>\n \u003ch2>$skill_esc\u003c/h2>\n \u003cp class=\\\"purpose\\\">$purpose_esc\u003c/p>\n $NOTES_HTML\n \u003cdiv class=\\\"links\\\">$LINKS_HTML\u003c/div>\n\u003c/section>\n\"\n COMPLETED_COUNT=$((COMPLETED_COUNT + 1))\n else\n STATUS_LABEL=\"$status\"\n [[ -z \"$STATUS_LABEL\" ]] && STATUS_LABEL=\"pending\"\n SKIPPED_HTML+=\"\u003cli>\u003cstrong>Step $id — $skill_esc\u003c/strong> ($STATUS_LABEL): \u003cspan class=\\\"muted\\\">$purpose_esc\u003c/span>\u003c/li>\n\"\n fi\ndone\n\nif [[ $COMPLETED_COUNT -eq 0 ]]; then\n echo \"error: no completed steps in suite $SUITE_DIR\" >&2\n echo \" compile-combined refuses to produce an empty navigation HTML\" >&2\n exit 1\nfi\n\nSKIPPED_BLOCK=\"\"\nif [[ -n \"$SKIPPED_HTML\" ]]; then\n SKIPPED_BLOCK=\"\u003csection class=\\\"skipped-section\\\">\n \u003ch2>Skipped or pending\u003c/h2>\n \u003cul>\n$SKIPPED_HTML \u003c/ul>\n\u003c/section>\"\nfi\n\n# Read the suite-scope.md content if present (so the combined page has\n# context without a second fetch).\nSCOPE_HTML=\"\"\nSCOPE_MD=\"$SUITE_DIR/suite-scope.md\"\nif [[ -f \"$SCOPE_MD\" ]]; then\n # Strip frontmatter, keep the body.\n SCOPE_BODY=\"$(awk '/^---$/{n++; next} n>=2 || (n==0 && NR>1)' \"$SCOPE_MD\")\"\n if command -v pandoc >/dev/null 2>&1; then\n SCOPE_HTML=\"$(printf '%s\\n' \"$SCOPE_BODY\" | pandoc -f markdown -t html 2>/dev/null || echo \"\u003cpre>$SCOPE_BODY\u003c/pre>\")\"\n else\n SCOPE_HTML=\"\u003cpre>$(printf '%s' \"$SCOPE_BODY\" | sed 's/&/\\&/g; s/\u003c/\\</g; s/>/\\>/g')\u003c/pre>\"\n fi\nfi\n\n# Build the page.\ncat > \"$OUT_PATH\" \u003c\u003cHTMLEOF\n\u003c!doctype html>\n\u003chtml lang=\"en\" data-theme=\"light\">\n\u003chead>\n\u003cmeta charset=\"utf-8\">\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\u003ctitle>$TITLE\u003c/title>\n\u003cstyle>\n$CSS\n\n/* Combined-HTML overrides */\n.combined-header { display: flex; align-items: center; gap: 1rem; margin-bottom: 2rem; }\n.combined-header h1 { margin: 0; font-size: 1.5rem; }\n.step { border: 1px solid var(--border, #e2e8f0); border-radius: 8px; padding: 1.25rem 1.5rem; margin-bottom: 1rem; background: var(--card-bg, #fff); }\n.step .step-number { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--muted, #64748b); margin-bottom: 0.25rem; }\n.step h2 { margin: 0 0 0.5rem 0; font-size: 1.15rem; }\n.step .purpose { color: var(--muted, #64748b); margin: 0 0 0.75rem 0; }\n.step .notes { font-size: 0.9rem; color: var(--muted, #64748b); margin: 0 0 0.75rem 0; padding-left: 0.75rem; border-left: 3px solid var(--accent, #3b82f6); }\n.step .links { display: flex; gap: 0.75rem; flex-wrap: wrap; }\n.step .links a { padding: 0.4rem 0.85rem; border-radius: 5px; text-decoration: none; font-size: 0.9rem; }\n.step .links a.primary { background: var(--accent, #3b82f6); color: #fff; }\n.step .links a.secondary { border: 1px solid var(--border, #e2e8f0); color: var(--text, #0f172a); }\n.skipped-section { margin-top: 2rem; opacity: 0.7; }\n.skipped-section ul { padding-left: 1.25rem; }\n.muted { color: var(--muted, #64748b); }\n.banner { max-width: 100%; border-radius: 6px; margin-bottom: 1rem; }\n.scope { background: var(--bg-subtle, #f8fafc); border-radius: 6px; padding: 1rem 1.25rem; margin-bottom: 2rem; font-size: 0.95rem; }\n.scope h2 { margin-top: 0; }\n\u003c/style>\n\u003c/head>\n\u003cbody>\n$BANNER_HTML\n\u003cheader class=\"combined-header\">\n \u003cdiv>\n \u003ch1>$TITLE\u003c/h1>\n \u003cp class=\"muted\">Mapping-suite combined navigation. Each step below links to a standalone report.\u003c/p>\n \u003c/div>\n\u003c/header>\n\nHTMLEOF\n\nif [[ -n \"$SCOPE_HTML\" ]]; then\n cat >> \"$OUT_PATH\" \u003c\u003cHTMLEOF\n\u003caside class=\"scope\">\n \u003ch2>Scope\u003c/h2>\n $SCOPE_HTML\n\u003c/aside>\n\nHTMLEOF\nfi\n\ncat >> \"$OUT_PATH\" \u003c\u003cHTMLEOF\n$COMPLETED_HTML\n\n$SKIPPED_BLOCK\n\n\u003cfooter class=\"muted\" style=\"margin-top: 3rem; font-size: 0.85rem;\">\n Generated by mapping-suite ${SUITE_DATE}. Sibling artifacts are canonical;\n this page is navigation only.\n\u003c/footer>\n\u003c/body>\n\u003c/html>\nHTMLEOF\n\necho \"Wrote combined navigation HTML to $OUT_PATH\"\necho \" ${COMPLETED_COUNT} completed step(s) linked\"\n[[ -n \"$SKIPPED_HTML\" ]] && echo \" some steps were skipped or pending; see 'Skipped or pending' section\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":11970,"content_sha256":"3ff91eff5cb50c06d6bb026272bb8962399c766aa9b028e5a03343698a372884"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Mapping Suite","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Overview","type":"text"}]},{"type":"paragraph","content":[{"text":"You have a small library of skills that map, audit, and document a system from different angles — ","type":"text"},{"text":"architectural-analysis","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"release-analysis","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"wiring-audit","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"doc-claim-validator","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"doc-completeness-audit","type":"text","marks":[{"type":"code_inline"}]},{"text":", etc. They share conventions (","type":"text"},{"text":"docs/\u003cskill>/\u003cdate>/","type":"text","marks":[{"type":"code_inline"}]},{"text":", mermaid + cited reports, cross-skill callout reuse, ","type":"text"},{"text":"--style corporate","type":"text","marks":[{"type":"code_inline"}]},{"text":" HTML output) and they share a common prior: a recent ","type":"text"},{"text":"architectural-analysis","type":"text","marks":[{"type":"code_inline"}]},{"text":" run is the foundational artifact most of the others can build on.","type":"text"}]},{"type":"paragraph","content":[{"text":"Coordinating them by hand means resolving the same scope four times, threading the same prior through four different Phase 0 lookups, and ending up with four standalone HTMLs to share. This skill owns the coordination so you don't.","type":"text"}]},{"type":"paragraph","content":[{"text":"The skill is a ","type":"text"},{"text":"coach, not an autorunner","type":"text","marks":[{"type":"strong"}]},{"text":". At each step it presents:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The next sibling skill in the recipe.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The scope it should inherit (resolved once at suite start).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The recommended invocation.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"An approval gate.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"You invoke the sibling. The orchestrator records what landed and proposes the next step.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"When to use","type":"text"}]},{"type":"paragraph","content":[{"text":"Trigger this skill when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You want a complete onboarding artifact for a system you don't already know — release-engineer onboarding, on-call rotation prep, knowledge transfer.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You name two or more sibling skills to run together — \"do an arch-analysis and a release-analysis on this repo.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You want the combined HTML at the end — one navigable artifact spanning multiple sibling outputs.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You're staring at a fresh codebase and want a recommended sequence of skills to run.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Do not trigger when:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You only need one sibling skill — invoke it directly.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You want autonomous execution — this skill always pauses at approval gates. If you want a hands-off run, run each sibling individually with explicit prompts.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"You're already mid-flight in another orchestration — don't nest mapping-suite inside itself.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Recipes","type":"text"}]},{"type":"paragraph","content":[{"text":"A recipe is a named sequence of sibling-skill invocations with recommended scope inheritance. v1 ships two; both are release-engineer-onboarding flavored.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Recipe 1: release-driver onboarding","type":"text"}]},{"type":"paragraph","content":[{"text":"For:","type":"text","marks":[{"type":"strong"}]},{"text":" tooling that drives releases for other systems (PowerShell fleet orchestrators, deploy-bot scripts, release-cutting CLIs). The unit of analysis is the ","type":"text"},{"text":"operations","type":"text","marks":[{"type":"em"}]},{"text":" the tool performs, not the tool itself.","type":"text"}]},{"type":"paragraph","content":[{"text":"Reader:","type":"text","marks":[{"type":"strong"}]},{"text":" a release engineer onboarding to a tool they'll be running.","type":"text"}]},{"type":"paragraph","content":[{"text":"Plan:","type":"text","marks":[{"type":"strong"}]},{"text":" see ","type":"text"},{"text":"references/recipes/release-driver-onboarding.md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Summary:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"release-analysis","type":"text","marks":[{"type":"strong"}]},{"text":" with ","type":"text"},{"text":"scope_shape: driver-only","type":"text","marks":[{"type":"code_inline"}]},{"text":" (or ","type":"text"},{"text":"driver+kube","type":"text","marks":[{"type":"code_inline"}]},{"text":" if the tool also ships itself). Skip arch-analysis prior — the tool isn't a deployed system, so an arch-analysis on it would mostly produce noise.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-claim-validator","type":"text","marks":[{"type":"strong"}]},{"text":" against the runbooks under ","type":"text"},{"text":"docs/runbooks/","type":"text","marks":[{"type":"code_inline"}]},{"text":", scoped narrowly. Catches drifted procedures the release-analysis Phase 5b reconciliation flagged but didn't resolve.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Combined HTML","type":"text","marks":[{"type":"strong"}]},{"text":" linking both outputs. The release-analysis report is the primary; doc-claim-validator's output is the appendix.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Recipe 2: deployed-system onboarding","type":"text"}]},{"type":"paragraph","content":[{"text":"For:","type":"text","marks":[{"type":"strong"}]},{"text":" systems that get deployed (single repo or multi-repo union). The unit of analysis is the system itself.","type":"text"}]},{"type":"paragraph","content":[{"text":"Reader:","type":"text","marks":[{"type":"strong"}]},{"text":" any new engineer onboarding — release-engineer-flavored but applicable to anyone who needs to read the system end-to-end.","type":"text"}]},{"type":"paragraph","content":[{"text":"Plan:","type":"text","marks":[{"type":"strong"}]},{"text":" see ","type":"text"},{"text":"references/recipes/deployed-system-onboarding.md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Summary:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"architectural-analysis","type":"text","marks":[{"type":"strong"}]},{"text":" with full mode set (or scope-driven subset if the user specifies). Foundational.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"release-analysis","type":"text","marks":[{"type":"strong"}]},{"text":" layered on the arch-analysis output. Phase 0 inherits scope automatically from the prior README's frontmatter.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"wiring-audit","type":"text","marks":[{"type":"strong"}]},{"text":" (optional) — runs against the same scope, opportunistically consumes the arch-analysis's UI-surfaces and integrations findings as priors.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Combined HTML","type":"text","marks":[{"type":"strong"}]},{"text":" linking all sibling outputs. Architecture-analysis is the primary read; release-analysis is the secondary; wiring-audit (if run) is the appendix.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Custom plans","type":"text"}]},{"type":"paragraph","content":[{"text":"The user can name a sequence directly: ","type":"text"},{"text":"\"run release-analysis, then doc-completeness-audit, then combined HTML.\"","type":"text","marks":[{"type":"em"}]},{"text":" The orchestrator treats this as a one-off recipe — same coaching loop, same manifest, same combined-HTML output. No need to formalize it as a stored recipe.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Workflow","type":"text"}]},{"type":"paragraph","content":[{"text":"Six phases. Phases 0 and 5 are unique to this skill; phases 1–4 are the coaching loop.","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Phase","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Name","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Purpose","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"0","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Resolve scope and prior arch-analysis","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Same three-tier resolution release-analysis uses. Result is shared with every sibling.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"1","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Choose recipe","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Named recipe (release-driver onboarding, deployed-system onboarding) or user-defined sequence.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"2","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Generate run plan","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Sequence of sibling-skill invocations with inherited scope and recommended args.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"3","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Coach through the plan","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"For each step: present, wait for user to invoke, capture output path, update manifest, propose next.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"4","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Combine","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Run ","type":"text"},{"text":"scripts/compile-combined.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" against the manifest to produce one navigation HTML.","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"5","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Hand-off","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Recommend next steps based on what each sibling surfaced (e.g., \"doc-claim-validator flagged 3 drifted runbooks — want to invoke doc-maintenance?\").","type":"text"}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"0. Resolve scope and prior arch-analysis (one-time)","type":"text"}]},{"type":"paragraph","content":[{"text":"Same three-tier resolution as ","type":"text"},{"text":"release-analysis","type":"text","marks":[{"type":"code_inline"}]},{"text":"'s Phase 0:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"User-supplied path","type":"text","marks":[{"type":"strong"}]},{"text":" (preferred) — ","type":"text"},{"text":"\"run mapping-suite for ","type":"text","marks":[{"type":"em"}]},{"text":"~/source/source-control-automation","type":"text","marks":[{"type":"code_inline"},{"type":"em"}]},{"text":" building on ","type":"text","marks":[{"type":"em"}]},{"text":"~/source/docs/architecture/2026-05-16/","type":"text","marks":[{"type":"code_inline"},{"type":"em"}]},{"text":".\"","type":"text","marks":[{"type":"em"}]},{"text":" Skip search.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Search well-known locations","type":"text","marks":[{"type":"strong"}]},{"text":" — ","type":"text"},{"text":"\u003ccwd>/docs/architecture/*/","type":"text","marks":[{"type":"code_inline"}]},{"text":" and ","type":"text"},{"text":"\u003ccwd>/../docs/architecture/*/","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ask","type":"text","marks":[{"type":"strong"}]},{"text":" — when both miss.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Parse the prior README's frontmatter:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"scope","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"target_repo","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"modes","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"date","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Propose the inherited scope to the user. Confirm before proceeding.","type":"text"}]},{"type":"paragraph","content":[{"text":"If no prior arch-analysis exists ","type":"text"},{"text":"and","type":"text","marks":[{"type":"em"}]},{"text":" the recipe needs one (deployed-system onboarding does; release-driver onboarding doesn't), this is the first decision point: run arch-analysis first, or proceed without prior context. Ask.","type":"text"}]},{"type":"paragraph","content":[{"text":"Persist the result to ","type":"text"},{"text":"docs/\u003csuite-date>-suite/suite-scope.md","type":"text","marks":[{"type":"code_inline"}]},{"text":":","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"markdown"},"content":[{"text":"---\nsuite_date: 2026-05-18\nrecipe: release-driver-onboarding\nscope: source-control-automation\ntarget_repo: ~/source/source-control-automation\nprior_arch_analysis: none (recipe doesn't require one)\neve_mcp_used: true\n---","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"1. Choose recipe","type":"text"}]},{"type":"paragraph","content":[{"text":"Present the recipes:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"Two recipes are available. Which fits this run?\n\n1. release-driver onboarding — for tooling that drives releases for other systems\n2. deployed-system onboarding — for systems that get deployed\n\nOr describe a custom sequence.","type":"text"}]},{"type":"paragraph","content":[{"text":"If the user named a recipe in the trigger, skip the prompt and confirm: ","type":"text"},{"text":"\"Running release-driver onboarding. Plan: release-analysis + doc-claim-validator + combined HTML. Sound right?\"","type":"text","marks":[{"type":"em"}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"2. Generate run plan","type":"text"}]},{"type":"paragraph","content":[{"text":"Read ","type":"text"},{"text":"references/recipes/\u003crecipe>.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" for the recipe-specific plan. The plan is a list of steps; each step has:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Skill name.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Scope (typically inherited from suite-scope.md).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Recommended invocation prompt.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Approval gate description.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Expected output path (used to populate the manifest).","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Write the plan to ","type":"text"},{"text":"docs/\u003csuite-date>-suite/suite.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":" per ","type":"text"},{"text":"references/suite-manifest.md","type":"text","marks":[{"type":"code_inline"}]},{"text":". Initialize all steps with ","type":"text"},{"text":"status: pending","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3. Coach through the plan","type":"text"}]},{"type":"paragraph","content":[{"text":"For each step in order:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Present.","type":"text","marks":[{"type":"strong"}]},{"text":" Show the user:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Step number and skill name.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Why this step (one sentence).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"The recommended invocation prompt (verbatim, as a code block they can copy).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What output to expect.","type":"text"}]}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Wait for user invocation.","type":"text","marks":[{"type":"strong"}]},{"text":" The user runs the sibling skill themselves via ","type":"text"},{"text":"Skill","type":"text","marks":[{"type":"code_inline"}]},{"text":" tool or by typing the prompt. The orchestrator does not auto-invoke.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Capture output.","type":"text","marks":[{"type":"strong"}]},{"text":" Once the sibling finishes, ask the user for the output path (or detect it via ","type":"text"},{"text":"find docs/\u003cskill>/*/","type":"text","marks":[{"type":"code_inline"}]},{"text":"). Validate the path resolves to a directory containing the expected artifacts (per the recipe's ","type":"text"},{"text":"expected output path","type":"text","marks":[{"type":"code_inline"}]},{"text":").","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Update manifest.","type":"text","marks":[{"type":"strong"}]},{"text":" Mark the step ","type":"text"},{"text":"completed","type":"text","marks":[{"type":"code_inline"}]},{"text":", record the path. If the user skipped the step, mark ","type":"text"},{"text":"skipped","type":"text","marks":[{"type":"code_inline"}]},{"text":" with a note.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Propose next.","type":"text","marks":[{"type":"strong"}]},{"text":" ","type":"text"},{"text":"\"Step 1 done. Next: doc-claim-validator. Proceed?\"","type":"text","marks":[{"type":"em"}]}]}]}]},{"type":"paragraph","content":[{"text":"If a step fails (sibling skill errored, user hit a blocker), mark ","type":"text"},{"text":"failed","type":"text","marks":[{"type":"code_inline"}]},{"text":" in the manifest with the error reason and present options: retry, skip, or pause the suite. Do not silently retry.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"4. Combine","type":"text"}]},{"type":"paragraph","content":[{"text":"When all required steps are completed (or skipped), run:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash scripts/compile-combined.sh docs/\u003csuite-date>-suite/","type":"text"}]},{"type":"paragraph","content":[{"text":"This produces ","type":"text"},{"text":"docs/\u003csuite-date>-suite/\u003csuite-date>-suite.html","type":"text","marks":[{"type":"code_inline"}]},{"text":" — a navigation HTML that links to each sibling's standalone HTML in the recommended reading order. Per the v1 design, it's a ","type":"text"},{"text":"shell","type":"text","marks":[{"type":"em"}]},{"text":" (navigation + brief summaries) with ","type":"text"},{"text":"links","type":"text","marks":[{"type":"em"}]},{"text":" to the per-skill HTMLs. No content is inlined; each sibling HTML stays canonical.","type":"text"}]},{"type":"paragraph","content":[{"text":"Pass ","type":"text"},{"text":"--banner \u003cpath>","type":"text","marks":[{"type":"code_inline"}]},{"text":" to add a header banner.","type":"text"}]},{"type":"paragraph","content":[{"text":"If a sibling skill didn't produce HTML output (some doc skills produce only markdown), the navigation links to the markdown report instead.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"5. Hand-off","type":"text"}]},{"type":"paragraph","content":[{"text":"Survey the sibling outputs and propose next-step skills:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"doc-claim-validator","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" flagged drifted claims","type":"text","marks":[{"type":"strong"}]},{"text":" → recommend ","type":"text"},{"text":"doc-maintenance","type":"text","marks":[{"type":"code_inline"}]},{"text":" to triage.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"release-analysis","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" surfaced gap states with no documented recovery","type":"text","marks":[{"type":"strong"}]},{"text":" → recommend the team author runbooks; ","type":"text"},{"text":"doc-completeness-audit","type":"text","marks":[{"type":"code_inline"}]},{"text":" can confirm the coverage gap.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"wiring-audit","type":"text","marks":[{"type":"code_inline"},{"type":"strong"}]},{"text":" found broken or stale UI↔backend wires","type":"text","marks":[{"type":"strong"}]},{"text":" → recommend addressing the worst severity findings before the next release.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Stale ingested arch-analysis","type":"text","marks":[{"type":"strong"}]},{"text":" → recommend re-running ","type":"text"},{"text":"architectural-analysis","type":"text","marks":[{"type":"code_inline"}]},{"text":" if findings depended on outdated context.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Do not auto-invoke. Recommend, let the user choose.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Output layout","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":""},"content":[{"text":"docs/2026-05-18-suite/\n├── suite-scope.md # Phase 0: one-time scope resolution\n├── suite.yaml # Phase 2-3: run manifest, status per step\n├── 2026-05-18-suite.html # Phase 4: combined navigation HTML\n\n# Sibling artifacts stay where they live (immutable):\ndocs/release/2026-05-18/ # release-analysis output\ndocs/architecture/2026-05-16/ # ingested arch-analysis (untouched)\ndocs/wiring-audit/2026-05-18/ # if run","type":"text"}]},{"type":"paragraph","content":[{"text":"The suite parent (","type":"text"},{"text":"\u003cdate>-suite/","type":"text","marks":[{"type":"code_inline"}]},{"text":") is ","type":"text"},{"text":"separate","type":"text","marks":[{"type":"em"}]},{"text":" from each sibling's own dir. Suites are coordination metadata; sibling outputs are the actual reports.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Scope sharing convention","type":"text"}]},{"type":"paragraph","content":[{"text":"Every sibling skill that participates in a mapping-suite run reads ","type":"text"},{"text":"docs/\u003csuite-date>-suite/suite-scope.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" for inherited scope. This is the ","type":"text"},{"text":"shared seam","type":"text","marks":[{"type":"strong"}]},{"text":" that makes the suite work without each skill re-resolving scope.","type":"text"}]},{"type":"paragraph","content":[{"text":"Practical implication: when you invoke a sibling under a suite, pass the suite-scope path explicitly:","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"\"Run release-analysis using the scope at ","type":"text"},{"text":"docs/2026-05-18-suite/suite-scope.md","type":"text","marks":[{"type":"code_inline"}]},{"text":".\"","type":"text"}]}]},{"type":"paragraph","content":[{"text":"The sibling's Phase 0 / Phase 1 reads it, applies the same target_repo and prior-arch-analysis path the suite resolved, and proceeds. No second confirmation prompt.","type":"text"}]},{"type":"paragraph","content":[{"text":"For sibling skills that don't yet read suite-scope.md (only release-analysis does so far in v1), the orchestrator passes the scope by repeating it in the invocation prompt. Future siblings can opt into the shared-scope contract.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Resources","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/recipes/release-driver-onboarding.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — recipe 1 detail","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/recipes/deployed-system-onboarding.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — recipe 2 detail","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/suite-manifest.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — ","type":"text"},{"text":"suite.yaml","type":"text","marks":[{"type":"code_inline"}]},{"text":" schema and lifecycle","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"references/scope-sharing.md","type":"text","marks":[{"type":"code_inline"}]},{"text":" — the suite-scope.md convention sibling skills read","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"scripts/compile-combined.sh","type":"text","marks":[{"type":"code_inline"}]},{"text":" — generate the combined navigation HTML","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"assets/template.html","type":"text","marks":[{"type":"code_inline"}]},{"text":" — pandoc template for the combined HTML (symlink to architectural-analysis's template; same shell, different content)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"What this skill does NOT do","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Auto-invoke sibling skills.","type":"text","marks":[{"type":"strong"}]},{"text":" Always pauses at approval gates.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run a single skill.","type":"text","marks":[{"type":"strong"}]},{"text":" Use the sibling directly.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Bypass scope resolution.","type":"text","marks":[{"type":"strong"}]},{"text":" Phase 0 is mandatory; the suite scope is the seam every sibling consumes.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Edit sibling outputs.","type":"text","marks":[{"type":"strong"}]},{"text":" Sibling artifacts are immutable; the orchestrator only links to them.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate findings of its own.","type":"text","marks":[{"type":"strong"}]},{"text":" The orchestrator has no opinions about the system being analyzed; it only routes between siblings.","type":"text"}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"mapping-suite","author":"@skillopedia","source":{"stars":15,"repo_name":"claude-ctx-plugin","origin_url":"https://github.com/nickcrew/claude-ctx-plugin/blob/HEAD/skills/mapping-suite/SKILL.md","repo_owner":"nickcrew","body_sha256":"48c28f50556070450c3181f30d8de43d2aa72db3ef8983abebfbc4408f492114","cluster_key":"93053bd3d350d5cac7cede99e5281728b9df8b78a8531c37b3d2f14991f5e879","clean_bundle":{"format":"clean-skill-bundle-v1","source":"nickcrew/claude-ctx-plugin/skills/mapping-suite/SKILL.md","attachments":[{"id":"4a56ea66-cf3e-51f0-875d-6d24f7ade631","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/4a56ea66-cf3e-51f0-875d-6d24f7ade631/attachment.html","path":"assets/template.html","size":7902,"sha256":"511fccf766c42b9e17b496faa3213bf808dd20fc0c23e7bc314b2eee42bdea90","contentType":"text/html; charset=utf-8"},{"id":"2601a8fe-cb28-5880-9460-4ce9fe4595e9","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/2601a8fe-cb28-5880-9460-4ce9fe4595e9/attachment.md","path":"references/recipes/deployed-system-onboarding.md","size":7621,"sha256":"26f6872fdc6b3201df2f743e63f991ce689cf50562392248f369564cb287d436","contentType":"text/markdown; charset=utf-8"},{"id":"ae3b646e-9a2c-5594-b7aa-cb28a8fb34de","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/ae3b646e-9a2c-5594-b7aa-cb28a8fb34de/attachment.md","path":"references/recipes/release-driver-onboarding.md","size":6298,"sha256":"26d83cc842fec771c36b3e06b0c13567dfed548875887d00152d1fe79e391a62","contentType":"text/markdown; charset=utf-8"},{"id":"d4ee999c-f0f0-5786-9fd1-0a477e0f5507","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/d4ee999c-f0f0-5786-9fd1-0a477e0f5507/attachment.md","path":"references/scope-sharing.md","size":4994,"sha256":"546b9fa1898a76f21a0a412153d1ad09c6e60b0b4306d3fd8bbfcc3ae08c0552","contentType":"text/markdown; charset=utf-8"},{"id":"6b88bde6-1c79-556e-8daa-37661d4c3170","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/6b88bde6-1c79-556e-8daa-37661d4c3170/attachment.md","path":"references/suite-manifest.md","size":5946,"sha256":"87e7ffbaa1ab16be5954f20ea02cb99bd8a11e18c71ce59371694675672a99f1","contentType":"text/markdown; charset=utf-8"},{"id":"4c400168-ef0c-59e3-a088-34ae4c4bfb21","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/4c400168-ef0c-59e3-a088-34ae4c4bfb21/attachment.sh","path":"scripts/compile-combined.sh","size":11970,"sha256":"3ff91eff5cb50c06d6bb026272bb8962399c766aa9b028e5a03343698a372884","contentType":"application/x-sh; charset=utf-8"}],"bundle_sha256":"00e8a7e74e4182d3fd79679685938b24a1bce342ba2e1be4719b27639f986a0a","attachment_count":6,"text_attachments":5,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"skills/mapping-suite/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"security","category_label":"Security"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"security","import_tag":"clean-skills-v1","description":"User-triggered orchestrator that walks the user through running multiple sibling mapping/audit/doc skills against a shared scope, then assembles their outputs into one navigable artifact. Coaches rather than auto-runs — at each step the orchestrator presents the next sibling skill, recommended scope inheritance, and approval gate; the user invokes the sibling and confirms before moving on. Resolves the prior arch-analysis lookup once at suite start so every sibling skill inherits the same scope. Records each run's output path in a suite manifest. Produces a combined navigation HTML that links to each sibling's standalone HTML for one-stop sharing. Ships two named recipes — \"release-driver onboarding\" (for tooling that drives releases) and \"deployed-system onboarding\" (for systems that get deployed) — and supports custom plans. Trigger on \"run our mapping suite,\" \"do a complete onboarding,\" \"build the combined report,\" \"I need to onboard to system X,\" \"give me the full picture of this codebase,\" or when the user names two-or-more sibling analyses to coordinate. Not for running a single sibling skill in isolation (invoke it directly), and not for bypassing approval gates (this skill coaches, never autoruns)."}},"renderedAt":1782987018855}

Mapping Suite Overview You have a small library of skills that map, audit, and document a system from different angles — , , , , , etc. They share conventions ( , mermaid + cited reports, cross-skill callout reuse, HTML output) and they share a common prior: a recent run is the foundational artifact most of the others can build on. Coordinating them by hand means resolving the same scope four times, threading the same prior through four different Phase 0 lookups, and ending up with four standalone HTMLs to share. This skill owns the coordination so you don't. The skill is a coach, not an auto…