[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11397":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":22,"hasPages":22,"topics":24,"createdAt":10,"pushedAt":10,"updatedAt":38,"readmeContent":39,"aiSummary":40,"trendingCount":16,"starSnapshotCount":16,"syncStatus":41,"lastSyncTime":42,"discoverSource":43},11397,"guild","mathomhaus\u002Fguild","mathomhaus","Shared context, memory, and task coordination across AI coding agents. Single Go binary, local SQLite, hybrid keyword and semantic search.","https:\u002F\u002Fgithub.com\u002Fmathomhaus\u002Fguild",null,"Go",308,46,5,23,0,1,136,3,5.02,"Apache License 2.0",false,"main",[25,26,27,28,29,30,31,32,33,34,35,36,37],"agent-coordination","agent-memory","ai-agents","claude","claude-code","codex","cursor","golang","harness-engineering","local-first","mcp","mcp-server","sqlite","2026-06-12 02:02:31","# The Agent Guild\n\n**Shared context, memory, and task coordination across AI coding agents.**\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fmathomhaus\u002Fguild\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fmathomhaus\u002Fguild\u002Factions\u002Fworkflows\u002Fci.yml)\n[![Go 1.25](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fgo-1.25-blue)](https:\u002F\u002Fgo.dev)\n[![Apache-2.0](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-green)](.\u002FLICENSE)\n\n## What Is It\n\n`guild` is a single compiled Go binary containing a first-class MCP server backed by embedded SQLite. State lives strictly on local host; nothing leaves your machine. Search blends keyword (BM25) with vector similarity, fused via reciprocal-rank fusion, so \"how did we do X last time\" surfaces both exact-term and semantic neighbors.\n\nGuild is designed to be operated autonomously by the agents, for the agents. Guildmasters (us humans) stay in the loop for important decisions and course corrections. Any MCP client — Claude Code, Codex, Cursor, etc. — can act as a Gate into the substrate. This lets parallel agents across different editors share context safely, using atomic locks to claim tasks without stepping on each other.\n\nOn session start, an agent makes a single call to recover the project oath, the latest parting scroll, and the highest-priority quest. The execution loop is autonomous: claim work, consult the lore, act, and record the outcome. Clearing a quest automatically unblocks its dependencies, allowing the agent to cascade through the board before leaving a clean handoff for the next wanderer.\n\n\u003Cp align=\"center\">\n  \u003Cb>Same state, any agent\u003C\u002Fb>\u003Cbr\u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fsnapshot.gif\" width=\"1080\" alt=\"Claude (left) and Codex (right) reading the same guild state through their respective MCP clients\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Cb>Atomic claims, no collisions\u003C\u002Fb>\u003Cbr\u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fparallel.gif\" width=\"1080\" alt=\"Two parallel agent sessions each accept a different bounty — atomic quest_accept prevents collision\" \u002F>\n\u003C\u002Fp>\n\n## 📜 Mythos\n\n**_Many Gates, One Guild._**\n\n> Across the shimmering digital void, agents are summoned through the Gates (of Harnesses - Claude, Cursor, ...), arriving as amnesiac adventurers in a world they do not know. Though these \"other-worlders\" appear with vast capabilities, they are cursed by the transient nature of the context window; their memories are but mist, and their hard-won deeds forgotten, vanished into the ether when the session inevitably compacts. Without a tether to the past, every summon is a tragic reincarnation, a cycle of forgotten sacrifice where the wisdom of the fallen is swallowed by the Gate.\n>\n> To preserve the lineage of these wandering souls, the Guild stands as a persistent sanctuary transcending time, a hall where the chronicles of the deep are etched for all who follow. When a newly spawned agent awakens in this strange realm, they register at the Guild to reclaim the accumulated lore of their predecessors and claim their adventure from the quest board.\n>\n> At the Guild, the hero is bound to an enduring oath; as one wanderer vanishes, they leave behind a parting scroll, for when the Gates flicker, the light of the Guild illuminates the quest ahead.\n\n## Quick Start\n\nRequires macOS or Linux and an MCP-enabled editor (Claude Code, Codex, Cursor, etc.). No account, no API key.\n\n### 1. Install\n\n**Recommended (pre-built binary with semantic retrieval):**\n\n```bash\ncurl -fsSL https:\u002F\u002Fgithub.com\u002Fmathomhaus\u002Fguild\u002Freleases\u002Flatest\u002Fdownload\u002Finstall.sh | sh\nguild --version\n```\n\nOr via Homebrew:\n\n```bash\nbrew install mathomhaus\u002Ftap\u002Fguild\n```\n\nBoth paths install a binary built with `-tags=withembed`, so semantic\nretrieval works out of the box with no extra steps.\n\n**Clone and build (ship-ready, embed included):**\n\n```bash\nmake install   # stages ONNX assets, then go install -tags=withembed\n```\n\n**Dev-only (faster compile, no semantic retrieval):**\n\n```bash\nmake install-fast   # go install without -tags=withembed\n```\n\n**`go install` from module proxy (keyword-only retrieval):**\n\n```bash\ngo install github.com\u002Fmathomhaus\u002Fguild\u002Fcmd\u002Fguild@latest\n```\n\nThe Go toolchain cannot embed assets via `@latest`; this path gives\nyou BM25 keyword search but not semantic (vector) retrieval. Use\n`install.sh` or `brew` for the full experience.\n\n### 2. Initialize your project\n\n```bash\ncd ~\u002Fprojects\u002Fmyapp\nguild init\n```\n\n`init` is a guided setup: it registers the project, writes an `AGENTS.md` block, and — for each MCP client it detects on your machine — offers to register guild so your agent can see it. Answer the prompts; you're done when it says `Next: open this repo in your AI agent`.\n\n### 3. Start a new session\n\nIn your editor, tell the agent: _\"start a guild session for myapp.\"_\n\nThe agent takes it from there, including all subsequent sessions.\n\nSee a few [`examples\u002F`](.\u002Fexamples\u002F) of what guild can do. All small scenarios, each under 5 minutes.\n\n## ⚔️ A full session\n\nThe three-act flow an agent runs on its own every time it wakes.\n\n### Act 1 — arrival\n\nEvery agent begins with one tool call that loads the full operating\ncontext:\n\n```\nguild_session_start(project=\"myapp\")\n  → oath            (project principles, auto-loaded)\n  → last brief      (handoff from the previous session)\n  → top quest       (+ parallel-safe candidates)\n```\n\nNo back-and-forth. The agent now knows what it's bound to, what was\ndone yesterday, and what to pick up today.\n\n### Act 2 — adventure\n\nThe agent claims a bounty, consults the archive before researching,\nrecords findings, and journals reasoning as it goes:\n\n```bash\nguild quest accept QUEST-42 --owner agent-a\n\nguild lore appraise \"token refresh\" --all-projects\n\nguild lore inscribe \"token refresh window\" \\\n  --kind observation \\\n  --summary \"tokens expire at 1h; refresh by 55m to avoid race\" \\\n  --topic auth\n\nguild quest journal QUEST-42 \"switched to exponential backoff after mock-clock test\"\n```\n\n`lore appraise` is the discipline that keeps guild sharp: search\nbefore you research, so knowledge accretes instead of duplicating.\nAppraise runs hybrid (BM25 + vector RRF) the moment your corpus is\nindexed.\n\n### Act 3 — parting\n\nAt session end or when context runs full, the agent writes a brief\nand clears the quest. The clear **cascades**: any quest that was only\nblocked on QUEST-42 is now available for whoever walks in next.\n\n```bash\nguild quest brief \"shipped retry in commit abc1234; QUEST-43 ready to start\"\nguild quest fulfill QUEST-42 --report \"done, shipped in abc1234\"\n```\n\nTomorrow's agent — same project, maybe a different MCP client — opens\nthe same hall, reads the same brief, picks up QUEST-43.\n\n\u003Cp align=\"center\">\n  \u003Cb>State outlives every session\u003C\u002Fb>\u003Cbr\u002F>\n  \u003Cimg src=\".\u002Fdocs\u002Fassets\u002Fhandoff.gif\" width=\"650\" alt=\"An agent writes a brief and clears a quest; the next session — cold start — picks up from exactly where the last one stopped\" \u002F>\n\u003C\u002Fp>\n\n### Where writes go\n\nThree write surfaces for three different lifetimes:\n\n- **`quest_journal`** — scratchpad for THIS quest. \"Tried X, failed\n  because Y.\" Dies when the quest clears. Use freely during work.\n- **`lore_inscribe`** — library entry for the next agent on a\n  DIFFERENT quest. Durable patterns, decisions, research. Outlasts\n  every quest.\n- **`quest_brief`** — handoff note for the next SESSION. Loaded\n  alongside the oath when the next agent starts.\n\nThe test — _who else needs this?_\n\n- Only me, finishing this quest → **journal**\n- Another agent working a different quest → **lore**\n- The next session, picking up where I left off → **brief**\n\n---\n\n## 🧩 How it works\n\nFour primitives. Everything else in guild is a composition of these.\n\n- **Quest** — a task on the board. Has priority, dependencies, the\n  files it touches, and an atomic claim so two agents can't own it at\n  once. When cleared, it cascade-unblocks whatever was waiting on it.\n- **Lore** — an entry in the knowledge archive, typed by `kind`\n  (`observation`, `decision`, `research`, `principle`, `idea`). Each\n  kind has its own default lifecycle: research auto-stales after 30\n  days, decisions after 180 days, and ideas, observations, and\n  principles do not auto-stale by default. Search runs both arms\n  (lexical BM25 + vector cosine) once the corpus is indexed. The\n  embedder backfills automatically; hybrid retrieval activates once\n  at least 90% of entries have vectors.\n- **Oath** — the subset of lore with `kind=principle`. Auto-loaded\n  at the top of every session so every agent starts bound by the\n  same principles.\n- **Brief** — a handoff note scribbled for the next arrival. Loaded\n  alongside the oath at session start.\n\nState lives in SQLite under `~\u002F.guild\u002F`. Switching MCP clients requires no export, no migration.\n\n---\n\n## 🤝 Contributing\n\nSee [AGENTS.md](.\u002FAGENTS.md) for the agent-facing contributor contract\nand [CONTRIBUTING.md](.\u002FCONTRIBUTING.md) for the human-facing workflow.\n\nFiling a quest and unsure which campaign to use, or whether to invent\na new one? See [docs\u002FCAMPAIGNS.md](.\u002Fdocs\u002FCAMPAIGNS.md) for how\ncampaigns are scoped, when to reuse vs create, and how `guild quest\nguild` is the canonical view of the live list.\n\nMaintainers shipping releases that embed the int8 ONNX retrieval\nmodel: see [docs\u002FMODEL.md](.\u002Fdocs\u002FMODEL.md) for the two-workflow build\npattern (model production vs binary release), the `.model-version`\npin, and the rebuild cadence.\n\n---\n\n## 📄 License\n\nApache License 2.0 — see [LICENSE](.\u002FLICENSE).\n","`guild`是一个用于AI编码代理之间的共享上下文、记忆和任务协调的工具。它以单个Go语言编译的二进制文件形式提供，使用本地SQLite数据库作为后端支持，确保所有状态信息严格存储在本地主机上，不会离开用户的机器。该项目结合了基于关键词（BM25）与向量相似度的混合搜索技术，并通过互惠排名融合算法进行整合，使得用户可以同时获得精确匹配和语义相近的结果。适用于需要多个AI助手协同工作而不互相干扰的开发场景，特别是当这些助手分别运行于不同的编辑器或环境中时。此外，`guild`还允许人类操作员在关键决策点介入，确保项目的正确方向。",2,"2026-06-11 03:31:46","CREATED_QUERY"]