Communitygithub.com

GANスタイルハーネス

GANから着想を得たジェネレータ・エバリュエータのエージェントハーネス。Anthropicの設計に基づき、自律的に高品質なアプリケーションを構築します。

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

GANスタイルハーネスは、Anthropicが提唱する長期実行アプリケーション開発のためのハーネス設計に触発された、マルチエージェントシステムです。このスキルは、コード生成を担当する「ジェネレータ」と、生成物を厳格に評価する「エバリュエータ」の2つのエージェントを分離し、敵対的なフィードバックループを形成することで、単一エージェントでは達成できない品質の飛躍を実現します。3つのエージェント(プランナー、ジェネレータ、エバリュエータ)が協調し、仕様策定から実装、実アプリケーションのテストまでを自律的に実行します。主にClaude Code上で動作し、Playwright MCPを通して実際に動作するアプリケーションを評価する点が特徴です。プロジェクトの品質を劇的に向上させる一方で、実行時間とコストは単一エージェントの約20倍になるため、品質が最優先されるプロジェクトに適しています。

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

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

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

ドキュメント

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

Anthropicの長期実行アプリケーション開発のためのハーネス設計(2026年3月24日)に触発されました

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

核となる洞察

エージェントに自身の成果物を評価させると、彼らは病的な楽観主義者になります。凡庸な出力を褒め称え、正当な問題から逃げ回ります。しかし、独立した評価者を冷酷なまでに厳格に設計することは、生成者に自己批判を教えるよりはるかに現実的です。

これはGAN(Generative Adversarial Network)と同じダイナミクスです。Generatorが生成し、Evaluatorが批評し、そのフィードバックが次の反復を駆動します。

使用すべきケース

  • 一行のプロンプトからアプリケーション全体を構築する場合
  • 高い視覚的品質が求められるフロントエンドデザインタスク
  • コードだけでなく、実際に動作する機能が必要なフルスタックプロジェクト
  • 「AIの粗い仕上がり」が許容できないあらゆるタスク
  • プロダクション品質の出力を得るために50~200ドルを投資してもよいプロジェクト

使用すべきでないケース

  • 単一ファイルの簡単な修正(標準の claude -p を使用)
  • 厳しい予算制約のあるタスク(10ドル未満)
  • 単純なリファクタリング(代わりにde-sloppifyパターンを使用)
  • テストがすでに十分に定義されているタスク(TDDワークフローを使用)

アーキテクチャ

                    ┌─────────────┐
                    │  プランナー  │
                    │  (Sonnet)   │
                    └──────┬──────┘
                           │ プロダクト仕様
                           │ (機能、スプリント、デザイン方針)
                           ▼
              ┌────────────────────────┐
              │                        │
              │   ジェネレータ-        │
              │    エバリュエータ      │
              │    フィードバックループ │
              │                        │
              │  ┌──────────┐          │
              │  │ジェネレータ│--構築-->│──┐
              │  │ (Sonnet) │          │  │
              │  └────▲─────┘          │  │
              │       │                │  │ 実アプリ
              │    フィードバック       │  │
              │       │                │  │
              │  ┌────┴─────┐          │  │
              │  │エバリュエータ│<-テスト│──┘
              │  │ (Sonnet) │          │
              │  │+Playwright│         │
              │  └──────────┘          │
              │                        │
              │   5~15回の反復        │
              └────────────────────────┘

3つのエージェント

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: 堅牢で、あらゆるエッジケースを処理する

スコアリング

  • 加重スコア = sum(基準スコア * 重み)
  • 合格しきい値 = 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クラス)

  • 簡略化されたハーネス:1回の計画パス、継続的な生成
  • 評価は1回の最終パスのみに削減(モデルがより賢い)
  • スプリント構造は不要
  • 自動圧縮がコンテキストの成長を処理

重要な原則: ハーネスのすべてのコンポーネントは、モデルが単独ではできないことに関する仮定をコード化しています。モデルが改善されたら、それらの仮定を再テストしてください。不要になったものを取り除いてください。

設定

環境変数

変数デフォルト値説明
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/content-engine

Create platform-native content systems for X, LinkedIn, TikTok, YouTube, newsletters, and repurposed multi-platform campaigns. Use when the user wants social posts, threads, scripts, content calendars, or one source asset adapted cleanly across platforms.

affaan-m/ECC

Multi-platform content distribution across X, LinkedIn, Threads, and Bluesky. Adapts content per platform using content-engine patterns. Never posts identical content cross-platform. Use when the user wants to distribute content across social platforms.

affaan-m/fal-ai-media

Unified media generation via fal.ai MCP — image, video, and audio. Covers text-to-image (Nano Banana), text/image-to-video (Seedance, Kling, Veo 3), text-to-speech (CSM-1B), and video-to-audio (ThinkSound). Use when the user wants to generate images, videos, or audio with AI.

affaan-m/manim-video

日本語翻訳:このファイルは manim-video 用の日本語翻訳が必要です

affaan-m/remotion-video-creation

Remotion のベストプラクティス - React で動画を作成する。3D、アニメーション、音声、字幕、チャート、トランジションなどをカバーするドメイン固有の29のルール。

affaan-m/video-editing

AI-assisted video editing workflows for cutting, structuring, and augmenting real footage. Covers the full pipeline from raw capture through FFmpeg, Remotion, ElevenLabs, fal.ai, and final polish in Descript or CapCut. Use when the user wants to edit video, cut footage, create vlogs, or build video content.

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.

agent-self-evaluation

Use after completing any non-trivial task. The agent self-rates its output on 5 axes — accuracy, completeness, clarity, actionability, conciseness — with concrete evidence per criterion. Produces a structured 1-5 scorecard with specific improvement suggestions.

agent-sort

Build an evidence-backed ECC install plan for a specific repo by sorting skills, commands, rules, hooks, and extras into DAILY vs LIBRARY buckets using parallel repo-aware review passes. Use when ECC should be trimmed to what a project actually needs instead of loading the full bundle.

ai-first-engineering

Engineering operating model for teams where AI agents generate a large share of implementation output. Use when setting team process, review gates, or ownership rules for a codebase largely written by agents.

ai-regression-testing

Regression testing strategies for AI-assisted development. Sandbox-mode API testing without database dependencies, automated bug-check workflows, and patterns to catch AI blind spots where the same model writes and reviews code. Use when adding regression coverage to AI-assisted code, or when the same model both wrote and reviewed a change.

android-clean-architecture

Clean Architecture patterns for Android and Kotlin Multiplatform projects — module structure, dependency rules, UseCases, Repositories, and data layer patterns. Use when structuring modules, layers, or data flow in an Android or KMP project.

angular-developer

Generates Angular code and provides architectural guidance. Trigger when creating projects, components, or services, or for best practices on reactivity (signals, linkedSignal, resource), forms, dependency injection, routing, SSR, accessibility (ARIA), animations, styling (component styles, Tailwind CSS), testing, or CLI tooling.

関連スキル