architecture · git:20260710.52a3b74 · 2026-07-10 · sha256 4b312af91e95ebf2

architecture git:20260710.52a3b74B

Immutable. This exact content never changes and is served at /api/v1/blob/4b312af91e95ebf2.

---
name: architecture
description: Proactive architecture review — explore codebase structure, generate a self-contained HTML report with Mermaid diagrams and candidate improvements, then grill the findings. Use when planning a large refactor, onboarding to an unfamiliar codebase, or before a major architectural change.
---

# /supergraph:architecture

Three phases: explore → HTML report → grilling loop.

Announce: "🏛️ /supergraph:architecture — mapping codebase structure..."

## Phase 1 — Explore

**1a. Read CONTEXT.md:**
```bash
cat CONTEXT.md 2>/dev/null || echo "No CONTEXT.md"
```

**1b. Codebase Memory overview (optional):**
Use `CBM_PROJECT` with `get_architecture` aspects `overview`, `layers`,
`boundaries`, `clusters`, and `hotspots`. After `get_graph_schema`, run shared
contract recipes `hubs`, `bridges`, `cross-boundary`, and `test-gaps`.
If codebase-memory-mcp is unavailable, label graph evidence `unavailable`, use
Serena/filesystem evidence, and generate Mermaid diagrams from imports.

**1c. Serena structure (optional):**
```
mcp__serena__get_symbols_overview()
```

**1d. Read 3-5 hub node files** — understand actual structure, naming, patterns.

## Phase 2 — Generate HTML Report

Write a self-contained HTML file to `docs/supergraph/architecture-review-<YYYY-MM-DD>.html`.

Structure:

```html
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Architecture Review — [Project] — [Date]</title>
  <script src="https://cdn.tailwindcss.com"></script>
  <script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
</head>
<body class="bg-gray-50 p-8 font-sans">

  <!-- Header -->
  <h1>Architecture Review: [Project]</h1>
  <p>[Date] | [N communities] | [N hub nodes] | [N bridge nodes]</p>

  <!-- Current Architecture Diagram -->
  <h2>Current Architecture</h2>
  <div class="mermaid">
    graph TD
      [community nodes and edges from graph data]
  </div>

  <!-- Candidate Improvements -->
  <!-- One card per candidate -->
  <div class="candidate-card">
    <h3>[Candidate N]: [Short name]</h3>
    <span class="badge">[Strong / Worth exploring / Speculative]</span>

    <p><strong>Problem:</strong> [what's wrong now]</p>
    <p><strong>Proposal:</strong> [what to change]</p>

    <h4>Before</h4>
    <div class="mermaid">graph TD; [before state]</div>

    <h4>After</h4>
    <div class="mermaid">graph TD; [after state]</div>

    <p><strong>Impact:</strong> [blast radius, effort, risk]</p>
    <p><strong>Trade-offs:</strong> [pros / cons]</p>
  </div>

  <!-- Knowledge Gaps -->
  <h2>Test Coverage Gaps</h2>
  [table of untested hotspot files]

  <!-- Surprising Connections -->
  <h2>Unexpected Coupling</h2>
  [list of surprise connections with scores]

</body>
</html>
```

**Recommendation strength badges:**
- `Strong` — clear problem, low risk, high ROI
- `Worth exploring` — plausible improvement, some uncertainty
- `Speculative` — possible but needs investigation

Open report automatically:
```bash
open docs/supergraph/architecture-review-<date>.html \
  || xdg-open docs/supergraph/architecture-review-<date>.html \
  || echo "Report saved: docs/supergraph/architecture-review-<date>.html"
```

## Phase 3 — Grilling Loop

For each Strong candidate, ask one focused question:

> "Candidate N proposes [X]. Is this consistent with [constraint from CONTEXT.md / known business rule]?"

Incorporate answers to refine the candidate cards. Mark dismissed candidates as `Rejected — [reason]`.

After grilling, present final prioritized list:
```
Strong candidates (ready for /supergraph:plan):
  1. [Name] — [one-line rationale]

Worth exploring (needs spike first):
  2. [Name] — [open question to resolve]

Speculative (park for later):
  3. [Name] — [what would need to be true]
```

## Report

```
✅ /supergraph:architecture complete
- Report: docs/supergraph/architecture-review-<date>.html
- Communities: N | Hub nodes: N | Bridge nodes: N
- Candidates: N Strong, N Worth exploring, N Speculative
- Next: /supergraph:plan (for Strong candidates) or /supergraph:prototype (for uncertain ones)
```

## Rules

- Always open the HTML file automatically
- Mermaid diagrams must reflect actual graph data, not invented structure
- Speculative candidates must be labeled — never present guesses as strong recommendations
- Update CONTEXT.md if review revealed undocumented architectural invariants:
  ```bash
  printf '\n## <invariant>\n[description]\n' >> CONTEXT.md
  ```
- If graph was empty or unavailable, note "Diagram generated from filesystem structure" in the HTML report header