classify-size

classify-size is a skill for Claude Code, Codex from genkovich/sdd. It costs 234 tokens per session (1,970 once invoked), scanned A, original, MIT.

A feature-sizing tool that places work in one of five sizes, from XS to XL, and selects a matching planning route: quick, standard, or full.

In plain words
What is it for?
Use it to classify a feature, record the result in the project, and choose the amount of planning needed before implementation.
Why use it?
It gives later planning steps a shared estimate of scope and tells them how much documentation and review to produce.

Skill for Claude CodeCodex

Part of the sdd plugin — 22 skills, 11 agents 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/genkovich/sdd/classify-size
Any agent
npx skills add genkovich/sdd --skill classify-size
Clone the repo
git clone --depth 1 https://github.com/genkovich/sdd

Made for: Claude Code, Codex.

Or install sdd, the plugin that ships this one along with the rest of its 22 skills, 11 agents.

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 classify-size

README.md
[![agentmods](https://agentmods.dev/badge/skills/genkovich/sdd/classify-size.svg)](https://agentmods.dev/skills/genkovich/sdd/classify-size)
Your own site
<a href="https://agentmods.dev/skills/genkovich/sdd/classify-size"><img src="https://agentmods.dev/badge/skills/genkovich/sdd/classify-size.svg" alt="Measured on agentmods" height="20"></a>
Per session 234 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,970 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.00234 $0.01970
Opus 5 $0.00117 $0.00985
Sonnet 5 $0.00047 $0.00394
Haiku 4.5 $0.00023 $0.00197

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

Security

Grade A, and why

classify-size 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.

skills/classify-size/SKILL.md · 75 lines

How it starts

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

Skill: classify-size

Atomic skill — classifies a feature into XS/S/M/L/XL and fixes the result in docs/features/<slug>/.size, plus the pipeline route (quick / standard / full) in docs/features/<slug>/.route. This is the single source of size- and route-aware behaviour for the rest of the pipeline: later skills read .size to decide MVP vs Full output depth, and their handoffs read .route to decide how optional-stage skips resolve (auto-skip / offered / never — the Routes table in ../_shared/size-matrix.md).

This skill is the canonical owner of the size matrix../_shared/size-matrix.md. The classification rules, the MVP-vs-Full table, and the one-sentence rule all live there; this skill only runs the dialogue and writes the file.

Called inline by specify. When .size is absent at the start of the backbone, specify step 1 runs this protocol inline (same signals, same file, folded into one bundled question) — this skill stays the standalone utility for classifying up front or re-classifying when scope changes; the protocol is never duplicated elsewhere.

Owner

PM or Tech Lead (driver of the intake phase). An architect may escalate S → M on spotting a new subsystem.

Inputs

  • <slug> — feature slug.
  • (Optional) the idea / intake note — for a rough starting hint. The skill works without it.

Protocol

  1. Check existing. test -f docs/features/<slug>/.size (and .route). If .size exists, read both values and ask «.size is currently <X> (route <Y>). Reclassify?». On «no» — STOP (suggest editing, don't overwrite silently). Re-running just to switch the route is a legal, common case — mid-flight override per the Routes table.
  2. Ask the four signals — one AskUserQuestion each, phrased per ../_shared/ask-style.md:
    • PR count1 / 2–5 / 5–15 / 15+.
    • Time to merge the main part≤1 day / ~1 week / 1–2 sprints / >1 month.
    • New module / new API / DB migrationnone / one of three / two of three / all three.
    • Breaking changes for consumersno / internal only / public clients.
  3. Map to a class using the table in ../_shared/size-matrix.md. On an edge case, name the dominant signal aloud («M because it adds a new API + 1–2 sprints, even though PR count is on the S/M border»). For an all-maximums answer, ask explicitly «needs a separate roadmap?» → yes = XL.
  4. Confirm size + route — ONE question. Derive the default route from the size (XS/S → quick, M → standard, L/XL → full — the Routes table in ../_shared/size-matrix.md). Then one AskUserQuestion: «Classifying as <size> () → route <route> (). Lock both in?» — options: Yes / Yes, but route <other> / No, I want size <X> / Reclassify. Never a second question just for the route.
  5. Write .size + .route. Each one line, plain text — .size only XS/S/M/L/XL; .route only quick/standard/full — no comments, no frontmatter. docs/features/<slug>/.size, docs/features/<slug>/.route.
  6. Re-sync the frontmatter mirrors (.size is the source of truth). feature_size: lives in up to three places: the .size file (canonical) plus the spec.md and sad.md frontmatter (human-readable mirrors). For each of the two files that exists: same value → OK; different (a reclassification, or a hand-edited mirror) → update the frontmatter to the new .size value and say so — never leave a mirror stale; missing field → suggest adding feature_size: <size>. If the user insists a mirror is the right value, that's a reclassification — loop back to step 4 and re-confirm, then re-sync.
  7. Structural self-check — per ../_shared/self-check.md: re-read the written files from disk and verify 3 items: (1) .size holds exactly one of {XS, S, M, L, XL} (one bare word, no trailing content); (2) .route holds exactly one of {quick, standard, full}; (3) both frontmatter mirrors (feature_size: in spec.md and sad.md, for whichever exists) match .size. Fix + re-check ≤2 cycles; surface anything unresolved.
  8. Propose commit + handoff. size: <slug> classified as <size> (route <route>) (or fold into the intake commit if a wrapper called this). Then emit the stage-handoff block per ../_shared/handoff.md (utility variant) — What I did (incl. «self-check: 3/3 pass») + Review (.size, .route) + Run next: resume your backbone stage (e.g. /sdd:specify <slug>); /clear optional.

Read the full file on GitHub · 75 lines

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 · 75 lines · 234 tokens per session scan A 5691b90ad559

Subscribe to this mod's changes

classify-size is a skill published in the GitHub repository genkovich/sdd (118 stars, last pushed 15d ago), licensed MIT. It adds 234 tokens to every session and 1,970 once invoked, about $0.0012 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

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.

obra/superpowers · 37 tokens

auto-perf-optimize

Run agent-driven VS Code performance or memory investigations. Use when asked to launch Code OSS, automate a VS Code scenario, run the Chat memory smoke runner, capture renderer heap snapshots, take workflow screenshots, compare run summaries, or drive a repeatable scenario before heap-snapshot analysis.

microsoft/vscode · 62 tokens

chat-perf

Run chat perf benchmarks and memory leak checks against the local dev build or any published VS Code version. Use when investigating chat rendering regressions, validating perf-sensitive changes to chat UI, or checking for memory leaks in the chat response pipeline.

microsoft/vscode · 51 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens