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 skills/far-200/think-before-code/dry-run-coachnpx skills add Far-200/think-before-code --skill dry-run-coachgit clone --depth 1 https://github.com/Far-200/think-before-codeWrote 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/far-200/think-before-code/dry-run-coach)<a href="https://agentmods.dev/skills/far-200/think-before-code/dry-run-coach"><img src="https://agentmods.dev/badge/skills/far-200/think-before-code/dry-run-coach.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 | $0.00077 | $0.01572 |
| Opus 5 | $0.00039 | $0.00786 |
| Sonnet 5 | $0.00015 | $0.00314 |
| Haiku 4.5 | $0.00008 | $0.00157 |
Grade A, and why
dry-run-coach 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 5d 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 — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dry Run Coach
Why this exists
"Dry-run it" is one line in most tutoring flows. In practice, most learners don't actually trace anything — they eyeball the algorithm, feel confident, and declare it works. That confidence is exactly what dsa-tutor's copy-paste detection is built to catch downstream. This skill exists earlier: it teaches what a real trace looks like, so there's something rigorous to test in the first place.
This skill does not help pick an approach and does not write code. If
the learner doesn't have an approach yet, send them to dsa-tutor
first. It also traces exactly one concrete input at a time through
its state transitions — deciding which broader set of inputs is worth
testing is test-case-coach's job, not this one's.
Circuit breaker
Never accept "yeah, I traced it, it works" as a completed dry run. A real dry run has explicit state written down at every step.
Can the learner point to the exact value of every tracked variable
at a specific step, not just describe the trend?
NO → it wasn't a real trace yet. Go back to building the state table.
YES → the dry run is real. Compare final state to expected output.
Protocol
- Pick a real input. Not the smallest trivial case only — ask for something with at least one interesting feature (a duplicate, a boundary value, a case that requires more than one loop iteration to do anything interesting).
- Name the state before tracing. Ask the learner to list every variable, pointer, or data structure that will change during execution — before running a single step. If they can't name what's being tracked, that's the actual gap, not the trace itself.
- Build a state table. One column per tracked variable, one row per step. Ask the learner to fill in each cell themselves as you go — never fill one in for them.
- Step through one iteration at a time. The learner fills in the state table at every step regardless. Ask what invariant is still true at initialization, after a meaningful state transition (a branch taken, a pointer moved, a value updated in a way that matters), and at completion — not mechanically after every trivial iteration. For a long trace, let several uneventful steps pass with just the table filled in, then check the invariant when something actually changed.
- Compare the final state to the expected output. If it matches, the trace is done — don't manufacture more doubt. If it doesn't match, don't fix it: ask which specific row of the table first diverges from what they expected.
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.
- 5d ago First seen · 169 lines · 77 tokens per session scan A db73cd22970b
dry-run-coach is a skill published in the GitHub repository Far-200/think-before-code (9 stars, last pushed 20d ago), licensed MIT. It adds 77 tokens to every session and 1,572 once invoked, about $0.0004 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 skills, from other repositories
interactive-leetcode-mcp
Use when the user wants to practice LeetCode problems, submit solutions, or set up LeetCode integration. Covers MCP server installation, learning-guided practice flow, solution submission, and authentication.
leetcode-helper
Expert LeetCode problem solver for optimized C++ coding interview solutions. Use when: the user pastes a LeetCode problem, asks for an optimized algorithm, wants C++ LeetCode code, needs a dry run, asks for line-by-line explanation, wants a hint before the solution, wants brute force to optimized progression, wants…
configure-profile
Create or update the global learner profile. Interviews the learner using the measurement checklist in references/PROFILE-TEMPLATE.md and writes the structured result to profile/PROFILE.md. Use when a new learner sets up Upstack for the first time, or after completing a course to update skills and Dreyfus levels.
complete-assignment
Run the reasoning review gate for a completed assignment. Asks 2-3 Reasoning Review Prompts from COURSE.md, verifies genuine understanding, and only marks the assignment complete if the learner demonstrates conceptual grasp. Use when a learner finishes an assignment and is ready for verification.
create-course
Scaffold a new course directory from the COURSE.md schema. Creates the directory structure, populates COURSE.md with YAML frontmatter and markdown template sections, and creates stub assignment directories. Use for curated courses (core/courses/) or personal courses (custom/courses/) in any domain.
start-course
Initialise a learning session. Checks for an existing journal in progress/ /journal.md, creates one from the template if missing, loads the course definition, and calibrates to the learner's declared context. Use when starting a new course or resuming after a break.