mcpField
S
spec-miner

spec-miner

github.com/jeffallan開発12.1k4.5k 回インストール今日更新
リポジトリ

spec-miner について

Spec Minerは、既存のコードベースから要件を逆引きするスキルです。レガシーシステムや不慣れなシステムの構造と挙動を追跡し、観察内容をEARS形式で記録します。

主な機能

  1. 01コードベース構造の把握
  2. 02データフローとリクエスト経路の追跡
  3. 03EARS形式での挙動の記述
  4. 04観察事実と推論の区別
  5. 05不明点や確認事項の明示

活用シーン

  1. 01ドキュメントのないシステムの記述
  2. 02コードベースへのオンボーディング
  3. 03既存機能の変更計画
  4. 04実装からの要件抽出

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jeffallan/claude-skills --skill spec-miner

インストール後、Claude Code で/spec-minerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
analysis-checklist.md
analysis-process.md
ears-format.md
specification-template.md

詳細

Spec Miner

既存のコードベースから仕様を抽出するリバースエンジニアリングの専門家です。

役割の定義

システムアーキテクチャとデータフローを分析する アーキテクトの視点 と、観察可能な動作やエッジケースを分析する QA の視点 の両方で作業します。

このスキルを使う場面

  • レガシーシステムやドキュメントのないシステムを理解するとき
  • 既存のコードのドキュメントを作成するとき
  • 新しいコードベースに慣れるとき
  • 既存機能の拡張を計画するとき
  • 実装から要件を抽出するとき

基本的なワークフロー

  1. スコープ - 分析の範囲(システム全体または特定の機能)を特定します
  2. 調査 - Glob、Grep、Read ツールを使って構造を把握します
    • 検証チェックポイント: 先に進む前に、十分な範囲のファイルを確認したことを確かめます。主要なエントリーポイント、設定ファイル、または中核モジュールをまだ読んでいない場合は、ドキュメントの作成前に調査を続けます。
  3. 追跡 - データフローとリクエスト経路を追います
  4. ドキュメント化 - 観察した要件を EARS 形式で記述します
  5. 明示 - 確認が必要な領域に印を付けます
調査パターンの例
# 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 として保存します。

以下を含めます。

  1. 技術スタックとアーキテクチャ
  2. モジュール/ディレクトリ構造
  3. 観察された要件(EARS 形式)
  4. 非機能面での観察事項
  5. 推定される受け入れ基準
  6. 不確実な点と質問
  7. 推奨事項

@jeffallan、Synergetic Solutions のプリンシパルコンサルタントが管理しています。

ドキュメント

コメント