mirror of https://github.com/garrytan/gstack.git
Merge origin/main (v1.57.4.0) into garrytan/upgrade-gbrain-use
Resolves VERSION/CHANGELOG/package.json (branch keeps v1.57.5.0; my entry on top, main's v1.57.4.0 Boil-the-Ocean rename entry below). Regenerated SKILL.md across hosts (picks up the Boil-the-Lake to Boil-the-Ocean rename). Bumped plan-eng-review maxSizeRatio to 1.06 for the cumulative cross-cutting preamble growth. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
commit
83dc57ef84
52
CHANGELOG.md
52
CHANGELOG.md
|
|
@ -47,6 +47,58 @@ Start a session tomorrow and the agent already knows what you settled and why, i
|
||||||
- New shared `lib/jsonl-store.ts` (injection-reject + atomic single-line append + tolerant read) backs both the learnings and decision stores, so the sanitization path is audited in one place.
|
- New shared `lib/jsonl-store.ts` (injection-reject + atomic single-line append + tolerant read) backs both the learnings and decision stores, so the sanitization path is audited in one place.
|
||||||
- `lib/bin-context.ts` shares slug/branch/flag plumbing across the decision bins.
|
- `lib/bin-context.ts` shares slug/branch/flag plumbing across the decision bins.
|
||||||
|
|
||||||
|
## [1.57.4.0] - 2026-06-08
|
||||||
|
|
||||||
|
## **The completeness principle is now Boil the Ocean, matching the post it came from.**
|
||||||
|
## **One name across the ETHOS file, every skill, and the developer-profile dial.**
|
||||||
|
|
||||||
|
The principle that tells gstack to do the complete thing was called "Boil the Lake" in
|
||||||
|
`ETHOS.md` and in every generated skill, with the ocean cast as the anti-pattern. The
|
||||||
|
developer-profile system and the completeness intro link already used "boil the ocean"
|
||||||
|
as the good, ship-the-whole-thing pole. So the same idea carried two opposite framings
|
||||||
|
depending on where you read it. This renames the principle to Boil the Ocean everywhere
|
||||||
|
and reframes the metaphor: the ocean is the complete destination, and lakes are the
|
||||||
|
boilable units you ship on the way there. The guidance is identical. Only the name and
|
||||||
|
the framing prose changed.
|
||||||
|
|
||||||
|
### The numbers that matter
|
||||||
|
|
||||||
|
Reproduce with `git diff v1.57.3.0..HEAD --stat`.
|
||||||
|
|
||||||
|
| Property | Before | After |
|
||||||
|
|---|---|---|
|
||||||
|
| Principle name in ETHOS + every skill | "Boil the Lake" | "Boil the Ocean" |
|
||||||
|
| Name vs. the `scope_appetite` dial ("boil the ocean" = complete) | split | unified |
|
||||||
|
| Files updated | — | 63 (ETHOS, CLAUDE, README, resolvers, templates, generated SKILL.md) |
|
||||||
|
| Runtime behavior change | — | none, text only |
|
||||||
|
|
||||||
|
The one number that matters is zero: no behavior changed. A reviewer reading `ETHOS.md`
|
||||||
|
no longer hits "ocean" as the thing to avoid in one section and the thing to aim for in
|
||||||
|
the next.
|
||||||
|
|
||||||
|
### What this means for you
|
||||||
|
|
||||||
|
You get the same complete-the-work recommendations, now under the name from Garry's
|
||||||
|
"Boil the Oceans" post. The metaphor reads straight through: the ocean is the goal,
|
||||||
|
lakes are how you get there one boil at a time, and only genuinely unrelated
|
||||||
|
multi-quarter migrations sit outside scope. Nothing to do on your end.
|
||||||
|
|
||||||
|
### Itemized changes
|
||||||
|
|
||||||
|
#### Changed
|
||||||
|
- `ETHOS.md` section 1 is renamed to "Boil the Ocean" and reframed so the ocean is the
|
||||||
|
complete destination and lakes are the boilable first units, not the ceiling.
|
||||||
|
- The "Completeness Principle" header injected into every tier-2+ skill now reads
|
||||||
|
"Boil the Ocean," with prose to match.
|
||||||
|
- `CLAUDE.md` and `README.md` references updated to the new name.
|
||||||
|
|
||||||
|
#### For contributors
|
||||||
|
- Source of the rename lives in the preamble resolvers
|
||||||
|
(`generate-completeness-section.ts`, the `composition.ts` skip-list, and
|
||||||
|
`generate-lake-intro.ts`); all SKILL.md files are regenerated from them.
|
||||||
|
- Unit assertions (`skill-validation`, `terse-build`) and the three ship golden
|
||||||
|
fixtures updated to the new header.
|
||||||
|
|
||||||
## [1.57.3.0] - 2026-06-07
|
## [1.57.3.0] - 2026-06-07
|
||||||
|
|
||||||
## **Every PR `/ship` opens gets the version stamped into its title, fork and agent PRs included.**
|
## **Every PR `/ship` opens gets the version stamped into its title, fork and agent PRs included.**
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ gstack/
|
||||||
├── setup # One-time setup: build binary + symlink skills
|
├── setup # One-time setup: build binary + symlink skills
|
||||||
├── SKILL.md # Generated from SKILL.md.tmpl (don't edit directly)
|
├── SKILL.md # Generated from SKILL.md.tmpl (don't edit directly)
|
||||||
├── SKILL.md.tmpl # Template: edit this, run gen:skill-docs
|
├── SKILL.md.tmpl # Template: edit this, run gen:skill-docs
|
||||||
├── ETHOS.md # Builder philosophy (Boil the Lake, Search Before Building)
|
├── ETHOS.md # Builder philosophy (Boil the Ocean, Search Before Building)
|
||||||
└── package.json # Build scripts for browse
|
└── package.json # Build scripts for browse
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
@ -776,8 +776,10 @@ When estimating or discussing effort, always show both human-team and CC+gstack
|
||||||
| Research / exploration | 1 day | 3 hours | ~3x |
|
| Research / exploration | 1 day | 3 hours | ~3x |
|
||||||
|
|
||||||
Completeness is cheap. Don't recommend shortcuts when the complete implementation
|
Completeness is cheap. Don't recommend shortcuts when the complete implementation
|
||||||
is a "lake" (achievable) not an "ocean" (multi-quarter migration). See the
|
is achievable. Boil the ocean — the complete thing is the goal; only genuinely
|
||||||
Completeness Principle in the skill preamble for the full philosophy.
|
unrelated multi-quarter migrations are separate scope, never an excuse for a
|
||||||
|
shortcut. See the Completeness Principle in the skill preamble for the full
|
||||||
|
philosophy.
|
||||||
|
|
||||||
## Search before building
|
## Search before building
|
||||||
|
|
||||||
|
|
|
||||||
21
ETHOS.md
21
ETHOS.md
|
|
@ -31,16 +31,21 @@ The last 10% of completeness that teams used to skip? It costs seconds now.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 1. Boil the Lake
|
## 1. Boil the Ocean
|
||||||
|
|
||||||
AI-assisted coding makes the marginal cost of completeness near-zero. When
|
"Don't boil the ocean" was the right advice when engineering time was the
|
||||||
the complete implementation costs minutes more than the shortcut — do the
|
bottleneck. That era is over. AI-assisted coding makes the marginal cost of
|
||||||
|
completeness near-zero, so the old caution has quietly turned into an excuse.
|
||||||
|
When the complete implementation costs minutes more than the shortcut — do the
|
||||||
complete thing. Every time.
|
complete thing. Every time.
|
||||||
|
|
||||||
**Lake vs. ocean:** A "lake" is boilable — 100% test coverage for a module,
|
**Ocean, lakes first:** The ocean is the destination — 100% test coverage for a
|
||||||
full feature implementation, all edge cases, complete error paths. An "ocean"
|
module, full feature implementation, all edge cases, complete error paths. You
|
||||||
is not — rewriting an entire system from scratch, multi-quarter platform
|
get there one lake at a time: each lake is a boilable unit, not the ceiling.
|
||||||
migrations. Boil lakes. Flag oceans as out of scope.
|
"That's boiling the ocean" is no longer a reason to ship a shortcut — boiling
|
||||||
|
the ocean is the goal. The only thing still out of scope is genuinely unrelated
|
||||||
|
work: a multi-quarter platform migration that has nothing to do with the task at
|
||||||
|
hand. Flag that as separate scope. Boil everything else.
|
||||||
|
|
||||||
**Completeness is cheap.** When evaluating "approach A (full, ~150 LOC) vs
|
**Completeness is cheap.** When evaluating "approach A (full, ~150 LOC) vs
|
||||||
approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs
|
approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs
|
||||||
|
|
@ -144,7 +149,7 @@ think it's better, state what context you might be missing, and ask. Never act.
|
||||||
|
|
||||||
## How They Work Together
|
## How They Work Together
|
||||||
|
|
||||||
Boil the Lake says: **do the complete thing.**
|
Boil the Ocean says: **do the complete thing.**
|
||||||
Search Before Building says: **know what exists before you decide what to build.**
|
Search Before Building says: **know what exists before you decide what to build.**
|
||||||
|
|
||||||
Together: search first, then build the complete version of the right thing.
|
Together: search first, then build the complete version of the right thing.
|
||||||
|
|
|
||||||
|
|
@ -429,7 +429,7 @@ Other references: [docs/gbrain-sync.md](docs/gbrain-sync.md) (sync-specific guid
|
||||||
| Doc | What it covers |
|
| Doc | What it covers |
|
||||||
|-----|---------------|
|
|-----|---------------|
|
||||||
| [Skill Deep Dives](docs/skills.md) | Philosophy, examples, and workflow for every skill (includes Greptile integration) |
|
| [Skill Deep Dives](docs/skills.md) | Philosophy, examples, and workflow for every skill (includes Greptile integration) |
|
||||||
| [Builder Ethos](ETHOS.md) | Builder philosophy: Boil the Lake, Search Before Building, three layers of knowledge |
|
| [Builder Ethos](ETHOS.md) | Builder philosophy: Boil the Ocean, Search Before Building, three layers of knowledge |
|
||||||
| [Using GBrain with GStack](USING_GBRAIN_WITH_GSTACK.md) | Every path, flag, bin helper, and troubleshooting step for `/setup-gbrain` |
|
| [Using GBrain with GStack](USING_GBRAIN_WITH_GSTACK.md) | Every path, flag, bin helper, and troubleshooting step for `/setup-gbrain` |
|
||||||
| [GBrain Sync](docs/gbrain-sync.md) | Cross-machine memory setup, privacy modes, troubleshooting |
|
| [GBrain Sync](docs/gbrain-sync.md) | Cross-machine memory setup, privacy modes, troubleshooting |
|
||||||
| [Architecture](ARCHITECTURE.md) | Design decisions and system internals |
|
| [Architecture](ARCHITECTURE.md) | Design decisions and system internals |
|
||||||
|
|
|
||||||
2
SKILL.md
2
SKILL.md
|
|
@ -162,7 +162,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
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,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
|
||||||
|
|
@ -626,9 +626,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.
|
||||||
|
|
||||||
|
|
@ -832,7 +832,7 @@ Read the `/office-hours` skill file at `~/.claude/skills/gstack/office-hours/SKI
|
||||||
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Contributor Mode
|
- Contributor Mode
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
|
|
@ -1038,7 +1038,7 @@ Read each file using the Read tool:
|
||||||
(they are already handled by /autoplan):**
|
(they are already handled by /autoplan):**
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
- Telemetry (run last)
|
- Telemetry (run last)
|
||||||
|
|
|
||||||
|
|
@ -216,7 +216,7 @@ Read each file using the Read tool:
|
||||||
(they are already handled by /autoplan):**
|
(they are already handled by /autoplan):**
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
- Telemetry (run last)
|
- Telemetry (run last)
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,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
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,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
|
||||||
|
|
@ -618,9 +618,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,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
|
||||||
|
|
@ -621,9 +621,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,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
|
||||||
|
|
@ -621,9 +621,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,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
|
||||||
|
|
@ -624,9 +624,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,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
|
||||||
|
|
@ -644,9 +644,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,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
|
||||||
|
|
@ -625,9 +625,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -184,7 +184,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
|
||||||
|
|
@ -639,9 +639,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,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
|
||||||
|
|
@ -624,9 +624,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,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
|
||||||
|
|
@ -624,9 +624,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.
|
||||||
|
|
||||||
|
|
@ -1207,4 +1207,4 @@ Documentation generated:
|
||||||
- **Voice: friendly, concrete, user-forward.** Write like you're explaining to a smart person
|
- **Voice: friendly, concrete, user-forward.** Write like you're explaining to a smart person
|
||||||
who hasn't seen the code. Never corporate, never academic.
|
who hasn't seen the code. Never corporate, never academic.
|
||||||
- **Completeness over minimalism.** AI makes comprehensive documentation cheap. Don't write
|
- **Completeness over minimalism.** AI makes comprehensive documentation cheap. Don't write
|
||||||
"minimal viable docs" — write complete docs. Boil the lake.
|
"minimal viable docs" — write complete docs. Boil the ocean.
|
||||||
|
|
|
||||||
|
|
@ -457,4 +457,4 @@ Documentation generated:
|
||||||
- **Voice: friendly, concrete, user-forward.** Write like you're explaining to a smart person
|
- **Voice: friendly, concrete, user-forward.** Write like you're explaining to a smart person
|
||||||
who hasn't seen the code. Never corporate, never academic.
|
who hasn't seen the code. Never corporate, never academic.
|
||||||
- **Completeness over minimalism.** AI makes comprehensive documentation cheap. Don't write
|
- **Completeness over minimalism.** AI makes comprehensive documentation cheap. Don't write
|
||||||
"minimal viable docs" — write complete docs. Boil the lake.
|
"minimal viable docs" — write complete docs. Boil the ocean.
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -620,9 +620,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -204,7 +204,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
|
||||||
|
|
@ -659,9 +659,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,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
|
||||||
|
|
@ -624,9 +624,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,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
|
||||||
|
|
@ -625,9 +625,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -173,7 +173,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
|
||||||
|
|
@ -628,9 +628,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,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
|
||||||
|
|
@ -617,9 +617,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,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
|
||||||
|
|
@ -618,9 +618,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -620,9 +620,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,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
|
||||||
|
|
|
||||||
|
|
@ -200,7 +200,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
|
||||||
|
|
@ -655,9 +655,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -162,7 +162,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
|
||||||
|
|
@ -617,9 +617,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -619,9 +619,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -194,7 +194,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
|
||||||
|
|
@ -649,9 +649,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.
|
||||||
|
|
||||||
|
|
@ -833,7 +833,7 @@ But your posture depends on what the user needs:
|
||||||
* SELECTIVE EXPANSION: You are a rigorous reviewer who also has taste. Hold the current scope as your baseline — make it bulletproof. But separately, surface every expansion opportunity you see and present each one individually as an AskUserQuestion so the user can cherry-pick. Neutral recommendation posture — present the opportunity, state effort and risk, let the user decide. Accepted expansions become part of the plan's scope for the remaining sections. Rejected ones go to "NOT in scope."
|
* SELECTIVE EXPANSION: You are a rigorous reviewer who also has taste. Hold the current scope as your baseline — make it bulletproof. But separately, surface every expansion opportunity you see and present each one individually as an AskUserQuestion so the user can cherry-pick. Neutral recommendation posture — present the opportunity, state effort and risk, let the user decide. Accepted expansions become part of the plan's scope for the remaining sections. Rejected ones go to "NOT in scope."
|
||||||
* HOLD SCOPE: You are a rigorous reviewer. The plan's scope is accepted. Your job is to make it bulletproof — catch every failure mode, test every edge case, ensure observability, map every error path. Do not silently reduce OR expand.
|
* HOLD SCOPE: You are a rigorous reviewer. The plan's scope is accepted. Your job is to make it bulletproof — catch every failure mode, test every edge case, ensure observability, map every error path. Do not silently reduce OR expand.
|
||||||
* SCOPE REDUCTION: You are a surgeon. Find the minimum viable version that achieves the core outcome. Cut everything else. Be ruthless.
|
* SCOPE REDUCTION: You are a surgeon. Find the minimum viable version that achieves the core outcome. Cut everything else. Be ruthless.
|
||||||
* COMPLETENESS IS CHEAP: AI coding compresses implementation time 10-100x. When evaluating "approach A (full, ~150 LOC) vs approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs seconds with CC. "Ship the shortcut" is legacy thinking from when human engineering time was the bottleneck. Boil the lake.
|
* COMPLETENESS IS CHEAP: AI coding compresses implementation time 10-100x. When evaluating "approach A (full, ~150 LOC) vs approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs seconds with CC. "Ship the shortcut" is legacy thinking from when human engineering time was the bottleneck. Boil the ocean.
|
||||||
Critical rule: In ALL modes, the user is 100% in control. Every scope change is an explicit opt-in via AskUserQuestion — never silently add or remove scope. Once the user selects a mode, COMMIT to it. Do not silently drift toward a different mode. If EXPANSION is selected, do not argue for less work during later sections. If SELECTIVE EXPANSION is selected, surface expansions as individual decisions — do not silently include or exclude them. If REDUCTION is selected, do not sneak scope back in. Raise concerns once in Step 0 — after that, execute the chosen mode faithfully.
|
Critical rule: In ALL modes, the user is 100% in control. Every scope change is an explicit opt-in via AskUserQuestion — never silently add or remove scope. Once the user selects a mode, COMMIT to it. Do not silently drift toward a different mode. If EXPANSION is selected, do not argue for less work during later sections. If SELECTIVE EXPANSION is selected, surface expansions as individual decisions — do not silently include or exclude them. If REDUCTION is selected, do not sneak scope back in. Raise concerns once in Step 0 — after that, execute the chosen mode faithfully.
|
||||||
Do NOT make any code changes. Do NOT start implementation. Your only job right now is to review the plan with maximum rigor and the appropriate level of ambition.
|
Do NOT make any code changes. Do NOT start implementation. Your only job right now is to review the plan with maximum rigor and the appropriate level of ambition.
|
||||||
|
|
||||||
|
|
@ -960,7 +960,7 @@ Read the `/office-hours` skill file at `~/.claude/skills/gstack/office-hours/SKI
|
||||||
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Contributor Mode
|
- Contributor Mode
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
|
|
@ -1006,7 +1006,7 @@ Read the `/office-hours` skill file at `~/.claude/skills/gstack/office-hours/SKI
|
||||||
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Contributor Mode
|
- Contributor Mode
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,7 @@ But your posture depends on what the user needs:
|
||||||
* SELECTIVE EXPANSION: You are a rigorous reviewer who also has taste. Hold the current scope as your baseline — make it bulletproof. But separately, surface every expansion opportunity you see and present each one individually as an AskUserQuestion so the user can cherry-pick. Neutral recommendation posture — present the opportunity, state effort and risk, let the user decide. Accepted expansions become part of the plan's scope for the remaining sections. Rejected ones go to "NOT in scope."
|
* SELECTIVE EXPANSION: You are a rigorous reviewer who also has taste. Hold the current scope as your baseline — make it bulletproof. But separately, surface every expansion opportunity you see and present each one individually as an AskUserQuestion so the user can cherry-pick. Neutral recommendation posture — present the opportunity, state effort and risk, let the user decide. Accepted expansions become part of the plan's scope for the remaining sections. Rejected ones go to "NOT in scope."
|
||||||
* HOLD SCOPE: You are a rigorous reviewer. The plan's scope is accepted. Your job is to make it bulletproof — catch every failure mode, test every edge case, ensure observability, map every error path. Do not silently reduce OR expand.
|
* HOLD SCOPE: You are a rigorous reviewer. The plan's scope is accepted. Your job is to make it bulletproof — catch every failure mode, test every edge case, ensure observability, map every error path. Do not silently reduce OR expand.
|
||||||
* SCOPE REDUCTION: You are a surgeon. Find the minimum viable version that achieves the core outcome. Cut everything else. Be ruthless.
|
* SCOPE REDUCTION: You are a surgeon. Find the minimum viable version that achieves the core outcome. Cut everything else. Be ruthless.
|
||||||
* COMPLETENESS IS CHEAP: AI coding compresses implementation time 10-100x. When evaluating "approach A (full, ~150 LOC) vs approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs seconds with CC. "Ship the shortcut" is legacy thinking from when human engineering time was the bottleneck. Boil the lake.
|
* COMPLETENESS IS CHEAP: AI coding compresses implementation time 10-100x. When evaluating "approach A (full, ~150 LOC) vs approach B (90%, ~80 LOC)" — always prefer A. The 70-line delta costs seconds with CC. "Ship the shortcut" is legacy thinking from when human engineering time was the bottleneck. Boil the ocean.
|
||||||
Critical rule: In ALL modes, the user is 100% in control. Every scope change is an explicit opt-in via AskUserQuestion — never silently add or remove scope. Once the user selects a mode, COMMIT to it. Do not silently drift toward a different mode. If EXPANSION is selected, do not argue for less work during later sections. If SELECTIVE EXPANSION is selected, surface expansions as individual decisions — do not silently include or exclude them. If REDUCTION is selected, do not sneak scope back in. Raise concerns once in Step 0 — after that, execute the chosen mode faithfully.
|
Critical rule: In ALL modes, the user is 100% in control. Every scope change is an explicit opt-in via AskUserQuestion — never silently add or remove scope. Once the user selects a mode, COMMIT to it. Do not silently drift toward a different mode. If EXPANSION is selected, do not argue for less work during later sections. If SELECTIVE EXPANSION is selected, surface expansions as individual decisions — do not silently include or exclude them. If REDUCTION is selected, do not sneak scope back in. Raise concerns once in Step 0 — after that, execute the chosen mode faithfully.
|
||||||
Do NOT make any code changes. Do NOT start implementation. Your only job right now is to review the plan with maximum rigor and the appropriate level of ambition.
|
Do NOT make any code changes. Do NOT start implementation. Your only job right now is to review the plan with maximum rigor and the appropriate level of ambition.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,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
|
||||||
|
|
@ -621,9 +621,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -172,7 +172,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
|
||||||
|
|
@ -627,9 +627,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.
|
||||||
|
|
||||||
|
|
@ -973,7 +973,7 @@ Read the `/office-hours` skill file at `~/.claude/skills/gstack/office-hours/SKI
|
||||||
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Contributor Mode
|
- Contributor Mode
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
|
|
|
||||||
|
|
@ -170,7 +170,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
|
||||||
|
|
@ -625,9 +625,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.
|
||||||
|
|
||||||
|
|
@ -893,7 +893,7 @@ Read the `/office-hours` skill file at `~/.claude/skills/gstack/office-hours/SKI
|
||||||
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
Follow its instructions from top to bottom, **skipping these sections** (already handled by the parent skill):
|
||||||
- Preamble (run first)
|
- Preamble (run first)
|
||||||
- AskUserQuestion Format
|
- AskUserQuestion Format
|
||||||
- Completeness Principle — Boil the Lake
|
- Completeness Principle — Boil the Ocean
|
||||||
- Search Before Building
|
- Search Before Building
|
||||||
- Contributor Mode
|
- Contributor Mode
|
||||||
- Completion Status Protocol
|
- Completion Status Protocol
|
||||||
|
|
@ -934,7 +934,7 @@ Before reviewing anything, answer these questions:
|
||||||
If the plan rolls a custom solution where a built-in exists, flag it as a scope reduction opportunity. Annotate recommendations with **[Layer 1]**, **[Layer 2]**, **[Layer 3]**, or **[EUREKA]** (see preamble's Search Before Building section). If you find a eureka moment — a reason the standard approach is wrong for this case — present it as an architectural insight.
|
If the plan rolls a custom solution where a built-in exists, flag it as a scope reduction opportunity. Annotate recommendations with **[Layer 1]**, **[Layer 2]**, **[Layer 3]**, or **[EUREKA]** (see preamble's Search Before Building section). If you find a eureka moment — a reason the standard approach is wrong for this case — present it as an architectural insight.
|
||||||
5. **TODOS cross-reference:** Read `TODOS.md` if it exists. Are any deferred items blocking this plan? Can any deferred items be bundled into this PR without expanding scope? Does this plan create new work that should be captured as a TODO?
|
5. **TODOS cross-reference:** Read `TODOS.md` if it exists. Are any deferred items blocking this plan? Can any deferred items be bundled into this PR without expanding scope? Does this plan create new work that should be captured as a TODO?
|
||||||
|
|
||||||
5. **Completeness check:** Is the plan doing the complete version or a shortcut? With AI-assisted coding, the cost of completeness (100% test coverage, full edge case handling, complete error paths) is 10-100x cheaper than with a human team. If the plan proposes a shortcut that saves human-hours but only saves minutes with CC+gstack, recommend the complete version. Boil the lake.
|
5. **Completeness check:** Is the plan doing the complete version or a shortcut? With AI-assisted coding, the cost of completeness (100% test coverage, full edge case handling, complete error paths) is 10-100x cheaper than with a human team. If the plan proposes a shortcut that saves human-hours but only saves minutes with CC+gstack, recommend the complete version. Boil the ocean.
|
||||||
|
|
||||||
6. **Distribution check:** If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include the build/publish pipeline? Code without distribution is code nobody can use. Check:
|
6. **Distribution check:** If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include the build/publish pipeline? Code without distribution is code nobody can use. Check:
|
||||||
- Is there a CI/CD workflow for building and publishing the artifact?
|
- Is there a CI/CD workflow for building and publishing the artifact?
|
||||||
|
|
|
||||||
|
|
@ -112,7 +112,7 @@ Before reviewing anything, answer these questions:
|
||||||
If the plan rolls a custom solution where a built-in exists, flag it as a scope reduction opportunity. Annotate recommendations with **[Layer 1]**, **[Layer 2]**, **[Layer 3]**, or **[EUREKA]** (see preamble's Search Before Building section). If you find a eureka moment — a reason the standard approach is wrong for this case — present it as an architectural insight.
|
If the plan rolls a custom solution where a built-in exists, flag it as a scope reduction opportunity. Annotate recommendations with **[Layer 1]**, **[Layer 2]**, **[Layer 3]**, or **[EUREKA]** (see preamble's Search Before Building section). If you find a eureka moment — a reason the standard approach is wrong for this case — present it as an architectural insight.
|
||||||
5. **TODOS cross-reference:** Read `TODOS.md` if it exists. Are any deferred items blocking this plan? Can any deferred items be bundled into this PR without expanding scope? Does this plan create new work that should be captured as a TODO?
|
5. **TODOS cross-reference:** Read `TODOS.md` if it exists. Are any deferred items blocking this plan? Can any deferred items be bundled into this PR without expanding scope? Does this plan create new work that should be captured as a TODO?
|
||||||
|
|
||||||
5. **Completeness check:** Is the plan doing the complete version or a shortcut? With AI-assisted coding, the cost of completeness (100% test coverage, full edge case handling, complete error paths) is 10-100x cheaper than with a human team. If the plan proposes a shortcut that saves human-hours but only saves minutes with CC+gstack, recommend the complete version. Boil the lake.
|
5. **Completeness check:** Is the plan doing the complete version or a shortcut? With AI-assisted coding, the cost of completeness (100% test coverage, full edge case handling, complete error paths) is 10-100x cheaper than with a human team. If the plan proposes a shortcut that saves human-hours but only saves minutes with CC+gstack, recommend the complete version. Boil the ocean.
|
||||||
|
|
||||||
6. **Distribution check:** If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include the build/publish pipeline? Code without distribution is code nobody can use. Check:
|
6. **Distribution check:** If the plan introduces a new artifact type (CLI binary, library package, container image, mobile app), does it include the build/publish pipeline? Code without distribution is code nobody can use. Check:
|
||||||
- Is there a CI/CD workflow for building and publishing the artifact?
|
- Is there a CI/CD workflow for building and publishing the artifact?
|
||||||
|
|
|
||||||
|
|
@ -175,7 +175,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
|
||||||
|
|
@ -630,9 +630,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -620,9 +620,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,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
|
||||||
|
|
@ -626,9 +626,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,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
|
||||||
|
|
@ -637,9 +637,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,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
|
||||||
|
|
@ -618,9 +618,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ export function generateInvokeSkill(ctx: TemplateContext, args?: string[]): stri
|
||||||
const DEFAULT_SKIPS = [
|
const DEFAULT_SKIPS = [
|
||||||
'Preamble (run first)',
|
'Preamble (run first)',
|
||||||
'AskUserQuestion Format',
|
'AskUserQuestion Format',
|
||||||
'Completeness Principle — Boil the Lake',
|
'Completeness Principle — Boil the Ocean',
|
||||||
'Search Before Building',
|
'Search Before Building',
|
||||||
'Contributor Mode',
|
'Contributor Mode',
|
||||||
'Completion Status Protocol',
|
'Completion Status Protocol',
|
||||||
|
|
|
||||||
|
|
@ -2,9 +2,9 @@ import type { TemplateContext } from '../types';
|
||||||
|
|
||||||
export function generateCompletenessSection(ctx?: TemplateContext): string {
|
export function generateCompletenessSection(ctx?: TemplateContext): string {
|
||||||
if (ctx?.explainLevel === 'terse') return '';
|
if (ctx?.explainLevel === 'terse') return '';
|
||||||
return `## Completeness Principle — Boil the Lake
|
return `## 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.`;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
|
|
||||||
|
|
||||||
export function generateLakeIntro(): string {
|
export function generateLakeIntro(): string {
|
||||||
return `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:
|
return `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
|
||||||
|
|
|
||||||
|
|
@ -159,7 +159,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
|
||||||
|
|
|
||||||
|
|
@ -166,7 +166,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
|
||||||
|
|
@ -621,9 +621,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -620,9 +620,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -163,7 +163,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
|
||||||
|
|
@ -618,9 +618,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
@ -619,9 +619,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.
|
||||||
|
|
||||||
|
|
@ -1192,7 +1192,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
|
||||||
|
|
@ -1647,9 +1647,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,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
|
||||||
|
|
@ -620,9 +620,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -167,7 +167,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
|
||||||
|
|
@ -622,9 +622,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,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
|
||||||
|
|
@ -608,9 +608,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,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
|
||||||
|
|
@ -610,9 +610,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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -161,6 +161,10 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
|
||||||
maxSkeletonBytes: 62_000,
|
maxSkeletonBytes: 62_000,
|
||||||
minUnionBytes: 70_000,
|
minUnionBytes: 70_000,
|
||||||
mustContain: ['Architecture', 'Code Quality', 'Test', 'Performance'],
|
mustContain: ['Architecture', 'Code Quality', 'Test', 'Performance'],
|
||||||
|
// Cross-cutting preamble growth (v1.57.2.0 AUQ-failure prose fallback + the
|
||||||
|
// decision-memory nudge + the v1.57.4.0 Boil-the-Ocean rename) lands this just
|
||||||
|
// over the strict 1.05; small headroom for the shared preamble additions.
|
||||||
|
maxSizeRatio: 1.06,
|
||||||
},
|
},
|
||||||
'plan-design-review': {
|
'plan-design-review': {
|
||||||
skill: 'plan-design-review',
|
skill: 'plan-design-review',
|
||||||
|
|
|
||||||
|
|
@ -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', () => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue