mcpField
C
cavekit-methodology

cavekit-methodology

github.com/juliusbrusseeエージェントワークフロー944106 回インストール11 週間前に更新
リポジトリ

cavekit-methodology について

cavekit-methodologyは、検証可能で実装に依存しないkitsを軸に、AIコーディングエージェントとのソフトウェア開発を整理する方法論です。段階的な工程、反復ループ、検証ゲートにより、要件整理から構築・監視までを導きます。

主な機能

  1. 01実装非依存の仕様をkitsで記述
  2. 025段階のHuntライフサイクル
  3. 03受け入れ基準と検証ゲート
  4. 04反復と収束のループ
  5. 05新規・既存プロジェクトに対応

活用シーン

  1. 01エージェント実装前の要件定義
  2. 02長時間のエージェント開発の調整
  3. 03既存コードベースの刷新
  4. 04検証で見つかった不足に応じた仕様改訂

インストール

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

$npx skills add https://github.com/juliusbrussee/caveman-code --skill cavekit-methodology

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

詳細

Cavekit の方法論

中核となる原則:構築の前に仕様を定める

エージェントに構築方法を指示する前に、作りたいものを必ず定義してください。cavekit の段階を経てください。生の要件から実装へ直接進んではいけません。

Cavekit は、開発プロセスの中心にキットを置き、コードはキットから導き出すものであり、その逆ではないという、AI コーディングエージェントを使ったソフトウェア構築の方法論です。ゼロから始める場合も、既存システムを近代化する場合も、原則は同じです。

  • 新規プロジェクト: 参考資料 → キット → コード
  • 書き換え: 古いコード → キット → 新しいコード

どちらの場合も、キットはエージェントが継続的にアプリケーションを構築、検証、改善するために利用する、生きた契約となります。

キットが第一級の存在である理由
特性利点
構造化されているナビゲーション可能なツリーとして整理されているため、エージェントは必要なものだけを読み込めます
人間が読みやすいエンジニアはコードよりも高いレベルで要件を監査できます
技術スタックに依存しない特定のフレームワークや言語に依存しません
個別に進化できる実装に触れることなく、キットを改善できます
検証可能であるすべての要件に、エージェントが確認できる受け入れ基準が含まれます

重要な洞察: 強力な検証機能を備えた、よく記述されたキットがあれば、アプリケーションを再現可能にできます。どのエージェントでも、キットだけからアプリケーションを再構築できます。これは継続的な再生成と考えてください。


科学的方法との類似性

LLM は本質的に非決定的です。実験を行う場合と同様、個々の呼び出しごとに異なる結果が得られる可能性があります。しかし、明確な仮説、制御された条件、反復試行という適切な方法論を通じて、確率的なプロセスから信頼性と再現性のある結果を引き出します。

Cavekit は科学的方法をソフトウェア構築に適用します。仮説を立て、テストし、観察し、改善します。

レイヤー類似するもの役割
LLM の呼び出し個々の実験実行ごとに異なる結果が得られる可能性があり、単一の出力を決定的なものとはみなしません
キット仮説予測される動作、つまり観察できると期待することを定義します
検証ゲート制御された条件有効な結果とみなされる条件を制約し、再現性を確保します
収束ループ反復試行繰り返し処理を通じて、統計的な確信度を高めます
実装の追跡実験ノート試したこと、うまくいったこと、失敗したことを記録します
改訂仮説の見直し結果が予想に反する場合、理論を上流で更新します

その結果、確率的な生成の上に、規律ある反復可能なエンジニアリングプロセスが構築されます。


5 つの Hunt フェーズ

Hunt は 4 フェーズのライフサイクルです。Sketch、Map、Make、Check の各フェーズには、それを推進する専用のプロンプトがあります。

フェーズ入力出力AI の役割人間の役割
Draft参考資料、ドメイン知識、既存システム実装に依存しないキット要件を抽出し、知識を構造化するキットが意図を正確に捉えているか確認する
Architectキット+フレームワークの調査フレームワーク固有の実装計画アーキテクチャを設計し、作業を細分化し、手順を順序付けるアーキテクチャの選択を承認する
Build計画+キット動作するコード+テスト+追跡用ドキュメントコードを記述し、テストを実行し、キットとの整合性を確認する逸脱や障害要因に注意する
Inspect失敗した検証、ギャップ、手動修正改訂を通じて更新されたキット/計画根本原因を特定し、修正を上流に反映する結果を評価し、優先順位を設定する
Monitor実行中のアプリケーション、Git の履歴問題、異常、進捗レポートリグレッションを検出し、指標を提示するレポートを解釈し、次のステップを導く
フェーズの移行

次のフェーズに移る前に、各フェーズのゲート条件を満たす必要があります。

  1. Draft → Architect: すべてのドメインに、テスト可能な受け入れ基準を備えたキットがあります。人間が完全性を確認しています。
  2. Architect → Build: 計画でキットを参照し、実装の順序を定義し、テスト戦略を含めています。アーキテクチャ上の決定が検証済みです。
  3. Build → Inspect: コードがビルドされ、現在のカバレッジレベルでテストに合格し、実装の進捗状況が最新です。
  4. Inspect → Monitor: 収束が検出されています(反復ごとに変更が減少しています)。残りの変更は軽微です。
  5. Monitor → Draft(サイクル): ギャップが見つかった、または新しい要件が特定されました。キットを改訂し、サイクルを再開します。

人間がレビュアーおよび意思決定者として機能し、実際にコーディングを行わないのがInspectフェーズです。プロセスを監視し、必要に応じて変更を依頼し、キットとプロンプトを体系的に改善します。

Hunt フェーズの全リファレンスについては、references/hunt-phases.md を参照してください。


意思決定マトリックス:Cavekit を使用するタイミング

フル Cavekit

プロジェクトのスコープが大きい場合、要件が変化する場合、またはエージェントによる自律的な実行が必要な場合に使用します。

指標しきい値
コードベースの規模ソースファイルが50個以上
要件変化する、複数のドメインにまたがる
エージェントの連携マルチエージェントまたは複数プロンプトのパイプライン
環境本番環境、セキュリティ重視、既存システム
チーム構成複数チームまたはチーム間連携
実行モード長時間にわたる自律的な作業(夜間、無人)

得られるもの: Hunt の全ライフサイクル、キット/計画/実装の進捗管理を含むコンテキストディレクトリ、プロンプトパイプライン、収束ループ、改訂、検証ゲート。

軽量 Cavekit

スコープが中程度の場合、つまりアドホックな進め方では複雑すぎるものの、フルパイプラインを導入するほどではない場合に使用します。

指標しきい値
コードベースの規模ファイル数が5~50個
要件ほぼ明確で、対象が絞られている
エージェントの連携単一のエージェント。サブエージェントを使用する場合もあります
実行モード反復ループをときどき実行する対話形式

実施内容:

  1. 要件をまとめた context/kits/cavekit-task.md を作成します
  2. 実装の順序を定めた context/plans/plan-task.md を追加します
  3. Hunt 全体は省略し、計画に沿って反復ループを実行します

これが「Cavekit の最低限」です。複数フェーズのフルパイプラインのようなオーバーヘッドをかけずに、メリットの大部分を得られます。

Cavekit を省略する

タスクがごく小規模な場合に使用します。

指標しきい値
コードベースの規模ファイル数が5個未満
タスクの種類一度限りのツール、簡単なバグ修正、探索的なプロトタイプ
実装外部参照を必要とせず、1回のエージェントセッションで無理なく完了できる

目安: タスク全体が余裕をもって1つのコンテキストウィンドウに収まるなら、フル Cavekit は価値よりもオーバーヘッドのほうが大きくなります。

拡張の進め方

プロジェクトが小規模でも、まずは軽量 Cavekit から始めます。スコープが拡大しても、拡張するための構造がすでに整っています。大規模なコードベースに後からキットを追加するより、最初から cavekit ディレクトリを拡張していくほうがはるかに簡単です。


CI パイプラインとの類似性

Cavekit はビルドパイプラインを模しています。各段階で入力を検証済みの出力に変換し、フィードバックループを通じて修正を上流へ反映します。

Traditional CI/CD:
  Code → Build → Test → Deploy

Cavekit AI Pipeline:
  Cavekit Change
    → Generate Plans (iteration loop)
    → Generate Implementation (iteration loop)
    → Validate (Tests + Review)
    → Human Audit (Monitor & Steer)
    → [Gap Found]
    → Revise
    → Cavekit Change (cycle repeats)

各段階は反復ループとして実行できます。出力が安定するまで、同じプロンプトを繰り返し実行します。この反復ループによって、非決定的な LLM の出力が、予測可能で検証済みのソフトウェアへと変換されます。

イテレーションループ

イテレーションループは、Cavekit における基本的な実行単位です。同じプロンプトを同じコードベースに対して複数回実行し、実行間の差分がほぼゼロになるまで繰り返します。

仕組み:

  1. 現在のコードベースに対してプロンプトを実行します
  2. エージェントが git の履歴と追跡ドキュメントを調べ、これまでに完了した作業を把握します
  3. エージェントが変更を適用し、進捗をコミットします
  4. ステップ 1 に戻ります

収束の兆候: 繰り返すごとに変更量が減っていき、差分が毎回小さくなり、最後には見た目上の変更だけが残ることです。目指すのは完全なゼロではなく、効果が徐々に小さくなる状態です。

ループが安定しない場合、問題は上流にあります。繰り返し回数ではなく、入力(仕様、検証、調整)を改善してください。

実行間で差分が小さくならない場合:

  • キットの内容が曖昧で、エージェントが実行のたびに異なる解釈をしています
  • 検証基準が緩すぎて、エージェントが正しくできたか確認できません
  • 複数のエージェントが互いの作業を上書きしており、担当範囲が明確ではありません

サブスキル間の相互参照

Cavekit は連携して機能するテクニックで構成されています。この方法論スキルはインデックスであり、以下の各サブスキルはそれぞれ独立している一方、ほかのスキルも相互に参照します。

基礎スキル
スキル目的使用するタイミング
ck:cavekit-writingテスト可能な受け入れ基準を備えた、実装に依存しないキットを作成しますドラフトフェーズ — 常に最初のステップです
ck:context-architecture段階的開示を前提にコンテキストを整理しますプロジェクトのセットアップ時および継続的なメンテナンス時
ck:impl-tracking実装の進捗、行き詰まり、テストの健全性を追跡します構築フェーズおよび検査フェーズ
ck:validation-firstエージェントが実行できる検証ゲートを設計しますすべてのフェーズ — 検証は継続的に行います
パイプラインスキル
スキル目的使用するタイミング
ck:prompt-pipelineHunt 用の番号付きプロンプトパイプラインを設計します自動化のセットアップ時
ck:revisionバグをキットまでたどり、根本原因から修正します検査フェーズ — 問題を見つけた後
cavekit:brownfield-adoption既存のコードベースに Cavekit を導入しますレガシープロジェクトで Cavekit を開始するとき
高度なスキル
スキル目的使用するタイミング
ck:peer-review2 つ目のエージェントを使って、最初のエージェントの成果を検証します品質ゲート、アーキテクチャレビュー
cavekit:speculative-pipeline並列化のためにパイプラインの各段階をずらして実行します長いパイプラインを最適化するとき
ck:convergence-monitoring収束と上限への到達を検出しますイテレーションループの監視
cavekit:documentation-inversionドキュメントをエージェントが利用できるスキルに変換しますライブラリ/モジュールのドキュメント作成
既存のスキルとの連携

Cavekit は既存のスキルを置き換えるのではなく、既存のスキルと連携して機能します。

既存のスキルCavekit との連携
superpowers:brainstorming要件を検討するため、cavekit の生成時に使用します
superpowers:writing-plans構造化された計画を立てるため、計画の生成時に使用します
superpowers:test-driven-developmentCavekit 内での TDD:cavekit の受け入れ基準を失敗するテストにします
superpowers:verification-before-completion各フェーズのゲート検証に使用します
superpowers:executing-plans実装フェーズで使用します
superpowers:dispatching-parallel-agentsエージェントチームの調整に使用します

クイックスタート

新規プロジェクトの場合(グリーンフィールド)
  1. コンテキストディレクトリをセットアップします:

    context/
    ├── refs/           # Source materials (PRDs, language specs, research)
    ├── kits/     # Implementation-agnostic kits
    ├── plans/          # Framework-specific implementation plans
    ├── impl/           # Living implementation tracking
    └── prompts/        # Hunt pipeline prompts
    
  2. 参考資料をもとにキットを作成します(ck:cavekit-writing を参照)

  3. キットから計画を生成します(ck:prompt-pipeline を参照)

  4. 検証ゲートを設けて実装します(ck:validation-first を参照)

  5. 実装ドキュメントで進捗を追跡します(ck:impl-tracking を参照)

  6. 反復します — 問題が見つかったら、キットを修正します(ck:revision を参照)

既存のプロジェクトの場合(ブラウンフィールド)
  1. コンテキストディレクトリを設定する(上記と同じ構成)
  2. 既存のコードベースを参考資料として指定する
  3. コードからキットを生成する(cavekit:brownfield-adoption を参照)
  4. キットが動作と一致していることを検証する — 生成したキットに対してテストを実行します
  5. 通常の Hunt に進む — 今後の変更はまずキットを通じて行います

まとめ

Cavekit はツールではなく、方法論です。基本的なサイクルはシンプルです。

  1. 実現したいことを記述する(テスト可能な基準を含むキット)
  2. エージェントに構築させる(計画 → 実装 → 検証)
  3. コードではなくキットを修正する(改訂)
  4. 収束するまで繰り返す(反復ループ)

エージェントは、制約をより正確に設定するほど、より高い能力を発揮します。明確なキット、自動検証、構造化された反復ループによって、エージェントは自律性を高めながら作業できます。これによってソフトウェアエンジニアが不要になるわけではありません。アーキテクチャに関する判断力、正確なキットを書く能力、「完了」がどのような状態かを見極める直感が、システム全体を機能させるための入力となります。Cavekit は力を増幅するものです。1 人のエンジニアの明晰な思考を、実装パイプライン全体に広げます。

コメント