Piコーディングエージェントに構造化された開発サイクルを強制するワークフロー拡張
(github.com/popododo0720)最近はAIコーディングエージェントのツールが次々と登場し、並列エージェントで同時に複数のファイルを修正するやり方が流行しています。ですが実際に使ってみると、すぐに気づくことがあります — 成果物がばらばらだということです。
エージェントは計画なしにコードを吐き出し、モジュール間の一貫性が崩れ、同じミスをセッションごとに繰り返します。「速く大量に生成する」ことが必ずしも良いわけではありません。生成速度がどれだけ速くても、あとで人が収拾する時間のほうが長くかかるなら意味がありません。
そこでアプローチを変えました。エージェントの速度を意図的に遅くしてでも、構造を強制すれば最終品質は上がるのではないか?
Piコーディングエージェント(@mariozechner/pi-coding-agent)向けのワークフロー拡張を作成し、その中核はエージェントに6段階の開発サイクルを強制することです:
📝 Plan → 🔍 Verify Plan → 🔨 Implement → ✅ Verify Impl → 🧠 Compound → 🎉 Done
- 段階ごとのツール遮断
実装(Implement)段階でない限り、ファイル編集ツール自体が遮断されます。rm、mv、sed -iのような bash コマンドも読み取り専用段階ではブロックされます。AIは計画を立てる前にコードに触ること自体ができません。 - 並列マルチモデルによる敵対的検証
計画と実装結果を複数のLLMが同時に検証します。単なるコードレビューではなく、コードを壊す具体的なシナリオを作って攻撃する方式です。重大度を 🔴 CRITICAL / 🟡 WARNING / 🔵 INFO に分類し、CRITICAL が1つでもあればその段階は通過できません。 - Compound学習とプロジェクトメモリ
各サイクルが終わるたびに、パターン、ミス(gotchas)、アーキテクチャ上の決定事項を自動で記録します。このメモリは.pi/workflow-memory.jsonに保存され、セッションが変わっても維持されます。「昨日ここで苦戦したから、今日は繰り返さないようにしよう」が可能になります。 - Repo Map(AST + PageRank)
web-tree-sitterでプロジェクト全体のシンボル(関数、クラス、インターフェースなど)を抽出し、import グラフを作って PageRank でファイルごとの重要度を付けます。トークン予算(デフォルト2048)の範囲内でプロジェクト構造を把握できるため、エージェントは「このプロジェクトがどういう構造か」を理解した状態で作業できます。18言語をサポートしています。
その他の特徴
- TODOシステム — 大きなタスクをTODO単位に分割し、各TODOごとに Implement → Verify → Compound サイクルを独立して実行
- Git自動化 — TODOの区切りごとに自動コミット/プッシュ、dirty tree なら整理から強制
- カスタムチェック —
docs/checks/にMarkdownファイルを置くと、プロジェクトごとの検証基準を追加可能 - コンテキスト管理 — 常に注入される最小コンテキストと、必要時に検索されるオンデマンドコンテキストを分離してトークンの無駄を防止
哲学
並列エージェントが悪いと言いたいわけではありません。ただ、構造のない並列生成は技術的負債を並列に作るのとほとんど同じだと考えています。この拡張は「AIに仕事をさせつつ、人が働くときと同じ規律を適用しよう」というアイデアから出発しました。
TypeScript 100%で書かれており、npm installとシンボリックリンク1つでインストールできます。
GitHub: https://github.com/popododo0720/pi-stuff
フィードバック歓迎です!
まだコメントはありません。