From zero to auto-committing pipeline
in nine commands.
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).
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.
Register the marketplace
Add this repo as a plugin marketplace inside Claude Code.
Install the plugin
Plugin slug is architect-team (preserved for backward compatibility with existing installs and every /architect-team* command).
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.
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>`.
(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.
(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.
(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.
Run the pipeline
v3.42.1 defaults: 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); native Claude Design link import (v3.33.0); Fable 5 default with Opus 4.8 fallback (v3.32.0); selectable secondary provider — OpenAI Codex or Z.ai GLM 5.2 — behind the provider-neutral `ct6-secondary` alias (v3.40.0); dev-class agents spawn on the `claude-haiku-4-5` impersonation alias routed through the gateway (v3.41.0, disclosed); activation-drift heal on SessionStart + `install status` (v3.41.1); compiled 7-principle ETHOS in every agent (v3.42.0); opt-in behavioral eval tier via CT6_EVALS=1. Opt out per-run with --no-auto-merge, --no-commit, --no-push, --no-compact, --no-teams.
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.
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.
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.
$ /architect-team specs/billing-redesign
[preflight] superpowers · cartographer · ralph-loop present ok
[preflight] fable-5 default · claude-haiku-4-5 spawn alias registered 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] 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)
· 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 (spawn: claude-haiku-4-5 → glm-5.2)
· backend → 4 tasks (spawn: claude-haiku-4-5 → glm-5.2)
[ 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
[ 5] integration · real backend
· playwright 38/38 · visual-fidelity ✓ · ui-interaction ✓
[ 6] outer loop · 3 SRs cleared · worklist empty
[ 7] master review → overall: pass
[ 8] stop hook · openspec re-audit (v3.9.2) … clean
· 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 ✓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.
{
"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"]
}
]
}# 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..."