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/robconery/kolea/specgit clone --depth 1 https://github.com/robconery/koleaWhat 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.00027 | $0.00970 |
| Opus 5 | $0.00014 | $0.00485 |
| Sonnet 5 | $0.00005 | $0.00194 |
| Haiku 4.5 | $0.00003 | $0.00097 |
Grade C, and why
spec scanned grade C with 1 finding 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.
Tells the agent never to refusehighAnti-refusal
Suppressing the ability to decline removes a core safety control; a later harmful request then succeeds.
3. **Stories check.** If `docs/STORIES.md` is missing or empty, do NOT refuse — This is a copy
100% identical to spec — 0 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 80 lines — stays where its author put it; the contents beside it link to each section on GitHub.
spec
Turn docs/STORIES.md into executable spec files using the bdd-specs
skill. This command is the bridge between agreed stories and red specs that
/build-loop will turn green.
Scope
- IN: generating spec files from finalized stories; helping author stories when none exist yet; reporting on existing specs.
- OUT: writing implementation code (
/build-loop); changing requirements (/explore,/design); ordering tasks (/plan).
Preflight (refuse early)
- Require project info. If
docs/PROJECT.mdis missing or still a stub (mostlyTODOs), refuse and tell the user:No PROJECT.md — run /explore first to define what we're building. - Require a spec. If
docs/SPEC.mdis missing or a stub, refuse:No SPEC.md — run /design first so there's something to spec against. - Stories check. If
docs/STORIES.mdis missing or empty, do NOT refuse — instead, help create them: invoke theuser-storiesskill to authordocs/STORIES.mdfrom SPEC.md before continuing.
Behavior
- Read
docs/PROJECT.md,docs/SPEC.md,docs/STORIES.md,docs/ARCHITECTURE.md(for context), and any existing spec files (e.g.tests/**/*.spec.ts,specs/**/*.ts,**/__tests__/**). - If specs already exist for a story, LEAVE THEM ALONE. Do not overwrite, edit, rename, or reorganize. Report what was found and tell the user you can overwrite on explicit request.
- For stories with no corresponding spec file, delegate to the
bdd-specsskill to generate them. Pass the story id(s) so output aligns 1:1 withdocs/STORIES.md(Story → Feature, AC → Scenario, each Then → one Specification). - Every newly generated spec is pending by default — use the runner's
skip / todo / pending marker (
it.todo,it.skip,test.todo, etc., depending on whether the project usesbun:testor Jest). They must not accidentally pass; they must be visibly pending until/build-loopimplements them. - Specs must align to stories, but names should read naturally:
- File name: a readable kebab-case slug from the story title — no
story-NNNprefix. e.g.atomic-create-user-order-entitlements.spec.ts. - Outer
describe: the human-readable feature, no id. e.g.describe("Feature: atomic create of user, order, entitlements", …). - Traceability: put a single comment at the top of the file with the
story id, e.g.
// STORY-007 — Atomic create of user, order, entitlements. That comment is the only place the id appears.
- File name: a readable kebab-case slug from the story title — no
- Never invent acceptance criteria. If a story is underspecified, stop and
send the user back to refine it via the
user-storiesskill.
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 · 80 lines · 27 tokens per session scan C 6a79bf47e589
spec is a command published in the GitHub repository robconery/kolea (1 stars, last pushed 2d ago), licensed MIT. It adds 27 tokens to every session and 970 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it C with 1 finding (tells the agent never to refuse). It is 100% identical to spec, differing in 0 lines, and is treated as a copy.
Other commands, from other repositories
sonicjs-seo-blog
Generate a high-quality, SEO-optimized blog post for SonicJS on the topic: $ARGUMENTS.
generate-tests
Generate unit or integration tests for Go code following project patterns and coverage targets.
create-workflow
Generate an n8n workflow JSON from a natural language description of the automation.
plan
Slice SPEC into stories and an ordered task DAG. Owns STORIES.md + PLAN.md.
document
Reconcile docs with reality — README, ARCHITECTURE prose, MEMORY log. Run anytime.
cabinet
Build a self-contained archive bundle for a single .eml — markdown, retained attachments, and source file in one directory.