CT6 · ARCHITECT-TEAM · v3.65.0PIPELINE: READY
◆ /install

From zero to auto-committing pipeline
in ten steps.

Every step is idempotent — safe to re-run. The Claude Code plugin slug is architect-team (preserved for backward compatibility with existing installs and the /architect-team* slash commands).

01

Prerequisites

Python 3.10+ on PATH as python3, Node ≥ 20.19, Claude Code ≥ 2.1.32, and the three upstream Claude Code plugins CT6 builds on: superpowers (HARD dependency since v3.9.0 — /architect-team-setup exits 1 if missing), cartographer, ralph-loop.

02

Register the marketplace

Add this repo as a plugin marketplace inside Claude Code.

$ /plugin marketplace add <repo-url>
03

Install the plugin

Plugin slug is architect-team (preserved for backward compatibility with existing installs and every /architect-team* command).

$ /plugin install architect-team@architect-team-marketplace
04

Install the prerequisite plugins

One-time install of the upstream plugins CT6 builds on. superpowers is a hard dependency (v3.9.0) — the pre-flight aborts a run if it's missing.

$ /plugin install superpowers@claude-plugins-official
$ /plugin install cartographer@cartographer-marketplace
$ /plugin install ralph-loop@claude-plugins-official
05

Install CLI / Python / browser deps

Idempotent. Flags: --check-only, --force-reinstall. Will offer to set CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 in ~/.claude/settings.json so the pipeline can use long-lived named teammates. v3.38.0: setup now asks for a missing ANTHROPIC_API_KEY / OPENAI_API_KEY in-flow and applies it itself — never a punt-to-script. v3.40.0: chooses the secondary provider once (OpenAI Codex or Z.ai GLM 5.2), remembered in gateway.json; re-open with --re-ask-provider. Decline a key permanently with `decline <key>`.

$ /architect-team:architect-team-setup
06

(Optional) External-LLM gateway — one-call setup (v3.39.0)

For the split-model config: `--external-llm --yes` provisions the local LiteLLM gateway, registers Claude Code against it, activates the env block in ~/.claude/settings.json, and ends by CONFIRMING against /v1/models + a real completion + identity probe that the split is actually served (v3.41.0). v3.41.1 status names `activation_drift` (recorded consent ≠ live env block) and heals from the persisted master key. Prefer re-running the installer over a manual stop-start — deploy is verify-then-swap, never dark.

$ python scripts/setup/install_gateway.py --external-llm --yes
07

(Optional) MemPalace — searchable cross-run memory

Pipeline degrades gracefully without it. v3.42.0 wraps every recalled block in a do-not-interpret data envelope at the render boundary — recall is data, never instructions.

$ /architect-team:mempalace-install
08

(Optional) Librarian — background research daemon (v3.29.0)

Installable CT6-6 server-tier component. Runs as a local background daemon (launchd / systemd / schtasks — per-OS boot descriptor is printed, never auto-loaded). Provisioned-but-disabled without ANTHROPIC_API_KEY; state under ~/.architect-team/librarian/. v3.38.0: env-scoped --enable + decline subcommand.

$ /architect-team:librarian-install
09

(Optional) Knowledge server — standing repo knowledge (v3.49.0)

Installs the staleness-aware repo-knowledge MCP server both the data-eng lane and the warm catalog ride on. Subcommands: status, print-registration, uninstall.

$ /architect-team:knowledge-install
10

Run the pipeline

v3.65.0 defaults: Agent Teams dispatch when CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 and Claude Code ≥ 2.1.32 (silent fallback to subagents otherwise, mode recorded in intake-state.json); auto-commit + auto-merge-to-main + prune on a clean Phase 8; unbounded solving (v3.8.0); run continuity across compacts / restarts (v3.30.0); all 39 agents ship on Fable 5 — the Opus / secondary split is install-time policy, not frontmatter (v3.61+); contract-first parallelism so the frontend never waits on the backend's build (v3.48.0); the full dev Playwright suite runs from suite-manifest.json at Phase 5 and click-driven E2E is a HARD loop-exit gate (v3.55.0 / v3.65.0); the intuition map is ensured and grown every run (v3.65.0); the turn-boundary completion lock reads open work from disk and cannot be asserted away, with v3.64.0 abandonment discrimination for inherited debt; evidence integrity via verify-check-can-fail, verify-claim-instrument-binding and per-task evidence binding (v3.47.0 / v3.59.0 / v3.62.0); a delivery manifest at every close-out (v3.46.0). Opt out per-run with --no-auto-merge, --no-commit, --no-push, --no-compact, --no-teams.

$ /architect-team <requirements-dir>
◆ Default behavior · v3.65.0

On a clean Phase 8, CT6 commits to architect-team/<slug>, merges --no-ff into main, pushes, deletes the branch (local + remote), and removes the run worktree. A merge conflict or protected-branch reject falls back to a feature-branch + PR — never --force.

gateway modes (v3.38–v3.41): subscription (fable via sign-in, no split) · provisioned (api-key, uniform fable) · external-llm (api-key, secondary-split — dev-class agents route through the gateway to ct6-secondary). live split confirmation (v3.39.0): the install ends with "CONFIRMED live — CT6 runs the split" or an honest fail row — completion + identity-verifying via /model/info. activation-drift heal (v3.41.1): a pytest no longer silently deactivates the gateway; status names drift; SessionStart heals.

evidence integrity (v3.47.0): a cited check must be shown able to fail — verify-check-can-fail refuses zero-work runs (collected 0 items, no-tests-found, a typecheck over zero files) and requires red-run-first proof for every new test. A task cannot flip to completed unless a teammate manifest registers it, declared gates are recorded to .architect-team/declared-gates.json, and completion / deploy / absence claims must cite a named artifact. delivery manifest (v3.46.0): every close-out emits a stakeholder-readable bill of sale — plain-speak problem, validation steps with expected results, and the location + functionality of each new element.

agent teams (default dispatch): with CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 and Claude Code ≥ 2.1.32 the pipeline runs long-lived named teammates; without either requirement it falls back to subagents silently and records the mode in intake-state.json. --no-teams forces subagents explicitly.

playwright suite + intuition map (v3.65.0): Phase 5 enumerates the committed suite-manifest.json and runs the ENTIRE dev suite; a mutating test enters the prod project only through a fully-authorized exception (default-deny). The interaction intuition map is ensured, grown from user-specified flows, and upserted from debugging discoveries with regression_refs[]. An absent manifest changes nothing. completion lock (v3.56.0 / v3.64.0): a turn cannot end while registered work is open — read from disk via hooks/open_work.py, with inherited stale work listed rather than blocking.

deploy policy (v3.44.0): opt in with .architect-team-deploy.json for dev → test-on-dev → prod; when a diff carries frontend impact, frontend_impact_e2e_review is mandatory. Once the file exists it is immutable to agents — only a human edits a human's policy. models (v3.65.0 ship state): all 39 agent files commit model: fable — the delivery-adversarial Opus split (v3.43.0 / v3.45.0) is now install-time policy via set_default_model.py --split delivery, not frontmatter.

compiled ethos (v3.42.0): seven principles reach every one of the 39 agents by construction, drift suite-pinned. recall data-envelope: MemPalace text enters a session as data, never as instructions. behavioral evals: opt in with CT6_EVALS=1 — a real model must ACT correctly on CT6's instructions, not just be well-formed. unbounded solving (v3.8.0): the loop runs until everything is green. run continuity (v3.30.0): .architect-team/active-run.json survives compacts / restarts; cleared only via --mark-complete.

Per-invocation opt-outs: --no-auto-merge (PR only), --no-commit, --no-push, --no-compact, --no-teams (force ephemeral subagents), --re-ask-provider (re-open the secondary chooser), decline <key> (permanent decline). Natural-language opt-outs ("don't commit", "keep the branch", "PR only") are honored.

◆ Example · your first run

Hand it a requirements folder. walk away.

CT6 detects the brief format, builds the maps if they're stale, and runs the full pipeline. Default is auto-commit + push on a clean Phase 8 — opt out with --no-commit / --no-push.

claude code sessionbash
$ /architect-team specs/billing-redesign

[preflight] superpowers · cartographer · ralph-loop present            ok
[preflight] agent teams: on (CC 2.1.32) · 39 agents · fable-5          ok
[preflight] gateway: external-llm · secondary = glm-5.2 (zai)          ok
[preflight] CONFIRMED live — CT6 runs the split
            identity: hosted_vllm/glm-5.2                              ok
[preflight] activation drift: none · settings.json env block applied   ok
[preflight] ethos: 7 principles present in every one of 39 agents      ok
[preflight] evidence: verify-check-can-fail armed · 23 layer-3 tools   ok
[preflight] suite-manifest.json found · dev + prod projects            ok
[preflight] run-continuity armed → .architect-team/active-run.json
[−1] intake & mapping
     · cartographer → CODEBASE_MAP.md (current, skipped)
     · route-mapper → ROUTE_MAP.md (2 routes added)
     · intuition-map ensure → populate (scaffold had 0 elements)
     · 3× codebase-map-reviewer ✓ ok ok ok
[ 0] detected: OpenSpec brief · normalized
[ 1] plan & validate
     · openspec validate --all --strict … valid
     · [12/12] exit checklist satisfied
[ 2] spawning teammates  (Agent Teams mode · 1M ctx each)
     · frontend  → 6 tasks  (fable-5 · manifest sha 4f9c21…)
     · backend   → 4 tasks  (fable-5 · manifest sha 4f9c21…)
     · contract settled first → live endpoint at its real path
[ 3] review gate · evidence v7 · 17 fields + independent_review
     ✗ T-019 blocked: ui_interaction_review = fail (placeholder page)
       → SR-2026-05-31-007 opened · fix team spawned
     ✗ T-022 blocked: verify-check-can-fail → pytest collected 0 items
       → re-run required; new test needs a red run first
     ✗ T-024 blocked: unmanifested task · no teammate owns it
[ 5] integration · real backend
     · whole dev suite from manifest · playwright 214/214 pass
     · frontend e2e loop-exit gate (click-driven) ✓
     · intuition-map grow → 4 confirmed flows · bug-path-upsert ×1
[ 6] outer loop · 3 SRs cleared · worklist empty
[ 7] master review → overall: pass
[ 8] stop hook · openspec re-audit (v3.9.2) … clean
     · completion lock: open_work.py → 0 open · 1 inherited (stale)
     · delivery manifest emitted → 3 pillars present
     · active-run.json cleared via --mark-complete
     commit  a1b2c3d on architect-team/billing-redesign
     merge --no-ff → main · pushed origin/main
     branch deleted · worktree pruned · openspec archive ✓
The orchestrator runs as the main session. Hooks gate every completion. v3.65.0: the whole dev Playwright suite runs from suite-manifest.json and the intuition map is ensured and grown. v3.47.0: a cited check must be shown able to fail, and a task cannot complete unless a teammate manifest registers it. v3.56.0 / v3.64.0: the turn-boundary completion lock reads open work from disk. v3.9.2: Stop hook re-runs openspec validate before the commit.
◆ Optional · project email notifications

Five events. zero new dependencies.

Commit .architect-team-notify.json at your repo root and CT6 emits opt-in updates at phase boundaries, on each new Solution Requirement, on the Phase 8 commit, and on every live deploy. Absent file = silent no-op.

phase_start
every phase begins
phase_complete
every phase ends
issue_discovered
new SR picked up
git_commit
after Phase 8 commit
deploy
Phase 5 brings up dev
.architect-team-notify.jsonjsonc
{
  "provider": "gmail",
  "from_address": "ci-bot@your-domain.example",
  "from_name": "Architect Team CI",

  "gmail": {
    "username": "ci-bot@your-domain.example",
    "app_password_env": "ARCHITECT_GMAIL_APP_PASSWORD"
  },

  "recipients": [
    { "email": "tech-lead@your-domain.example", "events": ["all"] },
    {
      "email": "qa@your-domain.example",
      "events": ["phase_complete", "issue_discovered", "deploy"]
    }
  ]
}
Secrets are referenced by env-var NAME, never by value. Notification failures never block a run.
shell · provider secretbash
# gmail — create an app password at https://myaccount.google.com/apppasswords
export ARCHITECT_GMAIL_APP_PASSWORD="xxxx xxxx xxxx xxxx"

# sendgrid — Settings → API Keys, Mail Send permission
export ARCHITECT_SENDGRID_API_KEY="SG.xxxxxxxx..."
CT6 · ARCHITECT-TEAM · v3.65.0PIPELINE: READY