Fragments of verbose memory

冗長な記憶の断片 - Web技術のメモをほぼ毎日更新

Jan 31, 2026 - 日記

Compound Engineering: 技術的負債を「技術的資産」に変える80:20の法則

compound-engineering-technical-debt-reversal cover image

Every (テック/ビジネス系メディア「Every」を運営)が公開したCompound Engineering Plugin は、AnthropicClaude Code (ターミナル向けAIコーディングアシスタント)用のプラグインです。

「機能を追加するたびにコードベースが複雑になる」——これは従来のソフトウェア開発における常識でした。しかし、Compound Engineering Pluginはこの常識を逆転させます。「機能が増えるほど開発が楽になる」という、一見矛盾した状態を実現する開発手法です。

本記事では、Compound Engineeringの核心である「Plan/Review 80%、実装 20%」という比率の意味と、技術的負債を資産に変える仕組みを解説します。

Compound Engineeringとは?

Compound Engineering は、Every社が実践するAI エージェント時代のソフトウェア開発手法です。従来の開発では「コードを書くほど複雑さが増す」のが常識でしたが、Compound Engineeringでは「コードを書くほど次の開発が楽になる」という逆転現象を実現します。

従来の開発 vs Compound Engineering

従来の開発:

  • 機能追加 → 複雑さ増加 → 次の開発が遅くなる
  • 技術的負債が蓄積
  • コードレビューは「問題発見」が目的

Compound Engineering:

  • 機能追加 → 知識蓄積 → 次の開発が速くなる
  • 技術的資産が蓄積
  • コードレビューは「学習機会」として機能

この違いを生み出すのが、Plan → Work → Review → Compoundという4ステップのループです。

80:20の法則: なぜ実装は20%なのか

Compound Engineeringの最大の特徴は、時間配分の逆転です。

  • Plan(計画): 40%
  • Review(レビュー): 40%
  • Work(実装): 15%
  • Compound(知識化): 5%

従来の開発では「実装80%、その他20%」という配分が一般的でした。なぜCompound Engineeringでは実装がわずか20%なのでしょうか?

AIエージェントが変えた「コストの逆転」

答えは単純です。AIがコードを書く時代では、コードを書くコストが劇的に下がったからです。

従来の開発(人間がコード記述):

  • コード記述: 難しい・時間がかかる
  • 計画: 比較的簡単
  • レビュー: 時間がかかるが、実装ほどではない

AI時代の開発(AIがコード記述):

  • コード記述: 簡単・速い(AIが担当)
  • 計画: 難しい・重要(人間が担当)
  • レビュー: 難しい・重要(人間が担当)

つまり、ボトルネックが「コード記述」から「計画と品質管理」に移ったのです。

Plan: 40%の時間を計画に使う理由

Compound Engineeringでは、計画フェーズに最も時間をかけます。具体的には以下のステップを踏みます。

1. リサーチフェーズ

AIエージェントに以下を調査させます:

  • コードベース分析: 既存のコード構造、命名規則、設計パターン
  • Git履歴分析: 過去の変更履歴から学習
  • 外部ベストプラクティス: 公式ドキュメント、業界標準の調査
1
2
# Compound Engineering Pluginの例
/workflows:plan "新機能の実装"

このコマンドは、以下を自動実行します:

  1. プロジェクトの既存コードを分析
  2. 関連する技術のベストプラクティスを調査
  3. 実装計画を生成
  4. インタラクティブQ&Aで曖昧な要件を明確化

2. インタラクティブQ&Aフェーズ(v2.27.0で追加)

計画生成後、AIが最大5つの質問を投げかけます:

  • 曖昧な要件の確認
  • エッジケースの扱い
  • 技術的な選択肢の確認

:

Q1: ユーザー認証はJWT方式でよいですか?それともセッション方式?
Q2: エラー時のリトライ回数は何回に設定しますか?
Q3: データベースのインデックスは自動作成しますか?

この質問フェーズにより、実装前に仕様の穴を埋めることができます。

3. 計画の深化(Deepen Plan)

さらに詳細な計画が必要な場合、/deepen-planコマンドで計画を強化できます:

1
/deepen-plan docs/plans/2025-01-15-feature-plan.md

このコマンドは、計画の各セクションに対して並列リサーチエージェントを起動し、以下を追加します:

  • ベストプラクティスと業界パターン
  • パフォーマンス最適化の提案
  • UI/UX改善案(該当する場合)
  • 品質向上とエッジケースの考慮
  • 実装例

結果として、実装レベルの詳細を含む本番対応の計画が完成します。

Work: 15%の時間で実装を完了させる

計画が十分に詳細であれば、実装フェーズは驚くほど短時間で完了します。

Git Worktreeによる並列開発

Compound Engineering Pluginは、Git Worktreeを活用して並列開発を実現します:

1
/workflows:work docs/plans/2025-01-15-feature-plan.md

このコマンドの実行内容:

  1. 新しいGit Worktreeを作成(既存の作業を妨げない)
  2. 計画のチェックリストを順番に実行
  3. タスクごとに増分コミット(バッチコミットではない)
  4. ブランチ保護チェック(mainブランチへの直接コミットを防止)

重要な変更(v2.27.0): 以前はすべてのタスク完了後にまとめてコミットしていましたが、現在はタスクごとに即座にコミットします。これにより:

  • 進捗が可視化される
  • 途中で中断しても作業が失われない
  • レビューが容易になる

計画ファイルのチェックボックス自動更新

実装中、AIエージェントは計画ファイル内のチェックボックスを自動更新します:

実装前:

1
2
3
4
## タスクリスト
- [ ] データベーススキーマ作成
- [ ] API エンドポイント実装
- [ ] テストコード追加

実装後:

1
2
3
4
## タスクリスト
- [x] データベーススキーマ作成
- [x] API エンドポイント実装
- [x] テストコード追加

これにより、計画ドキュメントが生きた進捗管理ツールとして機能します。

Review: 40%の時間で品質と学習を両立

レビューフェーズは、単なる「バグ発見」ではなく、学習機会の創出が目的です。

多角的レビュー体制

Compound Engineering Pluginには、14種類の専門レビューエージェントが含まれています:

エージェントレビュー観点
dhh-rails-reviewerDHH(Ruby on Rails創始者)スタイルの遵守
kieran-rails-reviewerEvery社のRails規約
security-sentinelセキュリティ脆弱性
performance-oracleパフォーマンス最適化
data-integrity-guardianデータ整合性
architecture-strategistアーキテクチャ適合性
code-simplicity-reviewerシンプルさ・保守性
julik-frontend-races-reviewerフロントエンドの競合状態

これらのエージェントを並列実行することで、短時間で多角的なレビューが完了します:

1
/workflows:review

レビューコメントの自動反映

驚くべきことに、AIエージェントは過去のレビューコメントを学習し、同じ問題を事前に修正します。

実例(Every社のブログより):

「Changed variable naming to match pattern from PR #234, removed excessive test coverage per feedback on PR #219, added error handling similar to approved approach in PR #241.」

つまり、AIは以下を自動実行しました:

  • PR #234のレビューで指摘された命名規則を適用
  • PR #219で「テストが過剰」と指摘された基準を適用
  • PR #241で承認されたエラーハンドリングパターンを適用

人間がレビューを開く前に、AIが過去の学習を適用済みという状態です。

Compound: 5%の時間で知識を資産化

最後のステップが、Compound Engineeringの名前の由来である「Compound(複利化)」フェーズです。

学習の永続化

以下の情報を再利用可能な形で記録します:

  1. バグと修正方法
  2. パフォーマンス問題と最適化手法
  3. 新しい問題解決パターン
  4. レビューで得られた知見

これらは以下の形式で保存されます:

  • CLAUDE.md: プロジェクト固有のルール
  • Skills: 再利用可能な知識モジュール
  • Agents: 専門化されたレビュアー定義
  • Commands: 自動化されたワークフロー

複利効果の実例

1回目の実装:

  • 計画: 4時間
  • 実装: 2時間
  • レビュー: 3時間
  • 合計: 9時間

10回目の実装(同じパターン):

  • 計画: 1時間(過去の計画を参照)
  • 実装: 1時間(パターンが確立)
  • レビュー: 0.5時間(AIが事前に問題を修正)
  • 合計: 2.5時間

時間が1/3以下に短縮されます。これが「複利効果」です。

実践例: DHHスタイルの学習と適用

Compound Engineering Pluginには、Ruby on Railsの創始者DHH(David Heinemeier Hansson)のコーディングスタイルを学習したdhh-rails-styleスキルが含まれています。

DHHが避けるもの

このスキルは、37signals(DHHの会社)が意図的に避けているパターンを定義しています:

避けるべきパターン:

  • Service Objects(ビジネスロジックの過度な抽象化)
  • Form Objects(フォーム専用オブジェクト)
  • Decorators(表示ロジックの分離)
  • CSSプリプロセッサ(Sass、Less等)
  • React/Vue(フロントエンドフレームワーク)

代わりに使うもの:

  • Railsの標準機能(ActiveRecord、Controller)
  • Turbo(Hotwire)
  • Stimulus(軽量JavaScript)
  • 標準CSS

AIがDHHスタイルを適用する例

Before(AIが修正前):

1
2
3
4
5
6
7
8
# Service Objectパターン(DHHスタイルでは避ける)
class UserRegistrationService
  def call(params)
    user = User.new(params)
    user.save!
    send_welcome_email(user)
  end
end

After(AIが自動修正):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
# Railsの標準パターン(DHHスタイル)
class UsersController < ApplicationController
  def create
    @user = User.new(user_params)
    if @user.save
      UserMailer.welcome(@user).deliver_later
      redirect_to @user
    else
      render :new
    end
  end
end

AIはdhh-rails-styleスキルを読み込み、コードレビュー前に自動的にDHHスタイルに修正します。

Every社の実績: 1人で5製品を運用

Compound Engineeringの効果は、Every社の実績が証明しています:

  • 5つのソフトウェア製品を社内で運用
  • 各製品は1人が主担当
  • 数千人のユーザーが日常的に使用
  • デモではなく本番環境

従来の開発手法では、1製品に5人のエンジニアが必要だったところを、1人で5製品を運用できるようになりました。つまり、生産性が25倍になった計算です。

Compound Engineering Pluginの使い方

実際にCompound Engineeringを試すには、Claude Codeにプラグインをインストールします。

インストール

1
2
3
# Claude Codeでプラグインをインストール
/plugin marketplace add https://github.com/EveryInc/compound-engineering-plugin
/plugin install compound-engineering

基本的なワークフロー

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
# 1. 計画を作成
/workflows:plan "ユーザー認証機能の追加"

# 2. 計画を深化(オプション)
/deepen-plan docs/plans/2025-01-15-auth-plan.md

# 3. 実装
/workflows:work docs/plans/2025-01-15-auth-plan.md

# 4. レビュー
/workflows:review

# 5. 知識化
/workflows:compound

利用可能なコンポーネント

プラグインには以下が含まれています:

  • 27のエージェント: 専門化されたレビュアー、リサーチャー
  • 20のコマンド: ワークフロー自動化
  • 14のスキル: 再利用可能な知識モジュール
  • 1つのMCPサーバー: Context7(フレームワークドキュメント検索)

OpenCode / Codex対応(実験的)

Compound Engineering Pluginは、Claude Code以外のAIコーディングツールにも対応し始めています。

変換ツール

1
2
3
4
5
# OpenCode形式に変換
bunx @every-env/compound-plugin install compound-engineering --to opencode

# Codex形式に変換
bunx @every-env/compound-plugin install compound-engineering --to codex

これにより、AIコーディングツール間でエージェント定義を共有できる可能性が開けています。

出力先:

  • OpenCode: ~/.opencode/
  • Codex: ~/.codex/prompts/, ~/.codex/skills/

ただし、これらは実験的機能であり、各ツールのフォーマットが進化するにつれて変更される可能性があります。

まとめ

Compound Engineeringは、AIエージェント時代における開発手法の根本的な転換を示しています:

従来の開発:

  • コードを書くことが難しい
  • 機能追加で複雑さが増す
  • 技術的負債が蓄積

Compound Engineering:

  • 計画とレビューが難しい
  • 機能追加で知識が蓄積
  • 技術的資産が複利的に増える

80:20の法則(Plan/Review 80%、実装 20%)は、単なる時間配分ではなく、価値創出の場所が変わったことを示しています。

Every社の実績(1人で5製品運用)が示すように、この手法は単なる理論ではなく、実践可能で効果が実証された開発手法です。

興味のある方は、Compound Engineering Plugin を試してみてください。

参考リンク