Design Cleanup

gjkim42/kanon-repo/skills/design-cleanup

作者 gjkim42b30d6f4d14ed無授權條款收錄於 2026年10月8日更新於 2026年10月8日儲存庫4 週前更新

Sweep the current branch for leftovers of an abandoned design after a significant mid-work decision change, and rewrite the affected code, comments, tests, and docs so the result reads as if it had been designed this way from the beginning. Use when the user says "design cleanup", "clean up the old approach", "erase the journey", says a design decision changed and asks to clean up after it, or after a pivot in approach mid-branch. This is a rewrite pass over the code touched by the decision only — not a general refactoring or bug-hunting pass.

AI 產生的概覽

在開發途中設計決策變更後,清理分支中遭捨棄設計的殘留,並改寫程式碼、註解、測試與文件以符合目前設計。

功能
引導代理在分支開發途中設計決策變更後執行一次有範圍的清理。它先確立該決策,透過分支差異界定範圍,再排查死程式碼、墊片、舊概念命名、敘述變更的註解、過時測試、文件與待辦事項等殘留。接著以改寫而非修補的方式處理,執行建置與測試進行驗證,並回報刪除、重新命名與改寫的內容。
適用情境
適用於開發途中設計決策變更、分支仍留有遭捨棄方案痕跡的情況。可由「design cleanup」、「清理舊方案」或「抹去過程痕跡」等要求觸發。它只針對該決策涉及的程式碼進行改寫,而非一般重構或缺陷排查。
執行需求
需要具備分支歷史的 git 儲存庫,以及 origin/main 或 develop 之類的基準分支;能夠執行專案的建置與測試;無需額外套件或憑證。

Design cleanup — make the tree read as designed-this-way

Why this skill exists

When a design decision changes mid-work — a different approach, a renamed concept, a replaced mechanism — the branch tends to keep fossils of the abandoned design: dead branches, shims that only served the old path, names shaped by the old concept, comments narrating the change, tests pinning behavior that no longer matters. The diff may show the journey; the final tree must not. This skill hunts those fossils down and rewrites the result as if the current design had been there from the beginning.

Step 1 — Establish the decision

State the decision as one line: "the design is X; the abandoned approach was Y". Take it from the user or the session context. If it is not stated, reconstruct it from the branch diff and commit messages, then confirm the one-line summary with the user before making sweeping edits — cleanup against a misread decision destroys correct code.

Step 2 — Determine scope

  • Compute the branch diff: git diff $(git merge-base HEAD origin/main)...HEAD (fall back to origin/develop, then develop).
  • The cleanup covers only code touched by the decision: the changed files that implement it, plus files that reference the renamed or removed concepts (find them by grepping for the old names).
  • Everything else is out of bounds. This skill is not a license for unrelated refactors, formatting passes, or opportunistic improvements.

Step 3 — Hunt the leftovers

Check each category against the in-scope files:

  • Dead code: branches, parameters, feature flags, config keys, and helpers that only the abandoned path used.
  • Shims and indirection: adapters, wrappers, and abstraction layers that existed only to bridge the old design to the new one.
  • Names and structure: identifiers, files, and modules shaped by the old concept — newParser, handleV2, legacyFoo, or a module layout organized around a concept that no longer exists.
  • Comments and docstrings: anything describing the old design or narrating the change — "previously", "instead of", "now we", "changed from X to Y". Descriptions must state only the current design.
  • Tests: tests that pin the abandoned behavior, transitional states, or the shape of the old API. Rewrite them for the intended behavior of the current design; do not keep them green by accident.
  • Docs: README sections, ADRs, diagrams, and examples that describe the old mechanism. Update in place — no "migration note" additions.
  • TODOs: items left for the old plan.

Step 4 — Rewrite, don't patch

  • Rename to the current concept everywhere, not just where it is cheap.
  • Delete dead code outright; never comment it out or gate it "just in case". Git history holds the old version.
  • Collapse indirection that no longer earns its keep.
  • Rewrite affected comments, docstrings, and docs to describe only the current state.

Step 5 — Verify and report

  • Run the project's build and tests; the cleanup must not change behavior of the surviving design.
  • Grep the resulting branch diff for history words as a smoke check: previously|instead of|no longer|old |new |V2|legacy — hits are candidates to fix, not automatic violations; judge each.
  • Grep the whole tree for the abandoned names to confirm no dangling references remain.
  • Report what was removed, renamed, and rewritten, grouped by the categories above, and call out anything suspicious that was left alone because it fell outside the decision's scope.

來源與署名

來源:gjkim42/kanon-repo位於skills/design-cleanup提交b30d6f4

授權條款: 無授權條款

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

檢舉或申請下架