mcpField
S
simplify-parallel

simplify-parallel

github.com/skinnyandbald開発139 回インストール5 日前に更新
リポジトリ

simplify-parallel について

Parallel Codebase Simplificationは、大規模なコードベースを依存関係に基づく区分に分け、複数のエージェントで並行して整理する技能です。コメントや意図を保ち、変更を検証してから統合します。

主な機能

  1. 01コード構造と依存関係の分析
  2. 02ファイルを作業区分に分割
  3. 03グループごとにエージェントを並行実行
  4. 04コメントとコードの意図を保持
  5. 05統合前のチェック実行

活用シーン

  1. 01大規模コードベースの並行整理
  2. 02dry-runによる整理計画の確認
  3. 03指定したコード領域への変更制限

インストール

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

$npx skills add https://github.com/skinnyandbald/fish-skills --skill simplify-parallel

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

同梱ファイル

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

analyze.md
orchestrator.md
README.md

詳細

コードベースの並列簡素化

コードベースを論理的な単位に自動分割し、依存関係の順序を適切に考慮しながら並行処理することで、大規模なコードベース全体のコードを簡素化します。

クイックリファレンス

コマンド説明
/simplify-parallelコードベース全体を分析して簡素化します
/simplify-parallel --dry-run分析のみを行い、実行せずに計画を表示します
/simplify-parallel --focus=lib対象を特定の領域に限定します
/simplify-parallel --segments=4並列エージェントの最大数を設定します

使用方法

/simplify-parallel [options]
オプション
オプションデフォルト説明
--dry-runfalse分析のみを行い、ファイルは変更しません
--focus=AREAall対象を領域に限定します:api、lib、components、hooks、pages
--segments=N3並列エージェントの最大数
--max-files=N20セグメントあたりの最大ファイル数
--verbosefalse詳細な進捗を表示します

重要:変更してはいけないもの

このセクションが最優先です。 ここに記載されたルールに違反すると、簡素化の価値が損なわれます。 ワーカーは変更を加える前に、必ずこのセクションを読む必要があります。

コメントは絶対に削除しない

ワーカーは以下のいずれも絶対に削除してはいけません。

削除禁止例
セクション区切り// ===== Types =====、// ===== Helpers =====、// ===== Component =====
JSDoc/TSDoc のドキュメントコメント/** Computes the current project step... */
ファイルヘッダーコメントファイルの目的を説明する、ファイル先頭のブロックコメント
「理由」を説明するコメント// Only truly block when mutation is actively in flight
ビジネスロジックのコメント// While any query is loading, trust the server-provided step
エラー処理の根拠// Check if error is retryable based on status code
TODO/FIXME/NOTE コメント技術的負債の追跡に使用されます
Biome の無視ディレクティブ// biome-ignore lint/style/useNamingConvention: reason
再エクスポートの注釈// Re-export types for convenience、// Production hooks use tRPC
フェーズ/セクションのマーカー// Phase 14.16、// Step 1: Fetch and validate
次のコードパターンは絶対に削除しない
削除禁止理由
意図を明示するパターンif (x) { return x; } return undefined; は、暗黙的な return x; と異なり、意図を示します
名前付きの中間変数const isMutationPending = mutation.isPending は、インライン化するよりも明確です
エラー処理の構造異なるエラーの種類を処理する try/catch ブロックをまとめないでください
手動テストの出力*.integration.ts または manual.*.ts ファイル内の console.log は意図的なものです
ルール

コメントの削除や簡素化によって_意図_が明確でなくなる場合は、変更しないでください。

簡素化とは、_不要な複雑さ_を取り除くことであり、_ドキュメント_を削除することではありません。


動作の仕組み

フェーズ 1:コードベースの分析

オーケストレーターがコードベースの構造を分析します。

1. Directory Tree Scan     -> Identify top-level modules
2. File Metrics Collection -> Count files, LOC, complexity per directory
3. Dependency Graph        -> Parse imports to build file->file dependency map
4. Cluster Formation       -> Group tightly-coupled files into processing units
フェーズ 2:セグメントの作成

ファイルは次の基準に基づいてセグメントにグループ化されます。

  • 自然な境界:src/app/api/、src/lib/、src/components/
  • 依存関係の結びつき:互いにインポートし合うファイルは同じグループにまとめます
  • サイズ制限:セグメントあたり 10~25 ファイルを目標とします
フェーズ 3:並列実行
Orchestrator (Main Agent)
  |-- Worker Agent (Segment A)
  |-- Worker Agent (Segment B)
  |-- Worker Agent (Segment C)
フェーズ 4:検証と統合

すべてのセグメントが完了した後、次を実行します。

  1. 型チェックを実行します(npm run typecheck)
  2. リントを実行します(npm run lint)
  3. 単体テストを実行します(npm run test:run)
  4. コメントが削除されていないことを確認します(必須)
  5. 統合コミットを作成します

ワークフローの手順

ステップ 1:分析の実行
npx tsx scripts/analyze-codebase.ts --verbose

注: 分析スクリプトは .github/worktrees/ ディレクトリを自動的に除外します。

ステップ 2:並列グループの確認

分析結果には、同時に実行できるセグメントが表示されます。

重要な原則: グループは順番に処理されますが、グループ内のセグメントは並列に実行されます。

ステップ 3:簡素化を実行する

各並列グループについて:

  1. Task ツールを使用してワーカーエージェントを起動します
  2. 各ワーカーには、変更対象のファイルの重複しない一覧を渡します
  3. ワーカーは重複なく同時に実行します
  4. 次のグループに進む前に、すべてのワーカーの完了を待ちます
ステップ 4:検証してコミットする

すべてのグループが完了したら、完全な検証スイートを実行します:

npm run typecheck
npm run lint
npx vitest run --exclude='.github/worktrees/**'
npm run build
ステップ 5:コメントの保持を確認する(必須)

コミットする前に、コメントが削除されていないことを確認します:

# Check diff for removed comments
git diff HEAD -- '*.ts' '*.tsx' | grep -E '^\-\s*//' | grep -v '^\-\s*//\s*$'

役立つコメントが削除されている場合は、コミットする前に復元してください。

手動検証チェックリスト:

  • セクション区切り(// ===...)が変更したファイルに残っている
  • 関数の前にある JSDoc/TSDoc ブロックが保持されている
  • インラインの「理由」を示すコメントが保持されている
  • Biome の無視ディレクティブが保持されている

適用する簡素化パターン

ワーカーは次の変換を適用します:

パターン変換前変換後
ネストした三項演算子a ? b ? c : d : eヘルパー関数
デバッグログconsole.log('debug')削除(本番コードのみ)
繰り返しのパターン同じコードが3回以上関数に切り出す
複雑な条件if (a && b || c && d)名前付きブール値
長い関数100行以上小さな関数に分割

競合の防止

戦略実装
ファイルの所有権各セグメントに重複しないファイル一覧を割り当てます
依存関係の順序基盤モジュールを依存モジュールより先に処理します
逐次グループグループは1つずつ実行し、グループ内のセグメントは並列実行します
検証ゲートグループ間で型チェックを行い、問題を早期に検出します

失敗時の処理

  • 失敗したセグメントは、より小さなバッチで最大3回再試行します
  • 他のセグメントは処理を続行します
  • 必要に応じて、最終レポートに部分的な完了状況を表示します

コメント