From d56c408e031e1836c3e22f5de025bc7dab112f61 Mon Sep 17 00:00:00 2001 From: "Benjamin D. Smith" Date: Wed, 10 Jun 2026 14:26:03 +1000 Subject: [PATCH] test(tests): allow Step 1.5 pr-prep gate as a ship sub-step The new `## Step 1.5` heading in `ship/SKILL.md.tmpl` (the pr-prep gate) tripped the step-numbering checks in `skill-validation`, which only permit a closed set of fractional sub-steps. Add `1.5` to `ALLOWED_SUBSTEPS` so the gate heading is recognised as intentional. Co-Authored-By: Claude Opus 4.8 (1M context) --- test/skill-validation.test.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/test/skill-validation.test.ts b/test/skill-validation.test.ts index 99d4eb83b..5308ca961 100644 --- a/test/skill-validation.test.ts +++ b/test/skill-validation.test.ts @@ -1207,9 +1207,10 @@ describe('Step 3.4 test coverage audit', () => { describe('ship step numbering', () => { // Allowed sub-steps that are resolver-generated and intentionally nested: - // 8.1 (Plan Verification), 8.2 (Scope Drift), 9.1 (Review Army), 9.2 (Findings Merge), + // 1.5 (Upstream duplicate audit — pr-prep gate), 8.1 (Plan Verification), + // 8.2 (Scope Drift), 9.1 (Review Army), 9.2 (Findings Merge), // 9.3 (Cross-review dedup), 15.0 (WIP squash — continuous checkpoint), 15.1 (Bisectable commits). - const ALLOWED_SUBSTEPS = new Set(['8.1', '8.2', '9.1', '9.2', '9.3', '15.0', '15.1']); + const ALLOWED_SUBSTEPS = new Set(['1.5', '8.1', '8.2', '9.1', '9.2', '9.3', '15.0', '15.1']); test('ship/SKILL.md.tmpl contains no unexpected fractional step numbers', () => { const tmpl = fs.readFileSync(path.join(ROOT, 'ship', 'SKILL.md.tmpl'), 'utf-8');