intent-to-spec

intent-to-spec is a skill for Claude Code, Codex from ijust/intent-planner. It costs 45 tokens per session (5,023 once invoked), scanned A, original, MIT.

A read-only generator that combines Intent Planning documents into one natural-language specification, or spec—a detailed description of what should be built and why.

In plain words
What is it for?
Use it to produce a readable specification for an intent subtree, packet group, steering constraint, or set of cross-cutting requirements.
Why use it?
It connects goals, rules, constraints, and requirements that may be spread across several planning files. It stops when the requested source area is unclear or missing.

Skill for Claude CodeCodex

Install

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.

agentmods
npx agentmods add skills/ijust/intent-planner/intent-to-spec
Any agent
npx skills add ijust/intent-planner --skill intent-to-spec
Clone the repo
git clone --depth 1 https://github.com/ijust/intent-planner

Made for: Claude Code, Codex.

Wrote 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.

agentmods badge for intent-to-spec

README.md
[![agentmods](https://agentmods.dev/badge/skills/ijust/intent-planner/intent-to-spec.svg)](https://agentmods.dev/skills/ijust/intent-planner/intent-to-spec)
Your own site
<a href="https://agentmods.dev/skills/ijust/intent-planner/intent-to-spec"><img src="https://agentmods.dev/badge/skills/ijust/intent-planner/intent-to-spec.svg" alt="Measured on agentmods" height="20"></a>
Per session 45 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 5,023 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00045 $0.05023
Opus 5 $0.00023 $0.02511
Sonnet 5 $0.00009 $0.01005
Haiku 4.5 $0.00005 $0.00502

Measured 4d ago against content hash 9fee71fb096e, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

intent-to-spec 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 4d 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.

templates/en/claude/skills/intent-to-spec/SKILL.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

intent-to-spec Skill

Core Mission

  • Success Criteria:
    • Reads, read-only, only the .intent/ artifacts within the user-specified scope (source scope: Intent subtree / packet group / steering constraints / cross-cutting requirements) as source material, and binds the three layers (the Intent's why / invariants / decision rules / steering-grade constraints / requirements' individual demands) across them (R1.1 / R1.2)
    • When the source scope is ambiguous, or the corresponding artifact is absent, generates no natural-language Spec and stops, showing the user what is ambiguous (the available scope) or which artifact is missing (the relevant skill to prepare it) (R1.3)
    • Treats the projection sources (intent-tree / compass / packets / steering) read-only, and does not create, modify, or delete them (R1.4)
    • Composes the natural-language Spec per the specified target format (the why-fronted upstream layout / the requirements-crossing integrated spec / their middle), and when no format is specified, uses the default and states explicitly in the output which format it was generated in (R2.1 / R2.4)
    • Satisfies trace assignment, inferred marking, invariant preservation, and the supplemented-places list (done in Step 4; R3.1 / R3.2 / R3.3 / R3.4)
    • Outputs the artifact as derived (regenerable) under .intent/nl-spec/ by full replacement, and never creates, modifies, or deletes any canonical artifact (intent-tree / compass / packets). Does not put operational boilerplate about derivation, source-of-truth status, Git tracking, or internal paths into the generated document (R4.1 / R4.2 / R4.3)
    • Does not modify application code in the intent-planning phase (R4.4). Follows the intent-* naming convention, does not modify external spec tools or the kiro-* development environment, does not call map-cc-sdd.md, and does not change the behavior of /intent-export-cc-sdd (R5.5)

Execution Steps

Step 1: Source interpretation (confirm scope and depth; do not generate if ambiguous/absent)

  • Important-decision entry check: Check at the start of natural-language Spec generation. Read the in-scope Intent Tree, Intent Compass, packets, and their referenced Open Questions, then use the shared contract in CONTRACT.md to classify whether an item is an important decision requiring a human decision. For each important decision, present at least one provisional answer proposal, its rationale, and the condition that would change the recommendation. Until one of these outcomes is obtained from the user—a decision, out-of-scope for this work, or scope-limited explicit continuation—do not start natural-language Spec generation for the affected scope. Work outside the stopped scope may continue, and an ordinary Open Question that is not an important decision may continue as before. After an allowed outcome, update or recheck affected artifacts before resuming only that scope.
  • When the user runs /intent-to-spec, first interpret the argument's scope hint, format specification, and output-depth specification per rules/source-scope.md. For any axis the arguments alone do not uniquely determine, ask the user via AskUserQuestion and wait for the answer before confirming (do not fill in by guessing).
  • Output-depth confirmation (per the "output-depth axis" in rules/source-scope.md): confirm how deeply to write (brief / standard / detailed), riding the same dialogue completion as the range axes. When depth is made explicit in the arguments (e.g. "detailed," "in brief"), do not ask (do not add unnecessary questions). When it is not explicit, ask once, before generating, via AskUserQuestion (present the three levels as peers, without putting a "reasonable default" up front = anchoring avoidance). This is deliberately asymmetric to how format is treated when unspecified (silently use the default): missing thickness is invisible to the reader, so it is confirmed before generating (details in the corresponding section of source-scope).
  • Output-form confirmation (DR189, multiple choice): confirm which form to output (Markdown / self-contained HTML / Marp slide Markdown), riding the same position as the depth confirmation. When the form is made explicit in the arguments (e.g. "in HTML," "and Marp"), do not ask (do not add unnecessary questions). When it is not explicit, ask once, before generating, via AskUserQuestion (multiple choice; present the three forms as peers). When unspecified / unanswered / dialogue is not possible, output only the default Markdown (backward-compatible; the default form is provisional). Write only the chosen forms in Step 5.
  • Screen-material handling confirmation (DR190, fires only for a case with no screen-sketch record): only when the layout being generated deals with screens / touchpoints (an integrated design document, etc.) and the intent-tree's ## 画面ラフ参照 (screen-sketch reference) is "none" (not out of scope, and no path/link either), ask the user once before generating, via AskUserQuestion, to choose between "derive a screen-transition diagram with an inferred mark" and "only state 'no screen material'." Do not fire for a case where the screen sketch exists as a "path/link" or a case that is "out of scope" (if it exists, project it; if out of scope, do not raise a screen section). Do not ask when the handling is made explicit in the arguments. The body of the convention follows "Material for the screens / touchpoints section" in rules/format-integrated.md (a derived diagram must have an inferred mark; do not fabricate).
  • No-generation gate (fail-fast. R1.3): when the source scope is ambiguous (no axis is uniquely determined by arguments or dialogue) or the corresponding artifact is absent (the specified intent-tree / compass / packet / steering does not exist or is unfilled), generate no natural-language Spec and write nothing under .intent/nl-spec/. Name and present what is ambiguous (the available scope: existing subtrees, packet list, presence of steering) or the missing artifact (the relevant skill to prepare it: discover / compass / packets, etc.), and stop.
  • Once scope and depth are confirmed, proceed to Step 2.

Read the full file on GitHub · 96 lines

Files

What ships with it

9 files 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.

Changes

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.

  1. 4d ago First seen · 96 lines · 45 tokens per session scan A 9fee71fb096e

Subscribe to this mod's changes

intent-to-spec is a skill published in the GitHub repository ijust/intent-planner (5 stars, last pushed 2d ago), licensed MIT. It adds 45 tokens to every session and 5,023 once invoked, about $0.0002 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.

Related

Other skills, from other repositories

rulesync

Generates and syncs AI rule configuration files (.cursorrules, CLAUDE.md, copilot-instructions.md) across 20+ coding tools from a single source. Use when syncing AI rules, running rulesync commands, importing or generating rule files, or managing shared AI coding configurations.

dyoshikawa/rulesync · 64 tokens

establishing-project-context

Use when the user asks to establish shared project language, or project work exposes a conflicting, renamed, or deprecated domain term that needs active semantic modeling. Routine small tasks stay on the fast path.

GanyuanRan/Aegis · 45 tokens

autoprompt

Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.

Spielewoy/autoprompt-skill · 56 tokens

loop

Full execution protocol for MODE: LOOP — the compound-engineering loop: brainstorm → plan → build → review → improve, iterating under defense-in-depth stop conditions with generator/critic separation, durable resumable state, and mandatory compounding learning capture. Loaded on demand by the architect when the loop…

ZaxbyHub/opencode-swarm · 72 tokens

restore-internals-seams-in-finally-blocks-after-each-test

When delegating a task affected by this skill, include.

ZaxbyHub/opencode-swarm · 26 tokens

loongsuite-pilot-insight

基于 LoongSuite Pilot / AI Coding Agent 日志生成事件洞察、组织洞察、数据质量、研发效能和 AI Native 使用类 SLS 报表时使用;包含 AI Coding 事件表语义,以及团队报表可选的部门维表、deptuser 组织关系、指标口径和公共 CTE,通常与 sls-dashboard-builder 一起使用。.

alibaba/loongsuite-pilot · 91 tokens