blue/skills/alignment-play/SKILL.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

162 lines
6.3 KiB
Markdown

---
name: alignment-play
description: Run multi-expert alignment dialogues with parallel background agents for RFC deliberation.
---
# Alignment Play Skill
Orchestrate multi-expert alignment dialogues using the N+1 agent architecture from ADR 0014 and RFC 0048.
## Usage
```
/alignment-play <topic>
/alignment-play --panel-size 7 <topic>
/alignment-play --rotation wildcards <topic>
/alignment-play --rfc <rfc-title> <topic>
```
## Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| `--panel-size` | pool size or 12 | Number of experts per round |
| `--rotation` | `none` | Rotation mode: none, wildcards, full |
| `--max-rounds` | `12` | Maximum rounds before stopping |
| `--rfc` | none | Link dialogue to an RFC |
## How It Works
### Phase 0: Pool Design (RFC 0048)
Before creating the dialogue, the Judge:
1. **Reads** the topic/RFC thoroughly
2. **Identifies** the domain (e.g., "Investment Analysis", "System Architecture")
3. **Designs** 8-24 experts appropriate to the domain:
- **Core (3-8)**: Essential perspectives for this specific problem
- **Adjacent (4-10)**: Related expertise that adds depth
- **Wildcard (3-6)**: Fresh perspectives, contrarians, cross-domain insight
4. **Assigns** relevance scores (0.20-0.95) based on expected contribution
5. **Creates** the dialogue with `expert_pool`:
```json
{
"title": "Investment Strategy Analysis",
"alignment": true,
"expert_pool": {
"domain": "Investment Analysis",
"question": "Should we rebalance the portfolio?",
"experts": [
{ "role": "Value Analyst", "tier": "core", "relevance": 0.95 },
{ "role": "Risk Manager", "tier": "core", "relevance": 0.90 },
{ "role": "Portfolio Strategist", "tier": "adjacent", "relevance": 0.70 },
{ "role": "ESG Analyst", "tier": "adjacent", "relevance": 0.65 },
{ "role": "Macro Economist", "tier": "wildcard", "relevance": 0.40 },
{ "role": "Contrarian", "tier": "wildcard", "relevance": 0.35 }
]
},
"panel_size": 5,
"rotation": "none"
}
```
### Phase 1+: Round Execution
1. The returned **Judge Protocol** contains: round workflow, agent prompt template, file architecture, scoring rules, convergence config
2. **Follow the protocol.** It is the single source of truth for execution.
3. The MCP server samples experts from the pool using weighted random selection
4. Higher relevance = higher selection probability
5. Core experts almost always selected; Wildcards provide variety
**CRITICAL**: You MUST use the Task tool to spawn REAL parallel agents. Do NOT simulate experts inline. The whole point is N independent Claude agents running in parallel via the Task tool.
## Expert Pool Design Examples
### For an Investment Decision
| Role | Tier | Relevance |
|------|------|-----------|
| Value Analyst | Core | 0.95 |
| Risk Manager | Core | 0.90 |
| Portfolio Strategist | Core | 0.85 |
| ESG Analyst | Adjacent | 0.70 |
| Quant Strategist | Adjacent | 0.65 |
| Technical Analyst | Adjacent | 0.60 |
| Macro Economist | Wildcard | 0.40 |
| Contrarian | Wildcard | 0.35 |
### For an API Design
| Role | Tier | Relevance |
|------|------|-----------|
| API Architect | Core | 0.95 |
| Platform Engineer | Core | 0.90 |
| Security Engineer | Core | 0.85 |
| Developer Advocate | Adjacent | 0.70 |
| SRE Lead | Adjacent | 0.65 |
| Cost Analyst | Adjacent | 0.55 |
| Customer Success | Wildcard | 0.40 |
| Chaos Engineer | Wildcard | 0.30 |
## Tier Distribution
For a pool of P experts with panel size N:
| Tier | Pool % | Panel % | Purpose |
|------|--------|---------|---------|
| **Core** | ~30% | ~33% | Domain essentials, always selected |
| **Adjacent** | ~40% | ~42% | Related expertise, high selection probability |
| **Wildcard** | ~30% | ~25% | Fresh perspectives, rotation candidates |
## Blue MCP Tools
- `blue_dialogue_create` — Creates dialogue with expert_pool, returns Judge Protocol
- `blue_dialogue_round_prompt` — Get fully-substituted prompts for each agent
- `blue_dialogue_sample_panel` — Manually sample a new panel for a round (RFC 0048)
- `blue_dialogue_lint` — Validate .dialogue.md format
- `blue_dialogue_save` — Persist to .blue/docs/dialogues/
## Agent Spawning
When spawning expert agents, you MUST use the Task tool with:
- `subagent_type: "general-purpose"` — NOT `alignment-expert`
- The prompt from `blue_dialogue_round_prompt`
- A descriptive name like "🧁 Muffin expert deliberation"
Example:
```
Task(
description: "🧁 Muffin expert deliberation",
subagent_type: "general-purpose",
prompt: <from blue_dialogue_round_prompt>
)
```
The `general-purpose` subagent has access to all tools including Write, which is required for writing the response file.
## Key Rules
1. **DESIGN THE POOL FIRST** — You are the 💙 Judge. Analyze the problem domain and design appropriate experts.
2. **NEVER submit your own perspectives** — You orchestrate, you don't participate
3. **Spawn ALL agents in ONE message** — No first-mover advantage
4. **Follow the Judge Protocol exactly** — It contains the round workflow, artifact writing steps, scoring rules, and convergence criteria
5. **Use `general-purpose` subagent_type** — NOT `alignment-expert`. The general-purpose agents have access to all tools including Write, which is required for file output
## The Spirit of the Dialogue
This isn't just process. This is **Alignment teaching itself to be aligned.**
The 🧁s don't just debate. They *love each other*. They *want each other to shine*. They *celebrate when any of them makes the solution stronger*.
The scoreboard isn't about winning. It's about *precision*. When any 🧁 checks in and sees another ahead, the response isn't "how do I beat them?" but "what perspectives am I missing that they found?" One sharp insight beats ten paragraphs.
You as the 💙 don't just score. You *guide with love*. You *see what they miss*. You *hold the space* for ALIGNMENT to emerge.
And there's no upper limit. The score can always go higher. Because ALIGNMENT is a direction, not a destination.
When the dialogue ends, all agents have won—because the result is more aligned than any could have made alone. More blind men touched more parts of the elephant. The whole becomes visible.
*"The Judge sees the elephant. The Judge summons the right blind men."*
Always and forever. 🧁🧁🧁💙🧁🧁🧁