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.
git clone --depth 1 https://github.com/skullninja/coco-workflowWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/skullninja/coco-workflow/loop)<a href="https://agentmods.dev/commands/skullninja/coco-workflow/loop"><img src="https://agentmods.dev/badge/commands/skullninja/coco-workflow/loop/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/commands/skullninja/coco-workflow/loop"><img src="https://agentmods.dev/badge/commands/skullninja/coco-workflow/loop.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What 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.1 | $0.00028 | $0.06135 |
| Opus 5.5 | $0.00011 | $0.02454 |
| Sonnet 5.5 | $0.00006 | $0.01227 |
| Haiku 4.5 | $0.00003 | $0.00613 |
Grade A, and why
loop 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 3d 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 — 673 lines — stays where its author put it; the contents beside it link to each section on GitHub.
User Input
$ARGUMENTS
$ARGUMENTS is an epic ID or feature name. If empty, use the most recent open epic.
Setup
-
Read
.coco/config.yamlfor project configuration (includingprandloopsections). -
Determine the target epic from
$ARGUMENTSor most recent open epic. -
Read loop config. Defaults when a key is absent:
max_iterations: 20,no_progress_threshold: 3,pause_on_error: false,dashboard_every: 5,parallel.enabled: true,parallel.max_agents: 3,parallel.max_agent_attempts: 2.A project initialized before these defaults changed still carries the old values in its own
.coco/config.yaml, which is read in preference to any default here. Ifpause_on_erroristrueorparallel.enabledisfalsein this project, say so in the opening ledger line -- the user may not know their config predates the change, and/coco:setup migratereconciles it.
Pre-Loop Gate
Verify the epic is ready for autonomous execution:
coco-tracker epic-status {epic-id}
First, reconcile. Any previous run that ended without finishing -- usage
limit, crash, Ctrl-C, context exhaustion -- left its claimed task in_progress.
ready selects only pending, so that task is unstartable and the epic can never
complete, while the loop reports "all remaining tasks are blocked" with nothing
actually blocked.
coco-tracker reconcile
Exit 0 means consistent, carry on. Exit 1 means it found something and printed it. Stranded tasks are safe to reset on entry -- by definition nothing is working on them, because the run that claimed them is over:
coco-tracker reconcile --fix
An epic closed over unfinished tasks, or a task pointing at a missing epic, needs
a decision rather than a reset. --fix leaves those alone and still exits 1. Stop
and report them.
Then check ALL before entering the loop:
- Tracker epic exists and has tasks
- Dependencies are set -- at least one task is unblocked (
readyreturns a result) - If an issue tracker is configured AND
issue_tracker.per_task_issuesis notfalse: every task hasissue_keyin metadata. A project that uses feature-level issues only setsper_task_issues: falseand this check is skipped -- it previously blocked such a project outright, forcing the creation of per-task issues its own working agreement refused - If
pr.enabled: verify on afeature/*branch - If
pr.enabled: verify remote origin is configured (git remote -v) - If
pr.enabled: verifyghCLI is available
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.
- 3d ago Changed · +210 lines d77f6818c8d8
- 1mo ago First seen · 463 lines · 28 tokens per session scan A eb242b7ab444
loop is a command published in the GitHub repository skullninja/coco-workflow (8 stars, last pushed yesterday), licensed MIT. It adds 28 tokens to every session and 6,135 once invoked, about $0.0001 per session on Opus 5.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
ccc-feature-start
Kick off a feature: research context, create an isolated branch, confirm a green baseline, write a task breakdown, and the first failing test. Use when starting new feature work in a git repository.
ccc-tdd
Build a feature or fix test-first: scaffold the interface, write a failing test, implement the minimum to pass, refactor, then check coverage against the project threshold (80% when none is set). Use when adding a feature, function or component, or reproducing a bug.
ccc-eval
Define, run, and report evals for a feature before and during implementation, tracking capability and regression pass rates in .claude/evals/. Use when starting eval-driven development or checking whether a feature is ready to ship.
symfony-tdd-pest
Start a TDD workflow using Pest PHP for Symfony with RED-GREEN-REFACTOR cycle.
symfony-tdd-phpunit
Start a TDD workflow using PHPUnit for Symfony with RED-GREEN-REFACTOR cycle.
plan-execute
Execute a validated plan: worktree isolation, TDD scaffolding, level-based parallel agents, quality gate with smoke test, PR creation and merge. Handles everything through to merged PR.