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 ijust/intent-planner --skill intent-statusgit clone --depth 1 https://github.com/ijust/intent-plannerWrote 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/ijust/intent-planner/intent-status)<a href="https://agentmods.dev/skills/ijust/intent-planner/intent-status"><img src="https://agentmods.dev/badge/skills/ijust/intent-planner/intent-status/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/ijust/intent-planner/intent-status"><img src="https://agentmods.dev/badge/skills/ijust/intent-planner/intent-status.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.00041 | $0.10761 |
| Opus 5.5 | $0.00016 | $0.04304 |
| Sonnet 5.5 | $0.00008 | $0.02152 |
| Haiku 4.5 | $0.00004 | $0.01076 |
Grade A, and why
intent-status 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 — 222 lines — stays where its author put it; the contents beside it link to each section on GitHub.
intent-status Skill
Core Mission
Shared temperature for matching checks (defined once here; each check refers to it as "shared temperature"): the orphan-spec / intent-tree-unfiled / Candidate / conformance matching checks are all done within what is machine-observable from files (Read/Glob/Grep only; git history and code diffs are not consulted), stay at candidate presentation, not an assertion, treat non-matchability as the normal case and tolerate false positives, and never take away the next-move first-match. When the target file is absent, the check is omitted (not an error).
- Success Criteria (success if achieved; the detailed check procedures are consolidated into Execution Steps, and only the outcomes are declared here):
- The existence and fill state of the deliverables under
.intent/(mode, intent-tree, intent-compass, the packets index/files, the per-packet export drafts, deltas) are read and a summary of the current position is presented (read-only; never creates, modifies, or deletes any file) - Packets integrity (index ↔ active/ divergence, done / superseded_by lingering, the latest export-log row's packet absent from active/) is checked and violations are reported in the current-position summary
- Orphan spec (no Packet) and intent-tree unfiled (discover skip) are reported in the details at the "shared temperature", and both plus writeback omission (downstream layer) are partitioned into three layers — tree layer → packet layer → downstream layer — with each spec presented only in the single most-upstream layer so no double warning is emitted
- A leading mini progress rail (all packets laid out vertically with the five signals ✅/🔵/⚪/🔴/◻ plus
[current stage → next stage(s) to pass through]) is placed at the top so "which packet is 🔵 you are here now, where the remaining work ⚪ / unreflected 🔴 are" is visible at a glance. Internal terms (matching, integrity check, enforcement) are pushed into the details - The default output is slimmed into three layers (default = one human decision + three separate readings + progress rail + Candidate count/names + a one-line Ice box notice / details = the folded position / option = only on a natural-language trigger), and the one-line summary of the next move is never folded and is always emphasized at the lead
- The "dangerous notices" (freshness warning, packets integrity violations, unreflected
🔴) are shown in full as bare glyphs in the actual-impact context (never folded), with a one-line summary "⚠N present (see details)" also left on the details side. In the explanatory context (legend, 0-count summary, etc.) they are toned down to inline code / words rather than bare glyphs (INV32) - The L4 "future addition candidates" that are unconsumed (neither packeted nor implemented) are presented as a permanent default display of count + names (frozen-marked ones excluded; "shared temperature")
- Ice box candidates with a frozen mark are not shown in the body in the default; instead a one-line notice "Frozen (Ice box): N. Show them with 'show me the icebox'" is included, and on a natural-language trigger they are expanded as count + names + freeze reason
- When a natural-language trigger such as "understanding map", "pre-start briefing", or "understanding gap sorting" appears, status preserves its read-only nature and guides the user to the corresponding
/intent-overviewderived views (.intent/overview/agent-understanding-map.md/active-packet-briefing.md/understanding-gaps.md) - Exactly one "next move" is recommended via the first-match of
rules/decision-table.md(from discover / compass / packets / export / validate / improve / writeback / "no action needed"), accompanied by the reason and judgment basis. Only the presentation is changed; the first-match selection logic is untouched - When enforcement is remind / gate, a freshness check via intent-check is performed, and on a violation a freshness warning quoting the intent-check stdout is included (when off, unstated, an invalid value, or not executable, none is shown)
- When drift-watch is
on, drift-log is read and a light tally (prevented N / caught N / missed N / false-positive N / not-applicable N / unjudged N) is included (otherwise none; read-only) - The compass section update dates (Invariants / Decision Rules) and the active packets'
updated_atare cross-checked, and when "not yet caught up after a compass update" reaches the threshold or more,/intent-validateis recommended as the right moment (decision table row 12; estimate only; "shared temperature") - When parallel-implementation claims exist (
.intent/assignments/), the claimed packets, the double-claim warning on the same packet, and the stale-claim elapsed observation are included read-only (Step 3.8; with zero claims not included and unchanged from current behavior; warn-only; no machine threshold; "shared temperature") - Major terms in the output carry a one-line plain-language explanation in the
term (explanation)form (two layers: lead = first occurrence / table headers only; details = every time; the glossary is kept and not abolished)
- The existence and fill state of the deliverables under
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
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 · +7 lines 38c481005383
- 2mo ago First seen · 215 lines · 41 tokens per session scan A 7738d0ba80b5
intent-status is a skill published in the GitHub repository ijust/intent-planner (5 stars, last pushed 1mo ago), licensed MIT. It adds 41 tokens to every session and 10,761 once invoked, about $0.0002 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
repo-hygiene
Use when the scheduled repo-hygiene workflow runs from GitHub Actions (or an operator dry-run) to scan the repository for small, certain docs/test/code hygiene issues and fix them as one batched branch.
test-failure-explorer
Import and query an existing Vitest 3.2 JSON report to explore test failures, file-level errors and original diagnostic evidence.
requirements-writer
Use when converting PM intake into a slice SPEC.md with observable acceptance outcomes, explicit scope, and advisory sibling build dependencies.
refocusing
Use when a long-running agent may have lost the product outcome, when context was compacted, when work has crossed a major boundary, or when a fresh path-based trace is needed before the next consequential action. Not for fresh-session orientation, waking an idle seat, or checkpoints.
orchestration-team
Use when coordinating assignments, selected review boundaries, or blocked work across a rig.
oversight-team
Use when you are a seat on the oversight pod (a standing monitor-mode rig that keeps OTHER rigs healthy), configuring or running the drift detectors, or choosing whether to intervene vs escalate. Covers the pull-not-poll posture, the v0 detectors (premature-park, process-drift, off-task, token-burn), the intervention…