diff --git a/README.md b/README.md index 6ba7e19..9a3af32 100644 --- a/README.md +++ b/README.md @@ -604,24 +604,65 @@ Claude never pre-generates suggestions in this flow. ## The full pipeline +Six commands, one pipeline — each step hands a structured artifact to the next (the seven [handover contracts](docs/HANDOVER-CONTRACTS.md)): + +```mermaid +flowchart LR + B["/trekbrief"] + R["/trekresearch"] + P["/trekplan"] + X["/trekexecute"] + V["/trekreview"] + C["/trekcontinue"] + A["architect plugin
(opt-in, not bundled)"] + + B -->|"H1 · brief.md · PUBLIC"| R + R -->|"H2 · research/NN-*.md"| P + A -.->|"H3 · architecture/overview.md"| P + P -->|"H4 · plan.md"| X + X -.->|"H5 · progress.json (--resume)"| X + X -->|"H7 · .session-state.local.json"| C + C -->|"next session"| X + X -.->|"git diff"| V + V -->|"H6 · review.md (loop back)"| P ``` - /trekbrief /trekresearch /trekplan /trekexecute - ┌──────────────┐ ┌───────────────────┐ ┌─────────────────────┐ ┌─────────────────────┐ - │ Interview │ │ 5 local agents │ │ brief-reviewer │ │ Parse plan │ - │ ↓ │ │ 4 external agents │ │ ↓ │ │ ↓ │ - │ Intent/Goal │ │ + Gemini bridge │ │ 6-8 exploration │ │ Detect sessions │ - │ ↓ │ │ ↓ │ │ agents (parallel) │ │ ↓ │ - │ Research │ │ Triangulation │ │ ↓ │ │ Execute steps │ - │ topics │ │ ↓ │ │ Opus planning │ │ (verify + manifest │ - │ ↓ │ → brief → → → → → → → → → → → ↓ │→ │ + checkpoint) │ - │ brief.md │ │ research/*.md │ │ plan-critic + │ │ ↓ │ - └──────────────┘ └───────────────────┘ │ scope-guardian │ │ Phase 7.5 manifest │ - │ ↓ │ │ audit + 7.6 recovery│ - │ plan.md │ │ ↓ │ - └─────────────────────┘ │ progress.json + done│ - └─────────────────────┘ + +Solid arrows are the forward pipeline; dashed are conditional/internal edges (`--resume`, the git-diff that feeds review, the opt-in architect input). **H1 (`brief.md`) is the only PUBLIC contract** — the single integration point for any upstream brief producer. + +### Agents per phase + +Every command orchestrates its agents inline from the main context (all sub-agents are `model: opus`-pinned). `/trekexecute` is the exception — it spawns **no** sub-agents. + +```mermaid +flowchart TB + subgraph BR["/trekbrief"] + BRG["brief-reviewer (gate · ≤3 iter)"] + end + subgraph RES["/trekresearch · Phase 4 — parallel"] + RL["LOCAL: architecture-mapper · dependency-tracer
task-finder · git-historian · convention-scanner*"] + RE["EXTERNAL: docs-researcher · community-researcher
security-researcher* · contrarian-researcher* · gemini-bridge*"] + end + subgraph PL["/trekplan"] + PLG["Phase 4b · brief-reviewer (gate)"] + PLS["Phase 5 — parallel (6 + 2*): architecture-mapper · dependency-tracer
risk-assessor · task-finder · test-strategist · git-historian
convention-scanner* · research-scout*"] + PLC["Phase 9 — parallel · plan-critic · scope-guardian"] + PLG --> PLS --> PLC + end + subgraph EX["/trekexecute · no sub-agents"] + EXI["inline step-loop + claude -p worktrees
+ Phase 7.5/7.6 manifest audit (deterministic)"] + end + subgraph RV["/trekreview"] + RVR["Phase 5 — parallel · code-correctness-reviewer · brief-conformance-reviewer*"] + RVJ["Phase 6 · review-coordinator (Judge)"] + RVR --> RVJ + end + BR --> RES --> PL --> EX --> RV ``` +`* = conditional`: convention-scanner / test-strategist on medium+ codebases (50+ files); research-scout for unknown external tech; security-/contrarian-researcher + gemini-bridge when a leading recommendation forms (or always at `effort=high`); brief-conformance-reviewer skipped under `--quick`. + +> **Which Claude Code primitive each phase uses — and the alternatives considered (Workflow substrate, delegated orchestrator, dormant synthesis-agent)** → see [docs/architecture.md §Primitives per step](docs/architecture.md#primitives-per-step-decision-matrix). + All artifacts live under `.claude/projects/{YYYY-MM-DD}-{slug}/`. An opt-in upstream architect plugin (not bundled) can insert a Claude-Code-specific architecture-matching step between research and plan — `/trekplan` auto-discovers its `architecture/overview.md` output as priors when present. diff --git a/docs/architecture.md b/docs/architecture.md index d845a3c..6d0a4f0 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -80,6 +80,24 @@ The `.html` files (`brief.html`, `plan.html`, `review.html`) are produced by `sc No code-level dependency between plugins — the contract is filesystem-level only. +### Primitives per step (decision matrix) + +Which native Claude Code primitive each pipeline step runs on today, and the alternatives that were considered and where they landed. Companion to *Delegate the engine, keep the policy* above; the full decision records live in `docs/voyage-vs-cc-balance-analysis.md`, `docs/T1-cc26-delegated-orchestration.md`, and `docs/T2-cc27-workflow-substrate.md`. + +| Step | Primitive today (production) | Alternatives considered (status) | +|---|---|---| +| **brief** | Inline interview loop → `brief.md` (framing gate) | `AskUserQuestion` as the Q&A engine (recommended, not yet wired); Skill/Workflow auto-orchestration (rejected — one-shot, can't span slash-command/handover boundaries) | +| **research** | Inline spawns a foreground swarm; MCP per agent¹ | Delegated `synthesis-agent` (PoC measured Δ main-context ≈ 0 → ships **dormant**, wired to nothing) | +| **plan** | Inline: parallel explorer swarm → synthesis → adversarial `plan-critic` | Delegated orchestrator via nested sub-agents (CC-26 → lean NO, not wired; `planning-orchestrator.md` is a reference doc, not a spawnable agent) | +| **execute** | Inline step loop; multi-session via `git worktree` + `claude -p` waves; deterministic manifest audit | CC `TaskCreate`/`TodoWrite` for progress/resume (insufficient — carries no step status / attempts / SHA / drift → own typed `progress.json` contract) | +| **review** | Inline parallel reviewers (no cross-feed) → `review-coordinator` Judge | **Workflow** substrate for Phase 5–6 (bake-off POSITIVE: +4.4 % tokens / +54 % wall-time → shipped **opt-in `--workflow`**, not default; wholesale substrate swap declined) | +| **continue** | Inline reads `.session-state.local.json` → zero-confirm resume | CC `--resume` (transcript replay, not typed work-state → insufficient) | +| **cross-cutting** | 7 hook scripts: `pre-bash` + `pre-write` guards, `post-bash` stats, `session-title`, `pre-`/`post-compact` flush, **`Stop`→OTEL** export | — | + +¹ MCP per research agent: `docs-researcher` → Microsoft Learn + Tavily · `community-`/`security-`/`contrarian-researcher` → Tavily (+ WebSearch/WebFetch) · `gemini-bridge` → Gemini Deep Research MCP. Graceful degradation when an MCP server is absent. + +**Legend:** *production* = wired and active · *dormant* = shipped but wired to nothing (`synthesis-agent`) · *opt-in* = behind a flag (`--workflow`) · *not wired* = considered, deferred (delegated orchestrator, the `AskUserQuestion` brief engine). + ## State All artifacts in one project directory (default):