Communitygithub.com

GAN-Style Harness

GAN에서 영감을 받은 생성기-평가기 에이전트 하네스로, 고품질 애플리케이션을 자율적으로 구축합니다. Anthropic 기반

GAN-Style Harness란 무엇인가요?

이 스킬은 GAN(생성적 적대 신경망)에서 영감을 받은 다중 에이전트 하네스입니다. '생성(Generation)'과 '평가(Evaluation)'를 분리하여 적대적 피드백 루프를 형성함으로써, 단일 에이전트로는 달성하기 어려운 품질 향상을 이끌어냅니다. 플래너, 생성기, 평가기라는 세 가지 에이전트로 구성되며, 플래너는 짧은 프롬프트를 상세한 제품 사양으로 확장하고, 생성기는 이를 구현하며, 평가기는 Playwright MCP를 통해 실제 실행 중인 애플리케이션을 테스트하고 엄격한 기준으로 점수를 매깁니다. 주로 전체 애플리케이션 구축, 고품질 프론트엔드 디자인, 풀스택 프로젝트에 적합하며, 예산이 적거나 단순한 수정 작업에는 적합하지 않습니다. 환경 변수를 통해 최대 반복 횟수, 통과 임계값, 각 에이전트의 모델 등을 세부 조정할 수 있어 유연하게 사용할 수 있습니다.

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

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

GAN-Style Harness 스킬

Anthropic의 장기 실행 애플리케이션 개발을 위한 하네스 설계에서 영감을 받음 (2026년 3월 24일)

생성과 평가를 분리하는 다중 에이전트 하네스입니다. 이는 적대적 피드백 루프를 생성하여 단일 에이전트가 달성할 수 있는 것보다 훨씬 뛰어난 품질을 제공합니다.

핵심 통찰

에이전트가 자신의 작업을 평가하도록 요청받으면, 병적인 낙관론자가 됩니다. 형편없는 결과물을 칭찬하고, 정당한 문제를 스스로 합리화합니다. 그러나 별도의 평가기를 가차 없이 엄격하게 만드는 것은 생성기에게 자기 비판을 가르치는 것보다 훨씬 다루기 쉽습니다.

이는 GAN(생성적 적대 신경망)과 동일한 역학입니다. 생성기는 결과물을 만들고, 평가기는 이를 비판하며, 그 피드백이 다음 반복을 주도합니다.

사용 시기

  • 한 줄 프롬프트로 완전한 애플리케이션 구축
  • 높은 시각적 품질이 필요한 프론트엔드 디자인 작업
  • 코드뿐만 아니라 작동하는 기능이 필요한 풀스택 프로젝트
  • "AI 슬롭" 미학이 용납되지 않는 모든 작업
  • 프로덕션 품질의 결과물을 위해 $50-200을 투자할 의향이 있는 프로젝트

사용하지 말아야 할 때

  • 빠른 단일 파일 수정 (표준 claude -p 사용)
  • 예산이 빡빡한 작업 (<$10)
  • 간단한 리팩토링 (대신 de-sloppify 패턴 사용)
  • 이미 테스트와 함께 잘 명세된 작업 (TDD 워크플로우 사용)

아키텍처

                    ┌─────────────┐
                    │   플래너    │
                    │  (Sonnet)   │
                    └──────┬──────┘
                           │ 제품 사양
                           │ (기능, 스프린트, 디자인 방향)
                           ▼
              ┌────────────────────────┐
              │                        │
              │   생성기-평가기        │
              │     피드백 루프        │
              │                        │
              │  ┌──────────┐          │
              │  │ 생성기   │--구축-->│──┐
              │  │ (Sonnet) │          │  │
              │  └────▲─────┘          │  │
              │       │                │  │ 실제 앱
              │    피드백              │  │
              │       │                │  │
              │  ┌────┴─────┐          │  │
              │  │ 평가기   │<-테스트--│──┘
              │  │ (Sonnet) │          │
              │  │+Playwright│         │
              │  └──────────┘          │
              │                        │
              │   5-15회 반복          │
              └────────────────────────┘

세 가지 에이전트

1. 플래너 에이전트

역할: 제품 관리자 — 간단한 프롬프트를 완전한 제품 사양으로 확장합니다.

주요 동작:

  • 한 줄 프롬프트를 받아 16개 기능, 다중 스프린트 사양을 생성
  • 사용자 스토리, 기술 요구사항, 시각적 디자인 방향 정의
  • 의도적으로 야심차게 설계 — 보수적인 계획은 실망스러운 결과를 초래
  • 평가기가 나중에 사용할 평가 기준 생성

모델: 기본값 Sonnet; GAN_PLANNER_MODEL=opus로 설정하면 더 깊은 사양 확장 가능

2. 생성기 에이전트

역할: 개발자 — 사양에 따라 기능을 구현합니다.

주요 동작:

  • 구조화된 스프린트(또는 최신 모델의 경우 연속 모드)로 작업
  • 코드를 작성하기 전에 평가기와 "스프린트 계약" 협상
  • 풀스택 도구 사용: React, FastAPI/Express, 데이터베이스, CSS
  • 반복 간 버전 관리를 위해 git 관리
  • 평가기 피드백을 읽고 다음 반복에 반영

모델: 기본값 Sonnet; GAN_GENERATOR_MODEL=opus로 설정하면 최대 코딩 능력 발휘

3. 평가기 에이전트

역할: QA 엔지니어 — 코드뿐만 아니라 실제 실행 중인 애플리케이션을 테스트합니다.

주요 동작:

  • Playwright MCP를 사용하여 실제 애플리케이션과 상호작용
  • 기능을 클릭하고, 양식을 작성하고, API 엔드포인트 테스트
  • 네 가지 기준(구성 가능)으로 점수 평가:
    1. 디자인 품질 — 일관된 전체로 느껴지는가?
    2. 독창성 — 템플릿/AI 패턴 대비 사용자 정의 결정?
    3. 장인정신 — 타이포그래피, 간격, 애니메이션, 미세 상호작용?
    4. 기능성 — 모든 기능이 실제로 작동하는가?
  • 점수와 특정 문제점이 포함된 구조화된 피드백 반환
  • 가차없이 엄격하게 설계 — 평범한 작업을 결코 칭찬하지 않음

모델: 기본값 Sonnet; GAN_EVALUATOR_MODEL=opus로 설정하면 더 강력한 판단력과 도구 사용 가능

평가 기준

기본 네 가지 기준, 각각 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면 충분)

사용법

명령어를 통해

# 전체 세 에이전트 하네스
/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-20014-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.

관련 스킬