本文へ移動
cccskills
無料GitHub で公開日本語紹介

improve-codebase-architecture

変更の多いコードを中心に設計上の扱いづらさを探し、改善前後の図を添えたHTMLレポートで改修候補を比較し、選んだ案の制約やテスト方針を対話で詰めるスキル。

原文原文の説明を見る

扫描代码库中的深化机会,生成可视化 HTML 报告,然后围绕你选中的候选项继续追问。

インストール方法を見る

こんなときに便利

  • 変更の多いコードの設計を見直したいとき
  • 改修候補を図で比較したいとき
  • 選んだ改善案の制約とテストを詰めたいとき
  • 用語集や設計判断と照らして検討したいとき

日本語での紹介

できること

コードの理解やテストを難しくしている設計を調べ、改修候補をHTMLレポートにまとめます。小さな処理単位を行き来しないと理解できない箇所や、内部処理と同じくらい複雑な呼び出し口に注目します。各候補には対象ファイル、問題、解決案、期待する利点、改善前後の図、推奨度を示し、最初に取り組む案も提示します。

こんなときに便利

変更が重なる場所で修正のたびに迷う場合や、テストしづらい設計を見直したい場合に向いています。対象の指定がなければ変更履歴から調査範囲を絞り、用語集と設計判断の記録であるADRを踏まえて検討します。

使い方の例

  • 「最近変更が多い箇所から設計の改善候補を探して」
  • 「この候補について、制約と残せるテストを整理して」

注意点

codebase-design、grilling、domain-modelingとの連携を前提とします。レポートは一時フォルダに保存され、表示にはCDN経由のTailwindとMermaidを使います。案を選んだ後の対話では、必要に応じてGLOSSARY.mdの更新も扱います。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(3)

  • SKILL.md5.6 KB
  • agents/openai.yaml159 B
  • HTML-REPORT.md6.5 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

改进代码库架构

暴露 architectural friction,并提出 deepening opportunities:把 shallow modules 变成 deep modules 的 refactors。目标是 testability 和 AI-navigability。

这个命令由项目的 domain model 提供信息,并建立在共享 design vocabulary 上:

  • 调用 Skill 工具并指定 codebase-design,获取 architecture vocabulary(module、interface、depth、seam、adapter、leverage、locality)及其 principles(deletion test、"the interface is the test surface"、"one adapter = hypothetical seam, two = real")。每条建议都准确使用这些术语,不要漂移到 "component"、"service"、"API" 或 "boundary"。
  • GLOSSARY.md 中的 domain language 会为好的 seams 命名;docs/adr/ 中的 ADRs 记录这个命令不应重新争论的 decisions。

流程

1. 探索

先划定扫描范围:YAGNI。 深化 module 的收益在于让未来修改更容易,因此要更关注最近仍在变化的 codebase 区域。开始探索前先决定去哪里看:

  • 如果用户点名了方向(module、subsystem 或 pain point),就按该方向探索,跳过下面的推断。
  • 否则,向前回看一段足够长的 commit history(git log --oneline),找出反复出现的 files 和 areas,让这些 hot spots 成为首要关注点。如果变更分散、没有明显 hot spot,再扩大范围。

先读取项目 domain glossary(GLOSSARY.md)以及你将触碰区域的 ADRs。

然后 spawn 一个 sub-agent 来遍历 codebase。不要套死板 heuristics;自然探索,并记录你感到 friction 的地方:

  • 理解一个概念是否需要在许多小 modules 之间来回跳?
  • 哪些 modules 是 shallow 的,即 interface 几乎和 implementation 一样复杂?
  • 是否存在为了 testability 抽出的 pure functions,但真正 bugs 藏在它们如何被调用之处(没有 locality)?
  • 哪些 tightly-coupled modules 泄漏到了 seams 之外?
  • Codebase 的哪些部分未测试,或很难通过当前 interface 测试?

对任何你怀疑 shallow 的东西应用 deletion test:删除它会让复杂度集中,还是只把复杂度移动到别处?"yes, concentrates" 才是你要的 signal。

2. 用 HTML 报告呈现候选项

把 self-contained HTML file 写到 OS temp directory,避免任何内容落进 repo。Temp dir 从 $TMPDIR 解析,fallback 到 /tmp(Windows 用 %TEMP%),写到 <tmpdir>/architecture-review-<timestamp>.html,让每次运行都有新文件。为用户打开它:Linux 用 xdg-open <path>,macOS 用 open <path>,Windows 用 start <path>,并告诉用户 absolute path。

Report 使用 Tailwind via CDN 做 layout/styling,用 Mermaid via CDN 做能可靠传达结构的 diagrams。Mermaid 和手写 CSS/SVG visuals 可以混用:关系是 graph-shaped(call graphs、dependencies、sequences)时用 Mermaid;需要 editorial 表达(mass diagrams、cross-sections、collapse animations)时用手写 divs/SVG。每个 candidate 都要有 before/after visualisation。要视觉化。

每个 candidate 渲染一张 card,包含:

  • Files - 涉及哪些 files/modules
  • Problem - 当前 architecture 为什么造成 friction
  • Solution - 会改变什么,用平实的语言描述
  • Benefits - 用 locality 与 leverage 解释收益,以及 tests 如何改善
  • Before / After diagram - side-by-side,自绘,说明 shallowness 与 deepening
  • Recommendation strength - Strong、Worth exploring、Speculative 之一,渲染为 badge

Report 末尾包含首选推荐区:你会先处理哪个 candidate,以及为什么。

用 GLOSSARY.md vocabulary 表达 domain,用 /codebase-design vocabulary 表达 architecture。 如果 GLOSSARY.md 定义了 "Order",就说 "Order intake module",不要说 "FooBarHandler",也不要说 "Order service"。

ADR conflicts:如果 candidate 与现有 ADR 冲突,只有在 friction 真实到值得重新打开 ADR 时才提出。Card 中明确标记(例如 warning callout:"contradicts ADR-0007 - but worth reopening because...")。不要列出 ADR 理论上禁止的每个 refactor。

完整 HTML scaffold、diagram patterns 和 styling guidance 见 HTML-REPORT.md。

现在不要提出 interfaces。写完文件后问用户:"Which of these would you like to explore?"

3. Grilling 循环

用户选中 candidate 后,调用 Skill 工具并指定 grilling,与用户走完 decision tree:constraints、dependencies、deepened module 的形状、seam 后面放什么、哪些 tests 能保留。

Side effects 随 decisions 成形而内联发生;调用 Skill 工具并指定 domain-modeling,让 domain model 保持最新:

  • 要用 GLOSSARY.md 中不存在的概念命名 deepened module? 把 term 加入 GLOSSARY.md。若文件不存在,按需创建。
  • 对话中打磨了 fuzzy term? 立即更新 GLOSSARY.md。
  • 用户以 load-bearing reason 拒绝了 candidate? 提议写 ADR,表述为:"Want me to record this as an ADR so future architecture reviews don't re-suggest it?" 只有当未来 explorer 确实需要该 reason 以避免再次提出同样建议时才提议;跳过临时原因("not worth it right now")和显而易见原因。
  • 想探索 deepened module 的 alternative interfaces? 调用 Skill 工具并指定 codebase-design,并使用其中的 design-it-twice parallel sub-agent pattern。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

ask-matt

無料概要あり

アイデアの具体化、実装、不具合調査など、今の状況に合う関連スキルと使う順番を案内し、仕様作成や作業の引き継ぎを含めて開発の進め方を選ぶためのスキル。

  • アイデアから実装までの進め方選び
  • 難しい不具合調査の入口を探したいとき
  • 複数セッションの仕様と作業計画
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

claude-handoff

無料概要あり

現在の会話を引き継ぎ用に要約し、新しいバックグラウンドエージェントを起動します。既存資料への参照や推奨スキルを添えて、次の作業へ引き継ぎます。

  • 新しいエージェントで作業を続けたいとき
  • 次のセッションの作業を絞りたいとき
  • 既存資料を参照して引き継ぎたいとき
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

code-review

無料概要あり

指定したコミットやブランチからの差分を、コード規約と仕様への適合という二つの観点で並行レビューし、それぞれの指摘と重要な問題を分けて報告するスキル。

  • ブランチやPRをレビューしたいとき
  • 特定コミット以降を確認したいとき
  • 仕様の実装漏れや範囲外の変更の確認
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

codebase-design

無料概要あり

少ない利用ルールで多くの処理を扱えるモジュール設計を支援し、共通の用語と原則を使って、インターフェースや処理の差し替え位置、テストのしやすさを検討するスキル。

  • モジュールの使い方を簡単にしたいとき
  • リファクタリング時の構造検討
  • 処理を差し替える位置の検討
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

diagnosing-bugs

無料概要あり

不具合や性能低下を繰り返し再現できる検証手順を作り、原因の仮説を絞って修正します。最小の再現例づくりから再発防止テスト、一時的な調査コードの片付けまで進めます。

  • 解消しないエラーや誤出力の調査
  • 断続的な不具合の再現率を上げたいとき
  • 性能低下の測定と原因調査
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

domain-modeling

無料概要あり

プロジェクトの用語や概念の境界を具体例とコードで確かめ、合意した定義を用語集に、重要な設計判断を記録に残して認識をそろえるスキルです。

  • プロジェクトの曖昧な用語を整理したいとき
  • GLOSSARY.mdを作成・更新したいとき
  • 概念の境界をコードや例外で確かめたいとき
vinvcn/mattpocock-skills-zh-CN5,1582026年10月20日 更新

vinvcn のスキルをすべて見る

このスキルの問題を報告する