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 skills add anton-abyzov/specweave --skill dogit clone --depth 1 https://github.com/anton-abyzov/specweaveWrote 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/skills/anton-abyzov/specweave/do)<a href="https://agentmods.dev/skills/anton-abyzov/specweave/do"><img src="https://agentmods.dev/badge/skills/anton-abyzov/specweave/do.svg" alt="Measured on agentmods" 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.00000 | $0.00933 |
| Opus 5 | $0.00000 | $0.00466 |
| Sonnet 5 | $0.00000 | $0.00187 |
| Haiku 4.5 | $0.00000 | $0.00093 |
Grade A, and why
do 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 — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Do Increment
Work an increment task by task through the ledger. State lives in
.specweave/increments/<id>/ledger.jsonl (append-only); tasks.md holds the
definitions. Never hand-edit status lines — specweave task done renders them.
Usage
sw:do [<increment-id>] # id optional when exactly one increment is active
Loop (repeat until task next returns nothing)
- Pick:
specweave task next <id>— prints the first open task whose deps are done and whoseFilesare not held by another agent. If several increments are active, pass the id. - Claim:
specweave task claim T-NN <id>. Exit 3 = someone else owns it (pick another), 4 = its Files overlap a live claim, 6 = deps not done. Never edit before claiming. - Read: the task's
AC:ids in spec.md and itsFiles:; open plan.md (or spec.md Approach) only for that scope. - Implement inside the task's
Filesonly. Need another file → claim the task that owns it, or add a task (### T-NN Title+- AC: … | Files: … | Test: …). - Commit with the increment id in the subject:
git commit -m "<id>: <what>". - Done with evidence:
specweave task done T-NN <id> --run "<Test command>"(uses the task'sTest:when--runis omitted). Exit 5 = the command failed → task stays open; fix and re-run. NoTest:→--evidence "<sha + what you ran>". Never claim completion without a fresh, passing run. - Stuck?
specweave task block T-NN <id> --reason "<what is missing>"; not needed?specweave task skip T-NN <id> --reason "<why>"(terminal). - Go to 1.
Rules
- One agent per worktree when 2+ agents share the increment; branch name contains the increment id.
- Append only: never edit or delete ledger lines, never touch another task's state line.
- If a claim older than 2h (config
tasks.leaseHours) has nodone, it is stale —task nextoffers it again;task claim --forcetakes it over. - Stopping for any reason:
specweave task release --all-minethensw:handoff. - No CLI? Append the line yourself:
echo '{"t":"T-01","e":"claim","by":"<agent>","at":"<ISO>"}' >> ledger.jsonl(PowerShell:[IO.File]::AppendAllText).by=SPECWEAVE_AGENTor<tool>@<host>.
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 · 57 lines · 0 tokens per session scan A ac50e0c07552
do is a skill published in the GitHub repository anton-abyzov/specweave (159 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 933 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-09-03.
Other skills, from other repositories
creating-issues-and-pull-requests
Use when creating GitHub pull requests or issues with template compliance. Triggers: 'create a PR', 'open a pull request', 'file an issue', 'create issue'. Also invoked by finishing-a-development-branch. NOT for: deciding whether to merge or PR (use finishing-a-development-branch).
version-bump
Automate version bumping in npm monorepos with CHANGELOG promotion and PR automation.
work
Handle issue/PR work items with worktree isolation. Triggered by "/work [issuelink|description]" to start focused work.
split-and-ship
Execute an approved split plan, shipping each change group separately as its own branch and PR or as sequential commits on the current branch. Use when the user asks to "split and ship", "ship the split plan", "create separate PRs", or "split changes into branches".
atomic-git-discipline
Compressed commit message and PR body generator. Cuts noise from both while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious; PR bodies state only what the diff can't show, 120 words max. Use when user says "write a commit", "commit message", "generate…
commit-msg
You receive a git diff of staged changes via stdin. Generate a commit message.