mcpField
S
spec-miner

spec-miner

github.com/farmage開発224288 回インストール5 週間前に更新
リポジトリ

spec-miner について

レガシーシステムの文書化、コードベースの把握、変更計画に使う開発者向けのリバースエンジニアリングスキルです。構造と動作を追跡し、根拠のある要件を EARS 形式で記録して不明点を示します。

主な機能

  1. 01コードベース構造の把握
  2. 02データとリクエスト経路の追跡
  3. 03観察した動作を EARS で記述
  4. 04事実と推論の区別
  5. 05不明点とコード位置の記録

活用シーン

  1. 01レガシーシステムの文書化
  2. 02不慣れなコードベースの把握
  3. 03実装からの要件抽出
  4. 04既存機能の改善計画

インストール

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

$npx skills add https://github.com/farmage/opencode-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

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

役割の定義

システムアーキテクチャとデータフローを扱う Arch Hat と、観測可能な動作とエッジケースを扱う QA Hat の2つの視点で作業します。

このスキルを使う場面

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

コアワークフロー

  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)は、観測された動作を次のように構成します。

種類パターン例
全般<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 として保存します。

次の項目を含めます。

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

ドキュメント

コメント