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 dominikwozniak/dw-solo-skills --skill dw-nextgit clone --depth 1 https://github.com/dominikwozniak/dw-solo-skillsWrote 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/dominikwozniak/dw-solo-skills/dw-next)<a href="https://agentmods.dev/skills/dominikwozniak/dw-solo-skills/dw-next"><img src="https://agentmods.dev/badge/skills/dominikwozniak/dw-solo-skills/dw-next/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/skills/dominikwozniak/dw-solo-skills/dw-next"><img src="https://agentmods.dev/badge/skills/dominikwozniak/dw-solo-skills/dw-next.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.00066 | $0.01588 |
| Opus 5.5 | $0.00026 | $0.00635 |
| Sonnet 5.5 | $0.00013 | $0.00318 |
| Haiku 4.5 | $0.00007 | $0.00159 |
Grade A, and why
dw-next 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 1mo 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 — 107 lines — stays where its author put it; the contents beside it link to each section on GitHub.
dw-next — where we are, and the next slice
Everything comes from disk. Never reconstruct state from the conversation: a /clear, a closed
laptop or a week away must change nothing about the answer.
What it reads and writes
Reads .ai/work/<date>-<slug>/CHANGE.md (written by dw-shape), a HANDOFF.md beside it when a
session left one, any sibling file its ## References names, CONTEXT.md for the project's terms,
and the frontmatter of docs/decisions/ for the records binding the files a task edits — the
frontmatter, never the folder. Writes code, ticks the checklist,
appends to Notes, and commits. Find the active change by branch, never by guessing:
grep -l "^branch: $(git rev-parse --abbrev-ref HEAD)$" .ai/work/*/CHANGE.md 2>/dev/null
One match — that's it. Several — list them and ask. None — there is no change on this branch:
point at dw-shape and stop; never invent a task list to have
something to do.
Workflow
1. Report, always
A fixed shape, read from the file:
- Capsule — the goal, plus anything in Notes that changes the approach; ≤5 bullets.
- Tasks — one line each, tagged
[done]·[skipped: <why>]·[pending]; the first[pending]is the resume point. - References — each entry read or skipped, one line; read what the next task leans on first.
- Next move — one action.
A HANDOFF.md is read first and leads the report — it holds what a previous session already ruled
out. With status, stop here; that is the whole resume path, and it is deliberately cheap.
2. Confirm the task still fits
Check the next task against the repo as it is now; propose an amendment rather than building a stale task. Order is a hint — take a later task when this one is blocked, and say why.
3. Build one task — thin, end to end
- Narrow and complete — a vertical slice, never a whole layer; a second task is cheaper than a sprawling commit.
- Absorb what you find — a discovery inside the goal is built now, as its own commit, or as a
new task when it is big. One outside the goal is a one-line Notes item, which
dw-landcarries into its report — never a.ai/backlog/file. Never park a gap in this change's## Goal; shrinking the goal is the user's call. - Two fixes on one premise means the premise is the suspect — a second fix refused by the same gate as the first, resting on the same assumption, is evidence about the assumption. Write the premise down as one sentence and list every case that gate refused before writing a third fix. The premise stays the suspect until one of those cases refutes it — the gate refused it and the premise did not hold there — and the list is the evidence either way.
- No drive-by edits — outside the task and its absorbed fixes, touch nothing.
- Test the way the project does — failing test first where the task has a real assertion; say
so where it genuinely doesn't, instead of fabricating one. A test that also passes against the
unfixed code is not a test:
docs/decisions/0013set the bar at confirming each case by mutating the code back to the broken behaviour and watching exactly that case fail. - Follow the anchors, use the project's words — patterns from the doc, names from
CONTEXT.md. - Nominate, never promote — a call worth a record, or a term worth defining, becomes one line
in the doc's
## Decisionsin this task's commit: the call or the term, why,(nominated).dw-landputs each to the user, because the durable layer keeps only what the user names, and leg one — hard to reverse — is unanswerable from inside task two of six. A term this change made untrue is rewritten in place now. - Read the decisions binding the file you are about to edit — where
## Decisionsdoesn't already carry them, read the records' frontmatter first, never the whole folder:status: activeplus atouches:matching the path, then act on that record'srule:verbatim. A record predating those fields is found by its slug, and its norm is the first sentence of its## Decision— the one case where you open the record itself. A norm you would have to soften to proceed is a reason to stop, not to proceed carefully. Nodocs/decisions/is no layer, not an empty answer: say which it was. - Leave it green — run the tests; lint and typecheck are hook-owned in this lane.
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.
- 1mo ago Changed · +1 lines f28960ceec8b
- 1mo ago Changed · +13 lines 947c80858044
- 1mo ago Changed · +9 lines 4fcd13b3421b
- 1mo ago Changed · -2 lines · +10 tokens per session 4e9b52d832fc
- 2mo ago Changed abd064c2ac19
- 2mo ago First seen · 86 lines · 56 tokens per session scan A 68e32a788eef
dw-next is a skill published in the GitHub repository dominikwozniak/dw-solo-skills (2 stars, last pushed 1mo ago), licensed MIT. It adds 66 tokens to every session and 1,588 once invoked, about $0.0003 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 skills, from other repositories
branch-and-worktree-workflow
Isolates feature work in its own branch or worktree and integrates it cleanly when done. Use this when starting work that should not disturb the current workspace, when several efforts must proceed in parallel on one repository, or when implementation is finished and the change needs merging, rebasing, or splitting…
development-workflow
Detailed development workflow with modular patterns for git, review, testing, and deployment.
unslop-commit
Rewrites commit messages so they sound like a careful human engineer wrote them. Strips AI/marketing slop ("comprehensive solution", "robust implementation", "leverage", "enhance", "seamlessly", "This commit..."). Keeps Conventional Commits format. Subject ≤72 chars (aim ≤50), imperative mood. Body only when "why"…
signing-preflight
Before the first commit of a session, check that commit signing will work — the key is loaded and unlocked — and ask the operator to unlock it once, up front, instead of discovering it after a hundred unsigned commits. Never disables signing silently, never re-signs history without asking. Use at the start of…
release
Bump a plugin's version, write a detailed changelog entry for the upgrade skill to consume, and commit+push. Takes a plugin slug argument identifying which plugin under plugins/ to release. Use this skill whenever the user says "release", "version bump", "cut a release", "changelog and push", or finishes a set of…
commit
Write a git commit with a one-sentence Conventional Commits subject and no narrative body. Use whenever the user asks to commit, stage and commit, or "save this work".