I1: plan-eng-review writes the Test Plan Artifact even while test choices are pending

Periodic run 37151477069 (plan-eng-review-artifact): a non-interactive review
recorded every Test review choice as pending and never wrote the QA test
plan, because Step 5 said to write the artifact 'when these test and eval
choices are resolved' while the artifact section says to list unresolved
choices as pending. Both now say to write it after the decision gate, with
unanswered choices under Pending Decisions. The pinned sentence becomes a
meaning-level check.
This commit is contained in:
garrytan committed 2026-10-03 22:26:55 +00:00
1 parent ed27163db4
commit 303cdd02c3
2 files changed
+7 -4

No files matched your search

+2 -2
View File
@@ -480,13 +480,13 @@ A proposal that fails the value bar becomes "extend <existing test>" or is dropp
Run the decision gate for this section's new or reopened choices. **STOP for each pending decision.** Wait for its answer before applying that remedy, moving to the next section or calling ExitPlanMode.
When these test and eval choices are resolved, write the Test Plan Artifact below. Its approved requirements should be specific enough to implement alongside the feature code.`);
Then write the Test Plan Artifact below, even while some choices are still unanswered (for example in a non-interactive run). Its approved requirements should be specific enough to implement alongside the feature code.`);
// ── Test plan artifact (plan + ship) ──
sections.push(`
${subheading} Test Plan Artifact
After resolving the Test review decisions, record the approved test requirements in an artifact for \`/qa\` and \`/qa-only\`. List any unresolved choices separately as pending, not required implementation. Update this artifact if later approved decisions change the tests. Use the Review record and write policy above.
After the Test review decision gate, record the approved test requirements in an artifact for \`/qa\` and \`/qa-only\`. Write it even when choices are still pending; list any unresolved choices separately as pending, not required implementation. Update this artifact if later approved decisions change the tests. Use the Review record and write policy above.
\`\`\`bash
GSTACK_STATE_ROOT=$(~/.claude/skills/gstack/bin/gstack-paths --get GSTACK_STATE_ROOT); : "\${GSTACK_STATE_ROOT:?gstack-paths failed; reinstall with ./setup or /gstack-upgrade}"
+5 -2
View File
@@ -1024,8 +1024,11 @@ describe('TEST_COVERAGE_AUDIT placeholders', () => {
expect(planSkill).toContain('eng-review-test-plan');
expect(planSkill).toContain('Test Plan Artifact');
const artifact = planSkill.split('\n#### Test Plan Artifact\n')[1]!;
expect(artifact).toContain('After resolving the Test review decisions');
expect(artifact).toContain('List any unresolved choices separately as pending, not required implementation');
// The artifact is written even when Test review choices are still unanswered (periodic run 37151477069).
const step5 = planSkill.split('**Step 5. Add missing tests to the plan:**')[1]!.split('\n#### Test Plan Artifact\n')[0]!;
expect(step5).toMatch(/write the Test Plan Artifact below, even while some choices are still unanswered/);
expect(artifact).toMatch(/Write it even when choices are still pending/);
expect(artifact).toContain('list any unresolved choices separately as pending, not required implementation');
expect(artifact).toContain('Update this artifact if later approved decisions change the tests');
expect(artifact).toContain('Use the Review record and write policy above.');
expect(artifact).toContain('TEST_PLAN_USER=$(whoami)');