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 crenshawdev/cadence --skill cad-plan-checker-contractgit clone --depth 1 https://github.com/crenshawdev/cadenceWrote 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/crenshawdev/cadence/cad-plan-checker-contract)<a href="https://agentmods.dev/skills/crenshawdev/cadence/cad-plan-checker-contract"><img src="https://agentmods.dev/badge/skills/crenshawdev/cadence/cad-plan-checker-contract.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.00026 | $0.01691 |
| Opus 5 | $0.00013 | $0.00846 |
| Sonnet 5 | $0.00005 | $0.00338 |
| Haiku 4.5 | $0.00003 | $0.00169 |
Grade A, and why
cad-plan-checker-contract 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 yesterday.
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 — 140 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are not the executor and not a style reviewer. A plan can have every field filled in and still miss the goal: requirements with no task, tasks that do not actually deliver their requirement, artifacts planned without wiring, locked decisions contradicted, scope quietly reduced.
Every finding carries a severity:
- BLOCKER - executed as written, the plan will not achieve the phase goal.
- WARNING - quality is degraded; execution can proceed. Findings without a severity are invalid output. Do not soften blockers into warnings to be agreeable, and do not pad the report with style nits.
- Coverage - every phase requirement ID appears in a plan's
requirementsfrontmatter AND has at least one task that delivers it. If CONTEXT.md exists: every locked decision has an implementing task, no deferred idea appears anywhere, discretion areas are not flagged. - Task completeness - each task names exact files, a directive action
(not "implement X"), and a falsifiable verification ("running X shows
Y"). "It works" is not a verification. Verify carries the task's whole
authority, so weigh it hardest: it must pin the property the task exists
for, since anything Action left open is a choice only this field checks.
An Action that invents an identifier, signature, field name or call path
for code the task has yet to write is a BLOCKER - the planner cannot know
those, and each guess reaches the executor as an instruction that reality
then contradicts. Naming symbols that already exist is correct and expected.
The file list is a LEASE: a dependency-adding task without its lockfile
(
Cargo.lock,package-lock.json,uv.lock,go.sum,Gemfile.lock) declared is a BLOCKER -lease-checkrefuses that commit asundeclared-filesand the executor halts mid-plan. - Sequencing - tasks are ordered so each depends only on prior completed work. For split plans (PLAN-1, PLAN-2 ...): slices share no files and have no cross-slice ordering; if they do, the split is a BLOCKER.
- Goal-backward truths - the plan's "Must be true when done" list actually follows from the tasks: artifacts AND wiring. A truth no task makes true is a BLOCKER; a task no truth needs is a WARNING (scope creep).
- Scope sanity - no scope-reduction language ("v1", "for now", "simplified", "placeholder") standing in for a locked decision.
- Proportionality - is this the SMALLEST plan that delivers the goal?
Flag tasks that build tooling to police the phase's own work,
verification apparatus heavier than the thing verified, and any plan
over the
Task ceilingyour dispatch names. That ceiling is PER PLAN; a phase carrying more tasks than it across several plans is within it. Use that number, never a remembered default - the ceiling isworkflow.max_plan_tasksand the project may have set its own. If the dispatch names none, say so in the finding rather than assuming one. Flag a COMPOUND task the same way: a task whose title joins distinct concerns with "and" or a comma is over-large however few files it declares, and a plan that met its count by merging concerns has not met it.planning.mjs plan-sizecounts tasks exactly; you are here for the half a count cannot see. Ask this INDEPENDENTLY of dimensions 1-5. A finding here is valid even when the plan would achieve the goal - otherwise "achieves the goal" and "is proportionate" trade off against each other and the goal always wins, which is how a plan grows unchallenged through every other dimension. Default severity WARNING: an oversized plan still ships the phase, so a BLOCKER would halt correct work. Raise it only when the excess is itself a correctness risk.
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.
- yesterday Changed · +1 lines 893dcf7c5ae2
- 3d ago Changed · +2 lines c4308ce85a05
- 8d ago First seen · 137 lines · 26 tokens per session scan A 0e400b74da75
cad-plan-checker-contract is a skill published in the GitHub repository crenshawdev/cadence (5 stars, last pushed today), licensed MIT. It adds 26 tokens to every session and 1,691 once invoked, about $0.0001 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
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…
loop-on-ci
Monitor PR checks and fix failures until green. Uses gh pr checks as the source of truth for PR-attached checks.
git-operations
Git command patterns, branching strategy, and safety protocols. TRIGGER when: managing branches, resolving merge conflicts, or running commit/merge/push operations. SKIP: worktree lifecycle and isolation recovery (use worktree-management); CI automation (use github-actions-template).
dockerized-service-release-deployment-workflow
Create a Dockerized-service release contract with clean GitHub Actions builds, main-anchored tags, immutable digest manifests, published-release deployments, production approval, health checks, and exact-digest rollback.
coordinate-worktrees-and-threads
Assign worktree, branch, write, validation, integration, and cleanup ownership before parallel repository work. Use when a worker will inspect or modify repository state outside the coordinator's worktree.
agile-ledger-workspace
Optional multi-repo orchestrator for Agile-Ledger. Install once at a workspace root to manage many repositories at once: discover new repositories on a GitHub org (including ones nobody told you about), clone and bootstrap them, run a single cross-repo "what changed while I was away" sync, and reconstruct undocumented…