Documentation
¶
Overview ¶
Package buildermesh embeds the files of this repo that the bmesh binary hands to other repos: the paragraph a repo's AGENTS.md gets, the README of a proposals directory and the example routine kinds. They stay in the repo for reading and are embedded from there, so the two never differ.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var AgentsSnippet string
AgentsSnippet is docs/agents-snippet.md: the buildermesh paragraph for a repo's AGENTS.md, with its bracketed verify placeholder.
var Examples embed.FS
Examples holds examples/routines/<kind>.toml, the kinds a repo is seeded with.
var Plugin embed.FS
Plugin is the Claude Code plugin this repo is: its marketplace and plugin manifests, the skills, the session hook and the license of the skill copied from ponytail. The binary writes it to a dir of its own for sessions to load (internal/plugin), so a box's skills are always its binary's.
var ProposalsReadme string
ProposalsReadme is docs/proposals/README.md: what a proposals directory holds and the lifecycle of a spec.
Functions ¶
This section is empty.
Types ¶
This section is empty.
Directories
¶
| Path | Synopsis |
|---|---|
|
Package addons holds the optional parts compiled into bmesh, one package each under addons/.
|
Package addons holds the optional parts compiled into bmesh, one package each under addons/. |
|
t3done
Package t3done is the t3-done add-on: it posts to ntfy when a T3 thread a person started on this box is done, failed or asking, read from T3's own database since T3's API doesn't say whether a turn left a background task pending.
|
Package t3done is the t3-done add-on: it posts to ntfy when a T3 thread a person started on this box is done, failed or asking, read from T3's own database since T3's API doesn't say whether a turn left a background task pending. |
|
cmd
|
|
|
bmesh
command
Command bmesh is the buildermesh CLI: nodes report events, message each other and watch the mesh through it.
|
Command bmesh is the buildermesh CLI: nodes report events, message each other and watch the mesh through it. |
|
internal
|
|
|
audit
Package audit reads an agent session's transcript and says what it read before it acted, the rung of the work skill's ladder each reply named and the rung its actions imply (101).
|
Package audit reads an agent session's transcript and says what it read before it acted, the rung of the work skill's ladder each reply named and the rung its actions imply (101). |
|
brief
Package brief renders the briefs the mesh hands its threads: the engineer brief of a proposal round's threads, the build brief of a lead and the half-pager a spec is written as.
|
Package brief renders the briefs the mesh hands its threads: the engineer brief of a proposal round's threads, the build brief of a lead and the half-pager a spec is written as. |
|
checkout
Package checkout makes and moves the clean detached worktrees that routine instances run in.
|
Package checkout makes and moves the clean detached worktrees that routine instances run in. |
|
config
Package config reads bmesh's config.toml: schema, discovery and defaults.
|
Package config reads bmesh's config.toml: schema, discovery and defaults. |
|
daemon
Package daemon holds the bmesh daemon's loops: it keeps each lead's runner sample current, wakes idle leads with unread mail, marks quiet nodes silent, and runs the routine kinds of the repos in [repos].
|
Package daemon holds the bmesh daemon's loops: it keeps each lead's runner sample current, wakes idle leads with unread mail, marks quiet nodes silent, and runs the routine kinds of the repos in [repos]. |
|
gitfetch
Package gitfetch is the one shape of every fetch bmesh runs: one that writes no FETCH_HEAD, so a fetch bmesh runs in a checkout never changes what another process's `git pull` there merges (089).
|
Package gitfetch is the one shape of every fetch bmesh runs: one that writes no FETCH_HEAD, so a fetch bmesh runs in a checkout never changes what another process's `git pull` there merges (089). |
|
gitwork
Package gitwork is the git steps shared by ideate, build, the ledger edits and the daemon's rescaffold: the same moves the briefs ask a thread to make, so a checkout someone else is working in is never switched, reset or stashed.
|
Package gitwork is the git steps shared by ideate, build, the ledger edits and the daemon's rescaffold: the same moves the briefs ask a thread to make, so a checkout someone else is working in is never switched, reset or stashed. |
|
hosts
Package hosts is the mesh's membership and proof: the admin's signed roster, signed jobs and replies between boxes, presence, the one-time invite and the keys behind them.
|
Package hosts is the mesh's membership and proof: the admin's signed roster, signed jobs and replies between boxes, presence, the one-time invite and the keys behind them. |
|
instance
Package instance runs routine jobs: a shell command, or a claude -p session that persists across jobs.
|
Package instance runs routine jobs: a shell command, or a claude -p session that persists across jobs. |
|
kind
Package kind reads routine kind files: the TOML a repo keeps under .bmesh/routines/ to say how a routine runs.
|
Package kind reads routine kind files: the TOML a repo keeps under .bmesh/routines/ to say how a routine runs. |
|
level
Package level brings one checkout level with its origin (020): it fetches, judges the checkout against origin/<branch> (or a pinned tag), fast-forwards a box that is behind, pushes one that is ahead when the push gate allows, and refreshes the plugins sessions load from it.
|
Package level brings one checkout level with its origin (020): it fetches, judges the checkout against origin/<branch> (or a pinned tag), fast-forwards a box that is behind, pushes one that is ahead when the push gate allows, and refreshes the plugins sessions load from it. |
|
merge
Package merge resolves the conflict regions of a three-way text merge by rule, and leaves a region no rule resolves a conflict.
|
Package merge resolves the conflict regions of a three-way text merge by rule, and leaves a region no rule resolves a conflict. |
|
mesh
Package mesh holds the NATS names, paths and clients of the bmesh mesh.
|
Package mesh holds the NATS names, paths and clients of the bmesh mesh. |
|
meshtest
Package meshtest starts an embedded NATS server for tests.
|
Package meshtest starts an embedded NATS server for tests. |
|
nix
Package nix removes a repo's checkout from a box (023): the admin's signed nix job names a repo and the origin its registry row has, the box takes the path from its own registry row and refuses, touching nothing, anything whose loss couldn't be undone from a remote.
|
Package nix removes a repo's checkout from a box (023): the admin's signed nix job names a repo and the origin its registry row has, the box takes the path from its own registry row and refuses, touching nothing, anything whose loss couldn't be undone from a remote. |
|
notify
Package notify posts a notification: to an ntfy URL over HTTP, or through a command (the test hook config.toml's notify command names).
|
Package notify posts a notification: to an ntfy URL over HTTP, or through a command (the test hook config.toml's notify command names). |
|
plugin
Package plugin writes the buildermesh plugin the binary carries to a dir of bmesh's own, and points Claude Code at it, so the skills a box's sessions load are always its binary's.
|
Package plugin writes the buildermesh plugin the binary carries to a dir of bmesh's own, and points Claude Code at it, so the skills a box's sessions load are always its binary's. |
|
proc
Package proc puts a command in its own process group and kills the group, so no descendant outlives a run: Setpgid and kill(-pid) on Unix, a new process group and taskkill /T on Windows.
|
Package proc puts a command in its own process group and kills the group, so no descendant outlives a run: Setpgid and kill(-pid) on Unix, a new process group and taskkill /T on Windows. |
|
prune
Package prune removes the worktrees and branches a finished node leaves behind on this box: one node's (`node forget --worktree`, the forget-worktree op) or a whole checkout's (the prune op).
|
Package prune removes the worktrees and branches a finished node leaves behind on this box: one node's (`node forget --worktree`, the forget-worktree op) or a whole checkout's (the prune op). |
|
runner
Package runner starts and observes the agent sessions behind nodes: a T3 Code thread (T3), claude in a tmux window (Tmux) or headless claude -p turns (Claude).
|
Package runner starts and observes the agent sessions behind nodes: a T3 Code thread (T3), claude in a tmux window (Tmux) or headless claude -p turns (Claude). |
|
runner/t3mcp
Package t3mcp speaks to T3 Code's MCP endpoint (/mcp: streamable HTTP, JSON-RPC, the mcp-session-id header) and holds the sign-in that endpoint needs: the OAuth login that mints a token and the file it is kept in.
|
Package t3mcp speaks to T3 Code's MCP endpoint (/mcp: streamable HTTP, JSON-RPC, the mcp-session-id header) and holds the sign-in that endpoint needs: the OAuth login that mints a token and the file it is kept in. |
|
runner/t3mcp/t3fake
Package t3fake is an httptest T3 Code server for tests: the environment document, the MCP OAuth endpoints and the MCP tools the t3 runner calls, answering with the shapes recorded from a T3 0.1.0 server (kept in testdata/t3v2).
|
Package t3fake is an httptest T3 Code server for tests: the environment document, the MCP OAuth endpoints and the MCP tools the t3 runner calls, answering with the shapes recorded from a T3 0.1.0 server (kept in testdata/t3v2). |
|
scaffold
Package scaffold gives a ship repo what a buildermesh build expects of it: the "Definition of done", "Proposals" and "Buildermesh" sections of its AGENTS.md between markers, and its "Engineering rules" block (rules.go), docs/proposals/README.md and assets/.gitkeep, the routine kinds its registry row names, seeded from the embedded examples, and the row's setup as .bmesh/config.toml's [setup].
|
Package scaffold gives a ship repo what a buildermesh build expects of it: the "Definition of done", "Proposals" and "Buildermesh" sections of its AGENTS.md between markers, and its "Engineering rules" block (rules.go), docs/proposals/README.md and assets/.gitkeep, the routine kinds its registry row names, seeded from the embedded examples, and the row's setup as .bmesh/config.toml's [setup]. |
|
selfupdate
Package selfupdate builds bmesh from a checkout of its repo's main and swaps the result in for a binary, keeping the one it replaces beside it.
|
Package selfupdate builds bmesh from a checkout of its repo's main and swaps the result in for a binary, keeping the one it replaces beside it. |
|
session
Package session measures the context of the agent session a bmesh command runs in, from what its harness records, and keeps which nudge the session last heard (094).
|
Package session measures the context of the agent session a bmesh command runs in, from what its harness records, and keeps which nudge the session last heard (094). |
|
setup
Package setup runs a repo's setup command (its .bmesh/config.toml setup) in a worktree: what installs the dependencies the repo gitignores, which a fresh `git worktree add` lacks.
|
Package setup runs a repo's setup command (its .bmesh/config.toml setup) in a worktree: what installs the dependencies the repo gitignores, which a fresh `git worktree add` lacks. |
|
shell
Package shell runs a command line through the platform's shell: sh on Unix, cmd on Windows.
|
Package shell runs a command line through the platform's shell: sh on Unix, cmd on Windows. |
|
spec
Package spec finds a spec on the project's main branch and reads its frontmatter, with the same rules as tools/proposals.py.
|
Package spec finds a spec on the project's main branch and reads its frontmatter, with the same rules as tools/proposals.py. |
|
upgrade
Package upgrade reads a release's upgrade notes, docs/upgrading/<tag>.toml in bmesh's own repo: the steps an install from the release before needs, distilled by the coordinator from the Upgrading sections of the specs the release carries.
|
Package upgrade reads a release's upgrade notes, docs/upgrading/<tag>.toml in bmesh's own repo: the steps an install from the release before needs, distilled by the coordinator from the Upgrading sections of the specs the release carries. |
|
web
Package web serves the map: a page, the JSON it reads (the node tree, a lead's page, the routines and the strip) and the mesh's events as server-sent events.
|
Package web serves the map: a page, the JSON it reads (the node tree, a lead's page, the routines and the strip) and the mesh's events as server-sent events. |
|
scripts
|
|
|
seed
command
Command seed fills a scratch mesh (scripts/seed.sh runs it against a throwaway bmesh serve) with every state the map draws: two live leads and their executors (working, asking, done and one idle), a held lead, a landing lead (ready, its box's daemon landing it), a done lead for the shelf, a silent lead, an orphan, a round and its two engineers (one blocked), a pooled routine kind with instances in two repos and three spent fresh runs, a queued job, a few events and messages, two leases, a result and a daemon digest, and writes the quota fixture the seeded config's quota command reads (-quota).
|
Command seed fills a scratch mesh (scripts/seed.sh runs it against a throwaway bmesh serve) with every state the map draws: two live leads and their executors (working, asking, done and one idle), a held lead, a landing lead (ready, its box's daemon landing it), a done lead for the shelf, a silent lead, an orphan, a round and its two engineers (one blocked), a pooled routine kind with instances in two repos and three spent fresh runs, a queued job, a few events and messages, two leases, a result and a daemon digest, and writes the quota fixture the seeded config's quota command reads (-quota). |
|
skilltest
command
Command skilltest measures buildermesh's skills: it runs scripted operator asks through headless Claude Code sessions, one arm per version of the plugin, against a sandbox repo with a local origin and a fake bmesh, and scores each cell on what it left.
|
Command skilltest measures buildermesh's skills: it runs scripted operator asks through headless Claude Code sessions, one arm per version of the plugin, against a sandbox repo with a local origin and a fake bmesh, and scores each cell on what it left. |