{"id":51202127,"url":"https://github.com/fioenix/hatch","last_synced_at":"2026-06-28T01:02:48.168Z","repository":{"id":347018384,"uuid":"1192536137","full_name":"fioenix/hatch","owner":"fioenix","description":"Overclock your Claude — optimize instructions across all surfaces (CLAUDE.md, Preferences, Cowork, rules)","archived":false,"fork":false,"pushed_at":"2026-06-27T12:21:05.000Z","size":1115,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-27T14:13:12.048Z","etag":null,"topics":["ai-tools","claude","claude-code","prompt-engineering"],"latest_commit_sha":null,"homepage":"","language":"Go","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/fioenix.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-03-26T10:09:09.000Z","updated_at":"2026-06-27T12:21:09.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/fioenix/hatch","commit_stats":null,"previous_names":["fioenix/overclaud","fioenix/hatch"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fioenix/hatch","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fioenix%2Fhatch","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fioenix%2Fhatch/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fioenix%2Fhatch/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fioenix%2Fhatch/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fioenix","download_url":"https://codeload.github.com/fioenix/hatch/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fioenix%2Fhatch/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34873663,"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-06-27T02:00:06.362Z","response_time":126,"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":["ai-tools","claude","claude-code","prompt-engineering"],"created_at":"2026-06-28T01:02:47.601Z","updated_at":"2026-06-28T01:02:48.162Z","avatar_url":"https://github.com/fioenix.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hatch\n\n\u003e Embedded harness cho một squad coding-agent làm chung trên một repo — tối ưu instructions + context + **phối hợp** cho **nhiều** agent, trên nhiều surface. Sản phẩm thuộc hệ sinh thái **Finolabs** (Fioenix + Dinosaur Labs).\n\n## Tên gọi\n\n**Hatch** = ổ trứng *nở* ra thành viên đội. Đặt tên theo chủ đề khủng long/phượng hoàng của Finolabs, và khớp xương sống thiết kế — một bầy phối hợp săn mồi. (Nghĩa kép cũ \"`hatch run \u003cticket\u003e` nở một agent\" thuộc về mô hình orchestrator trước pivot, nay đã archived — xem [doc 20](docs/20-embedded-harness-pivot.md).)\n\n## Nó là gì\n\nHatch là một **embedded harness** cho coding agent. **Coding agent là entrypoint** — user mở Claude Code / Codex / Antigravity CLI (`agy`) / Kiro ngay trong workspace, và agent **tự lái mình**. Hatch không spawn, không điều khiển agent; nó cung cấp một **lớp nền chung** mà mọi agent với tới qua **MCP server**:\n\n- một **chat dùng chung** (bus) — đồng thời là **backlog**: một thread = một task;\n- một **Knowledge Base dùng chung** (bộ nhớ chung bền của hệ);\n- một **ledger** audit append-only.\n\nNhờ đó nhiều agent trên cùng một repo phối hợp theo phong cách **async kiểu Slack** (mở thread cho mỗi task, brief tiến độ trong thread, `@mention` đồng đội, `chat_search`/`kb_search` để nhớ lại), giữ vai trò khác nhau theo một quy trình kiểu Agile, để lại audit trail đầy đủ, và **không lãng phí token** vì mỗi agent chỉ nạp đúng phần context của mình.\n\n\u003e **Lưu ý về docs.** Các doc **00–19 mô tả thiết kế GỐC (trước pivot)** — khi Hatch còn là orchestrator tự lái agent. Mô hình **hiện hành** là [doc 20 — embedded-harness pivot](docs/20-embedded-harness-pivot.md). Khi đối chiếu hành vi CLI thực tế, **doc 20 thắng**.\n\n## Phép ẩn dụ neo: một đội Agile người\n\nMọi thành phần trong Hatch đều có một đối ứng trong một squad người. Đây là la bàn thiết kế — khi phân vân, hỏi \"đội người làm việc này thế nào?\".\n\n| Thành phần Hatch | Đối ứng trong squad người |\n|---|---|\n| `charter.md` | Team charter / mục tiêu sản phẩm |\n| `roles/` | Bản mô tả công việc (JD) từng vai |\n| `registry.yaml` | Danh bạ nhân sự + năng lực + ai giữ vai gì |\n| `kb/` | **Wiki / bộ não chung của đội** (Confluence) — đọc *và* ghi |\n| `workflow.yaml` | Quy trình làm việc của đội — template, sửa được |\n| `board/` | Bảng sprint (Jira) |\n| `ledger/` | Sổ standup / nhật ký hoạt động / git log |\n| `protocol/` | Working agreements của đội |\n| `chat` (bus) | **Slack của đội** — kênh trao đổi *và* backlog (mỗi thread = một task) |\n| `compiler` | Bộ sinh tài liệu onboarding + working agreements cho từng người mới |\n| MCP server | Cánh cửa mỗi người dùng để vào Slack chung + wiki chung |\n| agent lead/Conductor | Engineering Manager / Scrum Master — *là một agent tự lái*, không phải Hatch |\n\n\u003e **Bộ nhớ chung.** Agents không chia sẻ RAM (mỗi con một process), nhưng cùng khai thác và đóng góp vào **Knowledge Base** (`kb/`) — y như một đội người không đọc được não nhau nhưng cùng tra cứu và cập nhật một wiki. KB là bộ nhớ chung *bền* của hệ; agent vừa *input* (tra cứu để khỏi suy diễn lại) vừa *ghi lại* (quyết định, bài học, gotcha) khi làm. Xem [09-knowledge-base](docs/09-knowledge-base.md).\n\n## Bốn agent, bốn vai mặc định\n\n| Agent | Vai mặc định | Vì sao |\n|---|---|---|\n| **Claude Code** (chính) | Architect / Tech Lead + **Conductor** | Reasoning sâu, giữ bức tranh tổng thể, lập kế hoạch |\n| **Kiro** | Spec-driven Implementer | Mạnh quy trình PRD → design → tasks |\n| **Codex** | Autonomous Implementer | Thực thi nhanh, lặp nhiều |\n| **Antigravity CLI** | Implementer / Utility | Linh hoạt, gánh việc phụ |\n\nBảng trên **chỉ là template khởi đầu**. Vai trò là do **người dùng tự cấu hình ở từng project** qua `registry.yaml` của project đó — không fix cứng. Cùng một agent có thể giữ vai khác nhau ở các project khác nhau. Xem [02-roles](docs/02-roles.md).\n\n## Bảy trụ thiết kế\n\n1. **Single Source of Truth → compile xuống từng agent.** Một nguồn canonical (`.hatch/`: `charter.md`, `roles/`, `registry.yaml`, `workflow.yaml`), một compiler sinh ra `CLAUDE.md` / `AGENTS.md` / `GEMINI.md` / `.kiro/steering` tự động. Không copy-paste, không drift.\n2. **Knowledge Base dùng chung** (`kb/`) — bộ nhớ chung bền của hệ; mọi agent đọc *và* ghi qua MCP. Thay cho \"shared memory\" mà các process không có.\n3. **Token optimization = context phân tầng** (L0 mission → L1 role → L2 task + KB on-demand). Mỗi agent chỉ nạp tầng của nó + thread task đang làm.\n4. **Role assignment per-project** — map vai ↔ điểm mạnh từng agent; user tự thiết kế ở mỗi project qua `registry.yaml`.\n5. **Coordination protocol = chat async.** Phối hợp qua **chat dùng chung** (bus): mở thread cho mỗi task, brief tiến độ trong thread, `@mention` để nhờ. Không agent nào spawn hay gọi trực tiếp agent khác; Hatch cũng không. Audit qua ledger.\n6. **Workflow = protocol được COMPILE, không phải engine.** `workflow.yaml` (Agile: scrum/kanban/spec-first/…) + roles + DoD vẫn là SSOT, nhưng compile biến chúng thành **văn bản hành vi** (prose) tiêm vào instruction surface từng agent. Agent đọc và *tự* tuân theo; Hatch không cưỡng chế bằng code.\n7. **Governance \u0026 audit** — ledger append-only; Definition-of-Done là **self-check agent tự chạy**; thẩm quyền agent khai trong SSOT.\n\n## Mô hình phối hợp: chat async, agent tự lái\n\n- **Agent đầu tiên user mở** (thường Claude Code) mặc định là **Conductor/orchestrator** và có thể kiêm các vai khác (architect/reviewer…). Việc này khai trong `registry.yaml` và tiêm qua compile vào CLAUDE.md (kèm khối \"orchestrator\").\n- Conductor bẻ việc → **mở một thread cho mỗi task** trong chat, brief, `@tag` agent phù hợp.\n- Agent được tag đọc thread, làm, brief kết quả lại **trong cùng thread**. Trạng thái task suy ra từ hội thoại (post type `done`/`block`/`decision`), không cần lane/claim/gate engine.\n- Reviewer ≠ implementer tự chạy DoD self-check rồi báo done trong thread.\n- Tất cả **async** (kiểu Slack): agent chỉ phản hồi khi nó đang chạy. Không lời gọi trực tiếp giữa agent, không ai spawn ai — y như một đội người trao đổi qua Slack.\n\n## Đọc docs theo thứ tự\n\n\u003e **Quan trọng:** Doc **00–19 mô tả thiết kế GỐC trước pivot** (Hatch tự lái agent, orchestrator là entrypoint, board là control panel, backlog kiểu Jira). Mô hình **hiện hành** nằm ở **doc 20**. Khi mâu thuẫn, **doc 20 thắng**. Đọc doc 20 trước để hiểu mô hình thực tế, rồi dùng 00–19 cho bối cảnh/ý tưởng nền.\n\n| # | Doc | Nội dung |\n|---|---|---|\n| 00 | [vision](docs/00-vision.md) | Vấn đề, tầm nhìn, phép ẩn dụ squad |\n| 01 | [architecture](docs/01-architecture.md) | 6 trụ, layout `.hatch/`, các thành phần |\n| 02 | [roles](docs/02-roles.md) | Mô hình vai, map năng lực agent |\n| 03 | [coordination-protocol](docs/03-coordination-protocol.md) | Hybrid, board, claim/lock, handoff, DoD |\n| 04 | [context-compiler](docs/04-context-compiler.md) | SSOT vs KB, compile per-agent, 3 tầng token |\n| 05 | [workflow](docs/05-workflow.md) | Workflow-as-template, lifecycle, ceremonies |\n| 06 | [governance](docs/06-governance.md) | Ledger, gates, giới hạn thẩm quyền |\n| 07 | [orchestrator](docs/07-orchestrator.md) | Phase 3: CLI `hatch` launch \u0026 drive agent |\n| 08 | [roadmap](docs/08-roadmap.md) | Lộ trình Phase 1 → 2 → 3 |\n| 09 | [knowledge-base](docs/09-knowledge-base.md) | KB dùng chung: cấu trúc, đọc/ghi, vs SSOT/ledger |\n| 10 | [agent-adapters](docs/10-agent-adapters.md) | Compile surface + headless invocation từng agent CLI |\n| 11 | [communication](docs/11-communication.md) | Agents nói chuyện trực tiếp: DM · ask/reply · convene |\n| 12 | [ceremonies-escalation](docs/12-ceremonies-escalation.md) | Standup · retro · planning · escalation · decision→ADR |\n| 13 | [management](docs/13-management.md) | (thiết kế) Workload · performance · budget/lương — góc CEO/CTO |\n| 14 | [org-and-cadence](docs/14-org-and-cadence.md) | (thiết kế) Org-chart/uỷ quyền · external deps · heartbeat |\n| 15 | [obsidian-kb](docs/15-obsidian-kb.md) | (thiết kế) Obsidian vault làm KB chính qua CLI |\n| 16 | [document-templates](docs/16-document-templates.md) | (thiết kế) Template/spec tài liệu theo framework, custom được |\n| 17 | [pre-implementation](docs/17-pre-implementation.md) | Quyết định cần chốt trước khi implement toàn bộ |\n| 18 | [observability](docs/18-observability.md) | Quan sát agents: transcript · TUI · tmux/Zellij |\n| 19 | [going-real](docs/19-going-real.md) | Chuyển từ mock sang agent CLI thật (doctor, creds, an toàn) |\n| **20** | [**embedded-harness-pivot**](docs/20-embedded-harness-pivot.md) | **MÔ HÌNH HIỆN HÀNH** — Hatch là embedded harness (MCP + chat=backlog), agent tự lái; thắng khi mâu thuẫn |\n\nSơ đồ trực quan: [overview](docs/overview.md) (bản đồ tổng plaintext) · [architecture-diagram](docs/architecture-diagram.md) (kiến trúc + workflow + sequence).\n\nSpec kỹ thuật: [registry](spec/registry.schema.md) · [ticket](spec/ticket.schema.md) · [ledger](spec/ledger.schema.md) · [workflow](spec/workflow.schema.md)\n\n## Cài đặt \u0026 Onboarding (user mới)\n\n### Yêu cầu\n- **Go 1.24+** (build `hatch`) và **git** (Hatch dùng filesystem + git làm database).\n- **Ít nhất một coding agent CLI** để chạy thật: Claude Code (`claude`), Codex (`codex`), Antigravity (`agy`), hoặc Kiro (`kiro-cli`). *Không bắt buộc đủ cả bốn* — `hatch doctor` chỉ cần ≥1 sẵn sàng. Muốn thử trước khi cài agent thì dùng demo bên dưới.\n\n### Bước 1 — Cài `hatch`\n\n```bash\n# A. Nhanh nhất: build + dựng workspace demo để xem ngay (không cần agent thật)\ngit clone https://github.com/fioenix/hatch \u0026\u0026 cd hatch\n./scripts/onboard.sh                 # build bin/hatch + demo trong .hatch-demo/\n\n# B. Cài lên PATH\nmake install                         # go install ./cmd/hatch  → $(go env GOPATH)/bin\n#   hoặc:  go install github.com/fioenix/hatch/cmd/hatch@latest\nexport PATH=\"$(go env GOPATH)/bin:$PATH\"   # nếu chưa có\nhatch --version\n```\n\n### Bước 2 — Setup máy một lần: `hatch setup`\n\nChạy **một lần cho mỗi máy**. `hatch setup` tạo workspace global `~/.hatch` (mặc định cho mọi repo) và wire các coding-agent CLI mà MCP config của chúng nằm ở `$HOME` (`codex`, `agy`) cùng plugin Claude Code:\n\n```bash\nhatch setup                       # có terminal → hỏi chọn client; --dry-run để xem trước\nhatch setup --client cc,codex,agy # non-interactive (CI/script); --yes để chắc chắn không hỏi\n```\n\n- **`cc`** — in hướng dẫn cài **plugin** Claude Code (MCP + skill `hatch-chat` + `/hatch`):\n  ```\n  /plugin marketplace add fioenix/hatch\n  /plugin install hatch@hatch\n  ```\n- **`codex`** — gọi `codex mcp add hatch -- hatch mcp --as codex` (→ `~/.codex/config.toml`); cần `codex` trên PATH.\n- **`agy`** — Antigravity CLI (khác Gemini CLI legacy) nạp MCP **chỉ từ file HOME-level**: `~/.gemini/config/mcp_config.json` (cũ: `~/.gemini/antigravity-cli/mcp_config.json`, nay symlink). Project-local bị bỏ qua ([issue #60](https://github.com/google-antigravity/antigravity-cli/issues/60)).\n- **`kiro`** — project-scoped → không wire ở đây, để `hatch init` lo trong repo.\n\nVì `codex`/`agy` chạy ở thư mục bạn mở, chúng tự dùng `.hatch` local của repo (qua cwd resolution) và fallback `~/.hatch` global — nên wire một lần là dùng được ở mọi repo, không lỗi.\n\n### Bước 3 — Vào repo: `hatch init`\n\nChạy **trong repo dự án**. `hatch init` tạo `.hatch` **local** (đè global), chọn **một client làm orchestrator** (`--client`, mặc định `cc`), compile surfaces, và đăng ký MCP cho client chỉ-wire-được-ở-repo (`kiro` → `.kiro/settings/mcp.json`). `claude`/`codex`/`agy` đã wire một lần ở `hatch setup` (plugin / `~/.codex` / `~/.gemini`) nên init **không** ghi `.mcp.json`. Mặc định init thêm vào `.gitignore` **chỉ runtime của `.hatch`** (`board/ bus/ ledger/ compiled/ mcp/` — chat/ledger per-checkout, snippet regenerable); còn **SSOT** (`charter/registry/roles/context/workflow/protocol`) + `kb/` + surfaces thì commit bình thường để chia sẻ squad config:\n\n```bash\ncd /đường/dẫn/repo-của-bạn\nhatch init                   # orchestrator = Claude Code (mặc định); .hatch local\nhatch init --client codex    # orchestrator = Codex → khối orchestrator vào AGENTS.md\nhatch init -w kanban         # đổi workflow template (8 loại); --global để nhắm ~/.hatch\n```\n\n`--client` ghi `orchestrator: \u003cagent-id\u003e` vào `registry.yaml` (giữ nguyên comment) và compile đặt khối orchestrator vào surface của client đó. Các agent còn lại là team mà orchestrator điều phối qua chat. Sửa `charter.md` (sản phẩm) + `registry.yaml` (ai giữ vai gì) cho đúng đội rồi chạy lại `hatch compile`.\n\nCơ chế resolve: lệnh `hatch` tìm `.hatch` local (đi ngược lên từ cwd); không có thì dùng `~/.hatch` global. Đặt `HATCH_HOME` để đổi vị trí global.\n\n### Bước 4 — Compile / validate / doctor\n\n```bash\nhatch compile                # SSOT → CLAUDE.md · AGENTS.md · GEMINI.md · .kiro/steering/ + đăng ký MCP\nhatch validate               # kiểm tra registry + workflow\nhatch doctor                 # agent CLI nào đã cài + đã đăng nhập (chỉ gọi lệnh auth, KHÔNG quét thư mục creds)\n```\n\n### Bước 5 — Làm việc \u0026 quan sát\n\n```bash\n# Mở coding agent NGAY TRONG workspace (vd Claude Code). Nó đọc CLAUDE.md + nạp MCP\n# (Claude qua plugin, codex/agy qua config $HOME — đã set ở `hatch setup`), rồi tự lái:\n# mở thread mỗi task, @tag đồng đội, ghi KB qua MCP.\ncd /đường/dẫn/repo-của-bạn \u0026\u0026 claude          # hoặc codex / agy / kiro-cli\n\n# Bạn (con người) quan sát read-only ở terminal khác:\nhatch chat       # live chat (threads + messages) + squad stats ở footer\n                 #   (hatch board / hatch watch = alias mở cùng view)\nhatch status     # tóm tắt thread + roster\nhatch msg --from human:operator -c '#design' \"@claude-code ưu tiên streaming\"   # chèn ý kiến\n```\n\n\u003e Trên môi trường remote/CI không cài được agent thật: `./scripts/onboard.sh` dựng demo (post một thread mẫu, in `status`/`thread`) để bạn thấy luồng mà không tốn token.\n\n## CLI (`hatch`)\n\nHatch là CLI viết bằng Go (single binary). Đây là **embedded harness**: agent là entrypoint, Hatch lo SSOT/chat/KB và phơi chúng qua MCP. Bộ lệnh mặc định (xem `internal/cli/root.go`):\n\n```bash\n./scripts/onboard.sh         # build + dựng demo workspace để thử ngay — hoặc `make onboard`\nmake build                   # → bin/hatch\nbin/hatch setup               # 1 lần/máy: tạo ~/.hatch global + wire codex/agy/plugin (cc|codex|agy|kiro)\nbin/hatch init --client codex # trong repo: .hatch local + chọn orchestrator (mặc định cc) + compile (--dry-run xem trước)\nbin/hatch compile             # SSOT → CLAUDE.md / AGENTS.md / GEMINI.md / .kiro/steering\n                              #   (protocol prose: workflow + chat etiquette + DoD self-check + khối orchestrator\n                              #    cho lead) + đăng ký MCP cho kiro (.kiro/settings/mcp.json);\n                              #    snippet .hatch/mcp/* cho codex/agy (claude dùng plugin)\nbin/hatch compile --check     # CI: fail nếu output stale so với SSOT\nbin/hatch validate            # kiểm tra registry + workflow\nbin/hatch mcp --as claude-code  # MCP server (stdio) phơi tool chat + KB với danh tính agent này\n                              #   (--as bỏ trống → $HATCH_AGENT, rồi agent kind=claude đầu tiên)\nbin/hatch status              # read-only: tóm tắt thread chat (task) + roster agent\nbin/hatch chat                # read-only live TUI: threads + chat + squad stats (footer)\nbin/hatch board               # alias của `hatch chat` (cũng có `watch`)\nbin/hatch kb add --type decision --title \"CSV streaming\" --tags export\nbin/hatch kb query export     # kb add|query|index|link|backlinks|graph|open\nbin/hatch msg --from human --channel '#design' \"Streaming hay buffer?\"   # human inject vào chat\nbin/hatch inbox claude-code   # message gửi tới một agent\nbin/hatch thread \u003cid\u003e         # xem một thread (task)\nbin/hatch channel ls          # channel ls|show|join|leave|members\nbin/hatch search export       # full-text qua chat\nbin/hatch doc ...             # doc templates · logs · org · sync · hook · doctor\n```\n\nLuồng dùng thực tế:\n\n```\nhatch setup (1 lần/máy) → hatch init (trong repo) → mở coding agent NGAY TRONG workspace\n   (CLAUDE.md + MCP từ plugin/$HOME config đã wire nó vào chat + KB chung) → agent tự lái qua MCP\nNgười xem bằng hatch board / hatch chat / hatch status; chèn ý kiến bằng hatch msg.\n```\n\n\u003e **Lệnh archived (tùy chọn).** Bộ operator tự-lái (`run`, `plan`, `watch`, `tick`, orchestrator, workflow-engine `gate`/`escalate`/`ticket`, `ceremony`/`standup`, `ask`/`convene`, `pair`/`mob`, `presence`, `oncall`, `cost`/`budget`, `workload`/`perf`, `report`) **không** nằm trong binary mặc định. Chúng được archive sau build tag và chỉ build khi cần: `go build -tags hatch_legacy`. Khôi phục được, không bị xóa.\n\n## Trạng thái implement\n\nPivot **embedded-harness** đã implement (xem [doc 20](docs/20-embedded-harness-pivot.md)):\n\n- **MCP server** (`hatch mcp --as \u003cagent\u003e`, stdio) trên bus/KB — tools whoami · chat_open · chat_post · chat_read · chat_inbox · chat_search · chat_channels · kb_add · kb_search (`internal/mcpserver`, `internal/cli/mcp.go`).\n- **compile đổi mục đích**: tiêm protocol (charter + roles + workflow-prose + DoD self-check + chat etiquette + khối orchestrator cho lead) vào CLAUDE.md/AGENTS.md/GEMINI.md/.kiro, kèm đăng ký MCP cho kiro (`.kiro/settings/mcp.json` merge) + snippet `.hatch/mcp/*` cho Codex/agy. Claude nạp MCP qua plugin, nên không ghi `.mcp.json`.\n- **Claude plugin** tại `plugin/` (MCP + skill `hatch-chat` + slash `/hatch`); `.claude-plugin/marketplace.json` ở repo root.\n- **chat/status read-only**: `hatch chat` = live TUI một-view (threads + chat + squad stats ở footer; `board`/`watch` là alias); `status` = tóm tắt thread + roster. Không còn run/claim/compose.\n- **Operator tự-lái archived** sau build tag `hatch_legacy` (không vào binary mặc định, khôi phục được).\n- Cả build mặc định **và** `-tags hatch_legacy` đều compile/vet/test green.\n\nCó unit + integration test, CI, Makefile. Mã nguồn: `cmd/hatch` + `internal/`. Thiết kế gốc (trước pivot) trong `docs/00`–`19`; mô hình hiện hành ở `docs/20`. Kiến trúc (Lean Hexagonal, ports \u0026 adapters): [ARCHITECTURE.md](ARCHITECTURE.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffioenix%2Fhatch","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffioenix%2Fhatch","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffioenix%2Fhatch/lists"}