Deepen

juliusbrussee/cavekit/skills/deepen

作者 juliusbrussee7421e87d5b51無授權條款1.1K 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫7 週前更新

Optional design-improvement pass for when you have spare usage to drain. Finds the shallowest modules in the code the spec touches, researches a deeper design, and proposes refactors that shrink interfaces and hide decisions — behavior held constant, tests green before and after. Proposes §I/§V/§T edits, never silent rewrites. Triggers when the user says "deepen this", "improve the design", "this module feels shallow", "pull complexity down", "use spare budget on the codebase", or invokes /ck:deepen. Leans on the codebase-design skill's deep-module vocabulary when present.

AI 產生的概覽

提出重構方案,讓淺層程式模組變深,縮小介面並維持行為與測試不變。

功能
掃描規格涉及的模組,依淺層程度排序,並挑出最嚴重的一個。它會以檔案與行號指出設計缺陷,透過把複雜度下移、隱藏資訊等模式研究更深度的設計,並提出規格修改建議,而非默默重寫。它要求改動前後測試套件皆為綠燈,並在某個模組的介面確實變小後停止。
適用情境
適用於建置為綠燈、測試通過,且有多餘 token 預算可用於設計品質的情況。它適合介面複雜度與實作相當、同一項改動反覆觸及多個檔案,或使用者明確要求改善設計的情境。不適合在功能開發中途或趕期限時使用。
執行需求
不附帶指令碼或工具,僅為指令型技能。它需要一套可執行的測試套件,以便在改動前後執行,並在存在搭配技能時引用它們進行研究與規格撰寫。

deepen — make modules deep

Behavior is sacred: tests green before AND after. Every change shrinks an interface or hides a decision — deepen, don't churn.

A deep module hides a lot behind a small interface; a shallow one's interface costs as much to use as writing the code yourself. Complexity = dependencies + obscurity, and it compounds. Deepen spends spare usage paying that down before it becomes a §B. Run it when the build is green & you have budget to drain — not under deadline.

WHEN TO DEEPEN

  • Build is green, tests pass, & you have token budget spare.
  • A module's interface feels as complex as its implementation (shallow smell).
  • The same change keeps touching many files (change amplification).
  • User explicitly asks to improve design quality.

⊥ run mid-feature or under pressure. Deepen is the deliberate pass, not the reflex.

FIVE STEPS

1. PICK THE SHALLOW

Scan the modules the spec touches. Rank by shallowness — interface surface vs work done. Pick the one worst offender. Tells:

  • Pass-through method that only forwards to one other (shallow layer).
  • Caller must set 5 flags right to use it (config leakage).
  • Same abstraction repeated at two layers (no information hiding).
  • A ? or §B that traces back to a confusing interface.

One module per pass. Deepening is surgical, ⊥ a codebase sweep.

2. DIAGNOSE

Name the design defect in caveman, citing file:line:

src/auth/token.go: 6-arg ctor leaks rotation policy to every caller. shallow. Complexity is real only if it shows: change amplification, high cognitive load, or an unknown-unknown (caller must know a hidden fact to call it right).

3. RESEARCH THE DEEPENING

What does a deeper version look like? Pull a known pattern (hand to research for the external case → §R) or derive from the codebase's own better modules. Moves that deepen:

  • Pull complexity down — hide the hard part inside, give callers the simple path.
  • Define errors out of existence — design the interface so the edge can't occur.
  • Information hiding — one decision, one module; callers don't learn it.
  • General-purpose interface over a pile of special-case methods.

4. PROPOSE

Draft the change as spec edits, not a silent rewrite:

  • New/simpler §I shape for the module.
  • §V that locks the deepened invariant so a future build can't re-shallow it.
  • §T refactor row(s), each citing the §V/§I it serves. Hand to spec to write. Show the before/after interface so the user sees the shrink.

5. VERIFY BEHAVIOR HELD

Refactor ≠ rewrite. Full suite green before you start AND after. A deepening that changes behavior is a feature in disguise — stop, route through /spec + /build. New interface gets a test proving the old callers still work.

WHEN TO STOP

Done when the chosen module's interface is strictly smaller, its hidden decision no longer leaks, tests are green, and §I/§V record the new shape. One module deepened beats five churned. Budget left → pick the next shallowest, fresh pass.

BOUNDARIES

  • ⊥ change behavior. Green before, green after. Pure structure.
  • ⊥ write SPEC.md. Propose §I/§V/§T; spec writes.
  • ⊥ deepen more than one module per pass.
  • ⊥ run under deadline or mid-feature. This is the spare-budget pass.
  • ⊥ add abstraction for single-use code. A deep module earns its hiding; a speculative one is just more surface.

來源與署名

來源:juliusbrussee/cavekit位於skills/deepen提交7421e87

授權條款: 無授權條款

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架