arch-map
Render/refresh the project RACI + C4 component map (ADR-001 INTENT) — the canonical who-owns-what + boundary-contracts map. Seeds docs/architecture/raci-component-map.md from the template if missing;
SKILL.md.claude/skills/arch-map/SKILL.md
GitHubArch map: $ARGUMENTS
The INTENT layer of ADR-001. Hand-curated + ADR-gated; this skill seeds + renders it, it does not invent ownership.
Run
set -uo pipefail
ROOT="$(git rev-parse --show-toplevel 2>/dev/null || pwd)"
MAP="$ROOT/docs/architecture/raci-component-map.md"
TPL="$ROOT/docs/architecture/_templates/raci-component-map.md"
if [ ! -f "$MAP" ]; then
if [ -f "$TPL" ]; then mkdir -p "$ROOT/docs/architecture"; cp "$TPL" "$MAP"; echo "seeded $MAP from template — curate it (one row per repo, the forbidden-import column)."; else echo "ERROR: template $TPL missing"; fi
else
echo "RACI/component map present: $MAP"
fi
echo ""
echo "Per-repo lane-rules present:"
if [ -f "$ROOT/.cto/projects.yaml" ]; then
python3 - "$ROOT/.cto/projects.yaml" <<'PY' | while IFS= read -r p; do [ -d "$p" ] || continue; if [ -f "$p/docs/architecture/lane-rules.txt" ]; then echo " [x] $(basename "$p")"; else echo " [ ] $(basename "$p") — no lane-rules.txt (declare forbidden imports)"; fi; done
import re,sys
t=open(sys.argv[1]).read()
for b in re.split(r'(?=- name:)',t):
p=re.search(r'path:\s*(\S+)',b); a=re.search(r'active:\s*(\S+)',b)
if p and ((a is None) or a.group(1).lower() not in ('false','no','0')): print(p.group(1))
PY
fi
Your task as CTO
- If the map was just seeded, curate it — one row per repo: its lane, what it owns, the contracts it exposes/consumes, and its forbidden cross-lane imports (this column seeds each repo's
lane-rules.txt). - (Re)render the component diagram in the map's Mermaid block from the current RACI rows.
- Consult it at decomposition to prevent dupes/lane-drift before firing teams.
- For detailed per-repo UML, delegate to VP-Eng (it generates a repo's UML from the AST on initiation) — do not hand-draw. The fleet-wide derived UML + cross-repo navigation come from the code-graph engine via
/codegram(Phase 2).
Sign — CTO.