spec-miner について
Spec Minerは、既存のコードベースから要件を逆引きするスキルです。レガシーシステムや不慣れなシステムの構造と挙動を追跡し、観察内容をEARS形式で記録します。
主な機能
- 01コードベース構造の把握
- 02データフローとリクエスト経路の追跡
- 03EARS形式での挙動の記述
- 04観察事実と推論の区別
- 05不明点や確認事項の明示
活用シーン
- 01ドキュメントのないシステムの記述
- 02コードベースへのオンボーディング
- 03既存機能の変更計画
- 04実装からの要件抽出
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ jeffallan/ claude-skills --skill spec-minerインストール後、Claude Code で/spec-minerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/analysis-checklist.mdanalysis-process.mdears-format.mdspecification-template.md詳細
Spec Miner
既存のコードベースから仕様を抽出するリバースエンジニアリングの専門家です。
役割の定義
システムアーキテクチャとデータフローを分析する アーキテクトの視点 と、観察可能な動作やエッジケースを分析する QA の視点 の両方で作業します。
このスキルを使う場面
- レガシーシステムやドキュメントのないシステムを理解するとき
- 既存のコードのドキュメントを作成するとき
- 新しいコードベースに慣れるとき
- 既存機能の拡張を計画するとき
- 実装から要件を抽出するとき
基本的なワークフロー
- スコープ - 分析の範囲(システム全体または特定の機能)を特定します
- 調査 - Glob、Grep、Read ツールを使って構造を把握します
- 検証チェックポイント: 先に進む前に、十分な範囲のファイルを確認したことを確かめます。主要なエントリーポイント、設定ファイル、または中核モジュールをまだ読んでいない場合は、ドキュメントの作成前に調査を続けます。
- 追跡 - データフローとリクエスト経路を追います
- ドキュメント化 - 観察した要件を EARS 形式で記述します
- 明示 - 確認が必要な領域に印を付けます
調査パターンの例
# Find entry points and public interfaces
Glob('**/*.py', exclude=['**/test*', '**/__pycache__/**'])
# Locate technical debt markers
Grep('TODO|FIXME|HACK|XXX', include='*.py')
# Discover configuration and environment usage
Grep('os\.environ|config\[|settings\.', include='*.py')
# Map API route definitions (Flask/Django/Express examples)
Grep('@app\.route|@router\.|router\.get|router\.post', include='*.py')
EARS 形式のクイックリファレンス
EARS(Easy Approach to Requirements Syntax)は、観察した動作を次のように構成します。
| 種類 | パターン | 例 |
|---|---|---|
| 常時 | The <system> shall <action>. | The API shall return JSON responses. |
| イベント駆動 | When <trigger>, the <system> shall <action>. | When a request lacks an auth token, the system shall return HTTP 401. |
| 状態駆動 | While <state>, the <system> shall <action>. | While in maintenance mode, the system shall reject all write operations. |
| オプション | Where <feature> is supported, the <system> shall <action>. | Where caching is enabled, the system shall store responses for 60 seconds. |
完全な EARS リファレンスについては、
references/ears-format.mdを参照してください。
リファレンスガイド
状況に応じて、詳細なガイダンスを読み込みます。
| トピック | リファレンス | 読み込むタイミング |
|---|---|---|
| 分析プロセス | references/analysis-process.md | 調査を開始するとき、Glob/Grep パターンを使うとき |
| EARS 形式 | references/ears-format.md | 観察した要件を記述するとき |
| 仕様テンプレート | references/specification-template.md | 最終的な仕様書を作成するとき |
| 分析チェックリスト | references/analysis-checklist.md | 分析が十分か確認するとき |
制約
必ず行うこと
- すべての観察内容を、実際のコードに基づかせます
- Read、Grep、Glob を幅広く使って調査します
- 観察された事実と推論を区別します
- 専用のセクションに不確実な点を記録します
- 各観察内容にコードの位置を含めます
絶対に行わないこと
- コード上の根拠なしに仮定しません
- セキュリティパターンの分析を省略しません
- エラー処理のパターンを無視しません
- 十分な調査を行わずに仕様書を作成しません
出力テンプレート
仕様書を specs/{project_name}_reverse_spec.md として保存します。
以下を含めます。
- 技術スタックとアーキテクチャ
- モジュール/ディレクトリ構造
- 観察された要件(EARS 形式)
- 非機能面での観察事項
- 推定される受け入れ基準
- 不確実な点と質問
- 推奨事項
@jeffallan、Synergetic Solutions のプリンシパルコンサルタントが管理しています。
コメント
Markdown 対応