takt/builtins/en/pieces/compound-eye.yaml
nrslib 2460dbdf61 refactor(output-contracts): unify OutputContractEntry to item format with use_judge and move runtime dir under .takt
- Remove OutputContractLabelPath (label:path format), unify to OutputContractItem only
- Add required format field and use_judge flag to output contracts
- Add getJudgmentReportFiles() to filter reports eligible for Phase 3 status judgment
- Add supervisor-validation output contract, remove review-summary
- Enhance output contracts with finding_id tracking (new/persists/resolved sections)
- Move runtime environment directory from .runtime to .takt/.runtime
- Update all builtin pieces, e2e fixtures, and tests
2026-02-15 11:17:55 +09:00

179 lines
4.5 KiB
YAML

name: compound-eye
description: Multi-model review - send the same instruction to Claude and Codex simultaneously, synthesize both responses
piece_config:
provider_options:
codex:
network_access: true
opencode:
network_access: true
max_movements: 10
initial_movement: evaluate
movements:
- name: evaluate
parallel:
- name: claude-eye
edit: false
persona: coder
provider: claude
session: refresh
knowledge: architecture
allowed_tools:
- Read
- Glob
- Grep
- Bash
- WebSearch
- WebFetch
rules:
- condition: done
- condition: failed
output_contracts:
report:
- name: claude-review.md
format: |
```markdown
# Claude Review Result
## Conclusion
{One-line conclusion}
## Key Findings
- {finding 1}
- {finding 2}
## Evidence
- {file:line and rationale}
## Risks / Caveats
- {risk}
## Recommended Next Step
- {action}
```
- name: codex-eye
edit: false
persona: coder
provider: codex
session: refresh
knowledge: architecture
allowed_tools:
- Read
- Glob
- Grep
- Bash
- WebSearch
- WebFetch
rules:
- condition: done
- condition: failed
output_contracts:
report:
- name: codex-review.md
format: |
```markdown
# Codex Review Result
## Conclusion
{One-line conclusion}
## Key Findings
- {finding 1}
- {finding 2}
## Evidence
- {file:line and rationale}
## Risks / Caveats
- {risk}
## Recommended Next Step
- {action}
```
rules:
- condition: any("done")
next: synthesize
- name: synthesize
edit: false
persona: supervisor
allowed_tools:
- Read
- Glob
- Grep
rules:
- condition: synthesis complete
next: COMPLETE
instruction_template: |
Two models (Claude / Codex) independently answered the same instruction.
Synthesize their responses.
**Tasks:**
1. Read reports in the Report Directory
- `claude-review.md` (Claude's response)
- `codex-review.md` (Codex's response)
Note: If one report is missing (model failed), synthesize from the available report only
2. If both reports exist, compare and clarify:
- Points of agreement
- Points of disagreement
- Points mentioned by only one model
3. Produce a synthesized conclusion
**Output format:**
```markdown
# Multi-Model Review Synthesis
## Conclusion
{Synthesized conclusion}
## Response Status
| Model | Status |
|-------|--------|
| Claude | ✅ / ❌ |
| Codex | ✅ / ❌ |
## Agreements
- {Points where both models agree}
## Disagreements
| Topic | Claude | Codex |
|-------|--------|-------|
| {topic} | {Claude's view} | {Codex's view} |
## Unique Findings
- **Claude only:** {Points only Claude mentioned}
- **Codex only:** {Points only Codex mentioned}
## Overall Assessment
{Overall assessment considering both responses}
```
output_contracts:
report:
- name: synthesis.md
format: |
```markdown
# Multi-Model Review Synthesis
## Conclusion
{Synthesized conclusion}
## Response Status
| Model | Status |
|-------|--------|
| Claude | ✅ / ❌ |
| Codex | ✅ / ❌ |
## Agreements
- {Points where both models agree}
## Disagreements
| Topic | Claude | Codex |
|-------|--------|-------|
| {topic} | {Claude's view} | {Codex's view} |
## Unique Findings
- **Claude only:** {Points only Claude mentioned}
- **Codex only:** {Points only Codex mentioned}
## Overall Assessment
{Overall assessment considering both responses}
```