원클릭으로
feature-plan
Turns a feature concept into a single self-contained interactive HTML planning artifact.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Turns a feature concept into a single self-contained interactive HTML planning artifact.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | feature-plan |
| description | Turns a feature concept into a single self-contained interactive HTML planning artifact. |
Produce one self-contained HTML artifact that makes a feature plan graspable at a glance and grounded in the user's actual codebase. This skill plans only — it stops at a rendered artifact. It does not implement the feature.
The skill ships two things you build from:
template.html — a fixed scaffold. You fill its {{TOKENS}} and comment-delimited slots; you do not restyle its design.Each section can be seeded from a source if one is supplied, else autogenerated from the concept:
| Section | Seed from, if present | Else autogenerate from |
|---|---|---|
| §1 interaction mock | the concept doc / brief | the concept |
| §2 story map | an MCP board (Miro, FigJam, …) or a doc | the concept |
| §3 architecture | an ADR / design doc | the concept + the codebase |
| §4 decisions | open questions in the ADR / concept | what you find while planning |
Sources are authoritative on shape. If the user hands you a story map, do not reorder or re-slice it — inherit its backbone and slices verbatim and only fill the gaps (file paths, verify steps, new/exists tags). Re-derive nothing the source already decided.
Which sources get used is decided interactively — see the Intake step below.
Don't assume the inputs. Open with a multiple-choice menu (multi-select) — e.g. the AskUserQuestion tool — and let the user pick which resources they want to supply:
Then:
Pull each section from its chosen source (or autogenerate). Hold the concept in plain language first — you cannot write §1 until you can say, in one sentence, what the thing is and who it's for.
Scan the actual repository. Sources give intent; the code gives truth. Every claim in the artifact must be reconciled with what's really there:
X," "a use-case like Y." Discover the patterns by reading the code; never impose a generic structure.exists → a real file. Use its real path and deep-link it in the diagram (vscode://file/ABSOLUTE/PATH:LINE).new → code to be written. Describe where it lands or the existing analog to mimic. It is forward-looking and legitimately not in the repo yet — that is the point, not a gap. Never give it a path that implies it already exists, and never a vscode click link.external → a boundary (third-party API, service). No path.The cardinal sin: letting a new thing masquerade as a concrete existing file, or inventing a path to make a slice look grounded. If you couldn't find it, say new and describe the analog.
Anything you cannot resolve becomes visible, never an invisible "fix":
Only render §4 when a real decision exists. If there's none, delete the section and the header's warn pill (the template marks where).
Copy template.html directory into the user's repo (a docs/ folder is a sensible default — confirm or follow an existing convention). Fill the slots. Then open it / tell the user the path.
The template's own comments are the spec — read them. The essentials:
{{STATIC_PROTOTYPE}} slot is the whole container: build a short, concrete, static snapshot of the feature in use, before any architecture. Decide the shape from how the feature is actually used — never default to chat. Stay on-brand by drawing from the §1 toolbox classes the template ships — chat (conversational), panel (settings / forms / controls: the .mock frame + rows, toggles, fields, selects, buttons), table (data views / lists / results: .mock-table rows + status dots) — or compose freely with the design tokens; never go off-palette. Fill it with specific, real-sounding content, not generic placeholder text. End with a .scope-note only if a line foreshadows the §4 decision..sm-lab.start) — fastest path to feeling the UX, real surface + faked everything behind it..sm-lab.opt).fill (real work this slice ships for that step), canned (stubbed/faked), or empty (untouched)..smgrid CSS repeat(N,…) must equal the backbone column count, and every row must emit exactly N cells. Get this wrong and the layout breaks.archDef NODES / EDGES / CLICKS regions. Keep classDef and class assignments in sync with node kinds. exists nodes get vscode click links; new/external do not. The legend is static..safe → .mid → .hot, safest first. Keep each card scannable, never a wall of text: a one-line .gist, then 2–3 compact .opt-meta label/value rows (Trade-off, Cost, Best for, Risk… — pick what matters, bold the key word). Add the optional .opt-flow mini-diagram only when an option is a shape worth showing (pipeline, fan-out, before→after); delete it otherwise. Drop the whole section if there's no real decision.