From a7819d5875aff47f29c1e316648e8bdd3c471f7d Mon Sep 17 00:00:00 2001 From: garrytan Date: Sat, 3 Oct 2026 01:09:24 +0000 Subject: [PATCH] test(W7c): skill-validation matches three capital-letter pins on meaning W7c (t08 F2, F4, F5). One test file; only these three pins change. Removed assertion groups: none. Loosened, invariant kept as a free case-insensitive meaning check: - `MUTUALLY EXCLUSIVE` (codex skeleton) -> one codex mode per invocation: `/mutually exclusive/i` (t08 F4). - `skip the Codex passes ONLY` (review adversarial) -> `codex_reviews=disabled` skips only the Codex passes, Claude adversarial still runs: `/disabled[^\n]*skip the Codex passes only/i` (t08 F5). - `If any in-branch failures remain unfixed, **STOP**. Do not proceed` (ship tests section) -> unfixed in-branch failures block advancement: `/in-branch failures remain unfixed ... stop ... do not proceed/i` (t08 F2). Also covered by gate E2E ship-triage (gate). Cosmetic pins dropped: capitals and bold only. Mutation log: .context/mutation-skill-validation.md (6 mutations, 0 unexpected: 3 rule deletions red; 3 lower-case rewordings green). --- test/skill-validation.test.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/skill-validation.test.ts b/test/skill-validation.test.ts index ff1faccc7..9561d4433 100644 --- a/test/skill-validation.test.ts +++ b/test/skill-validation.test.ts @@ -1487,7 +1487,7 @@ describe('Codex skill', () => { expect(content).toContain('Step 2C: Consult Mode'); const skeleton = fs.readFileSync(path.join(ROOT, 'codex', 'SKILL.md'), 'utf-8'); expect(skeleton).toContain('## Step 1: Detect mode'); - expect(skeleton).toContain('MUTUALLY EXCLUSIVE'); + expect(skeleton).toMatch(/mutually exclusive/i); }); test('codex union contains gate verdict logic', () => { @@ -1587,7 +1587,7 @@ describe('Codex skill', () => { expect(content).toContain('CODEX_MODE'); expect(content).toContain('command -v codex'); // install check kept literal // codex_reviews=disabled gates Codex passes only; Claude adversarial still runs - expect(content).toContain('skip the Codex passes ONLY'); + expect(content).toMatch(/disabled[^\n]*skip the Codex passes only/i); // Review log expect(content).toContain('adversarial-review'); expect(content).toContain('reasoning_effort="high"'); @@ -2023,7 +2023,7 @@ describe('Test failure triage in ship skill', () => { test('ship/SKILL.md uses in-branch language for stop condition', () => { const content = readShipUnion(); - expect(content).toContain('If any in-branch failures remain unfixed, **STOP**. Do not proceed'); + expect(content).toMatch(/in-branch failures remain unfixed[\s\S]{0,40}\bstop\b[\s\S]{0,20}do not proceed/i); }); });