| name | taskforge-discover |
| description | Defines the current milestone in detail and generates a SpecCard. Use when the user says "/taskforge-discover", "define this milestone", "let's detail M1", or similar. In v2, discover runs per-milestone (JIT), not once for the whole project. If the user hasn't run /taskforge-vision yet, suggest it first for large projects. |
| model | opus |
Discover โ Milestone Spec Definition (v2 JIT)
A skill that takes a milestone from sketch โ full by asking focused questions and generating a SpecCard.
v2 key change: Discover runs per milestone, not once for the whole project. Only the active milestone gets a full spec. Future milestones stay as sketch or name-only until their turn.
Use friendly, accessible language. Never expose technical terms like "spec", "handoff", "few-shot", or "CoT" to the user.
Step 0: Context Check
Check for vision/roadmap (v2)
- Look for
_workspace/projects/{projectId}/vision.json and roadmap.json
- If they exist: read them โ this is a milestone-level discover. Show the user:
ํ๋ก์ ํธ: {projectName}
์ง๊ธ ์์
ํ ๋ง์ผ์คํค: {milestoneId} โ {milestoneTitle}
๋ชฉ์ : {purpose}
๋ฏธ๊ฒฐ ์ง๋ฌธ: {openQuestions}
์ด ๋ง์ผ์คํค์ ์์ธํ ์ ์ํด๋ณผ๊ฒ์.
- If they don't exist and this looks like a large project (user mentions multiple phases/milestones): suggest
/taskforge-vision first.
ํฐ ํ๋ก์ ํธ์ฒ๋ผ ๋ณด์ฌ์. ๋จผ์ ์ ์ฒด ๋ฐฉํฅ์ ๊ฐ๋ณ๊ฒ ์ก๊ณ ์ถ์ผ๋ฉด /taskforge-vision์ ์จ๋ณด์ธ์.
์ง๊ธ ๋ฐ๋ก ์์ํ๊ณ ์ถ์ผ๋ฉด ๊ณ์ ์งํํ ๊ฒ์.
- If this is a small/single-milestone project: proceed directly (no vision needed).
Read prior context (v2 โ mandatory for non-M0 milestones)
If this is not the first milestone (M0), read all of the following before asking the user any questions. Each file shapes the spec for this milestone:
| Source | What to extract |
|---|
milestones/{previousMilestoneId}/retrospective.md | "๋ค์ ๋ง์ผ์คํค์ ๋ฐ์ํ ๊ฒ" section โ explicit instructions for this discover. "์์๊ณผ ๋ฌ๋๋ ๊ฒ" โ assumptions to revisit. |
All decisions/D*.md files | Decisions already made โ do not re-ask. If a decision's ์ฌ๊ฒํ ์กฐ๊ฑด matches this milestone, flag it. |
constraints.md | Hard rules. Apply throughout. Do not propose anything that violates them. |
concept.json | Tech direction. Stay consistent unless concept is still unlocked (lockedAt: null). |
Previous milestones' handoffs/ (last 3-5 tasks of the prior milestone) | What actually got built last, what's open, what's next. |
If retrospective.md says something specific about this milestone (e.g. an entry of the form "M{n}: {artifact}์ '{topic}' ์ถ๊ฐ"), fold it into the questions you ask the user โ don't make them repeat themselves.
If any of these files contradicts the user's request in this session, surface it:
์ด์ ํ๊ณ ์์ "{๋ด์ฉ}"์ด๋ผ๊ณ ์ ๋ฆฌ๋๋๋ฐ, ์ง๊ธ ๋ง์ํ์ ๊ฑฐ๋ ๋ค๋ฅธ ๋ฐฉํฅ ๊ฐ์์. ๊ทธ๋ ๊ฒฐ์ ์ ๋ฐ๊พธ๋ ๊ฑฐ์์, ์๋๋ฉด ์ ๊ฐ ์๋ชป ์ดํดํ ๊ฑฐ์์?
Check for existing projects
Before starting, scan _workspace/projects/:
- If projects exist, show them and ask: new project or continue existing?
Step 1: Understand the Milestone Goal
If coming from vision/roadmap, the milestone purpose is already known. Confirm and refine:
- "์ด ๋ง์ผ์คํค ๋๋๋ฉด ๋ญ ๋ณด์ฌ์ค ์ ์์ด์ผ ํด์?" (What should be demo-able when this milestone is done?)
- "์ง๊ธ ๊ฐ์ฅ ํ์คํ ๊ฒ๊ณผ, ์์ง ๋ชจ๋ฅด๋ ๊ฒ์ ๋๋ ๋ด์."
If starting fresh (no vision):
- Start with: "๋ญ ๋ง๋ค๊ณ ์ถ์ผ์ธ์?"
- One question at a time. Don't interrogate.
Step 2: Collect Reference Materials (Few-shot layer โ hidden from user)
This step collects materials that will be silently converted into few-shot references for AI execution. Never use terms like "few-shot" or "reference injection" with the user.
Ask naturally โ adapt the wording to the project type (game / app / tool / site / etc.):
- "๋น์ทํ ๋๋์ {projectType}์ด ์์ด์? ์ด๋ฆ, ๋งํฌ, ์คํฌ๋ฆฐ์ท ๋ญ๋ OK์์."
โ Save to
references/
- "๋์์ธ ํค์ด ๋น์ทํ ์ด๋ฏธ์ง๊ฐ ์๋์? (์์ด๋ ๋ฉ๋๋ค)"
โ Save to
references/visual/
- "์ด๊ฒ๋ง์ ๊ผญ ์ง์ผ์ผ ํ๋ค๋ ๊ท์น์ด ์๋์?"
โ Save to
constraints.md
M0 prototype milestone special handling:
- Frame it as: "์ด ๋จ๊ณ์์ ๋ง๋ ๊ฒฐ๊ณผ๋ฌผ์ด ์์ผ๋ก ๋ชจ๋ ์์
์ ๋ณธ๋ณด๊ธฐ๊ฐ ๋ผ์. ์ง๊ธ ๊ฐ์ฅ '์ด๋ฐ ๋๋์ด์์ผ๋ฉด' ํ๋ ๊ฒ ์๋์?"
- Whatever they provide becomes the primary reference for all future milestones.
Step 3: Decisions for This Milestone
Identify decisions needed only for this milestone. Don't front-load decisions for future milestones.
Gap types to check:
- Architecture choices scoped to this milestone
- Unclear scope boundaries ("does this include X or not?")
- Technical constraints ("which Unity version?", "online or offline?")
Decision principles:
- If AI can decide: decide and record in
decisions/D{n}-{topic}.md. Don't ask the user.
- Only ask about things only the user can answer (business, preference, constraints).
- Record each decision: what was decided and why.
Decision file format (decisions/D001-topic.md):
# D001: {์ฃผ์ }
- ์ํ: ๊ฒฐ์ ๋จ
- ๊ฒฐ์ : {๋ด์ฉ}
- ์ด์ : {๊ทผ๊ฑฐ}
- ์ํฅ๋ฐ๋ ํ์ผ: []
- ์ฌ๊ฒํ ์กฐ๊ฑด: {์ธ์ ๋ค์ ๋ณผ์ง}
Step 4: Completion Checklist (Verifier layer โ shown as plain checklist)
Define "done" for this milestone. Frame as a simple checklist:
- "์ด ๋ง์ผ์คํค์ด ๋๋ฌ๋ค๊ณ ๋งํ๋ ค๋ฉด ๋ญ๊ฐ ๋ผ์ผ ํด์? 3๊ฐ์ง๋ง ๋งํด์ค์."
Convert answers to a verifiable checklist in verification.md:
# {milestoneId} ์์ฑ ์ฒดํฌ๋ฆฌ์คํธ
โก {์กฐ๊ฑด 1 โ ์ฌ์ฉ์๊ฐ ์ง์ ํ์ธ ๊ฐ๋ฅํ ๋ฌธ์ฅ}
โก {์กฐ๊ฑด 2}
โก {์กฐ๊ฑด 3}
Good criteria: an observable action with a measurable result (specific user input โ specific outcome within a specific bound). Testable.
Bad criteria: subjective adjectives ("clean", "fast", "nice"). Not testable.
Step 5: Tech Stack & Validation Strategy
If user is non-developer: AI recommends and briefly explains.
If user is developer: ask preferred stack.
Define validation strategy (same as v1 โ platform-specific commands).
Step 6: CoT Scaffold Generation (hidden from user)
For complex decision tasks identified in this milestone, silently generate a CoT template in prompts/cot/:
If a task involves a complex judgment (e.g., balance tuning, system design):
Step 7: Confirm and Save
Show gathered information as a SpecCard summary (in plain language):
๋ง์ผ์คํค: {id} โ {title}
๋ชฉํ: {what will be demo-able when done}
ํต์ฌ ๊ธฐ๋ฅ:
1. {feature A}
2. {feature B}
๊ธฐ์ : {stack}
๋ณธ๋ณด๊ธฐ ์๋ฃ: {references collected, if any}
์์ฑ ๊ธฐ์ค: {checklist summary}
๊ฒฐ์ ๋ ์ฌํญ: {decisions made}
On user confirmation: save.
On requested changes: update only relevant parts and show again.
SpecCard Storage
Project ID (if new project)
Generate from name: lowercase, spacesโhyphens, remove special chars.
Rule: name.toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-]/g, '')
Files to create/update
_workspace/projects/{projectId}/
โโโ spec-card.json โ This milestone's full spec
โโโ verification.md โ Completion checklist
โโโ constraints.md โ Hard rules (append if exists)
โโโ references/ โ Reference materials collected
โ โโโ {files from user}
โโโ prompts/
โ โโโ cot/
โ โโโ {topic}.md โ CoT scaffolds (if any)
โโโ decisions/
โโโ D{n}-{topic}.md โ Decisions made
spec-card.json schema (v2):
{
"projectId": "{projectId}",
"projectName": "{projectName}",
"milestoneId": "{milestoneId}",
"projectType": "game | webapp | mobile | cli | api | other",
"description": "One or two sentence milestone description",
"targetUser": "Target users",
"features": [
{ "name": "{feature name}", "priority": "must" },
{ "name": "{feature name}", "priority": "nice" }
],
"techStack": ["HTML5", "JavaScript", "Canvas API"],
"designDecisions": ["Single-player", "Works offline"],
"references": ["references/ui-pattern.html", "references/visual/mood.png"],
"cotTemplates": ["prompts/cot/balance-decision.md"],
"validationStrategy": {
"prerequisites": [],
"build": { "command": "none", "auto": true },
"run": { "command": "open index.html", "auto": false },
"quality": { "command": "eslint src/", "auto": true },
"functional": { "method": "checklist", "auto": false, "checklist": [] }
},
"createdAt": "2026-04-20T..."
}
Update roadmap.json milestone status: detail: "sketch" โ detail: "full", status: "active".
Guardrail Check (v2)
Before finishing, verify:
If any fail: ask one more focused question to fix it before saving.
Notes
- One question at a time. Conversation, not interrogation.
- Non-developer users: AI decides tech choices and explains briefly.
- If user is vague: help clarify โ that's the job of this skill.
- When done: "์ด์ /taskforge-plan์ผ๋ก ์์
์ ์ชผ๊ฐค ์ ์์ด์."
- v2 new: Also mention "/taskforge-vision์ ๋จผ์ ์คํํ๋ฉด ์ ์ฒด ๋ก๋๋งต์ ์ก์ ์ ์์ด์" if this is a large project.