feat(workflows): tier the standing reading for schema-bound stages
The anonymous script stages received the full standing-reading instruction (project CLAUDE.md + git log -10 --format=full) although a tree-footprint or text-extraction stage consumes none of it and a verify stage needs only the build/test commands — re-executed on every dispatch including tight repair rounds, at ~40k+ real tokens per freshly-primed context. Two slim variants in both workflow scripts: STANDING_FACTS (verify-type stages — mini-verify, standard end-verify, compiler-driven build/suite verify: project-facts build/test commands only) and STANDING_NONE (tree/extraction stages — preflight, plan-index, plan-extract[-all], snapshot: nothing beyond their own instructions). Judgment roles (implementer, spec/quality reviewers, tester/e2e, compiler-driven edit stage) keep the full read. conventions.md § Standing reading and agent-template.md § Standing reading list carry the tiering sentence; the precedent is the narrowed per-role reading the named agents already practise (tester -3, plan-recon/grounding-check -5, fieldtester -8, docwriter --oneline). closes #31
This commit is contained in:
@@ -113,6 +113,15 @@ const STANDING =
|
||||
'(its "## Skills plugin: project facts" name the build and test commands) and ' +
|
||||
'`git log -10 --format=full`. Resolve the build/test commands from those facts.'
|
||||
|
||||
// Standing-reading tiering (issue #31): the verify stage is a schema-bound
|
||||
// check that only needs the build/test commands — no git log, no full
|
||||
// CLAUDE.md read. The edit stage keeps the full standing read (it authors
|
||||
// code and must match project idiom).
|
||||
const STANDING_FACTS =
|
||||
'Project facts first: read ONLY the "## Skills plugin: project facts" section of the project\'s CLAUDE.md for ' +
|
||||
'the build and test commands — no other standing reading (no git log). This is a schema-bound check stage; ' +
|
||||
'do not assume a toolchain.'
|
||||
|
||||
// Working-directory anchor (issue #25): same defect class as implement-loop —
|
||||
// in a worktree session a dispatched agent's cwd can resolve to the primary
|
||||
// checkout and verify the wrong (clean) tree. Carrier-supplied only here (two
|
||||
@@ -225,7 +234,7 @@ if (!edit.applied_changes) {
|
||||
// ---- Phase 2 — verify (the independently-invokable phase) ---------------
|
||||
phase('Verify')
|
||||
const verify = await agent(
|
||||
`${STANDING}${ANCHOR}\n\nVerify the edit is behaviour-preserving WITHOUT changing any code or test. Run the project build ` +
|
||||
`${STANDING_FACTS}${ANCHOR}\n\nVerify the edit is behaviour-preserving WITHOUT changing any code or test. Run the project build ` +
|
||||
'and the full test suite. Report whether the build is clean and whether the suite is green AND UNCHANGED — i.e. ' +
|
||||
'every test passes and NO test was added, removed, or weakened versus the pre-edit baseline (compare `git diff ' +
|
||||
'HEAD` for test-file changes). Also report working_tree_dirty — whether `git status --porcelain` / `git diff HEAD` ' +
|
||||
|
||||
Reference in New Issue
Block a user