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

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).

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

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.

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

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.

◆ 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] 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 ✓
The orchestrator runs as the main session. Hooks gate every completion. v3.42.1: SessionStart heals activation drift + wraps recalled MemPalace in a data envelope. v3.41.0: gateway is verify-then-swap; the confirm probe is spawn-mandatory + identity-verifying. 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.42.1PIPELINE: READY