## 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>
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."