Skip to main content

reverse-engineer

既存コードを分析して詳細設計書を自動生成

Informations de source

Dépôt
takemo101/compose-workflow
Dernière activité de la source
29 janvier 2026 à 15:10
Langue détectée de SKILL.md
japonais
Étoiles
0
Forks
0

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
reverse-engineer
description
既存コードを分析して詳細設計書を自動生成
# リバースエンジニアリング・ワークフロー (v1.3) 既存のソースコードを分析し、詳細設計書を自動生成するワークフロー。 設計書のないプロジェクトの追加開発や、レガシーコード理解に活用する。 ## 入力 $ARGUMENTS(対象モジュール/ディレクトリのパス) ## 出力言語 **設計書は必ず日本語で記述すること。** コード内のシンボル名(struct, enum, fn等)は原文のまま、説明は日本語で記載。 ## 前提条件 | 項目 | 要件 | |------|------| | Serena | プロジェクト設定済み(`serena_activate_project()`) | | 対象コード | コンパイル/構文エラーなし | | 権限 | `docs/designs/reverse/` への書き込み権限 | --- ## 全体フロー | Phase | 名称 | 内容 | |-------|------|------| | 0 | スコープ確認 | 言語検出、対象ファイル一覧、ユーザー確認 | | 1 | コード分析 | シンボル抽出、依存関係、テスト、コメント | | 2 | 設計書生成 | テンプレートに従い設計書作成 | | 3 | 品質検証 | 整合性・網羅性チェック | | 3.5 | AIレビュー | `detailed-design-reviewer` skill(8点以上、オプション) | | 3.8 | ユーザー承認 | 生成前の最終確認(`approval-gate` skill) | | 4 | 出力 | ファイル生成 | > **Phase規約**: `workflow-phase-convention` skill を参照 --- ## Phase 0: スコープ確認 ### 言語検出 | ファイル | 言語 | |---------|------| | `Cargo.toml` | Rust | | `package.json` | JavaScript/TypeScript | | `pyproject.toml` | Python | | `go.mod` | Go | ### Serena ツール ``` serena_list_dir(relative_path="$TARGET_PATH", recursive=True, skip_ignored_files=True) serena_find_file(file_mask="Cargo.toml", relative_path=".") ``` ### ユーザー確認 対象パス、言語、ファイル数を提示し `1. 続行` / `2. 修正` / `3. 中断` を選択(番号選択)。 --- ## Phase 1: コード分析 ### 1.1 シンボル抽出 ``` serena_get_symbols_overview(relative_path="src/xxx/mod.rs", depth=2) serena_find_symbol(name_path_pattern="MainStruct", include_body=True) ``` ### 1.2 依存関係解析 ``` # Rust serena_search_for_pattern(substring_pattern="^use\\s+", relative_path="src/xxx/") # TypeScript serena_search_for_pattern(substring_pattern="^import\\s+", relative_path="src/xxx/") ``` ### 1.3 テストケース分析 ``` serena_find_file(file_mask="*test*.rs", relative_path=".") serena_get_symbols_overview(relative_path="tests/xxx_test.rs", depth=1) ``` ### 1.4 コメント抽出 ``` # Rust: /// serena_search_for_pattern(substring_pattern="^\\s*///", relative_path="src/xxx/") # Python: docstring serena_search_for_pattern(substring_pattern='"""', relative_path="src/xxx/") ``` --- ## Phase 2: 設計書生成 > **テンプレート**: `detailed-design-templates` skill の「リバースエンジニアリング設計書テンプレート」を使用 ### 必須セクション 1. 概要(目的、スコープ) 2. モジュール設計(構成、依存関係図) 3. データ型定義(enum、struct、trait) 4. コアロジック(主要関数) 5. エラーハンドリング 6. テスト方針 7. 未解決事項・推測 --- ## Phase 3: 品質検証 ### 整合性チェック | チェック項目 | 確認方法 | |-------------|---------| | 全公開struct/enum記載 | シンボル比較 | | 全公開関数記載 | シンボル比較 | | モジュール依存関係 | import解析 | | エラー型記載 | Error enum検索 | --- ## Phase 3.5: AIレビュー(オプション) ``` task(subagent_type="detailed-design-reviewer", prompt="設計書をレビュー...") ``` | スコア | アクション | |--------|----------| | 8点以上 | Phase 3.8へ | | 6-7点 | 修正して再レビュー(最大3回) | | 5点以下 | Phase 1からやり直し | > `--skip-review` フラグで省略可能 --- ## Phase 3.8: ユーザー承認【必須】 > **共通仕様**: `approval-gate` skill を参照 生成結果サマリー(抽出シンボル数、未解決事項数)を表示し確認。 | 選択肢 | アクション | |--------|----------| | `1` | Phase 4へ | | `2` | Phase 2に戻る | | `3` | キャンセル | > 番号を選択してください(1-3): --- ## Phase 4: 出力 ### 出力先 | 条件 | 出力先 | |------|--------| | 既存設計書なし | `docs/designs/reverse/{module-name}.md` | | 既存設計書あり | `docs/designs/reverse/{module-name}_v{N}.md` | --- ## サーキットブレーカー | 条件 | アクション | |------|----------| | 対象ファイル100件超 | サブモジュール単位での分割を提案 | | 解析エラー | スキップして未解決事項に記録 | | 非対応言語 | エラー終了 | | レビュー3回失敗 | 警告マーク付与して続行 | --- ## エラーハンドリング | Phase | エラー | 対処 | |-------|--------|------| | 0 | パス不存在 | 正しいパスを再指定 | | 0 | 言語検出失敗 | 手動で言語指定 | | 1 | LSP未起動 | `serena_activate_project()` 実行 | | 2 | テンプレート適用エラー | Phase 1結果を確認 | | 4 | 書き込み失敗 | 権限・容量確認 | --- ## 対応言語 | 言語 | サポート | |------|:--------:| | Rust | O | | TypeScript | O | | Python | O | | Go | △ | | Java | △ | --- ## 使用例 ```bash /reverse-engineer src/notification/ /reverse-engineer src/ --skip-review ``` --- ## 制限事項 1. 設計意図の推測限界(「なぜそう実装したか」は不明) 2. 非公開シンボルは詳細度が低い 3. 動的言語の型推論は不完全な場合あり 4. 外部ライブラリの詳細は含まれない --- ## 参考 | スキル/ドキュメント | 用途 | |-------------------|------| | `detailed-design-templates` skill | 設計書テンプレート | | `workflow-phase-convention` skill | Phase命名規約 | | `approval-gate` skill | ユーザー承認ゲート | | [詳細設計ワークフロー](./detailed-design-workflow.md) | 新規設計時 | --- ## 変更履歴 | バージョン | 変更内容 | |-----------|---------| | 1.3.0 | 出力言語セクション追加、日本語記述を明示化 | | 1.2.0 | 前提条件追加、TypeScript/Python例追加 | | 1.1.0 | Phase番号修正、`--skip-review`追加 | | 1.0.0 | 初版作成 |
Voir sur GitHub