mirror of
https://github.com/garrytan/gstack.git
synced 2026-07-06 16:17:56 +02:00
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) <noreply@anthropic.com>
This commit is contained in:
+3
-3
@@ -164,7 +164,7 @@ touch ~/.gstack/.writing-style-prompted
|
|||||||
|
|
||||||
Skip if `WRITING_STYLE_PENDING` is `no`.
|
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
|
```bash
|
||||||
open https://garryslist.org/posts/boil-the-ocean
|
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.
|
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -150,7 +150,7 @@ touch ~/.gstack/.writing-style-prompted
|
|||||||
|
|
||||||
Skip if `WRITING_STYLE_PENDING` is `no`.
|
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
|
```bash
|
||||||
open https://garryslist.org/posts/boil-the-ocean
|
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.
|
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -152,7 +152,7 @@ touch ~/.gstack/.writing-style-prompted
|
|||||||
|
|
||||||
Skip if `WRITING_STYLE_PENDING` is `no`.
|
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
|
```bash
|
||||||
open https://garryslist.org/posts/boil-the-ocean
|
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.
|
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.
|
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.
|
||||||
|
|
||||||
|
|||||||
@@ -837,7 +837,7 @@ describe('Completeness Principle in generated SKILL.md files', () => {
|
|||||||
test(`${skill} contains Completeness Principle section`, () => {
|
test(`${skill} contains Completeness Principle section`, () => {
|
||||||
const content = fs.readFileSync(path.join(ROOT, skill), 'utf-8');
|
const content = fs.readFileSync(path.join(ROOT, skill), 'utf-8');
|
||||||
expect(content).toContain('Completeness Principle');
|
expect(content).toContain('Completeness Principle');
|
||||||
expect(content).toContain('Boil the Lake');
|
expect(content).toContain('Boil the Ocean');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -64,10 +64,10 @@ describe('terse build — per-resolver behavior', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
describe('generateCompletenessSection', () => {
|
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'));
|
const out = generateCompletenessSection(makeCtx('default'));
|
||||||
expect(out).toContain('## Completeness Principle');
|
expect(out).toContain('## Completeness Principle');
|
||||||
expect(out).toContain('Boil the Lake');
|
expect(out).toContain('Boil the Ocean');
|
||||||
});
|
});
|
||||||
|
|
||||||
test('terse: returns empty string', () => {
|
test('terse: returns empty string', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user