Skip to content

fix: /office-hours and /ceo-review accidentally contradict Boil the Lake#398

Open
simonemacario wants to merge 5 commits intogarrytan:mainfrom
simonemacario:two-axis-scope
Open

fix: /office-hours and /ceo-review accidentally contradict Boil the Lake#398
simonemacario wants to merge 5 commits intogarrytan:mainfrom
simonemacario:two-axis-scope

Conversation

@simonemacario
Copy link
Copy Markdown

@simonemacario simonemacario commented Mar 23, 2026

The problem

gstack tells users to "narrow scope" in /office-hours (Q4: Narrowest Wedge, "Narrow beats wide, early") and "cut everything" in /plan-ceo-review (SCOPE REDUCTION, Focus as subtraction, Subtraction default) — but doesn't distinguish product scope from implementation scope.

Users conflate the two. They hear "minimum viable" and skip tests. They hear "narrow your scope" and cut error handling. This directly contradicts the Completeness Principle and Boil the Ocean.

Concrete before/after

Before — user runs /office-hours, gets told to narrow scope, then implements:

"The office hours session said to find the narrowest wedge. So I'm building just the core flow — no tests, no error handling, no edge cases. We can add those later."

After:

"The narrowest wedge is the product surface — one feature, one workflow. But that wedge gets complete implementation: all edge cases, full test coverage, every error path. The wedge is small. The engineering is thorough."

The fix: two axes, one mantra

Scope is two axes, not one.

  • Product scope (WHAT you build) — narrow early. Narrowest wedge, focus as subtraction, fewer things done better.
  • Implementation scope (HOW COMPLETELY you build it) — always maximal. Boil the Lake. Every edge case, every test, every error path.

Narrow the product. Boil the implementation.

Changes (5 commits, rebased onto v0.13.0.0)

  1. ETHOS.md — New "2. The Two Axes of Scope" section in the builder philosophy
  2. scripts/resolvers/preamble.ts — Two-axis distinction added to generateCompletenessSection(). Propagates to ALL skills via {{PREAMBLE}}
  3. office-hours + plan-ceo-review templates — Surgical clarifications:
    • Q4 Narrowest Wedge: "this is PRODUCT scope, not implementation quality"
    • SCOPE REDUCTION: "cut features, not quality"
    • Focus as subtraction: "do fewer things, but do them completely"
  4. ETHOS.md section numbering — Consistent numbering (1, 2, 3)
  5. Resolver migration — Original change targeted the monolithic gen-skill-docs.ts; adapted to the new scripts/resolvers/ architecture and regenerated all SKILL.md files

Test plan

  • bun run gen:skill-docs — regenerated for both hosts, no errors
  • bun test — passes (1 pre-existing failure in design-shotgun zsh glob check, unrelated)
  • Completeness Principle appears in all generated SKILL.md files with two-axis text
  • Rebased cleanly onto v0.13.0.0 (main as of 2026-03-28)

🤖 Generated with Claude Code

@simonemacario
Copy link
Copy Markdown
Author

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Verified: template-to-output pipeline (generateCompletenessSection(ctx) signature change + call site), commit bisection (4 logical commits), .tmpl editing workflow, and generated SKILL.md regeneration. All 557 tests pass per PR description.

🤖 Generated with Claude Code

- If this code review was useful, please react with 👍. Otherwise, react with 👎.

simonemacario and others added 5 commits March 28, 2026 00:36
Product scope (WHAT you build) should be narrow early on.
Implementation scope (HOW COMPLETELY you build it) should always
be maximal. These are independent axes — conflating them is
the most common mistake builders make with AI.

Narrow the product. Boil the implementation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
All skills now inherit guidance that "scope" is two axes:
product scope (narrow) and implementation scope (boil).
This propagates via the shared preamble to every skill.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…review

/office-hours Q4 "Narrowest Wedge" and "Narrow beats wide" now explicitly
state they apply to product scope, not implementation quality.

/plan-ceo-review SCOPE REDUCTION, Focus as subtraction, and Subtraction
default now clarify: cut features, not engineering quality. Narrow the
product, boil the implementation.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Maintains consistent numbered-section convention:
1. Boil the Lake, 2. The Two Axes of Scope, 3. Search Before Building.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The original commit modified the monolithic gen-skill-docs.ts, but upstream
split it into scripts/resolvers/. Apply the two-axis scope text to
scripts/resolvers/preamble.ts instead and regenerate all SKILL.md files.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@simonemacario
Copy link
Copy Markdown
Author

Rebased onto v0.13.0.0 — adapted to the new scripts/resolvers/ architecture (the original change targeted the monolithic gen-skill-docs.ts which has since been split).

The two-axis text now lives in scripts/resolvers/preamble.tsgenerateCompletenessSection(), so it propagates to all skills via {{PREAMBLE}} as before. All SKILL.md files regenerated cleanly.

Updated the PR description to reflect the current state.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant