Communitygithub.com

GANスタイル・ハーネス

GAN(敵対的生成ネットワーク)に着想を得た生成器と評価器の分離型エージェントハーネス。自律的に高品質なアプリケーションを構築します。Anthropic の研究成果に基づく。

GANスタイル・ハーネス とは?

GANスタイル・ハーネスは、生成と評価を分離し、敵対的なフィードバックループを形成することで、単一エージェントでは達成できない品質を実現するマルチエージェントハーネスです。Anthropic のハーネス設計論文(2026年3月)に着想を得ており、GAN(Generative Adversarial Networks)と同じダイナミクスをエージェントワークフローに応用します。プランナー、ジェネレーター、評価器の3つのエージェントが連携し、開発者は1行のプロンプトから本番品質のアプリケーションを構築できます。主なターゲットプラットフォームは Claude Code で、Sonnet モデルをデフォルトとし、Opus への昇格も可能です。評価器は Playwright MCP を使い、実際のアプリケーションを操作して4つの評価基準(デザイン品質、独創性、職人技、機能性)で厳密にスコアリングし、5~15回のイテレーションで合格閾値(デフォルト7.0)を目指します。単一エージェントよりも約20倍の時間とコストがかかりますが、出力品質は段階的に向上します。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add https://github.com/affaan-m/everything-claude-code/tree/main/skills/gan-style-harness

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

GANスタイル・ハーネススキル

Anthropic の長時間実行アプリケーション向けハーネス設計(2026年3月24日)に着想を得ています

生成と評価を分離し、敵対的なフィードバックループを形成することで、単一エージェントでは達成できない品質を実現するマルチエージェントハーネスです。

核となる洞察

「エージェントに自分の作品を評価させると、彼らは病的な楽観主義者になります。平凡な出力を褒め、正当な問題を言い訳でごまかしてしまいます。しかし、別個の評価器を容赦なく厳格に設計することは、生成器に自己批判を教えるよりもはるかに扱いやすいのです。」

これは GAN(Generative Adversarial Networks)と同じダイナミクスです。生成器(Generator)が生成し、評価器(Evaluator)が批評し、そのフィードバックが次のイテレーションを推進します。

使用すべき場合

  • 1行のプロンプトから完全なアプリケーションを構築する
  • 高い視覚的品質が求められるフロントエンド設計タスク
  • コードだけでなく、実際に動作する機能が必要なフルスタックプロジェクト
  • 「AI スロップ」と呼ばれる美観が許容されないあらゆるタスク
  • 本番品質の出力を得るために50~200ドルを投資したいプロジェクト

使用すべきでない場合

  • 迅速な単一ファイル修正(通常の claude -p を使用)
  • 予算が厳しいタスク(10ドル未満)
  • 単純なリファクタリング(代わりに de-sloppify パターンを使用)
  • テストがすでに明確に定義されたタスク(TDD ワークフローを使用)

アーキテクチャ

                    ┌─────────────┐
                    │   PLANNER   │
                    │  (Sonnet)   │
                    └──────┬──────┘
                           │ プロダクト仕様
                           │ (機能、スプリント、デザイン方針)
                           ▼
              ┌────────────────────────┐
              │                        │
              │   GENERATOR-EVALUATOR  │
              │     フィードバックループ │
              │                        │
              │  ┌──────────┐          │
              │  │GENERATOR │--構築--▶│──┐
              │  │ (Sonnet) │          │  │
              │  └────▲─────┘          │  │
              │       │                │  │ 実際のアプリ
              │    フィードバック        │  │
              │       │                │  │
              │  ┌────┴─────┐          │  │
              │  │EVALUATOR │<-テスト-│──┘
              │  │ (Sonnet) │          │
              │  │+Playwright│         │
              │  └──────────┘          │
              │                        │
              │   5~15回イテレーション │
              └────────────────────────┘

3つのエージェント

1. プランナーエージェント

役割: プロダクトマネージャー — 簡潔なプロンプトを完全なプロダクト仕様に拡張します。

主な動作:

  • 1行のプロンプトを受け取り、16機能、マルチスプリントの仕様を作成
  • ユーザーストーリー、技術要件、ビジュアルデザインの方針を定義
  • 意図的に野心的にします — 保守的な計画は物足りない結果を生みます
  • 評価器が後で使用する評価基準を作成

モデル: デフォルトは Sonnet。より深い仕様拡張には GAN_PLANNER_MODEL=opus で昇格可能

2. ジェネレーターエージェント

役割: 開発者 — 仕様に従って機能を実装します。

主な動作:

  • 構造化されたスプリントで作業(新しいモデルでは継続モードも可能)
  • コードを書く前に評価器と「スプリント契約」を交渉
  • フルスタックツールを使用:React、FastAPI/Express、データベース、CSS
  • イテレーション間のバージョン管理に git を使用
  • 評価器のフィードバックを読み、次のイテレーションに反映

モデル: デフォルトは Sonnet。最大のコーディング能力には GAN_GENERATOR_MODEL=opus で昇格可能

3. 評価器エージェント

役割: QA エンジニア — コードだけでなく、実際に動作しているアプリケーションをテストします。

主な動作:

  • Playwright MCP を使用して実際のアプリケーションと対話
  • 機能をクリック、フォームに入力、API エンドポイントをテスト
  • 4つの基準(設定可能)に従ってスコアリング:
    1. デザイン品質 — 一貫性のある全体として感じられるか?
    2. 独創性 — テンプレートや AI のパターンではなく、独自の判断か?
    3. 職人技 — タイポグラフィ、スペーシング、アニメーション、マイクロインタラクション?
    4. 機能性 — すべての機能が実際に動作するか?
  • 構造化されたフィードバックをスコアと具体的な問題とともに返す
  • 容赦なく厳格になるように設計 — 決して平凡な仕事を褒めない

モデル: デフォルトは Sonnet。より強力な判断力とツール使用には GAN_EVALUATOR_MODEL=opus で昇格可能

評価基準

デフォルトの4つの基準。各1〜10点で評価:

## 評価ルーブリック

### デザイン品質(重み: 0.3)
- 1~3: 汎用的、テンプレート的、「AI スロップ」の美観
- 4~6: 有能だが特筆すべき点はない、慣習に従っている
- 7~8: 特徴的で、一貫性のあるビジュアルアイデンティティ
- 9~10: プロのデザイナーの作品と見分けがつかない

### 独創性(重み: 0.2)
- 1~3: デフォルトの色、既製のレイアウト、個性なし
- 4~6: いくつかの独自の選択があるが、ほとんどは標準的なパターン
- 7~8: 明確な創造的ビジョン、独自のアプローチ
- 9~10: 驚き、喜び、真に斬新

### 職人技(重み: 0.3)
- 1~3: レイアウトが崩れている、状態がない、アニメーションなし
- 4~6: 動作するが粗い、スペーシングが一貫していない
- 7~8: 洗練されている、スムーズなトランジション、レスポンシブ
- 9~10: ピクセルパーフェクト、楽しいマイクロインタラクション

### 機能性(重み: 0.2)
- 1~3: コア機能が壊れている、または不足している
- 4~6: ハッピーパスは動作するが、エッジケースで失敗する
- 7~8: すべての機能が動作し、エラーハンドリングも良好
- 9~10: バグプルーフ、あらゆるエッジケースを処理する

スコアリング

  • 加重スコア = 合計(基準スコア × 重み)
  • 合格閾値 = 7.0(設定可能)
  • 最大イテレーション数 = 15(設定可能、通常5~15で十分)

使用方法

コマンドから

# 完全な3エージェントハーネス
/project:gan-build "かんばんボード、チームコラボレーション、ダークモードを備えたプロジェクト管理アプリを作成"

# カスタム設定
/project:gan-build "レシピ共有プラットフォームを作成" --max-iterations 10 --pass-threshold 7.5

# フロントエンドデザインモード(プランナーなし、ジェネレーター + 評価器のみ)
/project:gan-design "暗号通貨ポートフォリオトラッカーのランディングページを作成"

シェルスクリプトから

# 基本
./scripts/gan-harness.sh "音楽ストリーミングダッシュボードを作成"

# オプション付き
GAN_MAX_ITERATIONS=10 \
GAN_PASS_THRESHOLD=7.5 \
GAN_EVAL_CRITERIA="functionality,performance,security" \
./scripts/gan-harness.sh "タスク管理用のREST APIを作成"

Claude Code から(手動)

# ステップ1: 計画
claude -p --model sonnet "あなたはプロダクトプランナーです。PLANNER_PROMPT.md を読んでください。次の簡潔なプロンプトを完全なプロダクト仕様に拡張してください:'かんばんボードアプリを作成'。仕様を spec.md に書き出してください。"

# ステップ2: 生成(イテレーション1)
claude -p --model sonnet "あなたはジェネレーターです。spec.md を読んでください。スプリント1を実装してください。開発サーバーをポート3000で起動してください。"

# ステップ3: 評価(イテレーション1)
claude -p --model sonnet --allowedTools "Read,Bash,mcp__playwright__*" "あなたは評価器です。EVALUATOR_PROMPT.md を読んでください。http://localhost:3000 で実際のアプリケーションをテストしてください。ルーブリックに従ってスコアリングしてください。フィードバックを feedback-001.md に書き出してください。"

# ステップ4: 生成(イテレーション2 — フィードバックを読む)
claude -p --model sonnet "あなたはジェネレーターです。spec.md と feedback-001.md を読んでください。すべての問題に対処し、スコアを向上させてください。"

# 合格閾値に達するまでステップ3~4を繰り返す

モデル能力の進化に伴う変化

ハーネスはモデルの改善に伴って簡素化されるべきです。Anthropic の進化に従います:

ステージ1 — 弱いモデル(Sonnet クラス)

  • 完全なスプリント分解が必要
  • スプリント間でコンテキストをリセット(コンテキスト不安を回避)
  • 最小2エージェント:初期化エージェント + コーディングエージェント
  • 大量の足場がモデルの限界を補う

ステージ2 — 能力の高いモデル(Opus 4.5 クラス)

  • 完全な3エージェントハーネス:プランナー + ジェネレーター + 評価器
  • 実装フェーズごとのスプリント契約
  • 複雑なアプリ向けの10スプリント分解
  • コンテキストリセットは依然として有用だが、重要性は低い

ステージ3 — フロンティアモデル(Opus 4.6 クラス)

  • 簡素化されたハーネス:単一計画フェーズ、継続生成
  • 評価は単一の最終パスに縮小(モデルがより賢い)
  • スプリント構造は不要
  • 自動圧縮がコンテキストの増大を処理

重要原則: すべてのハーネスコンポーネントは、モデルが単独では何ができないかという前提をコード化しています。モデルが改善されたら、それらの前提を再テストしてください。もう必要ないものを削ぎ落としてください。

設定

環境変数

変数デフォルト値説明
GAN_MAX_ITERATIONS15ジェネレーター・評価器サイクルの最大数
GAN_PASS_THRESHOLD7.0合格するための加重スコア(1~10)
GAN_PLANNER_MODELsonnetプランニングエージェント用モデル
GAN_GENERATOR_MODELsonnetジェネレーターエージェント用モデル
GAN_EVALUATOR_MODELsonnet評価器エージェント用モデル
GAN_EVAL_CRITERIAdesign,originality,craft,functionalityカンマ区切りの評価基準
GAN_DEV_SERVER_PORT3000実際のアプリのポート
GAN_DEV_SERVER_CMDnpm run dev開発サーバー起動コマンド
GAN_PROJECT_DIR.プロジェクトの作業ディレクトリ
GAN_SKIP_PLANNERfalseプランナーをスキップし、仕様を直接使用
GAN_EVAL_MODEplaywrightplaywright、screenshot、code-only から選択

評価モード

モードツール最適な用途
playwrightブラウザ MCP + 実際の対話UI を備えたフルスタックアプリ
screenshotスクリーンショット + 視覚的分析静的サイト、デザインのみ
code-onlyテスト + リンティング + ビルドAPI、ライブラリ、CLI ツール

アンチパターン

  1. 評価器が甘すぎる — イテレーション1ですべてを合格させる場合、ルーブリックが寛大すぎます。スコアリング基準を厳しくし、一般的な AI パターンに対して明示的なペナルティを追加してください。

  2. ジェネレーターがフィードバックを無視する — フィードバックはインラインではなく、ファイルとして渡すようにしてください。ジェネレーターは各イテレーションの開始時に feedback-NNN.md を読み込む必要があります。

  3. 無限ループ — 必ず GAN_MAX_ITERATIONS を設定してください。ジェネレーターが3イテレーション後にスコアの停滞から改善できない場合は、停止し、人間のレビュー用にフラグを立ててください。

  4. 評価器が表面的にテストする — 評価器は Playwright を使用して実際のアプリケーションと対話する必要があります。単にスクリーンショットを撮るだけでは不十分です。ボタンをクリックし、フォームに入力し、エラー状態をテストしてください。

  5. 評価器が自分の修正を褒める — 評価器に修正を提案させ、その修正を評価させることは絶対にしてはいけません。評価器は批評のみを行い、修正はジェネレーターが行います。

  6. コンテキストの枯渇 — 長時間のセッションでは、Claude Agent SDK の自動圧縮を使用するか、主要なフェーズ間でコンテキストをリセットしてください。

結果: 期待できること

Anthropic の公開結果に基づく:

指標単一エージェントGAN ハーネス改善度
時間20 分4~6 時間12~18 倍
コスト9 ドル125~200 ドル14~22 倍
品質かろうじて機能する本番品質段階的変化
コア機能壊れているすべて動作N/A
デザイン一般的な AI スロップ特徴的で洗練されているN/A

トレードオフは明らかです: 約20倍の時間とコストをかけることで、出力品質が段階的に向上します。これは品質が重要なプロジェクト向けです。

参考文献

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

accessibility

Design, implement, and audit inclusive digital products using WCAG 2.2 Level AA. Use when building or auditing UI that must meet WCAG 2.2 Level AA, or when reviewing a change for keyboard, contrast, or screen-reader support.

affaan-m/claude-api

Anthropic Claude API patterns for Python and TypeScript. Covers Messages API, streaming, tool use, vision, extended thinking, batches, prompt caching, and Claude Agent SDK. Use when building applications with the Claude API or Anthropic SDKs.

affaan-m/everything-claude-code

End-to-end marketing campaign planning and execution. Covers audience research, positioning, campaign angle definition, landing page copy, email sequences, social posts, ad copy, short-form video scripts, and content calendars. Use as the orchestration layer for multi-channel product launches. Use when planning or executing a multi-channel product launch, or producing landing page, email, social, or ad copy.

affaan-m/everything-claude-code

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/everything-claude-code-conventions

Development conventions and patterns for everything-claude-code. JavaScript project with conventional commits.

affaan-m/frontend-design

Create distinctive, production-grade frontend interfaces with high design quality. Use when the user asks to build web components, pages, or applications and the visual direction matters as much as the code quality.

affaan-m/gget

gget CLI and Python workflow for quick genomic database queries, sequence lookup, BLAST-style searches, enrichment checks, and reproducible bioinformatics evidence logs.

affaan-m/literature-review

Systematic literature-review workflow for academic, biomedical, technical, and scientific topics, including search planning, source screening, synthesis, citation checks, and evidence logging.

affaan-m/motion-ui

Production-ready UI motion system for React/Next.js. Use when implementing animations, transitions, or motion patterns.

affaan-m/project-guidelines-example

Example project-specific skill template based on a real production application.

affaan-m/pubmed-database

Direct PubMed and NCBI E-utilities search workflows for biomedical literature, MeSH queries, PMID lookup, citation retrieval, and API-backed literature monitoring.

affaan-m/scholar-evaluation

Structured scholarly-work evaluation for papers, proposals, literature reviews, methods sections, evidence quality, citation support, and research-writing feedback.

affaan-m/uspto-database

USPTO patent and trademark data workflow for official record lookup, PatentSearch queries, TSDR checks, assignment data, and reproducible IP research logs.

agent-architecture-audit

Full-stack diagnostic for agent and LLM applications. Audits the 12-layer agent stack for wrapper regression, memory pollution, tool discipline failures, hidden repair loops, and rendering corruption. Produces severity-ranked findings with code-first fixes. Essential for developers building agent applications, autonomous loops, or any LLM-powered feature. Use when an agent or LLM feature misbehaves and the failing layer is unknown, or before shipping an agent stack.

agent-eval

Head-to-head comparison of coding agents (Claude Code, Aider, Codex, etc.) on custom tasks with pass rate, cost, time, and consistency metrics. Use when choosing between coding agents, or when a change to an agent setup needs measured pass rate, cost, and time rather than an impression.

agent-harness-construction

Design and optimize AI agent action spaces, tool definitions, and observation formatting for higher completion rates. Use when defining or revising an agent

agentic-engineering

Operate as an agentic engineer using eval-first execution, decomposition, and cost-aware model routing. Use when planning or executing engineering work that agents will carry out end to end.

agentic-os

Build persistent multi-agent operating systems on Claude Code. Covers kernel architecture, specialist agents, slash commands, file-based memory, scheduled automation, and state management without external databases. Use when building a persistent multi-agent system on Claude Code with its own memory, commands, and scheduling.

agent-introspection-debugging

Structured self-debugging workflow for AI agent failures using capture, diagnosis, contained recovery, and introspection reports. Use when an agent run fails and you need a reproducible diagnosis instead of a retry.

agent-payment-x402

Add x402 payment execution to AI agents with per-task budgets, spending controls, and non-custodial wallets. Supports Base through agentwallet-sdk and X Layer through OKX Payments / OKX Agent Payments Protocol. Use when an agent must pay for something itself and needs per-task budgets, spending controls, and a non-custodial wallet.

関連スキル