techdebt について
コードベースの技術的負債を見つけ、対処する開発スキルです。重複、デッドコード、古いパターン、コードの臭いを調査し、報告、優先順位付け、修正、検証を行います。
主な機能
- 01重複コードとデッドコードを検出
- 02古いパターンとコードの臭いを指摘
- 03パス、行番号、深刻度を報告
- 04問題の優先順位付けと修正
- 05Ruff と pytest で検証
活用シーン
- 01コードベース全体の保守性問題を監査
- 02ファイルやディレクトリを絞って技術的負債を確認
- 03Lint とテストで修正を検証
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ meleantonio/ awesome-econ-ai-stuff --skill techdebtインストール後、Claude Code で/techdebtを入力して読み込まれたか確認します。
同梱ファイルindex.md
詳細
技術的負債の検出
コードベース内の技術的負債を特定して修正します。
確認する項目
コードの重複
- ロジックが似ていて、統合できる関数
- コピー&ペーストされたコードブロック
- 抽象化すべき繰り返しのパターン
デッドコード
- 使用されていないインポート
- 使用されていない関数やクラス
- コメントアウトされたコードブロック
- 到達不能なコードパス
古いパターン
- 非推奨の API の使用
- f-string ではなく古い形式の文字列フォーマット(% または .format)
listではなくtyping.Listを使用した型ヒント- 公開関数の型ヒントの不足
コードの不吉な臭い
- 50 行を超える関数
- パラメーターが多すぎる関数(5 個超)
- 深すぎるネスト(3 階層超)
- 定数化されていないマジックナンバー
- 複雑すぎる条件分岐
ベストプラクティスの不足
- 公開関数の docstring の不足
- エラーハンドリングの不足
- 設定にすべき値のハードコード
- 重要な処理に対するテストの不足
ワークフロー
-
コードベースをスキャンする
- 上記の問題に該当するパターンを探します
- 影響の大きさと修正の容易さに基づいて優先順位を付けます
-
検出結果を報告する
- カテゴリ別に問題を列挙します
- ファイルパスと行番号を含めます
- 深刻度(高/中/低)を見積もります
-
問題を修正する
- 深刻度が高く、修正しやすいものから着手します
- 修正ごとにアトミックコミットを作成します
- 変更のたびにテストを実行します
-
検証する
- リンターを実行します:
ruff check . - テストを実行します:
pytest - 新たな問題が発生していないことを確認します
- リンターを実行します:
引数
任意で、対象とするディレクトリまたはファイルを指定できます。
使用方法:
/techdebt— プロジェクト全体をスキャンします/techdebt src/— 特定のディレクトリをスキャンします/techdebt src/utils.py— 特定のファイルをスキャンします
出力
以下の概要を提示します:
- 検出された問題(カテゴリ別)
- 修正した問題
- 今後のセッションに持ち越す項目
コメント
Markdown 対応