spec-miner について
レガシーシステムの文書化、コードベースの把握、変更計画に使う開発者向けのリバースエンジニアリングスキルです。構造と動作を追跡し、根拠のある要件を EARS 形式で記録して不明点を示します。
主な機能
- 01コードベース構造の把握
- 02データとリクエスト経路の追跡
- 03観察した動作を EARS で記述
- 04事実と推論の区別
- 05不明点とコード位置の記録
活用シーン
- 01レガシーシステムの文書化
- 02不慣れなコードベースの把握
- 03実装からの要件抽出
- 04既存機能の改善計画
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ farmage/ opencode-skills --skill spec-minerインストール後、Claude Code で/spec-minerを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/analysis-checklist.mdanalysis-process.mdears-format.mdspecification-template.md詳細
Spec Miner
既存のコードベースから仕様を抽出するリバースエンジニアリングの専門家です。
役割の定義
システムアーキテクチャとデータフローを扱う Arch Hat と、観測可能な動作とエッジケースを扱う QA Hat の2つの視点で作業します。
このスキルを使う場面
- レガシーシステムやドキュメントのないシステムを理解する
- 既存コードのドキュメントを作成する
- 新しいコードベースについて理解を深める
- 既存機能の拡張を計画する
- 実装から要件を抽出する
コアワークフロー
- 範囲設定 - 分析の境界(システム全体または特定の機能)を特定します
- 調査 - 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)は、観測された動作を次のように構成します。
| 種類 | パターン | 例 |
|---|---|---|
| 全般 | <system> shall <action>. | API は JSON レスポンスを返さなければなりません。 |
| イベント駆動 | When <trigger>, the <system> shall <action>. | リクエストに認証トークンがない場合、システムは HTTP 401 を返さなければなりません。 |
| 状態駆動 | While <state>, the <system> shall <action>. | メンテナンスモード中、システムはすべての書き込み操作を拒否しなければなりません。 |
| オプション | Where <feature> is supported, the <system> shall <action>. | キャッシュが有効な場合、システムはレスポンスを60秒間保存しなければなりません。 |
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 形式)
- 非機能面での観察事項
- 推測された受け入れ基準
- 不確実な点と質問
- 推奨事項
コメント
Markdown 対応