بنقرة واحدة
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.