From 4c48afe5b13e01f397d2fa9a9c03e2d7dc12f530 Mon Sep 17 00:00:00 2001 From: Garry Tan Date: Sun, 7 Jun 2026 19:50:24 -0700 Subject: [PATCH] test: update assertions + golden fixtures for Boil the Ocean rename skill-validation and terse-build now assert "Boil the Ocean"; the three ship golden fixtures are regenerated to match the renamed Completeness Principle header and intro prose. Co-Authored-By: Claude Opus 4.8 (1M context) --- test/fixtures/golden/claude-ship-SKILL.md | 6 +++--- test/fixtures/golden/codex-ship-SKILL.md | 6 +++--- test/fixtures/golden/factory-ship-SKILL.md | 6 +++--- test/skill-validation.test.ts | 2 +- test/terse-build.test.ts | 4 ++-- 5 files changed, 12 insertions(+), 12 deletions(-) diff --git a/test/fixtures/golden/claude-ship-SKILL.md b/test/fixtures/golden/claude-ship-SKILL.md index 755f5ab98..d6365541f 100644 --- a/test/fixtures/golden/claude-ship-SKILL.md +++ b/test/fixtures/golden/claude-ship-SKILL.md @@ -164,7 +164,7 @@ touch ~/.gstack/.writing-style-prompted Skip if `WRITING_STYLE_PENDING` is `no`. -If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Lake** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: +If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Ocean** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: ```bash open https://garryslist.org/posts/boil-the-ocean @@ -592,9 +592,9 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i Curated jargon list lives at `~/.claude/skills/gstack/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. -## Completeness Principle — Boil the Lake +## Completeness Principle — Boil the Ocean -AI makes completeness cheap. Recommend complete lakes (tests, edge cases, error paths); flag oceans (rewrites, multi-quarter migrations). +AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. When options differ in coverage, include `Completeness: X/10` (10 = all edge cases, 7 = happy path, 3 = shortcut). When options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` Do not fabricate scores. diff --git a/test/fixtures/golden/codex-ship-SKILL.md b/test/fixtures/golden/codex-ship-SKILL.md index 17354b3ff..2c2c360d8 100644 --- a/test/fixtures/golden/codex-ship-SKILL.md +++ b/test/fixtures/golden/codex-ship-SKILL.md @@ -150,7 +150,7 @@ touch ~/.gstack/.writing-style-prompted Skip if `WRITING_STYLE_PENDING` is `no`. -If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Lake** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: +If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Ocean** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: ```bash open https://garryslist.org/posts/boil-the-ocean @@ -578,9 +578,9 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i Curated jargon list lives at `$GSTACK_ROOT/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. -## Completeness Principle — Boil the Lake +## Completeness Principle — Boil the Ocean -AI makes completeness cheap. Recommend complete lakes (tests, edge cases, error paths); flag oceans (rewrites, multi-quarter migrations). +AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. When options differ in coverage, include `Completeness: X/10` (10 = all edge cases, 7 = happy path, 3 = shortcut). When options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` Do not fabricate scores. diff --git a/test/fixtures/golden/factory-ship-SKILL.md b/test/fixtures/golden/factory-ship-SKILL.md index 9e5facd7d..baf3db183 100644 --- a/test/fixtures/golden/factory-ship-SKILL.md +++ b/test/fixtures/golden/factory-ship-SKILL.md @@ -152,7 +152,7 @@ touch ~/.gstack/.writing-style-prompted Skip if `WRITING_STYLE_PENDING` is `no`. -If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Lake** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: +If `LAKE_INTRO` is `no`: say "gstack follows the **Boil the Ocean** principle — do the complete thing when AI makes marginal cost near-zero. Read more: https://garryslist.org/posts/boil-the-ocean" Offer to open: ```bash open https://garryslist.org/posts/boil-the-ocean @@ -580,9 +580,9 @@ Applies to AskUserQuestion, user replies, and findings. AskUserQuestion Format i Curated jargon list lives at `$GSTACK_ROOT/scripts/jargon-list.json` (80+ terms). On the first jargon term you encounter this session, Read that file once; treat the `terms` array as the canonical list. The list is repo-owned and may grow between releases. -## Completeness Principle — Boil the Lake +## Completeness Principle — Boil the Ocean -AI makes completeness cheap. Recommend complete lakes (tests, edge cases, error paths); flag oceans (rewrites, multi-quarter migrations). +AI makes completeness cheap, so the complete thing is the goal. Recommend full coverage (tests, edge cases, error paths) — boil the ocean one lake at a time. The only thing out of scope is genuinely unrelated work (rewrites, multi-quarter migrations); flag that as separate scope, never as an excuse for a shortcut. When options differ in coverage, include `Completeness: X/10` (10 = all edge cases, 7 = happy path, 3 = shortcut). When options differ in kind, write: `Note: options differ in kind, not coverage — no completeness score.` Do not fabricate scores. diff --git a/test/skill-validation.test.ts b/test/skill-validation.test.ts index 45e8da66a..fb1ec5bf4 100644 --- a/test/skill-validation.test.ts +++ b/test/skill-validation.test.ts @@ -837,7 +837,7 @@ describe('Completeness Principle in generated SKILL.md files', () => { test(`${skill} contains Completeness Principle section`, () => { const content = fs.readFileSync(path.join(ROOT, skill), 'utf-8'); expect(content).toContain('Completeness Principle'); - expect(content).toContain('Boil the Lake'); + expect(content).toContain('Boil the Ocean'); }); } diff --git a/test/terse-build.test.ts b/test/terse-build.test.ts index ca531aeae..58ed10396 100644 --- a/test/terse-build.test.ts +++ b/test/terse-build.test.ts @@ -64,10 +64,10 @@ describe('terse build — per-resolver behavior', () => { }); describe('generateCompletenessSection', () => { - test('default: emits full section with Boil-the-Lake prose', () => { + test('default: emits full section with Boil-the-Ocean prose', () => { const out = generateCompletenessSection(makeCtx('default')); expect(out).toContain('## Completeness Principle'); - expect(out).toContain('Boil the Lake'); + expect(out).toContain('Boil the Ocean'); }); test('terse: returns empty string', () => {