技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
idea-to-blueprint【数据与研究】Turn a raw product, app, bot or feature idea into one evidence-backed build blueprint (researched stack, epics, Given/When/Then criteria, tests) that coding agents build one epic per session.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
Turn a raw idea into a single markdown document that is complete enough for a coding agent to build the product epic by epic, in fresh sessions, without ever having to guess. The blueprint is not a "PRD" in the loose sense: it is the product's only shared memory between the human, the research, and every future build session.
The skill runs intake questions, web research and competitor benchmarking, then writes one Markdown blueprint: architecture drivers and style, a version-pinned stack with evidence tags, a quality gate, personas, flows, UX copy, edge cases, and epics broken into stories with Given/When/Then acceptance criteria, tests and a Definition of Done. The blueprint embeds a session protocol so Claude Code or Codex builds it one epic per fresh session.
This is the author's own skill, published at iniesohidham/idea-to-blueprint under the MIT license (see LICENSE). The files in references/, assets/ and scripts/ are unchanged copies of the upstream files; this SKILL.md adds the catalog sections (Overview, When to Use, Examples, Limitations, safety notes) around the upstream instructions.
Run this skill on the strongest model available at the highest effort/thinking setting the harness offers. If you cannot tell whether that is the case, say so once at the start and continue.
A build session that starts from a blank context has exactly two sources of truth: the repo and this blueprint. Whatever is missing, vague, or wrong in the blueprint becomes a guess in code. So the whole skill is organized around three habits:
[VERIFIED — <source>, <date>], [ASSUMED — <why>], or [UNKNOWN → OQ-nn] (routed to Open Questions). You never fill a gap with a plausible-sounding guess, because the reader has no way to tell your guess from a fact.Everything below serves those three habits.
| Phase | What happens | Reference to read |
|---|---|---|
| 0. Intake | Parse the idea, do a 2–5 search warm-up, ask ONE batch of questions with defaults, wait | references/intake-questions.md |
| 1. Deep research | Understand the domain, benchmark competitors, derive the architecture drivers and shape, choose the stack for agentic engineering, verify the quality tooling, integrations and locale realities, collect UX benchmarks | references/research-protocol.md, references/architecture-decisions.md, references/code-quality-and-review.md |
| 2. Decision brief | Present the interpretation, personas, positioning, architecture drivers and shape, stack, quality gate, epic list and open questions in chat; get a go/correct | (template below) |
| 3. Write the blueprint | Write the document section by section, in chunks, into one .md file | references/blueprint-template.md plus the topic references it points to |
| 4. Lint & deliver | Run scripts/lint_blueprint.py, fix every error, deliver the file with a short wrap-up | (below) |
| 5. Build sessions | The user runs one epic per fresh Claude Code / Codex session using the protocol embedded in the blueprint | references/session-protocol.md |
Do not skip phases 0 and 2. The user explicitly wants to be asked before a long document is produced, and a two-minute checkpoint prevents a hundred pages built on a wrong interpretation. Do not run the phases out of order: research before the intake answers wastes searches on the wrong problem; writing before the brief is approved wastes the document.
Talk to the user in the language they wrote in. Persian in → Persian out for all chat and for the human-facing prose of the document (see Language convention).
Read references/intake-questions.md before asking anything. The rules that matter most:
When the answers arrive, write every unanswered item as an [ASSUMED — …] row in your notes; those rows become the Assumptions section later.
Read references/research-protocol.md and follow its seven tracks in order:
references/architecture-decisions.md) — derive ranked, measurable quality-attribute drivers from the personas, the scale ceiling, the failure cost of the core loop and the hosting reality; name the explicit non-drivers; score 2–3 candidate architecture styles against them; decide the shape, the module boundaries and the exit triggers that would justify revisiting it. Verify the framework's own recommended structure and whether boundary rules can be enforced mechanically in the candidate languages.check, fast tests, LTS/stable, few dependencies, hosting fit for the market) and the drivers from C. Verify current stable versions, deprecations and licenses, and pin them.references/code-quality-and-review.md) — verify the tools that make the gate real for the chosen stack (formatter, strict lint config, typechecker flags, test runner, coverage, mutation testing if a maintained one exists, SAST and dependency audit, secret scanning, duplication detection, accessibility checks, architecture-rule library), the language's official style guide, the CI capability of the chosen host, the current security baseline for the category, and — only if the document will quote them — the current delivery-metric definitions and the current evidence on AI-authored code quality.C before D matters. Choosing the framework first and then writing drivers that happen to justify it is the most common silent failure in a document like this, and it is undetectable in the finished file unless you ask whether any driver could have changed the answer.
Log every source (URL, title, access date) as you go; the Sources section is built from this log, not reconstructed afterwards. Expect 20–60 searches for a whole product; post a one-line progress note to the user every few searches ("benchmarking local competitors…", "verifying gateway sandbox…") so a long research phase never looks stalled. If web tools are unavailable, stop and tell the user: a blueprint written from memory alone cannot meet the no-hallucination bar, so either they enable web access or the document is delivered with every external fact marked [UNVERIFIED] and a warning on the cover.
Before writing the document, post a brief in chat, roughly one screen long, in the user's language:
## Decision brief — <product name>
**How I read the idea:** 2–3 sentences. What it is, for whom, and the single outcome it delivers.
**Users are:** <market/country>, <B2C/B2B>, <language(s)>. (confirmed / assumed)
**Personas:** P1 <name> — one line. P2 … (3–5 max, plus anti-personas if useful)
**Benchmark in one paragraph:** who exists, what the best of them do, the gap we take.
**Architecture drivers (top 3):** AD-1 … (target), AD-2 …, AD-3 … — and what we are explicitly NOT optimising for.
**Shape (locked unless you object):** <style> — one line on why it beat <runner-up>, and the trigger that would make us revisit it.
**Stack (locked unless you object):** language · framework · DB · hosting · testing — one line each with the deciding reason and what the runner-up would have bought.
**Quality gate:** `check` = … (expected runtime …); critical e2e paths: …; what we will measure: …
**Design direction:** reference-based (<their reference>) or chosen (<system/style>) — one line.
**Epics in order:** E00 Foundation, E01 …, E02 … (titles only, 6–14 typical)
**Needs your answer before I write:** only genuinely blocking questions, numbered OQ-01…
**Everything else I will assume** as written in the Assumptions table.
Reply "go" to write the full blueprint, or correct any line.
If the user pre-authorised ("don't stop to ask, just write"), still post the brief and continue without waiting. Otherwise wait for the reply and fold corrections into the research notes.
Read references/blueprint-template.md and keep it open; it has the full section skeleton, the depth target per section, table formats and the ID schemes. Before writing the relevant sections, read the topic references it points to:
references/design-minimal.mdreferences/ux-writing-guide.md (its Persian pack when users are Iranian)references/architecture-decisions.mdreferences/code-quality-and-review.mdreferences/edge-case-catalog.mdreferences/stories-ac-tests.mdreferences/session-protocol.md and the files in assets/Writing mechanics that matter:
P1…, flows F-01…, screens S-01…, copy lines CP-<screen>-<n>, entities ENT-…, epics E00…, stories E03-S02, criteria AC-1… inside a story, open questions OQ-01…, edge cases EC-<cat>-<n>. The linter and the future build sessions rely on them.Run the linter and fix everything it reports as an error (warnings are judgement calls — resolve or justify them):
python3 <this skill's folder>/scripts/lint_blueprint.py <path/to/blueprint.md>
It checks required sections, placeholder text (TODO/TBD/…), story ID uniqueness, that every story has Acceptance Criteria / Edge cases / Tests, that every epic has a Definition of Done, that every [UNKNOWN → OQ-nn] resolves to an Open Questions entry, that tech-stack rows carry evidence tags, that every persona is used by at least one story, and that a Sources section exists with URLs. It also checks the quality layer: that architecture drivers AD-n exist with measurable targets and are referenced by the style decision, that a check command and a review checklist are present in the Quality section, that fitness functions are declared, and that no banned productivity metric (lines of code, commits per engineer, coverage as a target) appears.
Then do the human pass the linter cannot: read the Executive summary, one persona, one flow and one epic end-to-end as if you were a fresh session. Anything you had to infer, write down.
Deliver:
<product>-blueprint.md, present it with the file-presenting tool.docs/BLUEPRINT.md in the repo (or the path the user names) and also create docs/PROGRESS.md, docs/DECISIONS.md and AGENTS.md + CLAUDE.md from assets/, filled in for this product, so Epic 0 can start immediately.## 11. راهنمای UX Writing (UX Writing) — the English anchor must be present.If the user asks for a different split (all English, all Persian), honour it, but keep IDs and code-facing identifiers in English regardless.
Look for: the language of the message, currency words (تومان، ریال، IRR), Iranian cities or provinces, Iranian services (Snapp, Digikala, Shaparak, Bale, Eitaa, Rubika, Zarinpal, Kavenegar…), .ir domains, Jalali dates, mentions of کد ملی, or explicit "کاربر ایرانی". Any of these → treat "users are in Iran" as the working hypothesis, confirm it in intake, and if confirmed load the Iran-specific parts of the research protocol, the UX writing guide and the edge-case catalog. Apply the same logic for any other specific market the message reveals (build the equivalent localisation pack from research if no prebuilt one exists).
If the user provides a reference (Figma, URL, screenshots, brand kit): extract tokens and patterns from it and document them as the design direction, noting where you deviate for usability or RTL. If not: choose a direction yourself — mobile-first, minimal, standard components, a well-documented design system verified via search — and say so in the Decision brief so they can object once. Never leave design "to be decided later"; the build sessions need concrete tokens and component decisions.
[UNKNOWN] is always an acceptable answer; a confident wrong answer never is.I want a Telegram bot that helps freelancers track invoices and nudges late clients.
Do the research, pick the stack, write me the PRD and epics so Codex can build it one epic at a time.
The agent runs a short search warm-up, asks one batch of intake questions with defaults, researches and benchmarks, posts the decision brief, waits for "go", then writes the blueprint section by section and lints it.
An internal tool for our 12-person support team to tag and search customer emails from Gmail,
nothing fancy. Give me the full spec with acceptance criteria and tests.
یه اپ میخوام که رستورانهای تهران بتونن منوی QR داشته باشن و مشتری از سر میز سفارش بده و با زرینپال پرداخت کنه. برام کامل پلن کن که با Claude Code بسازم.
The market cues (Persian, Tehran, Zarinpal) make "users are in Iran" the working hypothesis; the agent confirms it in intake and loads the Iran-specific research, UX writing and edge-case material.
Run from this skill's folder, pointing at the blueprint file:
python3 scripts/lint_blueprint.py docs/BLUEPRINT.md
Exit code 0 means no errors (warnings may remain); add --strict to fail on warnings as well.
[VERIFIED — source, date], [ASSUMED — why] or [UNKNOWN → OQ-nn].[UNVERIFIED] and a warning on the cover.scripts/lint_blueprint.py checks structure and cross-references, not whether the research is correct; the human read-through in Phase 4 is still required.python3 scripts/lint_blueprint.py <blueprint.md>. It uses the Python standard library, reads the one file it is given, prints findings and makes no network calls.docs/PROGRESS.md, docs/DECISIONS.md, AGENTS.md and CLAUDE.md. If any of these already exist, show the proposed changes and merge them with the user's approval instead of overwriting.@spec-driven-development - Lighter spec-before-code workflow when deep research and benchmarking are not needed.@to-prd - Turns an existing conversation into a PRD without an interview or research phase.@planning-and-task-breakdown - Breaks an existing spec into ordered implementation tasks.@brainstorming - Explore and shape the idea before committing to a blueprint.