[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-982":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":9,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":23,"hasPages":21,"topics":24,"createdAt":9,"pushedAt":9,"updatedAt":25,"readmeContent":26,"aiSummary":27,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":28,"discoverSource":29},982,"swarm-forge","unclebob\u002Fswarm-forge","unclebob","A simple tool for coordinating several AI agents.",null,"Shell",821,93,23,2,0,33,94,376,99,9.92,false,"main",true,[],"2026-06-12 02:00:21","# SwarmForge\n\n**A disciplined tmux-based agent orchestration platform that turns swarms of AI agents into reliable, professional software engineers.**\n\n## Intent\n\nSwarmForge is an agent coordination system that facilitates communication between agents working in different git worktrees.\n\nIt provides a shared structure for role-specific prompts, worktree assignment, tmux sessions, and message passing so multiple agents can collaborate on the same project without stepping on each other.\n\n## What SwarmForge Does\n\nSwarmForge is a lightweight, tmux-based orchestration layer that:\n\n- Launches a **config-driven swarm** from a project-local `swarmforge\u002Fswarmforge.conf`\n- Creates one tmux session and one Terminal window per configured role\n- Reads behavior from project-local `swarmforge\u002F\u003Crole>.prompt` files plus a layered `swarmforge\u002Fconstitution.prompt`\n- Supports per-role backends such as `claude`, `codex`, or `none`\n- Creates a project-local `swarmtools\u002F` directory with notification helpers for the active swarm\n- Creates one git worktree per configured role under `.worktrees\u002F`\n- Initializes a git repository in a new working directory and creates a first commit with `logs\u002F` and `agent_context\u002F` ignored\n- Keeps all swarm state local to the working directory in `.swarmforge\u002F`\n\n## Core Features\n\n- **Config-Driven Topology** — The swarm shape comes from `swarmforge\u002Fswarmforge.conf`, not hardcoded shell variables.\n- **Project-Local Roles** — Each role is defined by `swarmforge\u002F\u003Crole>.prompt` in the working tree being orchestrated.\n- **Layered Constitution** — `swarmforge\u002Fconstitution.prompt` can delegate to subordinate files such as `swarmforge\u002Fconstitution\u002Fproject.prompt`, `engineering.prompt`, and `workflow.prompt`.\n- **Backend Selection Per Role** — A role can launch `claude`, `codex`, or no agent at all.\n- **Observable Swarm** — Open one Terminal window per role and watch the sessions in real time.\n- **Self-Hosted & Lightweight** — Runs locally in tmux and Terminal with minimal machinery.\n\n## Constitution And Roles\n\nIn a configuration with an `architect`, `coder`, and `reviewer`, the recommended prompt layout is:\n\n```text\nswarmforge\u002F\n  swarmforge.conf\n  constitution.prompt\n  constitution\u002F\n    project.prompt\n    engineering.prompt\n    workflow.prompt\n  architect.prompt\n  coder.prompt\n  reviewer.prompt\n```\n\n`constitution.prompt` is the entry point. It can define precedence and direct agents to read subordinate constitution files in order. That lets you separate project-specific rules from engineering rules and workflow rules without forcing everything into one large prompt.\n\nThe default three-agent workflow is:\n\n- `architect` defines behavior, plans, and acceptance-level intent\n- `coder` implements one small slice at a time and hands off completed work\n- `reviewer` performs deeper verification and quality checks before final handoff\n\n`logger` remains an optional utility role with no agent backend.\n\n## How It Works (High Level)\n\n1. Create a `swarmforge\u002F` directory in the target working directory.\n2. Put `swarmforge.conf`, `constitution.prompt`, and one `\u003Crole>.prompt` file per configured role inside it. If needed, add subordinate files under `swarmforge\u002Fconstitution\u002F`.\n3. In `swarmforge\u002Fswarmforge.conf`, define each window as `window \u003Crole> \u003Cagent> \u003Cworktree>`.\n4. Add `swarmforge.sh` to your shell `PATH` before startup.\n5. Run `swarmforge.sh \u003Cworking-directory>` or run it from inside that directory.\n6. If the working directory is not already a git repo, startup runs `git init`, renames the initial branch to `master`, writes `.gitignore` entries for `.swarmforge\u002F`, `.worktrees\u002F`, `swarmtools\u002F`, `logs\u002F`, and `agent_context\u002F`, and makes the first commit from the current project state.\n7. Startup creates a git worktree for each window under `.worktrees\u002F\u003Cworktree>`, unless the worktree field is `none` or `master`.\n8. Startup creates `swarmtools\u002Fnotify-agent.sh` for that project.\n9. SwarmForge creates tmux sessions, opens Terminal windows, and launches each configured backend in its assigned worktree.\n10. Roles communicate through helper commands such as `notify-agent.sh`.\n\n## The `swarmforge.conf` File\n\n`swarmforge\u002Fswarmforge.conf` defines the swarm window-by-window. Each line has this form:\n\n```conf\nwindow \u003Crole> \u003Cagent> \u003Cworktree>\n```\n\nYou can define as many windows as your project needs. Each `role` maps to a corresponding prompt file at `swarmforge\u002F\u003Crole>.prompt`, so a config containing `architect`, `coder`, `reviewer`, `research`, and `release` windows would expect:\n\n- `swarmforge\u002Farchitect.prompt`\n- `swarmforge\u002Fcoder.prompt`\n- `swarmforge\u002Freviewer.prompt`\n- `swarmforge\u002Fresearch.prompt`\n- `swarmforge\u002Frelease.prompt`\n\nThis lets each project choose its own swarm shape instead of being locked to a fixed set of roles. The only special case is a utility role such as `logger` using the `none` backend, which opens a window without launching an agent.\n\nExample config:\n\n```conf\nwindow architect claude master\nwindow coder codex coder\nwindow reviewer codex reviewer\nwindow logger none none\n```\n\n`logger` is a utility role. When configured with `none`, it tails `logs\u002Fagent_messages.log`.\n\nIn the example above, the agents run in these worktrees:\n\n- `architect` -> main working directory on `master`\n- `coder` -> `.worktrees\u002Fcoder`\n- `reviewer` -> `.worktrees\u002Freviewer`\n- `logger` -> main working directory\n\nIf a window uses `master` as its worktree name, SwarmForge does not create `.worktrees\u002Fmaster`; that role runs in the main working directory on the `master` branch.\n\n## Examples\n\nThe repository includes example swarm definitions under `examples\u002F`.\n\n- `examples\u002FclojureHTW\u002Fswarmforge\u002F` shows a layered constitution and agent prompts for a Clojure Hunt The Wumpus project, including a queueing rule for messages that arrive while an agent is busy.\n\nUse these example directories as starting points for project-local `swarmforge\u002F` folders.\n\n## Getting Started\n\n- Clone this repository and make `swarmforge.sh` executable.\n- Add the directory containing `swarmforge.sh` to your shell `PATH`.\n- Create or choose the project directory you want SwarmForge to manage.\n- Inside that project, create a `swarmforge\u002F` directory.\n- Create `swarmforge\u002Fswarmforge.conf` and define the windows for your swarm.\n- Use the earlier `Constitution And Roles`, `How It Works`, and `The swarmforge.conf File` sections as the reference for the expected prompt layout, role files, and window definitions.\n- Type `swarmforge`.\n","SwarmForge 是一个基于 tmux 的简单工具，用于协调多个 AI 代理的工作。它通过配置文件驱动的方式启动和管理不同角色的 AI 代理，并为每个角色分配独立的 tmux 会话和终端窗口，支持多种后端如 `claude` 和 `codex`。项目本地的角色定义、分层的宪法文件以及每个角色的 git 工作树确保了多代理之间的协作顺畅且不互相干扰。此外，SwarmForge 保持所有状态信息在工作目录中，便于管理和观察。该工具适用于需要多个 AI 代理协同工作的软件开发场景，尤其是希望提高开发效率和代码质量的团队。","2026-06-11 02:40:39","CREATED_QUERY"]