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 FerroxLabs/ijfw --skill ijfw-plan-checkgit clone --depth 1 https://github.com/FerroxLabs/ijfwWrote 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/ferroxlabs/ijfw/ijfw-plan-check)<a href="https://agentmods.dev/skills/ferroxlabs/ijfw/ijfw-plan-check"><img src="https://agentmods.dev/badge/skills/ferroxlabs/ijfw/ijfw-plan-check/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/ferroxlabs/ijfw/ijfw-plan-check"><img src="https://agentmods.dev/badge/skills/ferroxlabs/ijfw/ijfw-plan-check.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector warn
SkillSpector: 1 finding, up to high
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- high Prompt Injection · line 59 Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
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.00076 | $0.02321 |
| Opus 5.5 | $0.00030 | $0.00928 |
| Sonnet 5.5 | $0.00015 | $0.00464 |
| Haiku 4.5 | $0.00008 | $0.00232 |
Grade A, and why
ijfw-plan-check 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 — 221 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pre-execution audit gate. Runs before EXECUTE. Verdict is decisive.
Step 1 -- Locate the plan
Check in order: user-specified path, .ijfw/memory/plan.md, .planning/**/PLAN.md.
If none found: No plan doc located. Paste the plan or give the path. Do not proceed.
Step 2 -- Goal-backward analysis
Read success criteria from .ijfw/memory/brief.md if present. For every task: does
it trace to a criterion? Tasks with no traceable criterion are scope drift -- flag them.
Step 3 -- Scope leak check
Anything in the plan not in the brief is a scope leak. List each with task name + reason. If no brief exists, flag the absence as a risk.
Step 4 -- Risk surface
Flag tasks that are under-specified (no verify step, no file path), half-baked (depends on an undecided decision), or destructive (no rollback note).
Step 5 -- Dependency ordering
If task B needs task A's output but B is listed before A, flag the inversion with names.
Step 6 -- Verdict
Plan audit: <N> tasks reviewed
Goal alignment: <N> trace to criteria / <N> need attention
Scope: clean | <N> leak(s)
Risk surface: <N> need sharpening
Dependency order: correct | <N> inversion(s)
Verdict: PASS | FLAG | BLOCK
Must-fix before execution (FLAG):
1. <task> -- <file>:<line> -- <fix>
Rework needed (BLOCK):
1. <issue> -- <reason>
- PASS: proceed to EXECUTE.
- FLAG: fix numbered items, then proceed.
- BLOCK: rework required. Do not execute until re-audited.
Step 6.5 -- Metrics block (machine-readable)
After the verdict text, emit this HTML comment block exactly:
<!-- plan-check-metrics
tasks_total: <int>
goal_alignment_pass: <int>
goal_alignment_fail: <int>
scope_leaks: <int>
budget_overrun: <bool>
dep_inversions: <int>
under_specified_pct: <int>
verdict: <PASS|FLAG|BLOCK>
-->
under_specified_pct: percentage of tasks that are missing ANY of:
- Verb-noun description (e.g., "Write failing test for X", not "fix stuff")
- Target file path(s)
- Verifiable success criterion
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 First seen · 221 lines · 76 tokens per session scan A 154a66115819
ijfw-plan-check is a skill published in the GitHub repository FerroxLabs/ijfw (212 stars, last pushed 2d ago), licensed MIT. It adds 76 tokens to every session and 2,321 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-09-05.
Other skills, from other repositories
issue-creation
Trigger: issue creation, bug reports, feature requests, or issue approval. Create and triage GitHub issues from repository evidence.
work-unit-commits
Plan commits as reviewable work units. Trigger: implementation, commit splitting, chained PRs, or keeping tests and docs with code.
systemic-issue-triage
Trigger: new issue, bug report, triage, backlog, issue flood, community report, root cause, dead-end, blocked user. Attack issues by root class, never one-by-one; fixes must shrink the system, not grow it.
skill-improver
Trigger: improve skills, audit skills, refactor skills, skill quality. Audit and upgrade existing LLM-first skills.
go-testing
Trigger: Go tests, go test coverage, Bubbletea teatest, golden files. Apply focused Go testing patterns.
repo-context-ledger
Record every behavior-changing feature addition, fix, and adjustment as durable, evidence-based repository knowledge, then use that ledger to continue accurately across AI windows, tools, Git collaboration, and pull requests. Use the deterministic runtime to route bounded context, isolate private drafts, publish…