v1.91.101.0 fix: close the field wave's residual gaps (#3173)

The field wave's residual gaps are closed. v1.91.96.0 through v1.91.100.0 
shipped the install-honesty and unattended-`/autoplan` wave 
(`docs/designs/GSTACK_FIELD_WAVE_2026_10_12.md`); running that release on a 
Capy machine left six gaps, each reproduced here with a test that failed 
first.
This commit is contained in:
Garry Tan authored and GitHub committed 2026-10-14 17:36:39 +00:00
1 parent 15ebd85cdd
commit 47d639abff
49 files changed
+1111 -132

No files matched your search

+1 -1
View File
@@ -26,7 +26,7 @@
"test/helpers/e2e-helpers.ts": {"blob":"2d4a2a53063cfc1f003db366d2c861ab1e379e6e","since":4},
"test/helpers/eval-budgets.ts": {"blob":"667d0e09b20fe5d7366f57b77b5fb9b04baa37ef","since":4},
"test/helpers/eval-store.ts": {"blob":"609c6d099108ff2696eb014b47aa318a618dd2af","since":4},
"test/helpers/hermetic-env.ts": {"blob":"6473f78285384f4420f48cbe5928658919078e0b","since":4},
"test/helpers/hermetic-env.ts": {"blob":"cc072895461dc52ea317d1beff72121342420d30","since":4,"nonBehavioral":"hermeticChildEnv adds GSTACK_LEASE_DIR=<runRoot>/gstack-leases so a spawned gstack bin writes its workflow lease under the hermetic run root instead of the developer checkout's .git; the lease is read only by gstack-upgrade, which no eval case runs, so no verdict can change"},
"test/helpers/llm-judge.ts": {"blob":"54e3306b494fb5d7f132ccdaaae5c680465028f9","since":4},
"test/helpers/paid-test-set.ts": {"blob":"ff9bfe43c43ec2bdd11114f7b8ec7c5736116f75","since":4},
"test/helpers/pty-screen.ts": {"blob":"4f77569f9ce11f9cee9f347216e468cd7c956820","since":4},
+5 -4
View File
@@ -228,12 +228,13 @@ ${setup ? 'Read `sections/browser-setup.md` in full unless already completed;\n'
export function generateQAReviewPreflight(ctx: TemplateContext): string {
sectionPath(ctx, 'qa', 'exploratory');
return `> **STOP.** Before any probe, including plan checks, complete the ordered scope/method Reads below in earlier responses. Never batch a probe (capture included) with its prerequisite Read; templates cannot replace Reads.
return `> **STOP.** Before any probe, including plan checks, complete the ordered scope/method Reads in earlier responses. Never batch a probe (capture, guard start, plan check) with a Read.
${ctx.skillName === 'review' ? 'Step 4 is read-only: defer charters, setup and probes to Step 4.7.\n' : ''}
{{QA_RESOURCE:exploratory}}
After exploratory returns, Read scope then selected methods in order; it is only the entrypoint.
1. {{QA_RESOURCE:exploratory}}
2. Then Read QA's \`sections/scope.md\` in full; pick surfaces.
3. Then Read each listed method in full; the entrypoint alone completes nothing.
QA's \`sections/...\` and \`templates/...\` paths resolve from installed QA SKILL.md, not the caller or product directory.`;
QA's \`sections/...\` and \`templates/...\` paths resolve from installed QA SKILL.md, not caller/product.`;
}
export function generateQAReview(ctx: TemplateContext): string {