Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/inferencegod/autonomy-loop/autonomy-initgit clone --depth 1 https://github.com/inferencegod/autonomy-loopWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00019 | $0.03209 |
| Opus 5 | $0.00010 | $0.01605 |
| Sonnet 5 | $0.00004 | $0.00642 |
| Haiku 4.5 | $0.00002 | $0.00321 |
Grade A, and why
autonomy-init scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 39 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bootstrap the autonomy loop for this repository.
- Config. If
autonomy.config.jsonALREADY exists, you are upgrading, not initializing: runnode ${CLAUDE_PLUGIN_ROOT}/hooks/migrate-config.mjsto top up any missing knobs (idempotent, never overwrites a value you set), report what it added, and SKIP to step 2. Do NOT overwrite an existing config. Otherwise, ifautonomy.config.jsondoes not exist at the repo root, copy it from the plugin'sautonomy.config.example.jsonand fill the knobs by inspecting the repo: detect the package manager + exacttest/build/lintcommands; ask me (or infer + confirm) theworkBranch,prodBranch, the frozen invariant (what must stay byte-identical: golden fixtures? snapshot tests? an API contract?), and theprotectedPaths. Coverage drift gate (offer it, do not assume): check whether a coverage tool is available (c8, nyc, jest, vitest, ornode --test --experimental-test-coverage); if one is, ask me whether to turn on drift protection, and on a yes setgate.coverageto a command that emits an Istanbulcoverage-summary.json(for examplec8 --reporter=json-summary --reporter=json <the test command>), then runnode ${CLAUDE_PLUGIN_ROOT}/hooks/coverage-ratchet.mjsonce to seed.autonomy-coverage.jsonat the current coverage. If no coverage tool is present, leavegate.coverageempty and tell me why. Then, if a coverage tool IS present, ask about the FOURTH gate, patch coverage: off, 80 (standard), or 100 (every changed line of a wave must be tested). On 80 or 100 setgate.patchTargetto that number and make sure the coverage command emitscoverage-final.json(the--reporter=jsonabove); on off leavegate.patchTargetat 0. Explain that patch coverage scores ONLY the lines a wave changes, so it works regardless of the repo's overall coverage level, even a low-coverage repo can require every new line to be tested. LeavemodelsandloopIntervalSecat their defaults unless I say otherwise. Roles (v0.8 presence-to-trigger): the example config already ships the à la carterolesshape (builder: auto, reviewer: required, planner: auto, researcher: auto), so do NOT ask me to flip flags. Tell me the loop is presence-driven: builder+reviewer are the always-on core, and I add the Planner simply by opening a/autonomy-loop:plannerterminal (the recommended 3-terminal shape), and the Researcher by also opening/autonomy-loop:researcher(the 4-terminal power mode). The only reason to editrolesis to set one tooff(a veto). Leave the à la carte shape as copied. - Server-side prod protection (v0.8 provision-or-refuse: PROVISION the no-bypass ruleset). The
gate-guardhook is a local tripwire, not a sandbox; the real backstop is server-side branch protection onprodBranch, and it is the only unattended-grade independence (the SessionStart preflighthooks/preflight.mjsdecidePreflightREFUSES the auto-promotion path whilegate.requireProdProtectionis true and prod is unprotected). Ifghis missing, you are not authenticated (gh auth statusfails), ororiginis not a github.com remote, SKIP the automated path: print a clear warning that prod protection could NOT be provisioned, show the manual steps, and continue. Otherwise check effective protection (ruleset-aware, no admin needed):gh api "repos/{owner}/{repo}/rules/branches/{prodBranch}" --jq 'length'. If greater than 0, report it is already protected and move on. If 0, tell me plainly that prod is unprotected and the gate is only a local tripwire, then ASK whether to provision the no-bypass ruleset. On yes, provision it from the plugin template${CLAUDE_PLUGIN_ROOT}/prod-ruleset.json: substitute{prodBranch}with the configuredprodBranchand STRIP every_comment*key (GitHub schema-validates the rule and parameter objects, so comment keys must not be POSTed), write the result to a tempprod-ruleset.json, thengh api --method POST -H "X-GitHub-Api-Version: 2022-11-28" "repos/{owner}/{repo}/rulesets" --input <that file>. The template isenforcement:"active"with an EMPTYbypass_actors:[](so it binds EVERYONE including repo admins, and the agent token is not on it, so the agent credential cannot reachprodBranchdirectly) and rulespull_request(required_approving_review_count >= 1, require_last_push_approval true) +non_fast_forward+deletion. CRITICAL: this uses thepull_requestrule, NOT "Restrict updates" (the update rule). Restrict-updates would block the PR-merge fast-forward for non-bypass actors and break the promote-by-PR flow;pull_requestgates the merge behind a required review without blocking the merge itself. This is the exact shape the preflightprobeProdProtectedchecks for (it requires BOTHpull_requestandnon_fast_forward), so once provisioned the preflight'sprodUnprotectedrefusal clears. Provisioning needs repo ADMIN; on any failure (403 / not admin / error) do NOT abort: print the exact command plus a warning and continue. This step NEVER stops setup.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 39 lines · 19 tokens per session scan A ee8ada1f44cc
autonomy-init is a command published in the GitHub repository inferencegod/autonomy-loop (1 stars, last pushed 2mo ago), licensed MIT. It adds 19 tokens to every session and 3,209 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
fest-show
Show festival progression (in-progress tasks, roadmap, and dependency view).
test
Run Postman collection tests, analyze results, diagnose failures, and suggest fixes.
review
Review proposed ADRs for lifecycle progression — accept implemented decisions, deprecate stale ones, archive trivial ones.
types
Debug and fix TypeScript type errors with systematic analysis and expert guidance.
routine
Execute one maintenance routine defined in scv/routines/ .md (task + guardrails + exit-criteria contract), or list defined routines. SCV never schedules — pair with host features like /loop or cron yourself. Use whenever the user asks to run a recurring maintenance task, or asks what routines exist — not only when…
incident
Live incident response — intake a Sentry issue, stack trace, or symptom; gate mitigate-first vs root-cause-first; keep a UTC timeline. Use when production is broken RIGHT NOW; for the after-action write-up alone, use /orc:postmortem.