diff --git a/scripts/resolvers/testing.ts b/scripts/resolvers/testing.ts index 8070c8338..3d0610ebf 100644 --- a/scripts/resolvers/testing.ts +++ b/scripts/resolvers/testing.ts @@ -480,13 +480,13 @@ A proposal that fails the value bar becomes "extend " 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}" diff --git a/test/gen-skill-docs.test.ts b/test/gen-skill-docs.test.ts index c3b6f9808..eb476b58c 100644 --- a/test/gen-skill-docs.test.ts +++ b/test/gen-skill-docs.test.ts @@ -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)');