diff --git a/changelog.d/gst-450-qa-parent.md b/changelog.d/gst-450-qa-parent.md index 9b1535f4f..eacdaeb1c 100644 --- a/changelog.d/gst-450-qa-parent.md +++ b/changelog.d/gst-450-qa-parent.md @@ -1,5 +1,5 @@ -**/ship on Capy runs Exploratory QA again.** Since v1.91.345.0 (#3648) the driver sent Step 9.2.1 out as a QA reader subagent, but the section says only the parent runs report-only discovery, so the reader refused on every pass ("parent-only") and QA coverage was empty in the C4-36 and C5-36 replays. +**/ship on Capy runs Exploratory QA again.** Since v1.91.345.0 (#3648) the driver sent Step 9.2.1 out as a QA reader subagent, but the section says only the parent runs report-only discovery, so the reader refused on every pass ("parent-only") and the parent ran the probes afterward anyway, an extra reader call each pass (the C4-36 and C5-36 replays). ### Fixed - **The parent runs Step 9.2.1's probes itself, as the section says.** Phase 3 does the section's method Reads and no probe; Phase 4's one program runs the smoke and plan checks after Step 8.1 collects the plan checks and before Scope Check, dedup and Fix-First, and the record's Checks heading carries the `Exploratory QA:` line. The call count is unchanged, and the section text is untouched. -- **`gstack-review-dispatch pass` refuses a QA extra.** An extra named `qa`, or one whose prompt holds Step 9.2.1's "Only the parent runs report-only discovery.", stops the pass before any reader is created. The Capy skill lists only Steps 7 and 8 as extras. +- **`gstack-review-dispatch pass` refuses a QA extra.** An extra named `qa`, or one whose prompt holds Step 9.2.1's "Only the parent runs report-only discovery.", stops the pass before any reader is created. A prompt file that cannot be read stops as an unreadable prompt, not a raw read error. The Capy skill lists only Steps 7 and 8 as extras. diff --git a/test/review-pass.test.ts b/test/review-pass.test.ts index efd14911f..dbcdadad5 100644 --- a/test/review-pass.test.ts +++ b/test/review-pass.test.ts @@ -432,7 +432,7 @@ describe('Capy pass program (fake host, real bins)', () => { }, 180_000); // Value: protects=Step 9.2.1's probes stay the parent's, as its section says, so QA coverage is never a subagent's refusal; fails_when=the - // pass program dispatches a QA extra (C4-36, C5-36: the QA reader refused both passes, "parent-only", and QA coverage was empty); + // pass program dispatches a QA extra (C4-36, C5-36: the QA reader refused both passes, "parent-only", and the parent ran the probes after it); // why_new=extras took any prompt (GST-450); seam=the pass program; no_claim=the parent's probes themselves (DRIVER Phase 4) test('a QA extra, by name or by its section\'s parent-only brief, stops the pass before any reader is created', async () => { const section = fs.readFileSync(path.join(ROOT, 'ship/sections/review-army.md'), 'utf8');