spec-plan

spec-plan is a skill for Claude Code, Codex from martinffx/atelier. It costs 90 tokens per session (2,721 once invoked), scanned A, original, MIT.

A workflow for writing a clear implementation plan for software work. It supports a short conversational plan for bounded tasks or a structured plan based on an approved design document.

In plain words
What is it for?
Use it to break down a feature, convert design.md into plan.json, or create an inline plan for a smaller change.
Why use it?
It turns an agreed approach into steps another engineer can follow. It stops after planning, so implementation remains a separate action.

Skill for Claude CodeCodex

Part of the atelier plugin — 14 skills shipped together

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/martinffx/atelier/spec-plan
Any agent
npx skills add martinffx/atelier --skill spec-plan
Clone the repo
git clone --depth 1 https://github.com/martinffx/atelier

Made for: Claude Code, Codex.

Or install atelier, the plugin that ships this one along with the rest of its 14 skills.

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 spec-plan

README.md
[![agentmods](https://agentmods.dev/badge/skills/martinffx/atelier/spec-plan.svg)](https://agentmods.dev/skills/martinffx/atelier/spec-plan)
Your own site
<a href="https://agentmods.dev/skills/martinffx/atelier/spec-plan"><img src="https://agentmods.dev/badge/skills/martinffx/atelier/spec-plan.svg" alt="Measured on agentmods" height="20"></a>
Per session 90 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,721 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.1 $0.00090 $0.02721
Opus 5 $0.00045 $0.01360
Sonnet 5 $0.00018 $0.00544
Haiku 4.5 $0.00009 $0.00272

Measured 5d ago against content hash 2711c9081834, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

spec-plan 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.

skills/spec-plan/SKILL.md · 324 lines

How it starts

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

Spec Plan

Write a proportional plan so clear that any engineer can follow it. The selected planning mode determines whether the plan stays in the conversation or becomes a persisted structured artifact. This skill does not write code or start implementation.

atelier-orchestrator owns automatic classification and the human may override it. When this skill is directly invoked without a selected mode, use Spec-backed Plan. If Inline planning reveals substantial design or coordination needs, ask the human whether to switch to a Spec-backed Plan before presenting the plan.

Terminal boundary

This skill produces exactly one plan output and then stops:

  • Inline mode presents the plan in conversation and changes no repository files.
  • Spec-backed mode creates or updates only plan.json from an approved design.md.

Planning drafts and annotation cycles stay in conversation. Do not modify design.md, persist a Markdown plan draft, create tracker entries, invoke another workflow skill, or edit implementation files. These rules still apply when the human asks to plan and implement in one request. Implementation requires a later, explicit request after this skill has finished.

Planning Rules

  • Organize tasks around required behavior, not one task per layer.
  • Record a short list of behavior the change must preserve.
  • For each task, identify existing code to reuse, modify, or delete.
  • Map every new abstraction to a present requirement and its current consumers.
  • Introduce shared infrastructure only when at least two current consumers demonstrate the same need.
  • Group tests by changed contract and active boundary. Do not repeat the CRUD matrix across layers.

Proportionality Gate

Before presenting any plan, compare its size and concepts with the requested behavior. If a bounded migration or refactor introduces shared infrastructure, unrelated behavior, or a plan substantially larger than the behavior being changed, stop and simplify it.

Outputs

Read the full file on GitHub · 324 lines

Files

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.

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. 5d ago First seen · 324 lines · 90 tokens per session scan A 2711c9081834

Subscribe to this mod's changes

spec-plan is a skill published in the GitHub repository martinffx/atelier (45 stars, last pushed 26d ago), licensed MIT. It adds 90 tokens to every session and 2,721 once invoked, about $0.0005 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-30.

Related

Other skills, from other repositories

lingui-best-practices

Implement internationalization with Lingui in React and JavaScript applications. Use when adding i18n, translating UI, working with Trans/useLingui/Plural, extracting messages, compiling catalogs, or when the user mentions Lingui, internationalization, i18n, translations, locales, message extraction, ICU…

lingui/skills · 78 tokens

enhanced-message-context

Add translator comments to Lingui messages so translations are accurate. Use when adding or modifying translatable messages, when strings are short or ambiguous ("Back", "Delete", "Post"), when placeholders are unclear ({count}, {name}), when deciding between comment and context, or when auditing extracted .po…

lingui/skills · 70 tokens

migrate-i18next-to-lingui

Migrate i18next/react-i18next projects to Lingui. Use when the user wants to replace i18next, react-i18next, useTranslation, i18n.t(), Trans i18nKey, or i18next JSON catalogs with Lingui equivalents. Covers package installation, config setup, code transformation patterns, plural migration, namespace handling, and…

lingui/skills · 86 tokens

find-unwrapped-strings

Audit a Lingui project for hardcoded user-facing strings that were never wrapped in macros. Use when asked to find untranslated, unwrapped, or hardcoded strings, to check i18n coverage, to audit what an i18n setup or migration missed, or when text renders in the source language after everything was supposedly…

lingui/skills · 72 tokens

lingui-framework-setup

Set up Lingui in a React framework. Use when adding Lingui to a Next.js App Router, Vite, React Router 7, Remix, or TanStack Start project, when wiring locale detection, locale-prefixed URLs, or SSR locale resolution, or when a working setup breaks after a framework or build-tool upgrade.

lingui/skills · 72 tokens

brainstorm

Explore the solution space when the path isn't obvious - invent options, stress-test them, pick one. Use for architecture decisions, design tradeoffs, and when the user asks 'how should I approach X?'. Default produces a decision brief; pass --quick for chat-only, --deep for multi-round adversarial debate with full…

vanducng/skills · 125 tokens