🦾 技術調査 - harness
目次

🦾 技術調査 - harness

Harness プロジェクトのバナー画像

概要

harness(revfactory/harness)は、Claude Code 向けのメタスキルプラグインです。「このプロジェクト向けの harness を作って」という一言から、ドメイン特化のエージェントチームと専用スキルを自動生成します。

Claude Code エコシステムにおける位置づけ

harness は Claude Code エコシステムを 3 層で捉えたときの L3 Meta-Factory 層 に位置します。各層の役割は以下のとおりです。

役割 代表例
L1: Runtime 層 エージェント・スキルを実際に実行する基盤 Claude Code 本体(CLI / IDE 拡張)
L2: Agent / Skill 層 個別のエージェント定義・スキル定義そのもの .claude/agents/*.md.claude/skills/*/SKILL.md
L3: Meta-Factory 層 L2 のエージェント・スキルを 生成するメタツール群 harness、Archon

L3 はさらに 2 つのサブ層に分かれ、harness は前者を担います。

L3 Meta-Factory 層
├── Team-Architecture Factory  ← harness(チーム構造とメッセージプロトコルを生成)
└── Runtime-Configuration Factory  ← Archon(実行時の決定論的設定を生成)
要素名 説明
Team-Architecture Factory チーム構造・メッセージプロトコル・スキル定義を出力するサブ層
Runtime-Configuration Factory 実行時の確定的な設定を生成するサブ層(Archon が担当)

この層モデルは Martin Fowler の "Harness Engineering" 記事および revfactory/harness の README で整理されています。詳細は本記事末尾の参考リンクを参照してください。

Claude Code の構成要素との関係

harness は Claude Code の Agent Teams・Subagents・Skills の 3 つすべてを活用します。

Claude Code の構成要素 harness との関係
Agent Teams 2 体以上の協調エージェントを TeamCreate + SendMessage + TaskCreate で編成
Subagents エージェント間通信が不要な単発タスクを直接呼び出しで処理
Skills Progressive Disclosure 方式でコンテキスト効率を高めた専用スキルを自動生成

harness を実行すると、.claude/agents/.claude/skills/ 配下に Markdown 形式のエージェント定義とスキルファイルが生成されます。

類似ツールとの比較

revfactory エコシステム内の関連リポジトリ

リポジトリ 位置づけ harness との関係
revfactory/harness Team-Architecture Factory(本体)
revfactory/claude-code-harness 研究・実験リポジトリ harness の効果を A/B テストで検証した実験実装
revfactory/harness-100 プロダクション向けテンプレート集 harness が生成したチームの実例 100 件(英語・韓国語で計 200 件)

周辺ツールとの比較

ツール 層・位置づけ harness との関係
Archon L3 / Runtime-Configuration Factory 隣接サブ層。実行時の決定論的設定が必要な場合に選択
meta-harness L3(Codex ポート) 同一コンセプトの別ランタイム実装
ECC harness の上位層 複数 harness をまたぐワークフローの標準化を担う
wshobson/agents エージェント・スキルカタログ harness が設計したチームのパーツ供給元
LangGraph 状態グラフ型オーケストレーション 長期実行・状態回復が必要なシステム向けの別トラック

手動構成方式との比較

比較項目 手動構成(従来方式) harness(自動生成)
自動化レベル なし(設計・定義をすべて手動で記述) 高(プロンプト一文から自動生成)
対象ユーザー エージェント設計の知識を持つ開発者 ドメイン知識はあるがエージェント設計を知らないユーザー
成果物 個別作成の Markdown ファイル .claude/agents/.claude/skills/ の構造化ファイル群
再現性 担当者依存 6 種のアーキテクチャパターンに基づく一定品質

A/B テスト結果

revfactory/claude-code-harness リポジトリで実施した 15 タスク(Basic・Advanced・Expert 各 5 件)の比較実験結果です。

指標 harness なし harness あり 変化
平均品質スコア 49.5 79.3 +60%
勝率 15/15(100%)
出力ばらつき −32%

タスク難易度別の品質向上幅は、Basic +23.8 点、Advanced +29.6 点、Expert +36.2 点であり、タスクが複雑になるほど改善効果が大きくなります。著者による計測値(n=15)であり、第三者による再現検証は未実施です。

特徴

  • メタスキルとしての自律生成: 単一のプロンプトから、エージェント定義・スキル・オーケストレーション設定を一括生成
  • 6 種のアーキテクチャパターン: Pipeline・Fan-out/Fan-in・Expert Pool・Producer-Reviewer・Supervisor・Hierarchical Delegation から最適なパターンを自動選択
  • Progressive Disclosure によるコンテキスト最適化: 詳細情報を必要なときだけロードし、コンテキストウィンドウを効率的に使用
  • 2 つの実行モード: 複数エージェントが協調する Agent Teams モードと、単体で動作する Subagents モードを使い分け
  • 検証フレームワーク内蔵: トリガー検証・ドライランテスト・A/B 比較テストで生成物の品質を担保
  • 進化ループ: 初期設計と最終成果物の差分を蓄積し、次回生成の品質を継続改善
  • harness-100 によるテンプレート提供: 10 ドメイン・100 種のプロダクション対応チーム構成を参照可能

ユースケース別推奨パターン

ユースケース 推奨パターン 適用例
Deep Research Fan-out/Fan-in または Expert Pool 複数視点からのクロスバリデーション調査
Software Dev Pipeline または Hierarchical Delegation 設計・フロントエンド・バックエンド・QA の連携
Content Producer-Reviewer 執筆・編集・一貫性チェックの分業
Code Review Fan-out/Fan-in セキュリティ・パフォーマンス・スタイルの並列レビュー

Deep Research チームの構成例(Fan-out/Fan-in パターン)

エージェント 役割 担当スキル例
orchestrator タスク配分・結果統合 research-orchestrator/SKILL.md
source-analyst 公式情報・一次資料の収集 source-analysis/SKILL.md
community-analyst コミュニティ・二次資料の収集 community-analysis/SKILL.md
synthesis-agent 並列収集結果のクロスバリデーション統合 synthesis/SKILL.md
qa-agent 境界整合性の検証 qa/SKILL.md

Code Review チームの構成例(Fan-out/Fan-in パターン)

エージェント 役割 担当スキル例
orchestrator レビュー範囲の配分と結果集約 review-orchestrator/SKILL.md
security-reviewer 脆弱性・認可・データ漏洩の検査 security-review/SKILL.md
performance-reviewer 計算量・メモリ・I/O 効率の検査 performance-review/SKILL.md
style-reviewer コーディング規約・命名・可読性の検査 style-review/SKILL.md
synthesis-agent 優先度付きレポートの統合 synthesis/SKILL.md

構造

Agent Team モードの概念図

システムコンテキスト図

ドメイン説明を入力 スキル・エージェント定義を生成 Harness スキルを実行 生成されたエージェント・スキルを実行 生成結果を利用 開発者 Harness メタスキル Claude Code ランタイム 生成されたプロジェクト
要素名 説明
開発者 Harness にドメイン説明を与え、生成されたエージェントチームとスキルを利用するユーザー
Harness メタスキル ドメイン説明を受け取り、エージェントチームとスキルを自動生成するメタスキル
Claude Code ランタイム Harness スキルおよび生成されたスキル・エージェントを実行するプラットフォーム
生成されたプロジェクト Harness が出力するエージェント定義・スキル定義・ワークスペースの総体

コンテナ図

Harness スキルパッケージ Claude Code ランタイム 生成物 スキル登録 トリガー時にロード エージェント・スキル生成を指示 定義ファイルを書き出し 定義ファイルを書き出し 作業ファイルを配置 条件付きロード SKILL.md スキル本体 references 参照ドキュメント群 plugin.json プラグイン定義 スキルローダー エージェントエグゼキューター agents ディレクトリ skills ディレクトリ workspace ディレクトリ

Harness スキルパッケージ — 要素説明

要素名 説明
SKILL.md スキル本体 Harness の主要な実行仕様。500 行以内に収め、詳細は references/ に委譲
references 参照ドキュメント群 条件に応じてロードされる補助ドキュメント群。Progressive Disclosure を実現
plugin.json プラグイン定義 Claude Code のスキルローダーに対してスキル名・説明・バージョンを宣言するマニフェスト

Claude Code ランタイム — 要素説明

要素名 説明
スキルローダー plugin.json のメタデータを読み込み、ユーザー入力に合致した場合に SKILL.md をトリガー
エージェントエグゼキューター Agent Teams モードおよび Subagents モードでエージェントを実行する Claude Code の実行基盤

生成物 — 要素説明

要素名 説明
agents ディレクトリ .claude/agents/ に配置するエージェント定義ファイル群。各ファイルは役割・原則・プロトコル・エラーハンドリングを含む
skills ディレクトリ .claude/skills/ に配置するスキル定義ファイル群。各スキルは SKILL.md と references/ サブディレクトリから構成される
workspace ディレクトリ _workspace/ として配置する作業領域。エージェント実行中の中間ファイルや最終成果物を保管

コンポーネント図

references ドキュメント群 生成されるエージェント例 生成されるスキル例 6 パターンを適用 エージェント分離原則を提供 エージェント分離原則を提供 テンプレートを適用 具体的チーム構成を参照 Progressive Disclosure を適用 テストケース設計を提供 整合性検証プロトコルを提供 スキルとして利用 スキルとして利用 スキルとして利用 協調呼び出し 協調呼び出し 検証依頼 agent-design-patterns.md orchestrator-template.md team-examples.md skill-writing-guide.md skill-testing-guide.md qa-agent-guide.md orchestrator.md domain-agent-a.md domain-agent-b.md qa-agent.md orchestrator-skill domain-skill

references ドキュメント群 — 要素説明

要素名 説明
agent-design-patterns.md Pipeline・Fan-out/Fan-in・Expert Pool・Producer-Reviewer・Supervisor・Hierarchical Delegation の 6 パターンを定義
orchestrator-template.md Agent Team モード・Subagent モード・Hybrid モードの 3 テンプレートを提供し、各フェーズの処理手順を規定
team-examples.md リサーチチーム・SF 小説執筆チーム・コードレビューチームなど具体的なチーム構成例を収録
skill-writing-guide.md SKILL.md の記述原則、メタデータ規約、Progressive Disclosure の実装方法を説明
skill-testing-guide.md スキルの定性・定量テスト手順、評価サイクル、反復的改善ループを規定
qa-agent-guide.md コンポーネント境界の整合性検証を担う QA エージェントの役割・検証レイヤー・通信プロトコルを定義

生成されるエージェント例 — 要素説明

要素名 説明
orchestrator.md チーム全体のタスク割り当てと進捗管理を担うエージェント定義。model: opus を必須とする
domain-agent-a.md 特定の専門領域に特化したエージェント定義。役割・原則・プロトコル・エラーハンドリングを含む
domain-agent-b.md domain-agent-a と並行または逐次的に協調する別ドメイン専門エージェント定義
qa-agent.md 生成されたコンポーネント間の境界整合性を検証する QA エージェント定義

生成されるスキル例 — 要素説明

要素名 説明
orchestrator-skill オーケストレーターの実行仕様を記述したスキル。orchestrator-template.md を基に生成
domain-skill ドメイン固有の処理手順を記述したスキル。skill-writing-guide.md の原則に基づいて生成

データ

概念モデル

入力 Harness 生成物 agents ディレクトリ skills ディレクトリ 実行時 workspace ディレクトリ 選定 Domain Agent Skill Task Message Workspace ArchitecturePattern

概念モデル補足

関係 説明
Domain → ArchitecturePattern ドメイン分析により 6 パターンから 1 つを選択
ArchitecturePattern → Agent パターンが必要なエージェント構成を決定
Agent → Skill エージェントがスキルを参照・呼び出し
Agent → Message エージェントが SendMessage でメッセージを送受信
Agent → Task エージェントが TaskCreate / TaskUpdate でタスクを操作
Agent → Workspace エージェントが中間成果物を _workspace/ に読み書き
Task → Workspace タスクの成果物がワークスペースに保存

エージェント間データ受け渡し方式

harness は用途に応じて 4 方式を使い分けます。

方式 API リアルタイム性 永続性 適用モード 主な用途
メッセージベース SendMessage Agent Teams 即時調整・進捗確認・割り込み指示
タスクベース TaskCreate / TaskUpdate / TaskGet Agent Teams 依存関係管理・非同期配分・進捗モニタリング
ファイルベース Read / Write Agent Teams / Subagent 大容量成果物・フェーズ間引き継ぎ
戻り値ベース Agent ツールの返り値 Subagent のみ 結果の直接収集

Agent Teams モードのライフサイクルは TeamCreate でチーム編成 → TaskCreate で作業分配 → SendMessage / TaskGet で調整 → TeamDelete でチーム解散の順で進みます。Phase 間でチームを再構成する場合、一度 TeamDelete で解散し、成果物を _workspace/ に保存してから次の TeamCreate を呼び出します(エージェント・チームはネストできないためこの手順が必須です)。

  • ファイルベースは _workspace/ 配下で命名規則 {phase}_{agent}_{artifact}.{ext} に従って配置します。
_workspace/
├── phase1_analyst_domain-summary.md
├── phase2_architect_team-design.md
└── phase3_builder_agent-definitions.md
  • 2 体以上のエージェントが協調する場合は Agent Teams をデフォルトとし、メッセージ・タスク・ファイルを組み合わせます。
  • Subagent モードでは SendMessage / TaskCreate を使えないため、戻り値ベースとファイルベースの 2 方式のみ選択できます。

情報モデル

Domain : string: name : string: description : string: technicalStack : string: userSkillLevel ArchitecturePattern : string: patternType : string: structure : string: useCase Agent : string: name : string: description : string: model : string: agentType : list: coreResponsibilities : list: workPrinciples : string: inputProtocol : string: outputProtocol : string: errorHandling : string: definitionFile Skill : string: name : string: description : boolean: disableModelInvocation : list: allowedTools : string: definitionFile Task : string: title : string: description : string: assignee : list: dependsOn : string: status Message : string: sender : string: recipient : string: content : string: context Workspace : string: rootPath : string: namingConvention : map: phaseOutputs : string: backupPath selects 1 1 composes 1 many references many many creates 1 many sends 1 many reads many 1 stores many 1

属性一覧

Domain
属性 説明
name string ドメイン識別子(例: deep-research)
description string 問題領域の概要
technicalStack string 関連技術スタック
userSkillLevel string ユーザーの習熟度(Phase 1 で判定)
ArchitecturePattern
属性 説明
patternType string Pipeline / Fan-out-Fan-in / Expert-Pool / Producer-Reviewer / Supervisor / Hierarchical-Delegation
structure string エージェント配置の構造説明
useCase string 適用ユースケース
Agent
属性 説明
name string エージェント識別子
description string 役割説明 + トリガーキーワード
model string 使用モデル(常に opus
agentType string general-purpose / custom
coreResponsibilities list 主要機能(2〜4 項目)
workPrinciples list 意思決定ルールと制約
inputProtocol string データ入力仕様
outputProtocol string データ出力仕様
errorHandling string 障害・タイムアウト時の振る舞い
definitionFile string .claude/agents/{name}.md のパス
Skill
属性 説明
name string スキル識別子
description string 主要なトリガー機構(具体的なユースケースを含む。when_to_use フィールドと併用する場合あり)
disable-model-invocation boolean 自動呼び出し無効フラグ
allowed-tools list 使用可能ツール一覧
definitionFile string .claude/skills/{name}/SKILL.md のパス
Task
属性 説明
title string 作業単位の名称
description string 詳細な指示内容
assignee string 担当エージェント名
dependsOn list 依存タスクの識別子リスト
status string pending / in-progress / complete
Message
属性 説明
sender string 送信エージェント名
recipient string 受信エージェント名(または all
content string 情報ペイロード
context string 関連タスク・成果物への参照
Workspace
属性 説明
rootPath string _workspace/ のルートパス
namingConvention string {phase}_{agent}_{artifact}.{ext}
phaseOutputs map フェーズごとの成果物ファイルマップ
backupPath string _workspace_{YYYYMMDD_HHMMSS}/

構築方法

前提条件

  • Claude Code がインストール済みであること
  • バージョン 1.2.0 以降の harness プラグインに対応する Claude Code が必要
  • Agent Teams 機能を有効にするため、環境変数 CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 を設定
export CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1

インストール方法 1: マーケットプレイス経由

Claude Code のプラグインマーケットプレイスを使って 2 ステップでインストールします。

/plugin marketplace add revfactory/harness
/plugin install harness@harness

インストール方法 2: 直接コピー

リポジトリを clone し、スキルディレクトリを手動でコピーします。

git clone https://github.com/revfactory/harness.git
cp -r harness/skills/harness ~/.claude/skills/harness

バージョン確認

インストール後、プラグイン情報でバージョンを確認します。

/plugin list

harness@1.2.0 のように表示されれば正常にインストール済みです。

プラグイン構成

harness/
├── .claude-plugin/
│   └── plugin.json
├── skills/
│   └── harness/
│       ├── SKILL.md
│       └── references/
│           ├── agent-design-patterns.md
│           ├── orchestrator-template.md
│           ├── team-examples.md
│           ├── skill-writing-guide.md
│           ├── skill-testing-guide.md
│           └── qa-agent-guide.md
└── README.md

利用方法

Harness のソーシャル画像

重要パラメータ一覧

パラメータ 役割
CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS 1 Agent Teams 機能を有効化する必須環境変数
Agent 呼び出し時の model "opus" 全エージェントに Opus モデルを指定し品質を最大化

トリガーコマンド

Claude Code のプロンプトに以下のいずれかを入力して harness を起動します。

Build a harness for this project
Design an agent team for this domain
Set up a harness

日本語でも起動できます。

ハーネスを構成して
ハーネス構築して

8 フェーズワークフローの実行

トリガー後、harness スキルは以下の 8 フェーズ(Phase 0〜7)を自動で進行します。なお公式 README は中核となる 6-Phase(Phase 1〜6)を前面に出しており、Phase 0(現況監査)と Phase 7(ハーネス進化・運用保守)は内部 SKILL.md に含まれる拡張フローです。

Phase 0: 現況監査
  ↓
Phase 1: ドメイン分析
  ↓
Phase 2: チームアーキテクチャ設計
  ↓
Phase 3: エージェント定義の生成
  ↓
Phase 4: スキル生成
  ↓
Phase 5: 統合とオーケストレーション
  ↓
Phase 6: 検証とテスト
  ↓
Phase 7: ハーネス進化(フィードバック反映・運用/保守)

フェーズごとの入出力・参照 references 対応表

Phase 入力 出力 参照する references ファイル
Phase 0 既存 .claude/ 配下のファイル 実行モード判定(新規/拡張/保守)
Phase 1 ユーザー要求・プロジェクトコード ドメイン分析結果・技術スタック情報
Phase 2 Phase 1 の分析結果 選択パターン名・エージェント配置・実行モード agent-design-patterns.md, team-examples.md
Phase 3 Phase 2 の設計 .claude/agents/*.md agent-design-patterns.md, qa-agent-guide.md
Phase 4 Phase 3 のエージェント定義 .claude/skills/{name}/SKILL.md skill-writing-guide.md
Phase 5 Phase 3・4 の成果物 オーケストレータースキル、CLAUDE.md ポインタ orchestrator-template.md
Phase 6 Phase 5 の統合成果物 テスト結果、with/without 比較レポート skill-testing-guide.md
Phase 7 本番投入後のフィードバック・差分 次回生成の出発点データ、CLAUDE.md 変更履歴 orchestrator-template.md(Phase 7-5 運用・保守)

Phase 0: 現況監査

  • .claude/agents/.claude/skills/CLAUDE.md を読み込み、既存 harness の状態を確認します
  • 「新規構築」「既存拡張」「運用・保守」の 3 モードに分岐します
  • 監査結果をユーザーに報告し、実行計画の確認を求めます

Phase 1: ドメイン分析

  • ユーザーの要求からドメインと核心的な作業種別を特定します
  • プロジェクトのコードベースを探索し、技術スタック・データモデルを把握します
  • 既存エージェント・スキルとの重複や競合を検出します

Phase 2: チームアーキテクチャ設計

  • 実行モード(Agent Teams / Subagent / Hybrid)を決定します
  • 6 アーキテクチャパターンから最適なものを選択します(agent-design-patterns.md を参照)
  • エージェント分離基準(専門性・並列性・コンテキスト・再利用性)で構成を決定します

Phase 3: エージェント定義の生成

  • 各エージェントを プロジェクト/.claude/agents/{name}.md として出力します
  • 必須セクション: 核心的役割、作業原則、入出力プロトコル、エラーハンドリング、協働方式
  • 全 Agent 呼び出しに model: "opus" パラメータを明示します
  • .claude/agents/{name}.md の最小スケルトン例:
---
name: analyst
description: Domain analysis specialist. Triggered by orchestrator for Phase 1 tasks.
model: opus
---
## Core Responsibilities
- ユーザー要求からドメインと作業種別を特定する
- 技術スタックとデータモデルを把握する

## Work Principles
- 既存スキル・エージェントとの重複を検出して報告する

## Input Protocol
- orchestrator からの `SendMessage` でタスク内容を受領する

## Output Protocol
- `_workspace/phase1_analyst_domain-summary.md` に分析結果を書き出す

## Error Handling
- 要求が曖昧な場合は orchestrator へ追加情報を要求する

Phase 4: スキル生成

  • 各エージェントが使うスキルを プロジェクト/.claude/skills/{name}/SKILL.md として出力します
  • スキル本文は 500 行以内を目標とし、超過する場合は references/ に分離します
  • description はトリガーを積極的に誘導する文章で記述します
  • .claude/skills/{name}/SKILL.md の最小スケルトン例:
---
name: analyze
description: Use when the user requests domain analysis, asks to analyze codebase, or mentions "analyze this project". Triggers automatically on analysis requests.
disable-model-invocation: false
allowed-tools: [Read, Glob, Grep, Bash]
---

# Analyze Skill

## 目的
ドメイン分析を構造化されたワークフローで実行する。

## 手順
1. プロジェクトのコードベースを探索する
2. 技術スタックを `_workspace/phase1_analyst_stack.md` に記録する

## 参照ドキュメント
- 詳細ルールは `references/domain-taxonomy.md` を参照する

Phase 5: 統合とオーケストレーション

  • オーケストレータースキルを 1 つ生成し、エージェント間のデータフローとエラーハンドリングを定義します
  • 中間成果物の保存先として _workspace/ ディレクトリを使用します(ファイル名規則: {phase}_{agent}_{artifact}.{ext}
  • CLAUDE.md にトリガー規則と変更履歴のみを記録します(エージェント一覧は記録しない)
## ハーネス: {ドメイン名}

**目標:** {ハーネスの核心的目標を一行で}

**トリガー:** {ドメイン} 関連の作業要求時に `{orchestrator-skill-name}` スキルを使用する。

**変更履歴:**
| 日付       | 変更内容 | 対象 | 理由 |
| ---------- | -------- | ---- | ---- |
| YYYY-MM-DD | 初期構築 | 全体 | -    |

Phase 6: 検証とテスト

  • 全エージェントファイルの存在・配置を確認します(構造検証)
  • 各スキルに対して 2〜3 個のテストプロンプトを実行します(with-skill vs without-skill 比較)
  • should-trigger クエリ 10 個・should-NOT-trigger クエリ 10 個(合計 20 個)でトリガーを検証します
  • オーケストレーターのフェーズ順序・データ連結・エラー経路をドライランで確認します

Phase 7: ハーネス進化

  • 本番投入直後にフィードバックと差分(delta)を収集し、次回生成の出発点を改善します
  • 既存ハーネスの点検・修正・同期(運用/保守)もこのフェーズの一部として扱います
  • 変更内容は CLAUDE.md の変更履歴テーブルに記録します
  • 修正範囲がトリガーに影響する場合、Phase 6 のトリガー検証を再実行します

6 アーキテクチャパターン概要

パターン 説明 適用シナリオ
Pipeline 前工程の出力が次工程の入力になる順次依存型 要件定義 → 設計 → 実装 → テストの線形フロー
Fan-out/Fan-in 複数エージェントが並列に独立作業し結果を集約 コードレビュー(アーキ・セキュリティ・パフォーマンスを同時検査)
Expert Pool 状況に応じて最適な専門エージェントを選択的に呼び出し ドメインが複数あり、毎回異なる専門知識が必要な場合
Producer-Reviewer 生成エージェントが成果物を作り、レビューエージェントが品質検証 コンテンツ生成・コード生成の品質管理
Supervisor 中央エージェントが状態管理・タスクの動的分配 タスク数が変動し状況に応じてリソース割り当てを変える場合
Hierarchical Delegation 上位エージェントが下位エージェントへ再帰的に委任 大規模プロジェクトで作業を段階的に分解する場合

エージェント構成例と実行モード適性

パターン 構成例 Agent Teams / Subagent 適性
Pipeline 分析 → 設計 → 実装 → 検証 Subagent 寄り。並列区間があれば Teams 化
Fan-out/Fan-in 配分 → 並列ワーカー A/B/C → 統合 Teams 必須(相互発見の共有で品質向上)
Expert Pool ルーター → 専門家 A または B または C Subagent 向き(必要な専門家のみを呼び出し)
Producer-Reviewer 生成 → 検証 → 再生成ループ Teams 推奨(SendMessage でリアルタイムフィードバック)
Supervisor 監督者 → ワーカー A/B/C(動的配分) Teams 最適(共有タスク一覧と自然適合)
Hierarchical Delegation 総括 → チーム長 → 実務者 チームネスト不可のため 2 段階以内に平坦化

生成物の配置と確認方法

ハーネス生成後のプロジェクト構造は以下のとおりです。

your-project/
├── CLAUDE.md
└── .claude/
    ├── agents/
    │   ├── analyst.md
    │   ├── builder.md
    │   └── qa.md
    └── skills/
        ├── orchestrator/
        │   └── SKILL.md
        ├── analyze/
        │   └── SKILL.md
        └── build/
            ├── SKILL.md
            └── references/

生成完了チェックリスト(Phase 6 でも確認されます):

- [ ] .claude/agents/ にエージェント定義ファイルが存在する
- [ ] .claude/skills/ にスキルファイルが存在する(SKILL.md + references/)
- [ ] オーケストレータースキルが 1 つ存在する
- [ ] 全 Agent 呼び出しに model: "opus" が明示されている
- [ ] .claude/commands/ には何も生成されていない
- [ ] CLAUDE.md にハーネスポインタが登録されている
- [ ] スキル description に後続作業キーワードが含まれている

生成された Agent / Skill の実行方法

  • 生成後は、CLAUDE.md に登録されたトリガー語句でオーケストレータースキルが自動起動します
ディープリサーチを実行して
  • 個別エージェントはオーケストレーターが TeamCreate + SendMessage + TaskCreate を使って自律的に管理します
  • 後続作業(再実行・部分修正)もトリガー語句で実行できます
前回の結果を更新して
分析部分だけもう一度やり直して

Harness 100 リポジトリの利用方法

revfactory/harness-100 は harness プラグインで生成された 100 種類のプロダクションレディなハーネスを収録したコレクションです。英語(en/)・韓国語(ko/)の 2 言語で提供され、合計 200 パッケージを含みます。

# カテゴリ ハーネス番号
1 コンテンツ制作 01〜15 YouTube、ポッドキャスト、ゲームナラティブ、コミック、翻訳
2 ソフトウェア開発・DevOps 16〜30 フルスタック、API、CI/CD、セキュリティ監査、IaC
3 データ・AI/ML 31〜42 ML 実験、NLP、RAG/LLM アプリ
4 ビジネス・戦略 43〜55 スタートアップ、市場調査、価格設定、財務モデリング
5 教育・学習 56〜65 言語チューター、試験対策、ディベートシミュレーター
6 法務・コンプライアンス 66〜72 契約書、特許、GDPR/PIPA
7 健康・ライフスタイル 73〜80 食事計画、フィットネス、税務、旅行
8 コミュニケーション・ドキュメント 81〜88 技術文書、SOP、提案書
9 運営・プロセス 89〜95 採用、オンボーディング、調達
10 専門ドメイン 96〜100 不動産、EC、ESG、IP ポートフォリオ

目的に合うハーネスを選び、プロジェクトの .claude/ に直接コピーして使用できます。

git clone https://github.com/revfactory/harness-100.git
cp -r harness-100/en/01-youtube-production/.claude/ /path/to/my-project/.claude/

コピー後は CLAUDE.md のトリガー規則を確認し、プロジェクトのドメインに合わせて編集します。各ハーネスは以下の 3 層スキル構造で提供されます。

スキル層 役割
Orchestrator チーム調整・ワークフロー・エラーハンドリング youtube-production/skill.md
Agent-Extending エージェントの専門知識を拡張するドメイン知識 hook-writing/skill.md
External 既存ツールの呼び出し gemini-3-pro-imagegen

運用

プラグイン更新

Marketplace 経由でインストールした場合は、以下のコマンドで更新します。

/plugin marketplace add revfactory/harness
/plugin install harness@harness

直接インストールした場合は、リポジトリを pull してスキルディレクトリを上書きします。

git pull origin main
cp -r skills/harness ~/.claude/skills/harness
  • 更新後は既存の Agent・Skill ファイルとの互換性を確認します
  • ~/.claude/agents/~/.claude/skills/ 配下の生成済みファイルは上書き対象外のため、手動マージが必要です

Skill バージョン管理

  • 生成された Skill ファイル(~/.claude/skills/{name}/SKILL.md)はプロジェクトの Git で管理します
  • 変更履歴は CLAUDE.md に「変更ログ」として記録します
  • SKILL.md は 500 行以内を維持します。超過分は references/ ディレクトリに分割します

Skill の Evolution(進化)メカニズム

  • /harness:evolve スキルを使って、初期アーキテクチャと本番リリース後のアーキテクチャの差分(delta)を取得します
  • 差分は harness ファクトリーにフィードバックされ、次回生成時の出発点を改善します
/harness:evolve
  • 実行タイミングは「プロジェクト本番投入直後」が推奨です
  • 蓄積された進化データにより、同一ドメインの次回生成品質が向上します

Agent Team のテスト実行

  • テストは「with-skill あり」と「なし」の 2 つのサブエージェントを並行して比較します
  • 最低 2〜3 件の現実的なプロンプトでコアユースケース・エッジケースをカバーします
  • タイミングデータ(トークン数・実行時間)はエージェント完了直後に取得します(後から取得不可)
// eval_metadata.json
{
  "prompt": "...",
  "assertions": []
}
// grading.json
{
  "expectations": [
    { "text": "PDFをMarkdownに変換する", "passed": true, "evidence": "出力に Markdown が含まれる" }
  ],
  "summary": {
    "passed": 2,
    "failed": 0,
    "total": 2,
    "pass_rate": 1.00
  }
}
// timing.json
{
  "tokens": 1234,
  "duration_ms": 5678
}

検証・テスト手順

  1. should-trigger クエリ 10 件で起動確認します
  2. should-NOT-trigger クエリ 10 件(合計 20 件)で誤起動がないことを確認します
  3. エッジケースや near-miss を重点的に検証します
  4. 既存スキルとの description 競合がないことを確認します

ベストプラクティス

6 アーキテクチャパターンの使い分け指針

パターン 選択基準 適した例
Pipeline 前段の出力を次段が必要とする逐次依存 小説執筆(世界観→キャラ→プロット→執筆→編集)
Fan-out/Fan-in 同一入力を複数エージェントが並列処理し集約 多角的リサーチ、複数言語翻訳
Expert Pool 入力タイプに応じて専門家を動的選択 ドメイン横断タスク(Subagent 向き)
Producer-Reviewer 生成と検証をペアで実施 コード生成+レビュー、文書作成+校閲
Supervisor 実行中にタスク配分を動的調整する中央管理 大規模プロジェクト管理
Hierarchical Delegation 複雑問題を再帰的に分解 エンタープライズ階層タスク(2 層推奨)
  • 複合パターンも有効です。例: Fan-out(並列翻訳)+ Producer-Reviewer(ネイティブチェック)
  • 2 つ以上のエージェントが協調する場合は Agent Team をデフォルトとします
  • Subagent はエージェント間通信が「不要」と明確な場合のみ採用します

Progressive Disclosure の 3 層構造

ロードタイミング 内容 サイズ目安
Layer 1: Metadata 常時(スキルローダーが読む) namedescription のみ 約 100 語
Layer 2: SKILL.md 本体 トリガー時に自動ロード Why ベースの手順・原則 500 行以内
Layer 3: references/ 条件が満たされたときのみロード 詳細仕様・ドメイン固有情報 無制限(300 行超は ToC 必須)

各層を分離することで、未使用の詳細情報をコンテキストウィンドウに載せず、トークンコストを最小化しながら精度を維持します。

Progressive Disclosure の黄金則

  • SKILL.md には「常にロードすべきメタデータ」のみ記載します
  • 詳細コンテンツは references/ ディレクトリに分割し、必要時のみロードします
  • 300 行超の参照ファイルには目次(Table of Contents)を必ず付けます
  • すべての文章は「トークンコストを正当化できるか」で取捨選択します
  • Claude がすでに知っている一般知識は記載しません。エラー防止に必要な情報のみ残します
~/.claude/skills/my-skill/
├── SKILL.md
└── references/
    ├── overview.md
    ├── detail-a.md
    └── detail-b.md

命名規約

  • Agent ファイル: ~/.claude/agents/{role-name}.md(ケバブケース、役割を表す名詞)
  • Skill ファイル: ~/.claude/skills/{domain-name}/SKILL.md(ドメイン名 + SKILL.md 固定)
  • description は「何をするか」と「いつ使うか(トリガー条件)」を明示します
<!-- 良い例 -->
Use when PDF files are mentioned, PDFs are requested as output, 
or text/table extraction from PDF occurs.

<!-- 悪い例 -->
A PDF processing skill.

Skill と Agent の責務分離

要素 Skill Agent
配置場所 .claude/skills/ .claude/agents/
役割 「どう行うか」(手順・ツール束) 「誰が行うか」(ペルソナ・原則)
起動方法 キーワードマッチング Agent ツール経由で明示呼び出し
再利用 セッション横断で再利用可 セッション横断で再利用可
  • スキルには「why-first」アプローチで記述します(「ALWAYS 使え」より「なぜそれが良いか」を説明)
  • 一般化を優先します(特定ファイル名への narrow fix より原則レベルの修正)

QA の組み込み方

  • Producer-Reviewer パターンで QA エージェントを配置します
  • QA エージェントは単独コンポーネントの正しさより「コンポーネント間の境界整合性」を検証します
  • 各モジュール完成後に逐次実行します(全工程完了後まとめて実施しない)
  • 検証観点: API レスポンス形状 ↔ フロントエンド型定義、ルーティングパス ↔ ページファイル存在、状態遷移定義 ↔ 実コード
  • 最大リトライ回数は 2〜3 回に制限して無限ループを防止します

エージェント設計のアンチパターン

  • CLAUDE.md への実装詳細の埋め込み: 実装詳細は Agent/Skill ファイルに記載し、CLAUDE.md にはトリガー規則と変更履歴のみを置きます
  • 3 層超の階層化: ネストが 3 層を超えると遅延とコンテキスト消失が増大します。2 層推奨です
  • Agent Team のネスト: チームメンバーはサブチームを生成できません。設計時に注意します
  • 全エージェント opus 未指定: すべての Agent 呼び出しで model: "opus" を明示指定します
  • 500 行超の SKILL.md: コンテキスト肥大化を招くため、超過分を references/ に分割します
  • description の受動的記述: トリガー条件を具体的に列挙しない description は誤起動・未起動の原因になります

トラブルシューティング

症状 原因 対処
Agent Team が起動しない / TeamCreate が使えない CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 が未設定 シェルの環境変数または .envCLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 を追加して再起動
Skill が認識されない description のトリガー条件が曖昧、または他スキルと競合 description に具体的なトリガーキーワードを追加し、should-NOT-trigger テストで競合を確認
Skill が誤起動する description が過剰に広範 should-NOT-trigger クエリ 10 件で境界を検証し、description に除外条件を明記
エージェント間通信が失敗する Subagent モードで SendMessage を使用 Agent Team モード(TeamCreate + SendMessage)を使用しているか確認
Context が肥大化してパフォーマンスが低下する SKILL.md が 500 行超、または references/ の常時ロード設定が多すぎる Progressive Disclosure を徹底し、常時ロード部分を要約のみにする
生成品質が低い Agent 定義ファイルに入出力プロトコルやエラーハンドリング戦略が未記載 .claude/agents/{name}.md にペルソナ・原則・入出力プロトコル・チーム通信パターンを明記
階層が深く遅延が大きい Hierarchical Delegation で 3 層以上ネストしている ネストを 2 層以内に再設計
Producer-Reviewer が無限ループする リトライ上限未設定 最大リトライ回数を 2〜3 に制限する設計に変更
更新後に既存 Agent/Skill が動かなくなった プラグイン更新で参照テンプレートの仕様が変わった 生成済みファイルと最新テンプレートの差分を確認し、必要箇所を手動マージ
/harness:evolve が機能しない harness スキルが正しくインストールされていない、または Agent Team が無効 インストール状態を確認し、CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1 を再設定

まとめ

harness は Claude Code 向けのメタスキルプラグインで、ドメイン説明の一文から 8 フェーズワークフローを通じてエージェントチームと専用スキルを自動生成します。6 種のアーキテクチャパターンと Progressive Disclosure を組み合わせ、A/B テスト(著者計測 n=15・第三者による再現検証は未実施)では品質スコア +60%・全勝という効果が報告されており、Claude Code でドメイン特化エージェントを構築したい開発者にとって有力な選択肢になります。

この記事が少しでも参考になった、あるいは改善点などがあれば、ぜひリアクションやコメント、SNS でのシェアをいただけると励みになります!

参考リンク