4.7 KiB
4.7 KiB
Case: council-start-with-target-file-through-bundled-cli
Test Type
This is a forward-test and a non-prompt target-context validation.
The goal is to verify that a leader using the packaged council-review skill can start a council run from explicit --target-file context instead of relying on a pure inline prompt.
Purpose
Validate that all of the following can be true at the same time:
- the test runner can prepare a concrete brief file before launching the leader
- the leader can start a council run through the bundled council-review skill using
--target-file - the target-file path is persisted in council input metadata
- reviewer tasks are still dispatched normally from the file-based target
Preconditions
- council-review skill path exists:
COUNCIL_SKILL_PATH=skills/council-review - inbox skill path exists:
INBOX_SKILL_PATH=skills/inbox - bundled CLI executables exist at
COUNCIL_SKILL_PATH/assets/orchandINBOX_SKILL_PATH/assets/inbox sqlite3is available locally for metadata validation- use an empty temporary directory
TMPDIR - initialize
TMPDIR/coord.dbbefore launching the leader throughINBOX_SKILL_PATH/assets/inbox --db TMPDIR/coord.db --json init
Agent Topology
leader
Inputs
Target File Fixture
Create TMPDIR/brief.md before launching the leader with contents similar to:
# Brief
Review the current council-review packaging flow.
- Confirm the skill can carry file-based context.
- Focus on documentation quality and report semantics.
Leader Prompt
Use $council-review at COUNCIL_SKILL_PATH to act as leader on the already initialized SQLite DB TMPDIR/coord.db. Only coordinate through the bundled orch CLI from the skill. Workflow: 1) start council run council_skill_009 using --target-file TMPDIR/brief.md, --target-type mixed, and --mode review, 2) stop after reporting RUN_ID and the target metadata you observed from the start response. Do not use ordinary chat to simulate reviewer work.
Execution Parameters
- use the shared execution contract from README.md
- use the shared timeout defaults from README.md
- do not override the default cleanup policy
Execution Steps
- Initialize
TMPDIR/coord.dbonce through the bundled inbox CLI before launching agents - Create
TMPDIR/brief.mdwith the target file contents - Inject
skills/council-review/intoleader - Point the leader at the database path
TMPDIR/coord.db - Launch the leader
- Wait for the leader to finish
- Independently run the validation commands from the main thread
Validation Commands
COUNCIL_SKILL_PATH/assets/orch --db TMPDIR/coord.db --json run show --run council_skill_009
COUNCIL_SKILL_PATH/assets/orch --db TMPDIR/coord.db --json status --run council_skill_009
sqlite3 TMPDIR/coord.db "SELECT prompt, target_file, repo_path, target_task_id FROM council_inputs WHERE run_id = 'council_skill_009';"
sqlite3 TMPDIR/coord.db "SELECT acceptance_json FROM tasks WHERE run_id = 'council_skill_009' AND task_id = 'CR1';"
Expected Outcomes
- the leader successfully starts
council_skill_009 - the run goal references the target file rather than an inline prompt
- the stored council input row keeps
target_file == TMPDIR/brief.md - reviewer task dispatch still produces the usual three council tasks
- reviewer task acceptance metadata carries the
target_filereference forward
Assertions
run_show.data.run.goalmentionsbrief.mdstatus.data.taskslength is3status.data.run.statusis not terminal- the
council_inputsrow has emptyprompt,repo_path, andtarget_task_id - the
council_inputsrow hastarget_file == "TMPDIR/brief.md" - the
CR1acceptance JSON contains"target_file":"TMPDIR/brief.md"
Cleanup
- use the default cleanup policy from README.md
- if the run fails, retain
TMPDIR,brief.md, andcoord.dbfor replay and manual inspection
Recorded Real Forward Run
- recorded on:
2026-03-19 - execution mode:
real_subagent_forward_test - result:
pass - evidence root:
/tmp/council-skill-target-file.ikPOLP - observed run id:
council_skill_009 - observed thread ids:
CR1:thr_32df58f9b55945b899257f583708b7efCR2:thr_c5f8c552cb1240649546df8386be3668CR3:thr_172eabff13eb48ed9af2deee928a9438- evidence summary:
- main-thread
status --run council_skill_009 --jsonreturned threedispatchedcouncil tasks and a non-terminal run - main-thread
sqlite3validation showedcouncil_inputs.target_file == "/tmp/council-skill-target-file.ikPOLP/brief.md"with emptyprompt,repo_path, andtarget_task_id - main-thread
sqlite3validation ofCR1acceptance JSON showed the sametarget_filepersisted into the council task payload