πŸ›‘οΈ BSP Bulletproof Council v2

Multi-agent dispatch architecture with 5-layer defense, 14 components, and bulletproof-as-default rule. Replaces Claude Desktop ↔ Terminal ↔ Robert relay loop.
v2.0 Β· 2026-04-25 Β· Codified after a day of fast-path slips that triggered Rule 9 Β· BSP-internal, generalizes to HCP/Daniel/ST attribution next phase

πŸ“‘ Quick Jump

TL;DR Why v2 5-Layer Defense 14 Components 12 Enforcement Layers Dispatch Flow 5 Agents 4 Tiers Anti-Patterns Mario Rails Cheat Sheet Deferred
πŸ“Œ The whole architecture in 4 sentences:

Strategic dispatches (Phase X plans, cutover scripts, retire-snippet directives) flow through 5 verification layers before reaching Robert: Scope-Boundary Referee at intake, Protocol Gates pre-load, Per-agent Zeus RAG retrieval, Auditor empirical-grep cross-check, Validation Score binary checks. Bulletproof is the default β€” never the fast option (CLAUDE.md Rule 9). Tier 2+ dispatches REFUSE Solo mode (architectural enforcement). Multi-model fallback (Claude Opus β†’ GPT-4o) and retry-with-backoff handle platform incidents without human intervention.

Status: 11 of 14 components shipped + verified. 3 deferred to T3-T5 with concrete plans.
πŸ”₯

Why v2 exists

v1 (Claude Desktop ↔ Robert relay ↔ Claude Code) had three structural failures:

⏰
Context max-out
Desktop accumulated 4-day threads, hit 420K tokens. Each session re-paid the context cost.
πŸ”
Relay bottleneck
Robert pasting both sides of the loop β€” Desktop output β†’ Terminal, Terminal output β†’ Desktop β€” slowed every dispatch.
🎯
Single-model blind spots
Desktop alone missed what 4 specialized agents catch in parallel. Hallucinations shipped to Robert as "ready."

Plus the meta-failure: the fast path kept producing slop that had to be re-done. Apr 24 functions.php truncation, Apr 25 codebase brief 80Γ— compression, Apr 25 inaugural cutover hallucinations. Each fix took longer than doing it bulletproof first time.

Robert, Apr 25: "for the record we never want the fast option we always want the best in practice bulletproof option" β€” codified as CLAUDE.md Rule 9.
πŸ›‘οΈ

The 5-layer defense before Robert sees a dispatch

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Robert: dispatch question β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό ╔═══════════════════════════════════════════════════════════╗ β•‘ LAYER 1 β€” SCOPE-BOUNDARY REFEREE (deterministic Python) β•‘ β•‘ Maps question keywords β†’ Terminal | Bricks UI | Ambig. β•‘ β•‘ Bricks UI scope β†’ REJECT at intake (sys.exit 3) β•‘ β•‘ Terminal scope β†’ proceed β•‘ β•‘ Ambiguous β†’ flag warning, proceed for Robert review β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β–Ό ╔═══════════════════════════════════════════════════════════╗ β•‘ LAYER 2 β€” PROTOCOL GATES PRE-LOAD β•‘ β•‘ ~12 KB hand-curated identifier inventory + Β§11 rails + β•‘ β•‘ scope boundary + 9 named failure-mode shortcuts + β•‘ β•‘ 11 NEVER-DOs. Loaded into every agent's prompt. β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β–Ό ╔═══════════════════════════════════════════════════════════╗ β•‘ LAYER 3 β€” PER-AGENT ZEUS RAG RETRIEVAL β•‘ β•‘ STRATEGIST: broad query, k=15, similarity β‰₯0.35 β•‘ β•‘ CRITIC: failure-mode focused query β•‘ β•‘ RESEARCHER: external web only (no RAG) β•‘ β•‘ AUDITOR: identifier-cross-check vs Strategist draft β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β–Ό ╔═══════════════════════════════════════════════════════════╗ β•‘ LAYER 4 β€” AUDITOR EMPIRICAL-GREP TOOLS [T3] β•‘ β•‘ Live snippet census (curl /code-snippets paginated) β•‘ β•‘ HTML grep for cited element IDs β•‘ β•‘ File existence stat via SSH β•‘ β•‘ functions.php sha256 vs locked baseline β•‘ β•‘ NOT static doc lookup. Live system probes. β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β–Ό ╔═══════════════════════════════════════════════════════════╗ β•‘ LAYER 5 β€” VALIDATION SCORE [T4] β•‘ β•‘ Binary: zero hallucinations (no robert@, no /var/www/, β•‘ β•‘ snippet IDs in live census) β•‘ β•‘ Count: cited IDs in step bodies, abort gates per state β•‘ β•‘ change step β‰₯1, rollback literal command β•‘ β•‘ Scope match: Strategist matches Referee verdict β•‘ β•‘ FAIL = surfaces with "validation failed, here's why" β•‘ β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β• β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Robert: SHIP / AMEND / β”‚ β”‚ HOLD β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
πŸ“ˆ Net result: A dispatch reaching Robert has passed 5 verification gates. His time goes to ship/hold/amend, not proofreading.
🧩

14 Components β€” status

#ComponentWhatStatusTurn
1Protocol GatesHand-curated 12KB canonical IDs/limits/scope/failure-modes/never-dosSHIPPEDT0
2Zeus RAG + Context Harness wiringPer-question semantic retrieval from 18,468 chunks + warnings/blast_radiusSHIPPEDT0
3Retry-with-backoffAll 4 model calls retry on 5xx/429 with 5/15/30s waitsSHIPPEDT1
4Multi-model fallback chainStrategist Opus β†’ GPT-4o substitute on Anthropic platform incidentSHIPPEDT1
5Scope-Boundary RefereeDeterministic Python keyword mapper at intake. Tier 2 Bricks-UI = REFUSED.SHIPPEDT2
6Per-agent context tailoringEach reviewer gets role-tailored RAG (Critic=failure-mode, Auditor=ID-cross-check)SHIPPEDT3
7Auditor empirical-grep toolsLive snippet census, HTML grep, file stat, sha256 check (not static doc lookup)T3β€”
8Validation ScoreBinary + count + scope checks BEFORE surfacing dispatch to RobertT4β€”
95-Generation correction sweepFind every "4th-gen" in today's outputs, fix to canonical "5-Generation"T4β€”
10CleanupDelete codebase_brief.py + brief-gen call from project_ledger + stale SOP sectionsT4β€”
11SOP HTML rewriteRename to "Bulletproof-First Operator Manual", document v2 realityT5β€”
12Validation test (cutover re-run)Re-run inaugural cutover under v2 + diff vs v1 hallucinationsT3.1 in flightβ€”
13MH log v2 architectureSection bsp-apr25-bulletproof-v2-architecture-shipped (paper trail)T5β€”
14Triad integrationCouncil fills Nexus Triad's Strategist+Verifier slots. Cockpit = Morpheus Next.js frontend (already live at /app/robert) β€” NOT Streamlit (deprecated). See Nexus Autonomous IntelligencePhase 3β€”
βš–οΈ

12 Enforcement Layers β€” Bulletproof Default

The "bulletproof is the default" principle is enforced at 12 separate touchpoints so it can't be bypassed accidentally:

1

Auto-memory SHIPPED

~/.claude/.../memory/feedback_bulletproof_default.md (14 lines stub) + MEMORY.md index entry. Reloads every session.

2

CLAUDE.md Rule 9 SHIPPED

System-instruction layer. Joins Rule 0 (Web Check), Rule 1 (Producer/Verifier), Rule 4 (Pre-Commit), Rule 6 (Two-Failure Stop), Rule 7 (Log to MH), Rule 8 (Deep Cycle).

3

Protocol Gates Β§0 Operating Principle SHIPPED

Council agents read on every dispatch. 6-question pre-flight (Apr 21 SOP + bulletproof check).

4

Council runtime Tier 2+ Solo refusal SHIPPED

Architectural enforcement: sys.exit(2). Can't bypass with --mode solo on Tier 2+.

5

Per-agent personas SHIPPED

All 4 agents (Strategist, Critic, Researcher, Auditor) inherit Β§0 via gates pre-load.

6

6th pre-flight question T3

Added to Apr 21 Β§13 SOP: "Am I taking bulletproof or fast? If fast, did Robert explicitly approve?"

7

Validation Score bulletproof axis T4

Was retry+fallback used? Was independent reader verification done? Was multi-model verified? Score per axis.

8

Project Ledger compliance % T4

Field added: % of dispatches under bulletproof. Telemetry over time, surfaces in cockpit.

9

SOP HTML title T5

Rename to "Bulletproof-First Operator Manual." Operator manual frame shifts from "how to use" to "how to defend."

10

MH paper trail SHIPPED

Section bsp-apr25-bulletproof-default-rule-9. Forever-record in master history.

11

Pre-commit hook on council_runtime.py T7

CI/CD: refuses commits that introduce API calls without retry-with-backoff.

12

Cross-project propagation T7

Review Nexus cron services (HCP/Daniel/ST attribution) for fast-path defaults, flip them.

🌊

End-to-end dispatch flow

ROBERT: "I need a Tier 1 dispatch for retiring snippet #115" β”‚ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 1: Project Ledger refresh β”‚ β”‚ python3 project_ledger.py β”‚ β”‚ Captures: drift sha256, Template 105 element count, β”‚ β”‚ snippet census, recent MH sections β”‚ β”‚ Auto-generates codebase brief (deprecated, kept for now)β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 2: Council runtime invoked β”‚ β”‚ python3 council_runtime.py --mode council --tier 1 \\ β”‚ β”‚ --question "..." --slug retire-115 \\ β”‚ β”‚ --ledger /tmp/project_ledger_excerpt.md β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 3: Scope-Boundary Referee β”‚ β”‚ classify_scope("retire snippet #115...") β”‚ β”‚ Match: ['snippet #'] β†’ Terminal scope β†’ PROCEED β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 4: Context assembly β”‚ β”‚ β€’ Protocol Gates (12 KB pre-load) β”‚ β”‚ β€’ Zeus RAG: 18,468 chunks β†’ top 15 above sim 0.35 β”‚ β”‚ β€’ Context Harness: warnings + blast_radius β”‚ β”‚ β€’ Project Ledger excerpt β”‚ β”‚ β€’ Referee verdict β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 5: Strategist drafts (Claude Opus 4.5) β”‚ β”‚ max_tokens: 16000 (no truncation) β”‚ β”‚ Retry-with-backoff on 529/5xx β”‚ β”‚ Fallback to GPT-4o if Anthropic down β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 6: Parallel review (3 agents, role-tailored RAG) β”‚ β”‚ Critic (GPT-4o): failure-mode RAG + draft review β”‚ β”‚ Researcher (Sonar): external web verify (citations) β”‚ β”‚ Auditor (Gemini): identifier-cross-check RAG + draft β”‚ β”‚ (Proβ†’Flash fallback) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Step 7: Synthesis + receipts β”‚ β”‚ Dispatch markdown saved to β”‚ β”‚ /opt/nexus/.../dispatches/phase__.md β”‚ β”‚ Per-agent raw JSON saved to β”‚ β”‚ /opt/nexus/.../council/raw__.json β”‚ β”‚ MH section logged automatically β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β–Ό β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ Robert: SHIP / AMEND / HOLD β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
πŸ€–

5 agents (4 strategic + 1 executor)

🧠
STRATEGIST β€” Claude Opus 4.5
Authors Phase X dispatches in BSP house style. Default voice. Fallback: GPT-4o if Anthropic down. Max tokens: 16,000 (truncation-proof). RAG: broad query k=15.
βš”οΈ
CRITIC β€” GPT-4o
Devil's advocate. Numbered risk list with severity. Vote: APPROVE / AMEND / REJECT. RAG: failure-mode focused query. Brutally specific β€” "it might not work" is rejected.
πŸ“š
RESEARCHER β€” Perplexity Sonar Pro
Citation-first external evidence. Verifies factual claims with 2024-2025 sources. RAG: none (external web grounding only). Reject opinion-only sources.
πŸ”
AUDITOR β€” Gemini 2.5 Pro
Cross-checks dispatch against MH + Project Ledger + codebase doc. Empirical grep [T3] for cited identifiers. Fallback: 2.5 Flash if Pro hits MAX_TOKENS. RAG: identifier-cross-check on Strategist draft.
πŸ› οΈ
EXECUTOR β€” Claude Code (this agent)
VM SSH + Hostinger MCP + file ops + native-save / install-child / cache purge / Playwright verify. Runs the dispatch end-to-end after Robert ships. Single integration point β€” no copy-paste relay.
🚦

4 Autonomy Tiers

TierWhatExamplesMode requiredRobert approval?
TIER 0Read-only / docs / MH logSEO research, project ledger refresh, doc draft, MH sectionSolo OKNone β€” auto-execute
TIER 1Staging writes with rollbackTemplate 105 native-save, snippet activate, child theme install, op258 patchesSolo OK (or Council)Auto-execute, rollback ready
TIER 2Production writes / content tree change / schemaProduction cutover, callbrightside.com edits, sitemap regen, GMB updatesCouncil REQUIREDRobert approval REQUIRED
TIER 3Destructive / irreversibleDrop snippet permanently, delete Bricks template, force-push to main, drop DB tableCouncil REQUIREDRobert approval + signed receipt
Architectural enforcement: Tier 2+ refuses Solo mode. Try it: --mode solo --tier 2 exits with code 2 + redirect message. Bulletproof Default rule cannot be bypassed by accident.
🚫

13 anti-patterns refused forever

Each happened during Apr 24-25. Each is now codified as a never-do across all 12 enforcement layers.

🐌

Mario rails (Β§11 self-limits β€” the constraints)

Per Mario Zechner's "Slow the fuck down" framework (March 2026 essay) β€” applied to BSP coding sessions:

LimitNumberWhy
Lines of code per turn≀ 200 net newCode I can't read in 2 min is code I can't defend.
New snippets per session≀ 3 net newEach snippet = new surface to maintain.
Element tree size per build≀ 150 elements per pageBigger = split into templates + sections.
Patches before rebuild≀ 3 patches to a section>3 = underlying tree wrong. Rebuild from Figma.
QA cycles outsourced to Robert0 by defaultPlaywright + audit + diff before reporting.
Diagnostic snippets left active0 (delete within 24h)Slop until removed.
Memory file size≀ 20 lines per fileStub form only. Full content in MH. (Apr 25 addition)
The check before any deploy (Β§11):
  1. Recall: Did I search existing for prior art? Extending vs duplicating?
  2. Local-vs-global: One-element patch or solving the underlying class?
  3. Defensibility: Can I explain to Kalen in one sentence why each new line of code exists?
  4. Verification: Did I run Playwright + audit + diff before reporting?
  5. Cleanup: What am I leaving behind (diagnostic snippets, dead helpers)?
  6. Bulletproof check (Apr 25): Am I taking bulletproof or fast? If fast, did Robert explicitly approve?
If ANY answer is "no" or "I don't know" β†’ STOP. Do not write code.
🎴

Cheat sheet β€” copy-paste these

Refresh project ledger + codebase brief

ssh dovew@34.55.179.122 "python3 /opt/nexus/nexus/scripts/project_ledger.py"

Solo dispatch β€” Tier 1 tactical work

ssh dovew@34.55.179.122 "python3 /opt/nexus/nexus/scripts/council_runtime.py --mode solo --tier 1 --slug short-name --question 'YOUR ASK' --ledger /tmp/project_ledger_excerpt.md"

Council dispatch β€” Tier 2+ high stakes (refuses Solo, this is the only path)

ssh dovew@34.55.179.122 "python3 /opt/nexus/nexus/scripts/council_runtime.py --mode council --tier 2 --slug short-name --question 'YOUR ASK' --ledger /tmp/project_ledger_excerpt.md"

Read most-recent dispatch

ssh dovew@34.55.179.122 "cat \$(ls -t /opt/nexus/nexus/scripts/output/dispatches/*.md | head -1)"

Pull dispatch to Windows for Notepad review

scp -i ~/.ssh/google_compute_engine "dovew@34.55.179.122:\$(ssh dovew@34.55.179.122 'ls -t /opt/nexus/nexus/scripts/output/dispatches/*.md | head -1')" C:/Users/dovew/Downloads/

Test scope-boundary referee on a question

ssh dovew@34.55.179.122 "python3 /opt/nexus/nexus/scripts/referee.py 'YOUR ASK'"
πŸ“…

What's deferred (Phase 3)

Correction (Apr 25): Robert flagged: "we don't use Streamlit anymore." Cockpit is the Morpheus Next.js frontend (live at https://morpheus.callbrightside.com/app/robert) plus the document library at /documents/*. Streamlit dashboards were deprecated. Adjusting deferred items below.

Phase 3 β€” integrate into Nexus Autonomous Intelligence

Per BSP_Nexus_Autonomous_Intelligence.html, the broader system is already running with: 6,332 RAG chunks, CRAG (Corrective RAG quality gate), Self-RAG (self-reflection), 18 antibodies (only 3 firing β€” gap documented), nexus_priority_engine.py at port 8765 with 350 endpoints, the Triad architecture (Strategist + Verifier + Executor), Morpheus Next.js cockpit, daily 5AM priority queue ranking. The BSP Operator Council fits inside this as a multi-model implementation of the Triad's Strategist+Verifier slots.

v2.0 Β· 2026-04-25 Β· BSP Bulletproof Council Architecture

Single-page document. No external dependencies. Open in any browser.

Sources: protocol_gates.md, council_runtime.py, referee.py, project_ledger.py, codebase_brief.py [deprecated], BSP_Master_Session_History.html

BSP_Bulletproof_Council_Architecture_v2.html