{"id":51398790,"url":"https://github.com/revfactory/harness-for-agy","last_synced_at":"2026-07-04T04:38:22.482Z","repository":{"id":360220711,"uuid":"1249209056","full_name":"revfactory/harness-for-agy","owner":"revfactory","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-25T14:27:05.000Z","size":22,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-25T15:24:52.238Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/revfactory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-25T13:12:20.000Z","updated_at":"2026-05-25T14:27:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/revfactory/harness-for-agy","commit_stats":null,"previous_names":["revfactory/harness-for-agy"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/revfactory/harness-for-agy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revfactory%2Fharness-for-agy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revfactory%2Fharness-for-agy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revfactory%2Fharness-for-agy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revfactory%2Fharness-for-agy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/revfactory","download_url":"https://codeload.github.com/revfactory/harness-for-agy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/revfactory%2Fharness-for-agy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35110270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-04T02:00:05.987Z","response_time":113,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-07-04T04:38:21.821Z","updated_at":"2026-07-04T04:38:22.469Z","avatar_url":"https://github.com/revfactory.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# harness-for-agy\n\n\u003e Google **Antigravity CLI(`agy`)** 를 위한 하네스(Harness) 메타 스킬.\n\u003e 도메인에 특화된 다중 에이전트 팀, 그들이 사용할 커스텀 스킬, 그리고 이들을 묶는 **오케스트레이터**까지 한 번에 스캐폴딩합니다.\n\n이 프로젝트는 [`revfactory/harness`](https://github.com/revfactory/harness)(Claude Code 용 메타 스킬)를 **Antigravity CLI(`agy`)** 환경에 맞게 재구성한 포팅입니다. Claude Code 의 `~/.claude/skills/` 규약 대신, `agy` 가 인식하는 스킬 디렉토리 규약(`~/.gemini/antigravity-cli/skills/`)을 따르고, Antigravity 런타임의 `define_subagent` / `invoke_subagent` / `send_message` API 를 적극 활용하는 방향으로 확장했습니다.\n\n---\n\n## 무엇을 하는 스킬인가\n\n`/harness` 한 줄로 다음 산출물을 자동 생성·점진적으로 보완합니다.\n\n1. **프로젝트 비전 \u0026 협업 강령** — 루트의 `AGENTS.md` (변경 이력 테이블 누적)\n2. **전문 에이전트 페르소나** — `.agents/agents/\u003cAgentName\u003e.md` + Antigravity flat 규격 `agent.json` 실행 프로필\n3. **에이전트가 협업할 때 사용할 커스텀 스킬들** — `.agents/skills/\u003cskill-folder\u003e/SKILL.md`\n4. **오케스트레이터 스킬** — `.agents/skills/orchestrator/SKILL.md` (메인 에이전트가 서브 에이전트를 기동·조율)\n5. **중간 산출물 격리 폴더** — 모든 임시 산출물을 `_workspace/` 하위로 강제 격리\n\n즉, \"React 테스트 자동화 팀 만들어줘\", \"데이터 분석 파이프라인 전용 에이전트 짜줘\" 같은 한 문장 요청을, **곧바로 가동 가능한 에이전트 팀 + 스킬 + 오케스트레이션 루프**로 변환합니다.\n\n---\n\n## 설치\n\n### 1) `agy` CLI 설치\n\n```bash\n# Google Antigravity CLI 가 이미 설치되어 있어야 합니다.\nagy --version\n```\n\n설치되어 있지 않다면 [Antigravity 공식 사이트](https://antigravity.google/cli)의 안내를 따르세요.\n\n### 2) 스킬 배치\n\n`agy` 가 인식하는 사용자 스킬 경로(`~/.gemini/antigravity-cli/skills/`)에 `skills/harness/` 디렉토리를 그대로 복사합니다.\n\n```bash\ngit clone https://github.com/revfactory/harness-for-agy.git\nmkdir -p ~/.gemini/antigravity-cli/skills\ncp -R harness-for-agy/skills/harness ~/.gemini/antigravity-cli/skills/harness\n```\n\n설치 후 `agy` 세션에서 `/harness` 가 슬래시 커맨드로 노출됩니다.\n\n---\n\n## 사용법\n\n```text\n$ agy\n\u003e /harness React + Vitest 테스트 자동화 팀을 구성해줘\n```\n\n스킬이 활성화되면 에이전트는 아래 6단계 워크플로우를 정확히 따릅니다.\n\n| Step | 단계 | 요약 |\n| --- | --- | --- |\n| 1 | **Domain Analysis** | 요청 도메인·스택·사용자 수련도(초/중/고급) 판별 |\n| 2 | **Architecture Design** | 6대 오케스트레이션 패턴 중 최적 패턴 선택 및 `AGENTS.md` 구조화 |\n| 3 | **Agent Configuration** | `.agents/agents/\u003cAgentName\u003e.md` + `agent.json` 프로필 생성·갱신 |\n| 4 | **Skill Configuration** | `.agents/skills/\u003cskill-folder\u003e/SKILL.md` 표준 규격으로 생성·리팩토링 |\n| 5 | **Orchestrator Skill** | `.agents/skills/orchestrator/SKILL.md` 로 협업 루프 구현 |\n| 6 | **Review \u0026 Test** | `define_subagent` 실호출로 즉시 등록 → `invoke_subagent`/`send_message` 시뮬레이션 → 트리 출력 및 자연어 활용 예시 안내 |\n\n\u003e 💡 같은 디렉토리에서 `/harness` 를 다시 호출하면 기존 `AGENTS.md` / `.agents/` 구조를 **진단(Review)** 하고 격차를 분석(Gap Analysis)하여 점진적으로 보완하는 모드로 동작합니다. 이 경우 별도의 구현 계획서(implementation plan) 없이 곧바로 실행됩니다.\n\n---\n\n## 스킬 구성 (Skill Anatomy)\n\n이 레포는 단 하나의 메타 스킬을 정의하며, 그 스킬이 다른 스킬과 에이전트 팀을 만들어내는 구조입니다.\n\n### 레포 디렉토리\n\n```\nharness-for-agy/\n├── README.md\n├── LICENSE\n└── skills/\n    └── harness/\n        └── SKILL.md      # /harness 메타 스킬 본체\n```\n\n### `SKILL.md` Frontmatter 규약\n\n`agy` 의 스킬은 모두 다음 형태의 YAML Frontmatter 로 시작합니다.\n\n```yaml\n---\nname: \u003ckebab-case-name\u003e\ndescription: \u003c3인칭 시점의 기능 설명 + 트리거 조건\u003e\nallowed-tools:\n  - \u003c허용할 도구 1\u003e\n  - \u003c허용할 도구 2\u003e\n---\n```\n\n본문에는 다음 3대 헤더가 **반드시** 포함되어야 합니다.\n\n- `## When to use this skill` — 언제 호출되어야 하는가 (트리거 조건)\n- `## Instructions` — 동작 시 따라야 할 세부 지침\n- `## Workflow` — 순차적으로 실행할 단계\n\n`/harness` 가 생성하는 모든 하위 스킬도 이 규약을 그대로 따릅니다. 즉, 이 메타 스킬은 동시에 **스킬 작성 표준의 참조 구현(reference implementation)** 역할을 합니다.\n\n### 생성되는 산출물 구조\n\n```\n\u003cyour-project\u003e/\n├── AGENTS.md                                # 프로젝트 비전 + 행동 강령 + Change History 테이블\n├── _workspace/                              # 모든 에이전트의 중간 산출물 격리 폴더\n└── .agents/\n    ├── agents/\n    │   ├── \u003cAgentName\u003e.md                   # name/role/description Frontmatter + 행동 가이드\n    │   └── \u003cagent_name\u003e/\n    │       └── agent.json                   # Antigravity flat 규격 런타임 프로필\n    └── skills/\n        ├── orchestrator/SKILL.md            # 메인 에이전트가 장착하는 협업 지휘 스킬\n        ├── \u003cskill-1\u003e/SKILL.md\n        ├── \u003cskill-2\u003e/SKILL.md\n        └── \u003cskill-3\u003e/SKILL.md\n```\n\n### Antigravity `agent.json` 규격\n\n각 에이전트는 마크다운 페르소나 외에, Antigravity CLI 의 **플랫(Flat) JSON** 런타임 프로필을 가집니다.\n\n```json\n{\n  \"name\": \"에이전트 이름\",\n  \"description\": \"에이전트 역할 설명\",\n  \"system_prompt\": \"시스템 지침 및 협업 SOP\",\n  \"enable_write_tools\": true,\n  \"enable_mcp_tools\": true,\n  \"enable_subagent_tools\": false\n}\n```\n\n`Step 6` 에서 메타 스킬은 이 파일을 직접 읽어 **`define_subagent` 를 실제로 호출**해 현재 세션에 에이전트들을 즉시 등록합니다. (등록 누락 방지)\n\n---\n\n## 오케스트레이션 아키텍처 6대 패턴\n\n`/harness` 는 도메인 복잡도와 사용자 수련도에 따라 아래 6가지 패턴 중 최적의 구성을 선택하여 `AGENTS.md` 에 명시합니다.\n\n1. **Pipeline** — 직렬 작업 흐름 (스펙 → 구현 → 검증)\n2. **Fan-out / Fan-in** — 병렬 독립 처리 후 취합\n3. **Expert Pool** — 태스크 유형에 따라 전문가 에이전트 동적 선택\n4. **Producer–Reviewer** — 생성 담당 + 검토/감사 담당의 2단 협업\n5. **Supervisor** — 중앙 마스터 에이전트가 하부를 실시간 디스패치\n6. **Hierarchical Delegation** — 대규모 태스크를 서브에이전트에게 재귀 위임\n\n---\n\n## 사용자 수련도별 차등 구성\n\n요청 분석을 통해 사용자 수련도를 판별하고 구성 난이도를 차등화합니다.\n\n| 수련도 | 아키텍처 | 스킬 구성 | 오케스트레이션 |\n| --- | --- | --- | --- |\n| **초급** | 단순 Pipeline 또는 1~2개 Producer–Reviewer | 1~2개 핵심 단위 스킬 | 단선적 호출, 병렬/비동기 생략 |\n| **중급** | Expert Pool / Pipeline + Producer–Reviewer 복합형 | 모듈화된 기능별 스킬 | 메시징 프로토콜 기반 세미 오토 협업 |\n| **고급** | Hierarchical Delegation / Supervisor 등 하이브리드 | 자율 실행·복구 전략 포함 고급 스킬 | Fan-out/Fan-in + 동적 `define_subagent` + JSON 통신 풀 자율 루프 |\n\n---\n\n## Runtime Collaboration Protocol\n\n생성된 에이전트들은 Antigravity 런타임에서 다음 표준 프로토콜로 협업합니다.\n\n- **라이프사이클** — 세션 시작 시 `.agents/agents/\u003cname\u003e/agent.json` 을 일괄 로드하여 `define_subagent` 로 선등록 → 필요 시 `invoke_subagent` 로 백그라운드 기동 → 반환 `Conversation ID` 로 추적.\n- **메시지 페이로드** — `send_message` 호출 시 텍스트 바디에 다음 JSON 구조를 삽입합니다.\n\n```json\n{\n  \"sender\": \"송신 에이전트명\",\n  \"action\": \"REQUEST_REVIEW | TASK_COMPLETE | REFACTOR_REQUEST | STATUS_UPDATE\",\n  \"target_artifact\": \"/abs/path/to/file\",\n  \"content\": \"요청 사항 상세 설명\",\n  \"metadata\": {\n    \"task_id\": \"...\",\n    \"status\": \"...\",\n    \"additional_context\": \"...\"\n  }\n}\n```\n\n수신 에이전트는 JSON 을 먼저 파싱해 작업 대상과 사양을 식별한 뒤 도구 호출에 임합니다.\n\n---\n\n## `revfactory/harness` 와의 차이점\n\n| 항목 | `revfactory/harness` (원본, Claude Code) | `harness-for-agy` (이 레포) |\n| --- | --- | --- |\n| 대상 CLI | Claude Code | Google Antigravity CLI (`agy`) |\n| 설치 경로 | `~/.claude/skills/` | `~/.gemini/antigravity-cli/skills/` |\n| 스킬 본문 규약 | `SKILL.md` + Claude Code Frontmatter | `SKILL.md` + `agy` Frontmatter (`name`, `description`, `allowed-tools`) |\n| 산출물 위치 | `.claude/agents`, `.claude/skills` | `.agents/agents`, `.agents/skills`, `_workspace/` |\n| 에이전트 런타임 프로필 | — | Antigravity flat `agent.json` 규격 자동 생성 |\n| 오케스트레이션 | 가이드 수준 | **6대 패턴 + 수련도별 차등 + JSON 메시징 프로토콜** 내재화 |\n| 협업 도구 연동 | 일반 도구 | `define_subagent` / `invoke_subagent` / `send_message` 실호출 |\n| 슬래시 호출 | `/harness` (Claude Code) | `/harness` (`agy`) |\n\n핵심 사상 — *\"메타 스킬이 도메인별 에이전트 팀과 보조 스킬을 한꺼번에 만들어낸다\"* — 은 동일하게 유지하되, Antigravity CLI 의 런타임 협업 API 를 일급(first-class) 으로 끌어올렸습니다.\n\n---\n\n## 기여\n\n이슈 및 PR 환영합니다. 새로운 도메인 템플릿(예: 모바일/게임/데이터 엔지니어링)을 제안하실 때는 `/harness` 가 생성한 결과 트리와 `AGENTS.md` 의 Change History 항목을 함께 첨부해 주세요.\n\n---\n\n## License\n\nApache License 2.0. 자세한 내용은 [`LICENSE`](./LICENSE) 파일을 참고하세요.\n\n원본 메타 스킬의 아이디어와 구조에 대한 크레딧은 [`revfactory/harness`](https://github.com/revfactory/harness) 에 있습니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevfactory%2Fharness-for-agy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frevfactory%2Fharness-for-agy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frevfactory%2Fharness-for-agy/lists"}