diff --git a/.agents/skills/skillsaw-review-panel/SKILL.md b/.agents/skills/skillsaw-review-panel/SKILL.md index 95715272..4c026d52 100644 --- a/.agents/skills/skillsaw-review-panel/SKILL.md +++ b/.agents/skills/skillsaw-review-panel/SKILL.md @@ -127,7 +127,17 @@ may not share the skill's working directory. #### Parallel mode (default) Launch **all 6 specialist sub-agents in a single message** so they -run concurrently, using the Agent tool with `run_in_background: true`. +run concurrently, using the Agent tool with `run_in_background: false`. + +Both halves of that matter. A single message is what makes them run +concurrently. `run_in_background: false` is what makes the dispatch +*block* until every one returns. + +Do **not** use `run_in_background: true` here. A background agent +returns immediately, so the dispatching turn ends with the reviews +still running — and when the panel runs headlessly in CI, the turn +ending ends the job. The workflow then exits green having posted no +verdict at all, which is worse than failing loudly. Each sub-agent gets: - The specialist role name and a one-line description of its lens @@ -153,8 +163,9 @@ If the Agent tool is not available (e.g. running in Codex or another client that lacks sub-agent support), fall back to serial mode automatically. -Wait for all sub-agents to complete before proceeding to the -Completeness Gate (Step 4). +Synchronous dispatch means all six have returned by the time the +tool call completes. Proceed to the Completeness Gate (Step 4) only +with six sets of findings in hand. #### Serial mode (`--serial`) @@ -184,6 +195,11 @@ retry it. If any specialist returned an error or a missing/malformed result, re-dispatch it **once**. If the retry also fails, record the failure and proceed. +Never end the run here. A panel that stops after dispatching has +produced nothing a reviewer can act on, and it looks identical to a +clean review from the outside. If specialists are missing and cannot +be recovered, post the verdict anyway, naming which ones failed. + ### Step 5 — Run Panel Arbiter Synthesis After all specialists complete, review and synthesize directly: diff --git a/.apm/skills/skillsaw-review-panel/SKILL.md b/.apm/skills/skillsaw-review-panel/SKILL.md index 95715272..4c026d52 100644 --- a/.apm/skills/skillsaw-review-panel/SKILL.md +++ b/.apm/skills/skillsaw-review-panel/SKILL.md @@ -127,7 +127,17 @@ may not share the skill's working directory. #### Parallel mode (default) Launch **all 6 specialist sub-agents in a single message** so they -run concurrently, using the Agent tool with `run_in_background: true`. +run concurrently, using the Agent tool with `run_in_background: false`. + +Both halves of that matter. A single message is what makes them run +concurrently. `run_in_background: false` is what makes the dispatch +*block* until every one returns. + +Do **not** use `run_in_background: true` here. A background agent +returns immediately, so the dispatching turn ends with the reviews +still running — and when the panel runs headlessly in CI, the turn +ending ends the job. The workflow then exits green having posted no +verdict at all, which is worse than failing loudly. Each sub-agent gets: - The specialist role name and a one-line description of its lens @@ -153,8 +163,9 @@ If the Agent tool is not available (e.g. running in Codex or another client that lacks sub-agent support), fall back to serial mode automatically. -Wait for all sub-agents to complete before proceeding to the -Completeness Gate (Step 4). +Synchronous dispatch means all six have returned by the time the +tool call completes. Proceed to the Completeness Gate (Step 4) only +with six sets of findings in hand. #### Serial mode (`--serial`) @@ -184,6 +195,11 @@ retry it. If any specialist returned an error or a missing/malformed result, re-dispatch it **once**. If the retry also fails, record the failure and proceed. +Never end the run here. A panel that stops after dispatching has +produced nothing a reviewer can act on, and it looks identical to a +clean review from the outside. If specialists are missing and cannot +be recovered, post the verdict anyway, naming which ones failed. + ### Step 5 — Run Panel Arbiter Synthesis After all specialists complete, review and synthesize directly: diff --git a/.claude/skills/skillsaw-review-panel/SKILL.md b/.claude/skills/skillsaw-review-panel/SKILL.md index 95715272..4c026d52 100644 --- a/.claude/skills/skillsaw-review-panel/SKILL.md +++ b/.claude/skills/skillsaw-review-panel/SKILL.md @@ -127,7 +127,17 @@ may not share the skill's working directory. #### Parallel mode (default) Launch **all 6 specialist sub-agents in a single message** so they -run concurrently, using the Agent tool with `run_in_background: true`. +run concurrently, using the Agent tool with `run_in_background: false`. + +Both halves of that matter. A single message is what makes them run +concurrently. `run_in_background: false` is what makes the dispatch +*block* until every one returns. + +Do **not** use `run_in_background: true` here. A background agent +returns immediately, so the dispatching turn ends with the reviews +still running — and when the panel runs headlessly in CI, the turn +ending ends the job. The workflow then exits green having posted no +verdict at all, which is worse than failing loudly. Each sub-agent gets: - The specialist role name and a one-line description of its lens @@ -153,8 +163,9 @@ If the Agent tool is not available (e.g. running in Codex or another client that lacks sub-agent support), fall back to serial mode automatically. -Wait for all sub-agents to complete before proceeding to the -Completeness Gate (Step 4). +Synchronous dispatch means all six have returned by the time the +tool call completes. Proceed to the Completeness Gate (Step 4) only +with six sets of findings in hand. #### Serial mode (`--serial`) @@ -184,6 +195,11 @@ retry it. If any specialist returned an error or a missing/malformed result, re-dispatch it **once**. If the retry also fails, record the failure and proceed. +Never end the run here. A panel that stops after dispatching has +produced nothing a reviewer can act on, and it looks identical to a +clean review from the outside. If specialists are missing and cannot +be recovered, post the verdict anyway, naming which ones failed. + ### Step 5 — Run Panel Arbiter Synthesis After all specialists complete, review and synthesize directly: diff --git a/.skillsaw-card.svg b/.skillsaw-card.svg index c29178dd..9a52af0e 100644 --- a/.skillsaw-card.svg +++ b/.skillsaw-card.svg @@ -17,7 +17,7 @@ skillsaw report card Violation density0.21 per 10k tokens - Content tokens~28,908 + Content tokens~29,118 Building blocks1 plugin · 11 skills Top rules 1. content-actionability-score (4)