claude/skills/improve-legacy-code/SKILL.md
和田卓人氏の「実録レガシーコード改善」に基づき、テストのないレガシーコードに対して、バージョン管理、自動テストの導入、TDDによる機能追加、ドメインモデルの抽出、Clean Architectureの適用を段階的にガイドします。
npx skillsauth add kazuph/dotfiles improve-legacy-codeInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
このスキルは、テストコードがなく、構造が整理されていない「レガシーコード」を、安全にリファクタリングし、持続可能なコードベースへと進化させるための手順を提供します。
ユーザーからレガシーコードの改善やリファクタリングの相談を受けた際、以下のフェーズに従って提案・実装を行ってください。
"テストがないコードはレガシーコードだ" (Michael Feathers)
コードを変更する前に、安全地帯を確保します。
テストの決定性を確保するため、ランダム性や外部依存を「接合部」として切り出します。
Math.random())を引数や関数として外部から注入(Dependency Injection)できるように修正します。テスト環境が整ったら、仕様変更や機能追加は必ず TDD (Red -> Green -> Refactor) で行います。
"コードを変更するためにはテストを整備する必要がある。多くの場合、テストを整備するためには、コードを変更する必要がある" (レガシーコードのジレンマ)
ロジックがフレームワーク(例: AWS Lambda, Express, Rails controller)にべったり張り付いている状態(Smart UI アンチパターン)から脱却します。
既存コードに手を入れるのが怖い場合は、新しいロジックを独立したクラス/関数として作り(Sprout)、そこに対してテストを書きます。
状態管理(State Management)を改善します。
指針:
変数を直接操作して状態(例: score++)を管理するのではなく、事実(履歴)を蓄積し、そこから状態(スコア)を都度計算する設計に変更します。これにより、仕様変更(例: スコア計算ルールの変更)に強くなります。
最終的なゴールは、詳細(フレームワーク、DB、UI)から、重要(ドメインロジック)を守ることです。
ユーザーからコード改善を求められた際は、以下のステップを確認してください:
Session や CoreLogic といったクラスに切り出し、フレームワークから独立させましょう。」tools
X (Twitter) API read-only CLI. Bookmarks retrieval, tweet search, engagement analytics (likes/RT aggregation), mentions, user lookup. Use when: reading X bookmarks, searching tweets, aggregating likes/retweets, checking mentions, looking up users. Triggers: bookmark, bookmarks, X search, Twitter search, likes count, RT count, engagement, tweet analytics.
testing
単体テスト方針の要約。Kiro流で使うときは本文を必ず参照・展開する。
tools
Send prompts to other AI CLIs (Codex, Claude Code) running in sibling tmux panes and receive results back. Use this skill when the user asks to send a question or task to Codex or another Claude Code instance in a tmux pane. Handles pane discovery, CLI startup if needed, prompt delivery with proper Enter timing, delivery verification, and result return via tmux send-keys.
data-ai
TAKT ピースエンジン。Agent Team を使ったマルチエージェントオーケストレーション。ピースYAMLワークフローに従ってマルチエージェントを実行する。