diff --git a/CHANGELOG.md b/CHANGELOG.md index a73a586a1..5bee98459 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,12 +6,13 @@ ### Changed - **`scripts/resolvers/preamble/generate-completeness-section.ts`**: the default section reads "Complete coverage, minimal code": recommend full coverage of the requirement (tests, edge cases, error paths) and no code beyond it, prefer the smaller diff at equal coverage, and add no checks for impossible states. Unrelated work stays separate scope. The `Completeness: X/10` scoring rule and the GPT-5.6 Sol variant are unchanged. The section is 3 characters shorter, so every regenerated skill shrinks and 89 size pins go down. -- **`ETHOS.md`**: "Completeness is cheap ... always prefer A" becomes "Complete coverage, minimal code": completeness is measured in coverage, not lines; at equal coverage choose the smaller diff; no speculative abstractions, impossible-state checks or unneeded refactors. A new anti-pattern names the impossible-state fallback. +- **`ETHOS.md`**: "Completeness is cheap ... always prefer A" becomes "Complete coverage, minimal code": completeness is measured in coverage, not lines; at equal coverage choose the smaller diff; no speculative abstractions, impossible-state checks or unneeded refactors. A new anti-pattern names the impossible-state fallback. Section 1's opener now says "When covering the whole requirement costs minutes more than the shortcut, cover it. Every time. Complete means complete coverage, not more code.", and "How They Work Together" says Boil the Ocean means "cover the whole requirement with the least code" instead of "do the complete thing". +- **`plan-ceo-review/SKILL.md.tmpl`**: the Philosophy bullet "COMPLETENESS IS CHEAP: AI makes 70 LOC seconds. Prefer complete ~150 LOC over 90% ~80 LOC. Boil the ocean." becomes "COMPLETENESS IS COVERAGE": cover the whole requirement (tests, edge cases, error paths) rather than a 90% shortcut, add no code beyond it, and choose the smaller diff at equal coverage. plan-ceo-review is under the 100,000-character limit on every host and has no size pin, so it grows about 100 characters without a pin change. - `review/specialists/simplification.md` and `CLAUDE.md` quote the new house rule instead of "If A is 70 lines more, choose A". ### Tests - `test/model-overlays.test.ts` asserts the new default wording ("Complete coverage, minimal code.", "prefer the smaller diff") and checks that the section still states full coverage of the requirement, the smaller diff only at equal coverage, no impossible-state checks, and that unrelated scope never excuses a gap. -- `test/fixtures/skill-md-size-allowlist.json`: 89 pins lowered by 3 characters each. None raised. +- `test/fixtures/skill-md-size-allowlist.json`: 89 pins lowered by 3 characters each. None raised; the plan-ceo-review rewording touches no pinned skill. ### Gate integrity - No threshold, budget, timeout, trial count, case kind or assertion weakened. The section heading "Completeness Principle — Boil the Ocean" is unchanged, so every skip list that names it still matches. diff --git a/ETHOS.md b/ETHOS.md index 5fe8cb42e..aa809bcad 100644 --- a/ETHOS.md +++ b/ETHOS.md @@ -37,8 +37,8 @@ The last 10% of completeness that teams used to skip? It costs seconds now. "Don't boil the ocean" was the right advice when engineering time was 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. +When covering the whole requirement costs minutes more than the shortcut, cover +it. Every time. Complete means complete coverage, not more code. **Ocean, lakes first:** The ocean is the destination — 100% test coverage for a module, full feature implementation, all edge cases, complete error paths. You @@ -179,7 +179,7 @@ against, and gstack's countermeasure for each, lives in ## How They Work Together -Boil the Ocean says: **do the complete thing.** +Boil the Ocean says: **cover the whole requirement with the least code.** Search Before Building says: **know what exists before you decide what to build.** Honest Work says: **the proof is the work, and a report is a claim until re-executed.** diff --git a/plan-ceo-review/SKILL.md b/plan-ceo-review/SKILL.md index 034e8e934..2fe0a9c6f 100644 --- a/plan-ceo-review/SKILL.md +++ b/plan-ceo-review/SKILL.md @@ -447,7 +447,7 @@ Make this plan extraordinary. Match posture: * SELECTIVE EXPANSION: Harden current scope; neutrally offer each expansion's opportunity, effort and risk. Accepted items govern later sections; rejected ones go to "NOT in scope." * HOLD SCOPE: Preserve scope; trace failures, edge cases, error paths, tests and observability. * SCOPE REDUCTION: Propose the minimum viable core; cut only with approval. -* COMPLETENESS IS CHEAP: AI makes 70 LOC seconds. Prefer complete ~150 LOC over 90% ~80 LOC. Boil the ocean. +* COMPLETENESS IS COVERAGE: Prefer the approach that covers the whole requirement (tests, edge cases, error paths) over a 90% shortcut, add no code beyond the requirement, and at equal coverage choose the smaller diff. Approval is required for each scope change. Raise concerns in Step 0, then commit: no arguing for less in EXPANSION, silent SELECTIVE additions/cuts, or scope restored to REDUCTION. Review only. Do not change code or implement. diff --git a/plan-ceo-review/SKILL.md.tmpl b/plan-ceo-review/SKILL.md.tmpl index a40d8531f..256c2eb96 100644 --- a/plan-ceo-review/SKILL.md.tmpl +++ b/plan-ceo-review/SKILL.md.tmpl @@ -64,7 +64,7 @@ Make this plan extraordinary. Match posture: * SELECTIVE EXPANSION: Harden current scope; neutrally offer each expansion's opportunity, effort and risk. Accepted items govern later sections; rejected ones go to "NOT in scope." * HOLD SCOPE: Preserve scope; trace failures, edge cases, error paths, tests and observability. * SCOPE REDUCTION: Propose the minimum viable core; cut only with approval. -* COMPLETENESS IS CHEAP: AI makes 70 LOC seconds. Prefer complete ~150 LOC over 90% ~80 LOC. Boil the ocean. +* COMPLETENESS IS COVERAGE: Prefer the approach that covers the whole requirement (tests, edge cases, error paths) over a 90% shortcut, add no code beyond the requirement, and at equal coverage choose the smaller diff. Approval is required for each scope change. Raise concerns in Step 0, then commit: no arguing for less in EXPANSION, silent SELECTIVE additions/cuts, or scope restored to REDUCTION. Review only. Do not change code or implement.