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/anshss/shiploop/flowsgit clone --depth 1 https://github.com/anshss/shiploopWhat 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.00016 | $0.01905 |
| Opus 5 | $0.00008 | $0.00953 |
| Sonnet 5 | $0.00003 | $0.00381 |
| Haiku 4.5 | $0.00002 | $0.00191 |
Grade A, and why
flows 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 — 113 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/shiploop:flows
Defer to the workspace-local copy. If the current workspace has installed its own
.claude/commands/flows.md(every scaffolded shiploop workspace does), follow THAT copy — it is pinned to the workspace's harness version and itsscripts/govern/flows-*.shhelpers. This global copy is the fallback for a workspace that predates the flows feature; the playbook below is identical in shape, but always run the workspace's ownscripts/govern/flows-*.sh, never a hub path.
Manage the flow registry (.claude/shiploop/validation/flows.md) — the git-tracked inventory of user-reachable
paths through the product, each keyed by a stable id and pinned to the code SHAs it was last validated
at. $ARGUMENTS selects the subcommand: extract · list · file <ids…|--all-stale|--all-untested>.
Load-bearing division of labor: the model (you) orchestrates and inventories; all registry
writes go through the scripts/govern/flows-*.sh scripts (deterministic bash owns bookkeeping, under
the same lock as the governor). You never hand-edit .claude/shiploop/validation/flows.md.
Run from the workspace root (main checkout or a worktree). First learn the layout:
source scripts/lib/workspace.sh (for $REPOS, $GITHUB_ORG).
extract — inventory the flows (staged, operator-gated)
Build the combinatorial list of every user-facing path that might break — the paths a user might
take through the product that could regress. This is the product's risk map, and a fresh extract is
often an adopter's first taste of shiploop. Fan out with Agent — one worker per surface, so no
single context has to hold the whole codebase:
- Enumerate the surfaces to inventory. Typically: every UI route/page, every API endpoint, every
provider/integration matrix (a dimension that's enumerable — e.g. N providers × {deploy, feature-X,
migration} — expands combinatorially into one flow id per cell), plus any snapshot/migration/backup
paths. Use
$REPOSto scope. - Dispatch
Agentworkers (general-purpose), one per surface, each returning a list of proposed flow blocks in the registry grammar (## <id>+Kind/Surface/Paths/Status: UNTESTED;Gatefor an effectiveness flow). Ids are lowercase dot-kebab, coarse→fine (deploy-gpu.vastai). DerivePaths:from the real imports/dependencies, not just the obvious feature dir — first segment of every glob MUST be a sub-repo folder name. - Collect the workers' blocks into ONE staged file, e.g.
logs/investigations/flows-extract/staged.md(gitignored scratch — not the registry). - Vet gate — merge is staged and operator-approved. Show the diff, then apply only on an explicit yes:
The merge only adds new flows and refreshesscripts/govern/flows-extract-merge.sh logs/investigations/flows-extract/staged.md # DRY: ADD / REFRESH / FLAGGED # …review the classification with the operator… scripts/govern/flows-extract-merge.sh logs/investigations/flows-extract/staged.md --approve # apply ADD + REFRESHPaths/Surfaceon existing ones. It never touches verdict state (Status/Validated/Disposition), and aKindorGatechange on an existing id is FLAGGED, never auto-applied — a hallucinated or silently-reclassified flow must not become a fileable, later-billable row. Relay the flagged rows for a manual decision.
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 · 113 lines · 0 tokens per session scan A fbefc0cb1edd
flows is a command published in the GitHub repository anshss/shiploop (5 stars, last pushed 29d ago), licensed Apache-2.0. It adds 16 tokens to every session and 1,905 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
work
Execute an approved wish plan — orchestrate subagents per task group with fix loops, validation, and review handoff.
fest-create
Create a new festival, phase, sequence, or task.
camp-init
Initialize a new campaign workspace.
fest-show
Show festival progression (in-progress tasks, roadmap, and dependency view).
fest-next
Get the next actionable festival task with full context.
fest-list
List all festivals with their status and completion percentage.