panel
Run a deliberation panel of lenses on one target (a conclusion, argument, bridge or draft section) under the checked panel protocol. Blind round 1, anonymized round 2, anti-conformity with verbatim fl
SKILL.md.claude/skills/panel/SKILL.md
GitHubRun a panel
The protocol, prompts and file layout are in groundworks/panel/PROTOCOL.md. Read it first. The program is groundworks/panel/panel.py; it decides whether the protocol was followed, not you.
Steps
- Pick seats and write
panel.jsonin a newruns/<panel_id>/directory (inside the instance's private data area, never in this repository).- Seats are lenses from the instance's
rolesandlenses. Use distinctive seat ids. - Options and objection categories come from the role's
panel:entry ininstance.yaml. - Choose
weighted_seatnow, ornull. Say why in one sentence to the user. - Build each seat's evidence packet from its lens view, with locators.
- Seats are lenses from the instance's
python groundworks/panel/panel.py lock runs/<panel_id>- Round 1: one subagent per seat, all in one message, using the round-1 prompt. Save each returned answer verbatim to
round1/<seat>.md. python groundworks/panel/panel.py anonymize runs/<panel_id>. If it fails, re-prompt only the named seats for their stance line.- Round 2: one subagent per seat, all in one message, using the round-2 prompt with
round1_anon.mdand the seat's own round-1 answer. Save verbatim toround2/<seat>.md. python groundworks/panel/panel.py check runs/<panel_id>. For eachOWEDline, send the printed re-prompt to that seat only (continue the same subagent when possible), and save its full revised answer over the old file. Repeat. Budget: 2 re-prompts per seat per condition; then stop and report "protocol not satisfied" with the owed list.python groundworks/panel/panel.py tally runs/<panel_id>.- Exit 0: write each row of
verdicts.jsonlthrough the instance's write surface as a lens-keyed critique at agent grade. - Exit 3 (split): show the human each option's weight and its strongest argument, plus the minority report. Do not write a consensus.
- Exit 0: write each row of
- Report: seats and weighted seat, result, weights, minority report, enforcement counts, and the "cannot check" list from PROTOCOL.md.
Never
- Edit, trim or summarize a seat's answer before saving it.
- Infer a stance from prose.
- Change
panel.jsonafterlock, or delete a lock to re-lock. - Show
anon_map.jsonor real seat names to a seat in round 2. - Treat a panel result as evidence. Gates still decide readiness.