{"id":49855358,"url":"https://github.com/claude-genasis/genasis","last_synced_at":"2026-05-14T20:00:57.874Z","repository":{"id":355523069,"uuid":"1228394453","full_name":"claude-genasis/genasis","owner":"claude-genasis","description":"Bolt-on agentic team layer for Claude Code (claude-code-plugins / claude-code-subagents) — Plane × Mattermost × TDD × Design × DB × Ratatui Monitor. Single Rust binary, MCP-friendly, en/ko.","archived":false,"fork":false,"pushed_at":"2026-05-11T16:39:22.000Z","size":3155,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-11T17:31:14.521Z","etag":null,"topics":["agent-orchestration","agentic-ai","anthropic","claude-agents","claude-code","claude-code-plugins","claude-code-skills","claude-code-subagents","claude-skills","developer-tools","i18n","korean","mattermost-bot","mcp","multi-agent-systems","plane-issues","ratatui","rust-cli","subagents","tdd"],"latest_commit_sha":null,"homepage":"https://claude-genasis.github.io/genasis/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/claude-genasis.png","metadata":{"files":{"readme":"README.ko.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-04T01:03:25.000Z","updated_at":"2026-05-11T16:41:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/claude-genasis/genasis","commit_stats":null,"previous_names":["claude-genasis/genasis"],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/claude-genasis/genasis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-genasis%2Fgenasis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-genasis%2Fgenasis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-genasis%2Fgenasis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-genasis%2Fgenasis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/claude-genasis","download_url":"https://codeload.github.com/claude-genasis/genasis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/claude-genasis%2Fgenasis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33041204,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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":["agent-orchestration","agentic-ai","anthropic","claude-agents","claude-code","claude-code-plugins","claude-code-skills","claude-code-subagents","claude-skills","developer-tools","i18n","korean","mattermost-bot","mcp","multi-agent-systems","plane-issues","ratatui","rust-cli","subagents","tdd"],"created_at":"2026-05-14T20:00:22.140Z","updated_at":"2026-05-14T20:00:57.834Z","avatar_url":"https://github.com/claude-genasis.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# Genasis\n\n**AI 에이전트를 진짜 팀원으로 — 사람과 함께 일하게.**\n\n하나의 명령어로 Plane과 Mattermost를 통해 사람 팀원과 동일한 워크플로로 협업하는 에이전트 개발팀을 설치합니다.\n\n[![CI](https://img.shields.io/github/actions/workflow/status/claude-genasis/genasis/ci.yml?branch=main\u0026label=CI\u0026style=flat-square\u0026logo=github)](https://github.com/claude-genasis/genasis/actions/workflows/ci.yml)\n[![Coverage](https://img.shields.io/codecov/c/github/claude-genasis/genasis?branch=main\u0026style=flat-square\u0026logo=codecov)](https://codecov.io/gh/claude-genasis/genasis)\n[![Release](https://img.shields.io/github/v/release/claude-genasis/genasis?include_prereleases\u0026style=flat-square\u0026logo=github\u0026label=release)](https://github.com/claude-genasis/genasis/releases)\n[![License](https://img.shields.io/github/license/claude-genasis/genasis?style=flat-square)](LICENSE)\n[![Stars](https://img.shields.io/github/stars/claude-genasis/genasis?style=flat-square\u0026logo=github)](https://github.com/claude-genasis/genasis/stargazers)\n[![Rust](https://img.shields.io/badge/rust-stable-orange?style=flat-square\u0026logo=rust)](rust-toolchain.toml)\n[![Platform](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20WSL-blue?style=flat-square)](#지원-플랫폼)\n\n[**English**](README.md)\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;[**한국어**](README.ko.md)\n\n\u003c/div\u003e\n\n---\n\n`genesis` · `genasis` · `agent-creation` · `agent-harness` · `agentic-team` · `agent-team` · `agentic-scrum` · `agentic-sdlc` · `claude-code` · `claude-code-plugins` · `claude-code-subagents` · `agentic-ai` · `ai-agent-orchestration` · `multi-agent-system` · `plane-project-management` · `mattermost-bot` · `sprint-automation` · `tdd` · `scrum-automation` · `coding-agents` · `rust-cli` · `self-hosted-ai` · `ai-software-development`\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/genasis-banner-en.png\" alt=\"Genasis — AI 에이전트 팀: 아이디어를 말하면, 우리가 만듭니다\" width=\"100%\"\u003e\n\u003c/p\u003e\n\n## 문제\n\n오늘날 AI 코딩 에이전트는 **고립된 도구**입니다:\n- 이슈 트래커에서 티켓을 가져가지 않습니다\n- 작업하면서 상태를 업데이트하지 않습니다\n- 팀 채팅에서 질문하지 않습니다\n- 사람이 볼 수 있는 채널에서 다른 에이전트와 협업하지 않습니다\n- 사람 개발자와 스프린트 세레모니를 함께하지 않습니다\n\n한편, **Claude Code**를 쓰는 모든 엔지니어링 팀은 결국 같은 접착제를 만듭니다: 에이전트를 Plane/Linear/Jira에 연결하고, Mattermost/Slack 봇을 연동하고, TDD 게이트를 강제하고, 디자인 핸드오프를 관리합니다. 대부분 유지보수하고 싶지 않은 bash 스크립트입니다.\n\n## Genasis가 하는 일\n\nGenasis는 하나의 Rust 바이너리로 AI 에이전트를 **진짜 팀원**으로 만듭니다:\n\n| 기능 | 동작 방식 |\n|---|---|\n| **에이전트 마켓플레이스** | [ECC](https://github.com/affaan-m/everything-claude-code), [wshobson/agents](https://github.com/wshobson/agents), [VoltAgent](https://github.com/VoltAgent/awesome-claude-code-subagents), [dl-ezo](https://github.com/dl-ezo/claude-code-sub-agents)에서 선별한 20+ 에이전트. 카테고리별 브라우징, 개별/프리셋 설치. |\n| **이슈 트래커 연동** | Plane REST API 직접 연동. 에이전트가 티켓 소유, 라이프사이클 전환 (Todo → In Progress → In Review → Done), 하위 이슈 생성. |\n| **팀 채팅 연동** | 에이전트 역할당 Mattermost 봇 1개. 티켓당 스레드 1개. 사람과 같은 채널에서 토론, 에스컬레이션, 조정. |\n| **비파괴 오버레이** | `.claude/agents/*.md` 안에 marker fence. 기존 에이전트 정의 그대로 보존. `genasis detach`로 깨끗하게 제거. |\n| **스프린트 자동화** | 13개 슬래시 명령 + 5개 hook: `/sprint-start`, `/issue-done`, `/db-migrate`, 세션 hook, QA 게이트. |\n| **디자인 시스템 관리** | `genasis design swap`으로 디자인 토큰 교체 + 영향 UI 영역 Plane 이슈 자동 생성. |\n| **DB 스키마 관리** | SQL guard (읽기 전용), Atlas/Drizzle Kit 마이그레이션, DuckDB raw runner. |\n| **실시간 모니터** | Ratatui TUI 대시보드: 스프린트, 토큰, 에이전트 활동, 배포 상태. |\n| **완전 가역** | `genasis detach` — genasis가 추가한 모든 것 제거. 잔여물 없음. |\n\n---\n\n## 빠른 체험 — 5분 만에 에이전트 팀 가동\n\n**5단계면 에이전트 팀이 스프린트를 돌립니다.** 서버 설치 불필요.\n\n**1. 설치**\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/claude-genasis/genasis/main/install.sh | sh\n```\n\n**2. Trial 모드로 초기화** — 운영자 호스팅 데모 [mmplane-trial.realstory.blog](https://mmplane-trial.realstory.blog)가 *사용자 팀 전용* 토큰 URL로 브라우저에 열립니다 (로컬 설치 불필요). `--name` 플래그가 trial-app 칸반과 채팅 사이드바로 그대로 전달돼, 데모가 일반 공유 샌드박스가 아닌 *사용자 팀*을 보여줍니다 (ADR-016).\n\n```bash\nmkdir marketing-squad \u0026\u0026 cd marketing-squad\ngenasis init --trial --name \"Marketing Squad\"\n```\n\n명령 종료 시 복사하기 좋은 요약 박스가 **팀 토큰** (32자 hex) + 토큰이 pre-fill된 **랜딩 URL** 을 출력합니다. Live Trial 화면은 이 토큰이 입력되기 전까지는 활성화되지 않습니다 — 브라우저가 열리면 라이브 트라이얼 탭 상단의 **\"팀 토큰을 입력하세요\"** 바를 찾으세요. 랜딩 URL을 그대로 붙여넣었다면 이미 채워져 있고, 도메인만 열었다면 토큰을 그 바에 붙여넣어 연결합니다 (ADR-017 §6). 모든 Live Trial 기능(칸반, 채팅, 쇼케이스 패널)은 유효한 토큰이 연결될 때까지 비활성 상태로 유지됩니다 — 이게 사용자 팀의 칸반 카드를 다른 모든 동시 데모와 분리하는 multi-tenant partition gate 입니다.\n\n\u003e **🔍 점검 포인트** — 다음 단계로 가기 전 랜딩 URL 을 브라우저로 열어 **확인**하세요. 우측 상단에 사용자 팀명 배지(\"연결됨 · Marketing Squad …\") + 칸반 4 컬럼에 데모 카드 3 개 (Done / In Progress / Todo 각 1) + `#scrum-\u003cteam-slug\u003e` 채팅에 환영 메시지 1 개가 보여야 정상입니다. 배지만 보이고 칸반·채팅이 비어있다면 운영자 호스팅 trial-app 이 이 바이너리보다 옛 버전인 상황입니다 — [**알려진 한계 (v0.5.11)**](#알려진-한계-v0511) 의 로컬 docker 회피 절차로 점프 (`export GENASIS_TRIAL_URL=http://localhost:2099` 후 step 2 부터 재실행). 그 이후 단계는 로컬 인스턴스에서 동일하게 동작합니다.\n\n**3. 샘플 PRD 생성** — 에이전트가 바로 작업할 수 있는 요구사항 문서\n\n```bash\ngenasis example prd\n```\n\n**4. 에이전트 팀 가동**\n\n```bash\ngenasis init\n```\n\n**5. 스프린트 모니터링**\n\n```bash\ngenasis monitor\n```\n\n\u003e **🔍 최종 점검** — Live Trial URL 을 다시 새로고침. trial 모드의 `genasis init` 끝에서 `genasis publish` 가 자동 실행됐으므로 칸반에 **총 5 개 카드** (Done 2 개, `🎉 Example app published` 포함 / In Progress 1 / Todo 1) + 채팅에 **2 개 메시지** (init 환영 + 빌드 완료) 가 보여야 정상입니다. 휴대폰 아이콘 (📱 \"에이전트가 만든 앱 보기\") 이 클릭 가능 상태로 바뀌고 누르면 쇼케이스 패널이 펼쳐집니다. step 2 의 점검 단계에서 비어있는 상태였고 로컬 docker 회피를 건너뛴 경우, 여기서도 칸반·채팅은 비어있는 게 정상 — `app_status` 만 `complete` 로 flip 돼서 쇼케이스 핸들만 활성됩니다.\n\n끝입니다. 에이전트 팀이 PRD에서 코드까지 스프린트를 완주했습니다.\n디자인 교체, PRD 확장, 에이전트 추가 등 실습은\n[**전체 튜토리얼**](docs/ko/TUTORIAL.md)을 참조하세요.\n\n\u003cdetails\u003e\n\u003csummary\u003e소스에서 직접 빌드 (install.sh 대신)\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/claude-genasis/genasis.git \u0026\u0026 cd genasis \u0026\u0026 ./build.sh\n```\n\n\u003c/details\u003e\n\n---\n\n## 단계별 가이드\n\n모든 단계를 직접 통제하고 싶은 팀을 위한 안내입니다.\n\n### 1. 설치\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/claude-genasis/genasis/main/install.sh | sh\n```\n\n### 2. Plane \u0026 Mattermost 준비\n\nGenasis 에이전트는 **Plane** (이슈 관리)과 **Mattermost** (팀 채팅)를 통해 협업합니다.\n\n**방법 A — Trial 서버 (가장 빠름, 설치 불필요)**\n\n운영자의 공유 인프라\n[**mmplane-trial.realstory.blog**](https://mmplane-trial.realstory.blog/?tab=signup)\n에서 실제 Plane + Mattermost 프로젝트를 한 세트 빌립니다. `실환경 빌리기`\n탭에서 짧은 폼을 제출하면 수 분 내 접속 정보를 받습니다. 협의 하에 기간\n제한 없이 이용 가능 (ADR-017).\n\n**방법 B — 직접 설치 (완전한 통제)**\n\n먼저 Plane + Mattermost + Caddy + Postgres 도커 스택 정의가 담긴\n`servers/` 디렉터리를 받습니다. `install.sh` 는 `genasis` 바이너리만\n배포하므로 이 단계는 **별도** 입니다:\n\n```bash\n# 방법 1 — 전체 repo clone (가장 간단)\ngit clone https://github.com/claude-genasis/genasis \u0026\u0026 cd genasis\n\n# 방법 2 — sparse-checkout 으로 servers/ 만 (~1 MB)\ngit clone --depth 1 --filter=blob:none --sparse \\\n  https://github.com/claude-genasis/genasis \u0026\u0026 \\\n  cd genasis \u0026\u0026 git sparse-checkout set servers\n```\n\n그 다음 스택 기동:\n\n```bash\ncd servers \u0026\u0026 ./scripts/setup-user-env.sh \u0026\u0026 docker compose up -d\n```\n\n`setup-user-env.sh` 가 사용자별 포트 쌍을 할당합니다 (기본 베이스\nPlane `38400`, Mattermost `38500`. `uid % 50` 오프셋으로 동일\n호스트의 여러 사용자 간 충돌 방지). 정확한 포트는 `servers/.env`에\n기록 — `grep -E \"^(PLANE|MM)_PORT\" servers/.env`로 확인. 포트\n할당 근거 전체는 [`servers/README.md`](servers/README.md) 참조.\n\n설치 후 인증 정보 설정. Mattermost team id 는 `[mattermost].team_name`\n에서 자동 해석되지만, 해석 실패 시 (예: init 시점에 팀이 아직 없음)\n`MM_TEAM_ID` 를 명시:\n\n```bash\nexport PLANE_API_KEY=\"your-plane-api-key\"\nexport MM_ADMIN_TOKEN=\"your-mattermost-token\"\n# 선택 — 자동 해석이 MM 에 도달 못할 때만:\n# export MM_TEAM_ID=\"your-mattermost-team-id\"\n\n# `genasis humans sync` 가 신규 사용자를 Plane 에 프로비저닝할 때\n# 필요 (이슈 바, v0.5.3): Plane 의 API-key 인증은 사용자 생성을\n# 못 함 — admin sign-in 만 가능. `humans sync` 실행 전에 아래를\n# 설정하지 않으면 Plane 쪽 프로비저닝이 silently 스킵되고\n# Mattermost 쪽만 동작. Step-by-Step §\"admin token 발급\" 에서 쓴\n# god-mode 자격증명을 그대로 쓰면 됨.\n# export PLANE_ADMIN_EMAIL=\"admin@your-domain\"\n# export PLANE_ADMIN_PASSWORD=\"strong-password\"\n```\n\n### 3. 연결 및 시작\n\n```bash\ngenasis init\n```\n\n### 4. 검증\n\n```bash\ngenasis doctor\n```\n\n---\n\n## 에이전트가 사람과 협업하는 방식\n\n```mermaid\nsequenceDiagram\n    actor Human as 사람 개발자\n    participant Plane as Plane 보드\n    participant MM as Mattermost\n    participant FE as 프론트엔드 에이전트\n    participant QA as QA 에이전트\n\n    Human-\u003e\u003ePlane: 티켓 생성\n    Plane--\u003e\u003eFE: 할당됨 (webhook)\n    FE-\u003e\u003ePlane: Todo → In Progress\n    FE-\u003e\u003eMM: \"#142 작업 시작합니다\"\n    FE-\u003e\u003eFE: 코드 작성 + 테스트\n    FE-\u003e\u003ePlane: In Progress → In Review\n    FE-\u003e\u003eMM: \"PR #87 리뷰 부탁드립니다\"\n    Human-\u003e\u003eMM: \"좋아요, L42 작은 수정 부탁\"\n    FE-\u003e\u003eFE: 피드백 반영\n    FE-\u003e\u003eMM: \"수정 완료 — PR 업데이트됨\"\n    QA-\u003e\u003eQA: 테스트 스위트 실행\n    QA-\u003e\u003ePlane: In Review → Done\n    QA-\u003e\u003eMM: \"모든 검증 통과 ✓\"\n    Human-\u003e\u003ePlane: 보드에서 Done 확인\n```\n\nPlane 보드나 Mattermost 채널을 보는 사람은 업데이트가 사람에게서 온 건지 에이전트에게서 온 건지 **구분할 수 없고, 구분할 필요도 없습니다.**\n\n## 사용 사례\n\n| 팀 유형 | genasis 활용 방식 |\n|---|---|\n| **스타트업 (2-5명)** | AI 에이전트로 소규모 팀 배가. 리뷰, 테스트, 보안 스캔을 에이전트가 담당. 기존 Plane + Mattermost에 합류. |\n| **에이전시 / 컨설팅** | 클라이언트 프로젝트별 에이전트 팀 즉시 배치. 프리셋 설치 → 바로 생산성. |\n| **엔터프라이즈 스쿼드** | 기존 `.claude/agents/`에 비파괴 오버레이. 현재 워크플로 방해 없이 Plane/MM 연동 추가. |\n| **솔로 개발자** | Claude Code 구독 하나로 PM + 아키텍트 + QA + 보안 팀 확보. 에이전트가 프로세스를, 당신이 비전을 담당. |\n| **오픈소스 메인테이너** | PR 리뷰, 보안 스캐닝, 테스트 강제 자동화. 커뮤니티 기여자가 같은 이슈 스레드에서 에이전트 피드백 확인. |\n\n## CLI 주요 명령\n\n```bash\n# 팀 라이프사이클\ngenasis init                   # Plane 프로젝트 + MM 채널 + 에이전트 설치\ngenasis attach                 # 기존 에이전트에 오버레이 (비파괴)\ngenasis detach                 # 오버레이 제거 (완전 가역)\ngenasis doctor                 # 환경 + 연결 검증\ngenasis upgrade                # 오버레이 프로토콜 최신화\n\n# 에이전트 마켓플레이스\ngenasis agents browse          # 카테고리 → 선택 → 설치 (interactive)\ngenasis agents install \u003c이름\u003e  # 에이전트 1개 설치\ngenasis agents install --preset web-app  # 프리셋 팀 설치 (9역할)\ngenasis agents list            # 사용 가능한 에이전트 목록\ngenasis agents installed       # 이 프로젝트에 설치된 에이전트\n\n# 운영\ngenasis monitor                # 실시간 TUI 대시보드\ngenasis design swap \u003cref\u003e      # 디자인 시스템 교체\ngenasis db query \"SELECT ...\"  # 읽기 전용 SQL\ngenasis lang switch \u003cen|ko\u003e    # 에이전트 언어 전환\n```\n\n## 알려진 한계 (v0.6.0-alpha.5)\n\n- **시나리오 = 기존 앱 수정** (사용자 §\"엉뚱하게 다른 앱이 배포\" 시나리오 거부). 트라이얼 쇼케이스는 `genasis example prd` 결과물 (Claude Code 전문가 진단 퀴즈) 로 배포되어 있고, 채팅 사람 요청은 그 기존 앱에 대한 **시각 변경 / 기능 추가** 로 해석. 예: \"퀴즈 시작 버튼 색상을 빨간색으로 바꿔줘\", \"다크 테마 적용해줘\", \"공유 버튼 추가해줘\". PM 이 `[FEATURES: accent-red, dark-mode, share-button]` 마커 응답 → app_features 누적 → QuizApp 실 반영.\n\n- **Thread-grouped chat UI** (genesis §9 패턴 이식). LiveChatThread 가 sim_posts.root_id 그룹핑 → 사람 root post 아래 PM/agent 응답들이 좌측 indent + border line 으로 nested 시각화.\n\n- **Daemon-guide banner**. LiveBoard 상단 amber banner 가 \"🤖 Agentic team 대기 중 — `genasis listen stop` 으로 종료\" 항상 표시. 자가테스트 후에도 daemon 살아있어 사용자가 채팅으로 직접 추가 요청 가능 + 종료 절차 한 곳에 노출.\n\n- **QuizApp customization 한계**: accent color (red/blue/green) + larger-text 실 반영, share-button/dark-mode 내부/i18n 은 feature flag 만 — v0.6.0 에서 실 UI 추가.\n\n- **Multi-agent fan-out routing** (genesis §9 + §26 trial flavor 이식). 사람이 채팅에 요구 게시하면 `genasis listen` daemon 이 PM `claude --print` 호출 → 응답의 `[APP: \u003ckind\u003e]` / `[FEATURES: …]` / `## 작업 분배` (`@role: task`) / `## 새 카드` / `[CARD: → state]` 마커 파싱 → 각 멘션된 role 에 follow-up `claude --print` → 모든 응답이 **사람 메시지 스레드 (`root_id = 사람 post id`)** 안에 reply. 동시에 sim_teams 와 sim_issues 멱등 갱신.\n\n  ```bash\n  genasis publish\n  genasis listen start --trial            # claude --print 실제 호출\n  genasis listen start --trial --echo-only  # CI 모드 (deterministic stub)\n  ```\n\n- **Showcase 동적 교체** (ADR-018). PM 이 `[APP: todo]` 결정하면 ShowcasePanel 이 TodoApp 으로 렌더. agent 들의 `[FEATURES: dark-mode, i18n]` 마커로 feature flag 점진 활성 — TodoApp UI 가 같이 변함. 본 사이클 TodoApp 1 종, 나머지 (Pomodoro/Markdown/Counter/Habit) 는 v0.6.0.\n\n- **Real Mattermost flavor** 의 `apply_pm_routing` 은 routing 요약 로그만 (Plane integration stub). 카드 자동 fan-out 은 v0.6.0.\n\n- **Binary 크기 누적**: v0.5.13 11.10 MB → v0.5.14 11.47 MB → v0.5.15 11.50 MB. routing.rs 가 regex crate 재사용 → +38 KB.\n\n- **Push 기반 reactive bridge.** `genasis listen` 이 polling (3 초)\n  에서 진짜 push 기반 (SSE / WebSocket) 으로 전환됐습니다. 두 갈래:\n\n  | flavor | event source | reply / transition sink |\n  |---|---|---|\n  | trial | trial-app `/api/events/stream` (Server-Sent Events) | `/api/mattermost/posts` + `/api/trial/bootstrap` 멱등 |\n  | real (Mattermost) | `/api/v4/websocket` (`authentication_challenge` 후 `event=posted` 필터) | `/api/v4/posts` + Plane REST |\n\n  `trial` 모드는 진짜 Mattermost/Plane 인스턴스를 일체 건드리지\n  않습니다 (genesis §0 대전제 격리). `real` 모드만 `MM_ADMIN_TOKEN`\n  + `PLANE_API_KEY` 환경변수 필요.\n\n- **Daemon lifecycle (`bridgectl` 등가물).** PID 파일은\n  `.genasis/listen.pid`, 로그는 `.genasis/listen.log`. 명령:\n\n  ```bash\n  genasis listen start --trial --echo-only   # 백그라운드 (PID 파일 생성)\n  genasis listen status                       # 살아있는지 + 최근 로그 3 줄\n  genasis listen logs -f                      # tail follow\n  genasis listen restart                      # 무중단 재시작\n  genasis listen stop                         # SIGTERM → 3 초 → SIGKILL\n  ```\n\n  Slug 당 1 프로세스만 허용 (start 시 살아있는 PID 발견 시 거부),\n  stale PID 파일 자동 정리. 고아 프로세스 탐지는 `/proc/\u003cpid\u003e/cmdline`\n  매칭 (Linux/WSL).\n\n- **Binary 크기 영향**: v0.5.13 11.10 MB → v0.5.14 11.47 MB\n  (Δ +384 KB / +3.3%). 새 의존성 `reqwest-eventsource` v0.6 +\n  `tokio-tungstenite` v0.29 (rustls native roots 만, default-features\n  off). 기존 reqwest 의 rustls 그래프 재사용으로 TLS 추가 비용 거의\n  없음.\n\n- **`genasis listen` reactive bridge.** v0.5.13 이 trial-app SSE 를\n  구독하고 사람이 채팅 패널에 글을 쓸 때마다 `claude --print` 를 띄우는\n  daemon 을 ship — genesis §28 Mattermost Bridge 의 trial flavor\n  등가물. `genasis init --trial` 직후 별도 터미널에서 띄워야 채팅\n  메시지가 자동 응답으로 이어지고, \"X 완료\" 같은 지시에 칸반 카드가\n  transition 된다. 데몬이 없으면 라이브 트라이얼이 사람 메시지를\n  저장만 하고 아무 에이전트도 응답 안 함.\n\n  ```bash\n  # 별도 터미널에서 한 번\n  genasis listen --trial\n  ```\n\n  CI / smoke 환경에서 `claude` 가 $PATH 에 없으면\n  `genasis listen --trial --echo-only` 로 SSE 파이프라인만 검증 가능.\n\n- **publish 시점 티켓 상태 정합성.** 이전엔 `genasis publish` 가\n  \"Example app published\" Done 카드만 추가하고 그 선행 빌드 카드는\n  Todo 그대로 둬서 칸반이 자기모순 — `🎉 게시 완료` 인데 빌드는\n  아직 안 된 모양새. v0.5.13 + agents-pool@8b03654 에서 publish 의\n  `demo_issues` 가 state-aware `ensureIssue` 로 흐르므로 Write-PRD +\n  Build 카드가 같은 round-trip 에 Done 으로 transition.\n\n- **Trial provider 호출 트레이싱.** Claude Code 에이전트가 trial flavor 로\n  거치는 모든 Plane/Mattermost 호출 (`ensure_project`, `create_issue`,\n  `transition`, `post_root`, `post_thread`) 이 `tracing::info!` 로\n  `target=\"trial\"` 레코드 출력. `RUST_LOG=trial=info` 로 모든 HTTP\n  호출 → trial-app sim row id 매핑을 볼 수 있음. 에이전트 의도가 라이브\n  트라이얼 UI 에 실제로 반영되는지 검증할 때 유용.\n\n- **Stale-host 자동 감지.** `genasis init --trial` 이 bootstrap POST 시\n  응답 body 의 `demo_issues` / `welcome_message` 키 echo 여부 검사\n  (`agents-pool@ec7f149` 이후 contract). 둘 다 없으면 = 호스팅 trial-app\n  이 옛 버전 = 인라인 경고 즉시 출력. 사용자가 빈 칸반·채팅을 보고\n  당황하기 전에 운영자 재배포 요청 또는 `GENASIS_TRIAL_URL` 자체호스트\n  우회 안내 받음.\n\n- **호스팅 trial-app 배포 지연.** 운영자 호스팅 `https://mmplane-trial.realstory.blog` 가\n  genasis 바이너리의 bootstrap contract 보다 옛 버전일 경우, `genasis publish` 는\n  성공하지만 Live Trial 칸반 + 채팅이 비어있는 상태로 유지됨 (신규\n  `demo_issues` / `welcome_message` 필드를 옛 schema 가 silently drop).\n  우회: trial-app 을 자체 호스팅하고 그 endpoint 를 가리키기:\n\n  ```bash\n  # 1. trial-app clone (sparse-checkout, ~10 MB)\n  git clone --depth 1 --filter=blob:none --sparse \\\n    https://github.com/claude-genasis/agents-pool \u0026\u0026 \\\n    cd agents-pool \u0026\u0026 git sparse-checkout set trial-app\n\n  # 2. 컨테이너 빌드 + 기동\n  cd trial-app\n  docker build -t mmplane-trial-app:local .\n  docker run -d --name trial-app -p 2099:2001 \\\n    -v trial-app-data:/data \\\n    -e DATABASE_PATH=/data/trial.db \\\n    mmplane-trial-app:local\n\n  # 3. genasis 가 로컬 instance 가리키도록\n  export GENASIS_TRIAL_URL=http://localhost:2099\n  genasis init --trial --name \"My Team\"\n  ```\n\n  요약 박스, bootstrap POST, `genasis.toml [trial].url`, per-team open\n  URL 모두 같은 env override 로부터 일관되게 흘러갑니다.\n\n- **호스팅 trial-app 배포 lag — Quick Path 는 이제 self-healing.** v0.5.5 부터 `ensure_project` / `ensure_channel` 은 `genasis init --trial` 단계에서 팀이 이미 seed 된 것을 탐지하면 auth-free `/api/trial/bootstrap` 로 라우팅 (모든 배포 버전이 받음). 그래서 운영자 배포가 stale 해도 Quick Path 단계 4 가 더는 hard-fail 하지 않음. 다만 agent 런타임이 부르는 downstream call (`create_issue`, `transition`, `post_root`) 은 여전히 legacy `/api/plane/*` / `/api/mattermost/*` 로 가므로 `agents-pool@289876c` 이전 배포에서는 401 가능. 에이전트 동작 중 `/api/plane/issues` / `/api/mattermost/posts` 에 401 발생하면 운영자에게 재배포 요청. 자체 host trial-app 은 항상 contract 맞음.\n\n\n\n다음 패치에서 닫을 예정인 documented gap — Linux 의 Quick Path 는\n지금도 문제없이 동작하지만, Step-by-Step / Option B 사용자가\n부딪힐 수 있는 항목들:\n\n- **Self-host Plane: CSRF 쿠키가 plain HTTP 위에서 `Secure` flag.** 기본 `servers/docker-compose.yml` 스택이 Plane 을 plain `http://localhost:\u003cport\u003e/` 로 노출하는데, Plane 의 `/auth/get-csrf-token/` 은 쿠키에 `Secure` 속성을 붙여서 브라우저가 silently drop 함 → sign-up 폼의 CSRF 검증 실패. 우회: (a) 호스트에서 Caddy 로 self-signed cert + HTTPS 프록시, (b) 첫 admin sign-up 만 브라우저 dev-tools 의 \"Disable CSRF check\" override 사용. 호스트 Caddy 가 기본으로 TLS terminate 하도록 하는 패치가 로드맵.\n- **`genasis agents list / install / browse`**: v1.0.0 카탈로그가 `index.json` 을 `manifest.json` 의 alias 로 publish 하는데, 마켓플레이스 UI 가 기대하는 `agents` / `categories` / `presets` 배열이 빠져 있음. `agents-pool` 에서 패치 진행 중 — 새 카탈로그 ship 되면 바이너리 변경 없이 동작.\n\n## 지원 플랫폼\n\n| 플랫폼 | 사전 빌드 바이너리 (`install.sh`) | 소스 빌드 (`./build.sh`) |\n|---|---|---|\n| **Linux** x86_64 | ✅ musl 정적 링크 — 모든 배포판 (Alpine, CentOS 7+, RHEL, Debian 10+, Ubuntu 18.04+, Amazon Linux 2, …) | ✅ |\n| **Linux** aarch64 | ✅ musl 정적 링크, cross 컴파일 | ✅ |\n| **WSL** (Windows Subsystem for Linux) | ✅ — Linux x86_64 바이너리 사용 | ✅ |\n| **macOS** (Apple Silicon / Intel) | ⏳ **TBD** — 사전 빌드 바이너리 아직 미제공. Apple Silicon notarisation + cross-compile 서명 작업이 로드맵에 있음 | ✅ — `./build.sh` 현재 동작 |\n| **Windows** (네이티브) | ❌ 미지원 — WSL2 사용 | ❌ |\n\n\u003e **왜 Linux 는 musl 정적인가?** GitHub `ubuntu-latest` 러너가 glibc\n\u003e 2.39를 ship 해서, 동적 링크 바이너리에 `GLIBC_2.39` floor가 박혀\n\u003e 오래된 배포판을 깨먹는다. 릴리스 매트릭스를 `cross` 경유로\n\u003e `x86_64-unknown-linux-musl` / `aarch64-unknown-linux-musl`로 전환하면\n\u003e glibc 의존이 전혀 없는 완전 정적 바이너리를 만들어준다 — 같은\n\u003e tarball이 glibc 2.17 (CentOS 7) 부터 현행 Alpine 까지 그대로\n\u003e 동작한다. CI compatibility-smoke 잡이 매 태그마다 패키징된\n\u003e 바이너리를 `debian:bullseye` (glibc 2.31) 컨테이너에서 재실행해\n\u003e 우발적인 glibc 의존 재유입을 방지한다.\n\n\u003e **macOS 로드맵** — Apple Silicon 네이티브 (`aarch64-apple-darwin`)가\n\u003e notarisation flow 가 잡히는 대로 우선 진행. Intel mac 지원은\n\u003e best-effort 이며 dropped 될 수 있다. 그 사이 macOS 사용자는\n\u003e 소스에서 빌드 — Linux 빌드가 OpenSSL을 피할 수 있게 해준 동일한\n\u003e `rustls-tls` feature flag 덕에 macOS 빌드도 self-contained 라서\n\u003e `./build.sh`가 Homebrew 사전 설치 없이 그대로 동작한다.\n\n## 아키텍처\n\n```mermaid\nflowchart TB\n  L0[\"L0 — 기존 팀\u003cbr/\u003e.claude/agents/*.md · src/ · DB\"]\n  L1[\"L1 — Genasis 오버레이\u003cbr/\u003emarker fence · GENASIS.md · .claude/genasis/\"]\n  L2[\"L2 — Genasis CLI\u003cbr/\u003einit · attach · agents · db · design · monitor\"]\n  L3[\"L3 — Plane · Mattermost · GitHub\"]\n  L0 -. \"보존 (비파괴)\" .-\u003e L1\n  L2 -- \"생성 + 병합\" --\u003e L1\n  L1 -- \"REST API 직접 통신\" --\u003e L3\n```\n\n## 대안 비교\n\n| 기능 | **Genasis** | [ECC](https://github.com/affaan-m/everything-claude-code) | [wshobson/agents](https://github.com/wshobson/agents) | [VoltAgent](https://github.com/VoltAgent/awesome-claude-code-subagents) |\n|---|---|---|---|---|\n| 이슈 트래커 연동 (Plane) | ✅ 직접 API | 수동 | — | — |\n| 팀 채팅 연동 (Mattermost) | ✅ 역할당 봇 | — | — | — |\n| 비파괴 오버레이 | ✅ marker fence | — | — | — |\n| 에이전트 마켓플레이스 | ✅ 20+ 에이전트 | 48 (전체 설치) | 185 (플러그인) | 131 (복사) |\n| 스프린트 자동화 | ✅ 13명령 + 5hook | — | — | — |\n| 디자인 교체 | ✅ | — | — | — |\n| 스키마 관리 | ✅ | — | — | — |\n| 모니터 TUI | ✅ Ratatui | — | — | — |\n| 완전 가역 (detach) | ✅ | — | — | — |\n| 단일 바이너리 | ✅ Rust | bash | npm | shell |\n| 다국어 | ✅ en/ko | — | — | — |\n\n## 가이드\n\n| 가이드 | 내용 |\n|---|---|\n| [**상세 빠른 시작**](docs/ko/QUICKSTART.md) | 설치 → 설정 → 첫 스프린트 전체 워크스루 |\n| [**서버 설치**](servers/README.md) | Plane + Mattermost를 `docker-compose up` 하나로 자체 호스팅 |\n| [**에이전트 마켓플레이스**](docs/ko/AGENTS-MARKETPLACE.md) | 카테고리 브라우징, 프리셋, `/install-agent` 명령 |\n| [**디자인 교체**](docs/ko/DESIGN-SWAP-GUIDE.md) | 디자인 시스템 교체, 복원, 오버라이드, EPIC 모드 |\n| [**크레딧 \u0026 OSS 출처**](docs/ko/CREDITS.md) | genasis가 참조한 오픈소스 프로젝트들 |\n\n## 감사의 말\n\nGenasis는 오픈소스 커뮤니티의 에이전트를 큐레이션하고 통합합니다.\n전체 출처 및 링크: [**docs/ko/CREDITS.md**](docs/ko/CREDITS.md).\n\n| 프로젝트 | 활용 내용 | 라이선스 |\n|---|---|---|\n| [everything-claude-code (ECC)](https://github.com/affaan-m/everything-claude-code) | code-reviewer, architect, security-reviewer 에이전트 | MIT |\n| [wshobson/agents](https://github.com/wshobson/agents) | frontend-developer, backend-developer 에이전트 | MIT |\n| [VoltAgent](https://github.com/VoltAgent/awesome-claude-code-subagents) | qa-tester, DevOps 에이전트 | MIT |\n| [dl-ezo](https://github.com/dl-ezo/claude-code-sub-agents) | planner, 요구사항 라이프사이클 에이전트 | MIT |\n| [Plane](https://github.com/makeplane/plane) | 이슈 추적 + 프로젝트 관리 플랫폼 | AGPL-3.0 |\n| [Mattermost](https://github.com/mattermost/mattermost) | 팀 메시징 + 봇 플랫폼 | Various |\n| [Ratatui](https://github.com/ratatui/ratatui) | 터미널 UI 프레임워크 (모니터 대시보드) | MIT |\n\n## 문서\n\n| | English | 한국어 |\n|---|---|---|\n| 블루프린트 | [blueprint.md](blueprint.md) | [blueprint.ko.md](blueprint.ko.md) |\n| 진행 상황 | [progress.md](progress.md) | [progress.ko.md](progress.ko.md) |\n| 아키텍처 | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) | [docs/ko/ARCHITECTURE.md](docs/ko/ARCHITECTURE.md) |\n| 프로바이더 | [docs/PROVIDERS.md](docs/PROVIDERS.md) | [docs/ko/PROVIDERS.md](docs/ko/PROVIDERS.md) |\n| 토큰 이코노믹스 | [docs/TOKEN-ECONOMICS.md](docs/TOKEN-ECONOMICS.md) | [docs/ko/TOKEN-ECONOMICS.md](docs/ko/TOKEN-ECONOMICS.md) |\n| ADR | [docs/ADR/](docs/ADR/) | [docs/ko/ADR/](docs/ko/ADR/) |\n\n## 기여\n\n[`CONTRIBUTING.md`](CONTRIBUTING.md)를 참조하세요. **debug-history 패치** 기여도 가능합니다 — fork 없이 `genasis debug submit`으로 현장 수정 사항을 genasis 개선에 반영합니다.\n\n## Star History\n\n\u003ca href=\"https://star-history.com/#claude-genasis/genasis\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/svg?repos=claude-genasis/genasis\u0026type=Date\u0026theme=dark\"\u003e\n    \u003cimg src=\"https://api.star-history.com/svg?repos=claude-genasis/genasis\u0026type=Date\" alt=\"Star history\" width=\"640\"\u003e\n  \u003c/picture\u003e\n\u003c/a\u003e\n\n## 라이선스\n\nMIT — [`LICENSE`](LICENSE) 참조.\n\n\u003cdiv align=\"center\"\u003e\n\nAI 에이전트를 고립된 코드 생성기가 아닌, 진짜 팀원으로 만드는 엔지니어링 팀을 위해.\n\n[**English**](README.md)\u0026nbsp;\u0026nbsp;|\u0026nbsp;\u0026nbsp;[**한국어**](README.ko.md)\n\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaude-genasis%2Fgenasis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclaude-genasis%2Fgenasis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclaude-genasis%2Fgenasis/lists"}