From sdd
Classifies feature size (XS/S/M/L/XL) via four-factor matrix and writes the canonical .size file for downstream size-aware skills.
How this skill is triggered — by the user, by Claude, or both
Slash command
/sdd:classify-sizehaikuThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Atomic skill — classifies a feature into XS/S/M/L/XL and fixes the result in
Atomic skill — classifies a feature into XS/S/M/L/XL and fixes the result in
docs/features/<slug>/.size. This is the single source of size-aware behaviour for the rest
of the pipeline: later skills read .size to decide MVP vs Full output depth.
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.
PM or Tech Lead (driver of the intake phase). An architect may escalate S → M on spotting a new subsystem.
<slug> — feature slug.test -f docs/features/<slug>/.size. If it exists, read the value and ask «.size is currently <X>. Reclassify?». On «no» — STOP (suggest editing, don't overwrite silently).AskUserQuestion each, phrased per ../_shared/ask-style.md:
1 / 2–5 / 5–15 / 15+.≤1 day / ~1 week / 1–2 sprints / >1 month.none / one of three / two of three / all three.no / internal only / public clients.../_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.AskUserQuestion: «Classifying as <size> (). Lock it in?» — Yes / No, I want <X> / Reclassify..size. One line, plain text, only XS/S/M/L/XL — no comments, no frontmatter. docs/features/<slug>/.size..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.size: <slug> classified as <size> (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 + Review (.size) + Run next: resume your backbone stage (e.g. /sdd:specify <slug>); /clear optional.docs/features/<slug>/.size holds exactly one of XS/S/M/L/XL.spec.md / sad.md exist, their feature_size: mirrors match .size (no drift; .size is the source of truth)..size without asking..size with comments. Wrappers grep it cheaply — keep it one bare word.User: «classify size rate-limiting-per-user» Skill:
.sizeabsent → asks the four questions (2–5 PR,~1 week,one of three — new API,internal only) → maps to S (rationale: one API endpoint + ~1 week + internal breaking) → confirms → writesdocs/features/rate-limiting-per-user/.size=S→spec.mdnot yet written, skip sync → commitsize: rate-limiting-per-user classified as S.
npx claudepluginhub genkovich/sdd --plugin sddClassifies work into three ceremony levels (Full, Standard, Minimal) to match documentation depth to task complexity before starting the pipeline.
Reviews implemented features using RICE, WSJF, or Kano scoring frameworks, prioritizes them, generates suggestions, and creates GitHub issues for roadmaps and backlogs.
Orchestrates SAM workflow for new features: discovery, codebase analysis, architecture spec, task decomposition, validation, context manifest. Creates MD/YAML artifacts for GitHub issues. Use for add/plan feature requests.