blue/.blue/docs/patterns/alignment-dialogue-pattern.md
Eric Garcia a5b142299d feat: context injection architecture via 12-expert alignment dialogue
RFC 0016 drafted from alignment dialogue achieving 95% convergence:
- Three-tier model: Identity (fixed) / Workflow (session) / Reference (on-demand)
- Manifest-driven injection via .blue/context.manifest.yaml
- URI addressing: blue://docs/, blue://context/, blue://state/
- Hooks push URIs, MCP resolves content
- Progressive visibility: blue context show

New ADRs ported from coherence-mcp:
- 0014: Alignment Dialogue Agents (renamed from 0006)
- 0015: Plausibility
- 0016: You Know Who You Are

Knowledge injection system:
- hooks/session-start for SessionStart injection
- knowledge/*.md files for global context
- Expert pools with domain-specific relevance tiers
- Updated /alignment-play skill with full scoring

Spikes completed:
- Context injection mechanisms (7 mechanisms designed)
- ADR porting inventory (17 Blue ADRs mapped)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 16:16:11 -05:00

277 lines
6.8 KiB
Markdown

# Pattern: ALIGNMENT Dialogue File Format
**Status**: Active
**Date**: 2026-01-19
**Updated**: 2026-01-20 (rebrand: Alignment → Alignment)
**Source**: RFC 0058 (dialogue-file-structure), ADR 0006 (alignment-dialogue-agents)
---
## Purpose
This pattern specifies the file format for ALIGNMENT dialogues between Muffin 🧁 (Advocate), Cupcake 🧁 (Challenger), and the Judge 💙. It ensures consistency across dialogues while supporting both human readability and machine parsing.
## Applies To
All `.dialogue.md` files in the RFC workflow:
- `docs/rfcs/NNNN-feature-name.dialogue.md`
## File Structure
A dialogue file consists of four sections in order:
```markdown
# RFC Dialogue: {feature-name}
**Draft**: [NNNN-feature-name.draft.md](./NNNN-feature-name.draft.md)
**Related**: {related RFCs, ADRs}
**Participants**: 🧁 Muffin (Advocate) | 🧁 Cupcake (Challenger) | 💙 Judge
**Status**: {In Progress | Converged}
---
## Alignment Scoreboard
{scoreboard table}
---
## Perspectives Inventory
{perspectives table}
## Tensions Tracker
{tensions table}
---
## Round 1
### Muffin 🧁
{round content}
---
### Cupcake 🧁
{round content}
---
## Round 2
{continues...}
---
## Converged Recommendation (if converged)
{summary of converged outcome}
```
## Section Specifications
### 1. Header
| Field | Required | Description |
|-------|----------|-------------|
| Draft | Yes | Link to the RFC draft being discussed |
| Related | No | Links to related RFCs, ADRs |
| Participants | Yes | Agent names and roles |
| Status | Yes | `In Progress` or `Converged` |
### 2. Alignment Scoreboard
All dimensions are **UNBOUNDED**. There is no maximum score.
```markdown
## Alignment Scoreboard
All dimensions **UNBOUNDED**. Pursue alignment without limit. 💙
| Agent | Wisdom | Consistency | Truth | Relationships | ALIGNMENT |
|-------|--------|-------------|-------|---------------|-----------|
| 🧁 Muffin | {n} | {n} | {n} | {n} | **{total}** |
| 🧁 Cupcake | {n} | {n} | {n} | {n} | **{total}** |
**Total Alignment**: {sum} points
**Current Round**: {n} {complete | in progress}
**Status**: {Awaiting X | CONVERGED}
```
**Scoring Dimensions** (per ADR 0001):
- **Wisdom**: Integration of perspectives (ADR 0004/0006)
- **Consistency**: Pattern compliance (ADR 0005)
- **Truth**: Single source, no drift (ADR 0003)
- **Relationships**: Graph completeness (ADR 0002)
### 3. Perspectives Inventory
Tracks all perspectives surfaced during dialogue.
```markdown
## Perspectives Inventory
| ID | Perspective | Surfaced By | Status |
|----|-------------|-------------|--------|
| P01 | {description} | {Agent} R{n} | {status} |
| P02 | {description} | {Agent} R{n} | {status} |
```
**ID Format**: `P{nn}` - sequential, zero-padded (P01, P02, ... P10, P11)
**Status Values**:
- `✓ Active` - Perspective is being considered
- `✓ **Converged**` - Perspective was adopted in final solution
- `✗ Rejected` - Perspective was explicitly rejected with rationale
### 4. Tensions Tracker
Tracks unresolved issues requiring attention.
```markdown
## Tensions Tracker
| ID | Tension | Raised By | Status |
|----|---------|-----------|--------|
| T1 | {description} | {Agent} R{n} | {status} |
| T2 | {description} | {Agent} R{n} | {status} |
```
**ID Format**: `T{n}` - sequential (T1, T2, T3...)
**Status Values**:
- `Open` - Tension not yet resolved
- `✓ Resolved (R{n})` - Resolved in round N
### 5. Round Content
Each round contains agent responses separated by `---`.
```markdown
## Round {N}
### Muffin 🧁
{Response content}
[PERSPECTIVE P{nn}: {description}]
[REFINEMENT: {description}]
[CONCESSION: {description}]
---
### Cupcake 🧁
{Response content}
[PERSPECTIVE P{nn}: {description}]
[TENSION T{n}: {description}]
[RESOLVED T{n}: {description}]
---
```
**Inline Markers**:
| Marker | Used By | Description |
|--------|---------|-------------|
| `[PERSPECTIVE P{nn}: ...]` | Both | New viewpoint being surfaced |
| `[TENSION T{n}: ...]` | Cupcake | Unresolved issue requiring attention |
| `[RESOLVED T{n}: ...]` | Either | Prior tension now addressed |
| `[REFINEMENT: ...]` | Muffin | Improvement to the proposal |
| `[CONCESSION: ...]` | Muffin | Acknowledging Cupcake was right |
| `[CONVERGENCE PROPOSAL]` | Either | Proposing final solution |
| `[CONVERGENCE CONFIRMED]` | Either | Confirming agreement |
### 6. Converged Recommendation (Optional)
When dialogue converges, summarize the outcome:
```markdown
## Converged Recommendation
**{One-line summary}**
| Component | Value |
|-----------|-------|
| {key} | {value} |
**Key Properties**:
1. {property}
2. {property}
**Perspectives Integrated**: P01-P{nn} ({n} total)
**Tensions Resolved**: T1-T{n} ({n} total)
**Total Alignment**: {n} points
```
## Machine-Readable Sidecar (Optional)
Tooling may generate a `.scores.yaml` sidecar for machine consumption:
**File**: `NNNN-feature-name.dialogue.scores.yaml`
```yaml
rfc: "NNNN"
title: "feature-name"
status: "converged" # or "in_progress"
round: 2
agents:
muffin:
wisdom: 20
consistency: 6
truth: 6
relationships: 6
alignment: 38
cupcake:
wisdom: 22
consistency: 6
truth: 6
relationships: 6
alignment: 40
total_alignment: 78
perspectives: 8
tensions_resolved: 2
```
**Important**: The sidecar is GENERATED by tooling (`alignment_dialogue_score`), not manually maintained. Agents interact only with the `.dialogue.md` file. The sidecar is a cache artifact for machine consumption.
## Convergence Criteria
The dialogue converges when ANY of (per ADR 0006):
1. **ALIGNMENT Plateau** - Score velocity ≈ 0 for two consecutive rounds
2. **Full Coverage** - All perspectives integrated or consciously deferred
3. **Zero Tensions** - All `[TENSION]` markers have matching `[RESOLVED]`
4. **Mutual Recognition** - Both agents state convergence
5. **Max Rounds** - Safety valve (default: 5 rounds)
## Verification
**Manual (Phase 0)**:
- Human reviewer checks format compliance
- Claude reads pattern + dialogue, reports violations
**Automated (Phase 3)**:
- `alignment_dialogue_validate` tool checks:
- Header completeness
- Scoreboard format
- Perspective ID sequencing (P01, P02, ...)
- Tension ID sequencing (T1, T2, ...)
- Marker format `[PERSPECTIVE P{nn}: ...]`
- All tensions resolved before convergence
## Examples
See:
- [RFC 0057 Dialogue](../rfcs/0057-alignment-roadmap.dialogue.md) - Full dialogue example
- [RFC 0058 Dialogue](../rfcs/0058-dialogue-file-structure.dialogue.md) - Shorter dialogue with convergence
## References
- [ADR 0006: alignment-dialogue-agents](../adrs/0006-alignment-dialogue-agents.md) - Agent behavior specification
- [ADR 0001: alignment-as-measure](../adrs/0001-alignment-as-measure.md) - Scoring dimensions
- [RFC 0058: dialogue-file-structure](../rfcs/0058-dialogue-file-structure.draft.md) - File structure decision