mirror of
https://github.com/garrytan/gstack.git
synced 2026-11-01 06:24:41 +01:00
fix(review-army): run the state-machine detector in the scope block and check its exit status (W3-5)
Specialist 9 named gstack-state-matrix detect only in selection prose, and small diffs keep only State Machines, so agents ran an undeclared command (paid gate run 39002269281). The generated scope block now runs the detector with its exit status checked: on failure it keeps the detector's diagnostics and sets SCOPE_STATE_MACHINE=unknown, and selection dispatches State Machines when the signal is true or unknown. The check step becomes a declared heredoc block. The clarity test requires every non-diff-scope signal to come from a detect helper the scope block runs; a free test runs the block against a failing detector stub; the captured standalone call stays outside the caller interface. Co-authored-by: capy-ai[bot] <230910855+capy-ai[bot]@users.noreply.github.com>
This commit is contained in:
1 parent
939ace2231
commit
7bbb730da5
5 files changed
+73
-6
No files matched your search
@@ -24,6 +24,7 @@ function generateSpecialistSelection(ctx: TemplateContext): string {
|
||||
### Detect stack and scope
|
||||
|
||||
\`\`\`bash
|
||||
if _SM=$(${ctx.paths.binDir}/gstack-state-matrix detect --base <base>); then source <(printf '%s\\n' "$_SM"); else echo "$_SM" | grep '^#'; SCOPE_STATE_MACHINE=unknown; fi
|
||||
source <(${ctx.paths.binDir}/gstack-diff-scope <base> 2>/dev/null) || true
|
||||
set | grep '^SCOPE_'
|
||||
# Detect stack for specialist context
|
||||
@@ -72,7 +73,12 @@ Based on the scope signals above, select which specialists to dispatch.
|
||||
6. **API Contract** — if SCOPE_API=true. Read \`${ctx.paths.skillRoot}/review/specialists/api-contract.md\`
|
||||
7. **Design** — if SCOPE_FRONTEND=true. Use the existing design review checklist at \`${ctx.paths.skillRoot}/review/design-checklist.md\` and run the mechanical pass at the top of that checklist (the user-installed design detector, when present) before the LLM items
|
||||
8. **Simplification** — if DIFF_LINES > 100. Read \`${ctx.paths.skillRoot}/review/specialists/simplification.md\`. Advisory-only lens: hunts unrequested structure (hand-rolled stdlib, one-implementation abstractions, dependencies duplicating platform features), never coverage.
|
||||
9. **State Machines** — if \`${ctx.paths.binDir}/gstack-state-matrix detect --base <base>\` says SCOPE_STATE_MACHINE=true: read \`${ctx.paths.skillRoot}/review/specialists/state-machines.md\`, then pipe output to \`check -\`.
|
||||
9. **State Machines** — if SCOPE_STATE_MACHINE is true or unknown (printed by the scope block): read \`${ctx.paths.skillRoot}/review/specialists/state-machines.md\`, then check its complete output:
|
||||
\`\`\`bash
|
||||
${ctx.paths.binDir}/gstack-state-matrix check - <<'STATE_MACHINES_OUTPUT'
|
||||
<the specialist's complete output>
|
||||
STATE_MACHINES_OUTPUT
|
||||
\`\`\`
|
||||
|
||||
### Adaptive gating
|
||||
|
||||
|
||||
Reference in new issue
Block a user