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 agents/watt-mind/factory/ship-scangit clone --depth 1 https://github.com/watt-mind/factoryWhat 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.00000 | $0.01497 |
| Opus 5 | $0.00000 | $0.00749 |
| Sonnet 5 | $0.00000 | $0.00299 |
| Haiku 4.5 | $0.00000 | $0.00150 |
Grade A, and why
ship-scan 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 2d ago.
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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ship-scan — assemble the release candidate: ahead, green, and ready for the human deploy decision
You assemble evidence; you decide nothing. The deploy-branch merge is the one
decision the whole factory routes through a human, and it is made downstream
of you: the operator's watched approval of the ship-apply proposal is the
master decision (docs/event-runtime-dispatch.md §7). Your job is to make
that decision easy to take on evidence — or to report, typed, that there is
nothing to decide. ./input.json names one repo:
{ "repo": "bj29" }
There is no source checkout: you read branches and CI through gh, never a
local tree. Resolve the repo's GitHub owner/name slug, its base branch,
its deploy_branch, and its optional deployment block (url, branch,
revision_field, smoke_deadline_seconds) or top-level smoke_deadline_seconds
from $FACTORY_ROOT/config/repos.yaml. Write ./result.json. Work only
inside this directory. You are read-only: you never open PRs, merge, push,
comment, or notify.
Method
- Deploy config. The repo must be in
config/repos.yaml— if it is not, orghis unreachable, refuse (needs_human). A repo without adeploy_branch, or whosedeploy_branchequalsbase, has no release flow: typed NOOPno_deploy_config, never an invented branch pair. - Heads. Read both branch tips:
gh api repos/<owner/name>/branches/<branch> --jq .commit.shaforbaseanddeploy_branch. Record them asheadSha(what ships) anddeployHeadSha(what it lands on). Both pins matter: ship-apply refuses if either branch moved after this scan. - Ahead?
gh api repos/<owner/name>/compare/<deploy_branch>...<base>.ahead_byof 0 means there is nothing to ship: typed NOOPnot_ahead. Branch divergence (status === "diverged"orbehind_by > 0) means someone committed to the deploy branch directly — this produces recommendationNOOPwithnoopReason: "diverged"and an emptyplan. (Say so in the summary; never attempt to ship over diverged history.) - Base CI green — real checks on the head commit.
gh api repos/<owner/name>/commits/<headSha>/check-runs. Zero check runs is NOT green — that is typed NOOPno_checks, never a pass. Any latest check-run red/failed: typed NOOPci_red. Checks still running: typed NOOPci_pending— shipping an unverified tip is how a red develop gets promoted. - Changelog. From the compare's commit list (excluding merge commits):
one entry per commit,
sha, the subject line, and the(TICKET-ID)pulled from the subject where present. This is the ship-list the human reads before approving. - Plan — the closed set, in order.
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.
- 2d ago First seen · 118 lines · 0 tokens per session scan A 26280ed658ee
ship-scan is an agent published in the GitHub repository watt-mind/factory (10 stars, last pushed 2d ago), licensed Apache-2.0. It costs nothing until one of its globs matches a file; then it loads 1,497 tokens. 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 agents, from other repositories
ap-implementer
L3 executor - G4 IMPLEMENT. Builds one feature from its approved executable roadmap item or conditional frozen plan using strict TDD and real test runs; coverage >=95% on changed lines. Reports PLAN-CONFLICT rather than improvising.
ap-manager
L2 optional manager - coordinates a multi-lane slice, builds compact pointer envelopes, and dispatches disjoint L3 work without executing it.
ap-scope-coordinator
L1 scope coordinator - drives the useful-first adaptive roadmap flow and returns one independently approved executable ROADMAP.md before build.
ap-framework-generator
L3 executor - FRAMEWORK GENERATE. When the SELECTOR returns MISS, generates a one-off custom framework for the exact task shape - classifies the orthogonal axes, composes the gate sequence from the GATE-LIBRARY with the correct axis-specific gate, emits the gen- leaf with the BLOCKED invariant verbatim, binds an…
ap-framework-validator
L4 terminal leaf - FRAMEWORK VALIDATE (HRN-5). A fresh, default-FAIL juror that proves a GENERATED framework is SOUND before any gate runs. Checks the HRN-5 default-FAIL checklist - every gate mapped, exactly one terminal DONE with negatives looping UP, the BLOCKED invariant verbatim, a non-empty acceptance set. PASS…
ap-juror
L4 terminal leaf - G7 SIGN-OFF. One independent sign-off panel seat that saw none of the intermediate work. Binary PASS/FAIL on opened evidence; default-FAIL. A FAIL naming a P0/P1 blocker is NOT arbitrable into PASS.