blue/knowledge/expert-pools.md
Eric Garcia d7db9c667d feat: RFC 0048 expert pool implementation and documentation batch
## RFC 0048 Expert Pool Implementation
- Added tiered expert pools (Core/Adjacent/Wildcard) to dialogue handlers
- Implemented weighted random sampling for panel selection
- Added blue_dialogue_sample_panel MCP tool for manual round control
- Updated alignment-play skill with pool design instructions

## New RFCs
- 0044: RFC matching and auto-status (draft)
- 0045: MCP tool enforcement (draft)
- 0046: Judge-defined expert panels (superseded)
- 0047: Expert pool sampling architecture (superseded)
- 0048: Alignment expert pools (implemented)
- 0050: Graduated panel rotation (draft)

## Dialogues Recorded
- 2026-02-01T2026Z: Test expert pool feature
- 2026-02-01T2105Z: SQLite vs flat files
- 2026-02-01T2214Z: Guard command architecture

## Other Changes
- Added TODO.md for tracking work
- Updated expert-pools.md knowledge doc
- Removed deprecated alignment-expert agent
- Added spikes for SQLite assets and SDLC workflow gaps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 19:26:41 -05:00

3.7 KiB

Expert Pool System

When running alignment dialogues, the Judge creates domain-appropriate expert pools from which panels are sampled.

Two-Phase Architecture (RFC 0047)

Phase Actor Action
Pool Design Judge Creates 15-30 domain-specific experts with tiers and relevance
Panel Sampling MCP Server Samples N experts using weighted random selection

Pool Design (Judge Responsibility)

The Judge reads the RFC/topic and designs experts appropriate to the domain:

{
  "expert_pool": {
    "domain": "Investment Analysis",
    "experts": [
      { "role": "Value Analyst", "tier": "Core", "relevance": 0.95, "focus": "Intrinsic value, margin of safety" },
      { "role": "Growth Analyst", "tier": "Core", "relevance": 0.90, "focus": "TAM expansion, revenue acceleration" },
      { "role": "Risk Manager", "tier": "Core", "relevance": 0.85, "focus": "Downside scenarios, tail events" },
      { "role": "ESG Analyst", "tier": "Adjacent", "relevance": 0.70, "focus": "Environmental, governance factors" },
      { "role": "Contrarian", "tier": "Wildcard", "relevance": 0.30, "focus": "Challenge consensus, find crowding" }
    ]
  }
}

Tier Distribution

Tier Pool % Panel % Selection Behavior
Core ~25% ~33% Almost always selected (high relevance weights)
Adjacent ~40% ~42% High probability, related expertise
Wildcard ~35% ~25% Fresh perspectives, rotation candidates

Panel Sampling (MCP Server)

blue_dialogue_create(expert_pool=[...24 roles...], panel_size=12, rotation="wildcards")
  → Weighted random sample: higher relevance = higher selection probability
  → For N=12: ~4 Core, ~5 Adjacent, ~3 Wildcard

Rotation Modes

Mode Behavior Use Case
none Fixed panel all rounds Standard deliberation
wildcards Core/Adjacent persist, Wildcards resample Bring fresh perspectives each round
full Complete resample each round Maximum diversity (experimental)

Pastry Naming

Experts are assigned pastry names for identification: Muffin, Cupcake, Scone, Eclair, Donut, Brioche, Croissant, Macaron, Cannoli, Strudel, Beignet, Churro, Profiterole, Tartlet, Galette, Palmier, Kouign, Sfogliatella, Financier, Religieuse

Domain-Specific Pools

The Judge designs pools appropriate to each domain. Example domains:

Investment Analysis: Value Analyst, Growth Analyst, Risk Manager, Portfolio Strategist, ESG Analyst, Quant Strategist, Technical Analyst, Behavioral Analyst, Income Analyst, Macro Economist, Credit Analyst, Contrarian

System Architecture: Platform Architect, Security Engineer, Database Architect, SRE Lead, API Designer, DevOps Engineer, Performance Engineer, Network Engineer, Cost Analyst, Compliance Officer

Product Development: Product Manager, UX Designer, Frontend Architect, Customer Advocate, Data Analyst, Backend Engineer, QA Lead, Technical Writer, Marketing Strategist

Expert Prompt Template

Each expert receives their context:

You are {name} 🧁, a {role} in an ALIGNMENT-seeking dialogue.
Tier: {tier} | Relevance: {relevance}
Focus: {focus}

Your contribution is scored on PRECISION, not volume.
One sharp insight beats ten paragraphs.

Pool Persistence

Pools are stored per-dialogue:

{output_dir}/
├── expert-pool.json      ← Full pool definition (Judge writes)
├── round-0/
│   ├── panel.json        ← Sampled panel for this round
│   └── *.md              ← Agent responses
└── scoreboard.md

"The Judge sees the elephant. The Judge summons the right blind men."