Swamp Go Brr
Security Notice
This extension includes AI agent skills that can modify AI assistant behavior. Review the skill files before installing.
An autonomous, driver-free development loop for coding agents. You hand it an
intake and a host-pinned test command; it decomposes the work into a dynamic
DAG of tasks, runs each task as a claude --print agent inside a throwaway
Firecracker microVM, applies only the returned diff behind an allowlist ACL,
and merges a task ONLY when a deterministic, network-less container says the
tests pass. Nothing the agent writes ever runs on your host, and the green
gate is the container's exit code — never the agent's self-report.
Five models:
gobrr— a PURE DAG state machine: a Run aggregate over a dynamic Task DAG (implement | verify) with a scheduler (lease TTL/heartbeat/reap, concurrency gate, stall), dynamic follow-up expansion, a state machine, and run caps. It never touches the filesystem.source-integration— the host code-ownership / allowlist-ACL actor:build_workorder(read the allowlist file slice into the leaf prompt, no-clone) andapply(parse the @@EDIT envelope, apply each task as a per-task base-isolated jj change behind a realpath-anchored allowlist ACL, return host-observed changedPaths + a secret-scrubbed diff).docker-verify— the deterministic green gate: runs the host-pinned verify command to completion in a hardened, network-less, token-less container against the read-only applied tree and returns the raw exit code.preflight— codebase-agnostic substrate setup: ensures the local OCI registry, digest-pins the codebase's OWN gate image (pin_imagebuilds a build context or pins a prebuilt ref — the toolkit/deps live in that image, not here), and emits the runconfig(gate params, fabric_up inputs, the vault CEL for the OAuth token, and the si/dv/fab create commands). Shells to docker only.otlp-export— the post-run OTLP egress actor (the loop's ONLY network push; gobrr stays pure): POSTs the derivedtraceOtlp/metricsOtlpto a configurable OTLP/HTTP collector (https), endpoint + token from a vault CEL, best-effort. gobrr'semit_otlpderives the OTLP span tree + per-leaf token/cost/time metrics; leaves run withoutputFormat=jsonso claude's usage rides back. Each leaf runsclaude --printin a Firecracker microVM via the @magistr/firecracker fabric (no-clone). The agent drives the loop inline (next -> build_workorder -> fabric.submit/poll -> apply -> docker-verify -> report); there is no driver script.
Getting started: install the bundled swamp-go-brr skill and let the agent
drive the loop — confirm the repo scope, the verify command, and the verify
inputs, then it decomposes, runs, gates, and reports. The README has a
tutorial, how-to recipes (per-leaf cost/tokens/time, OTLP export,
resume/inspect, concurrency), a model reference, and the design rationale.
Release 2026.07.16.2 — align model versions with manifests
Maintenance release across the @magistr extensions. For most packages this
carries no functional change: the only edit is the model's version: field,
brought back in line with its manifest version so the published model type
version and the package version no longer drift.
Functional changes in this release are limited to:
anime-cron: normalizeTitle now strips a ": subtitle" suffix and a trailing parenthesized year before comparison, fixing dedup false-misses where the torrent title carries a subtitle or year that the AniList romaji does not.
arckit: first publish. Standalone ArcKit port — a 12-phase architecture governance state machine with 65 bundled templates, driven by a bundled skill.
Also tracks three extensions (kaiten, observability-agent, music-library) that previously existed only as untracked working-tree directories, recovered from stashes.
| Argument | Type | Description |
|---|---|---|
| intake | string |
| Argument | Type | Description |
|---|---|---|
| tasks | array |
| Argument | Type | Description |
|---|---|---|
| owner | string |
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| owner | string | |
| verifyExitCode | number | |
| audit? | object |
| Argument | Type | Description |
|---|---|---|
| parentId | string | |
| owner | string | |
| spec | string | |
| writeAllowlist | array |
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| owner | string | |
| vmId? | string |
| Argument | Type | Description |
|---|---|---|
| reason | string |
Resources
Global Arguments
| Argument | Type | Description |
|---|---|---|
| sshHost | string | Docker host running the applied tree (SSH) |
| sshUser | string | SSH username |
| Argument | Type | Description |
|---|---|---|
| image | string | |
| treePath | string | |
| verifyCommand | string | |
| user | string | |
| pidsLimit | number | |
| memory | string | |
| cpus | string |
Resources
Global Arguments
| Argument | Type | Description |
|---|---|---|
| jjPath | string | jj binary (PATH-resolved by default) |
| Argument | Type | Description |
|---|---|---|
| taskId | string | |
| spec | string | |
| writeAllowlist | array | |
| repoScope | string | |
| practices | string | |
| nonce | string |
| Argument | Type | Description |
|---|---|---|
| repoScope | string | |
| base | string | the common base change id all task changes branch from |
| tasks | array |
Resources
Global Arguments
| Argument | Type | Description |
|---|---|---|
| registryAddr | string | Local OCI registry for the digest pin |
| sshUser | string | SSH user for the local docker-verify gate |
| jjPath | string | |
| fcHost | string | Firecracker fabric host (fab instance) |
| snapshotPath | string | |
| memFilePath | string | |
| queueRoot | string | |
| vaultName | string | |
| oauthSecretKey | string |
| Argument | Type | Description |
|---|---|---|
| name | string | Image name to store under in the local registry |
| tag | string | |
| buildContext? | string | Path to a docker build context the codebase owns |
| sourceImage? | string | A prebuilt image ref to pin instead of building |
| Argument | Type | Description |
|---|---|---|
| image | string | Digest-pinned gate image (from pin_image) |
| verifyCommand | string | Host-pinned verify command run inside the gate container |
| gateUser | string | |
| gateCpus | string | |
| gateMemory | string | |
| gatePidsLimit | number |
| Argument | Type | Description |
|---|---|---|
| repoPath | string | Absolute path of the new repo to scaffold |
| files | array | Baseline files (repo-relative path + content): scaffold + model stub + the base.test smoke gate |
| describe | string |
Resources
Global Arguments
| Argument | Type | Description |
|---|---|---|
| endpoint | string | |
| token | string | |
| payloadResource | string |
Resources
2026.06.19.3 — docs: expanded manifest description
Changed
- Expanded the manifest
descriptionwith a human-oriented overview (what the loop does + the host-isolation/green-gate guarantee) and a "getting started" pointer. The swamp-club extension page renders thedescription(not the bundled README), so this is what shows there. Docs-only — no behaviour change.
2026.06.19.2 — maintenance: CI republish
No code change. 2026.06.19.1 was published manually (to work around a
temporary registry yank), which collided with the CI publish-on-push for the
same version ("version already exists"). This release is cut by CI, with
per-version release notes now sourced from this CHANGELOG.
Docs: task-oriented README (current with all 5 models + observability) + JSDoc on all entrypoint exports. Quality 14/14. No behaviour change.
OTLP observability + per-leaf cost/tokens/time: gobrr.emit_otlp (traceOtlp/metricsOtlp), new otlp-export egress model, firecracker outputFormat=json, source-integration extractLeafJson. Lockstep 2026.06.18.1.
Added 2, modified 1 models. Added 1 skills
Merge pull request #12 from umag/feat/swamp-go-brr-package
feat(swamp-go-brr): publish @magistr/swamp-go-brr 2026.06.12.1 (driver-free loop)
- Has README or module doc2/2earned
- README has a code example1/1earned
- README is substantive1/1earned
- Most symbols documented1/1earned
- No slow types (deprecated)1/1earned
- Dependencies pass trust audit2/2earned
- Has description1/1earned
- Platform support declared (or universal)2/2earned
- License declared1/1earned
- Verified public repository2/2earned