| name | taskforge-playtest |
| description | Runs a game-focused playtest session where the user verifies the milestone hands-on. Use when the user says "/taskforge-playtest", "let me play it", "I want to test it myself", "playtest", "is it fun", "check the game", or when a milestone validation has just passed and retro hasn't run yet. This is the game-specific extension of /taskforge-verify โ use /taskforge-verify for non-game projects. |
Playtest โ Hands-On Game Confirmation
After a milestone completes, the user plays the game and gives feedback.
Capture what was fun, what was confusing, and what to add next โ then pass it all to the retrospective.
User-facing tone: "์ง์ ํด๋ณด์๊ณ ๋๋ ์ ์ ์๋ ค์ฃผ์ธ์. ๊ธฐ์ ์ ์ธ ๋ด์ฉ์ ๋ชฐ๋ผ๋ ๋ฉ๋๋ค."
Plain language only. The user is a player right now, not a developer.
Prerequisites
- A milestone must have completed and passed validation (
/taskforge-validate milestone)
- The game must be runnable by the user (build/run instructions from spec-card's
validationStrategy)
- All file paths below are relative to
_workspace/projects/{projectId}/
Project Selection
Same as /taskforge-execute โ auto-select if only one project, ask if multiple.
Flow
Step 1: Set Up the Session
Read spec-card.json and project-plan.json to understand:
- What milestone just completed (which features should be playable)
- The
validationStrategy.functional.checklist โ the "what to check" list from discover
- Whether this is M0 (prototype milestone) โ M0 gets special treatment (see below)
Then tell the user what to do to start the game:
์ด์ ์ง์ ํด๋ณผ ์๊ฐ์ด์์.
[How to run the game โ from validationStrategy, in plain language]
์: "๋ธ๋ผ์ฐ์ ์์ index.html์ ์ด์ด์ฃผ์ธ์." ๋๋ "Unity์์ ํ๋ ์ด ๋ฒํผ์ ๋๋ฌ์ฃผ์ธ์."
์ค๋น๋๋ฉด ์๋ ค์ฃผ์ธ์.
Wait for the user to confirm they're ready before starting the checklist.
Step 2: Checklist Walk-Through
Present the functional checklist from the spec-card one item at a time โ not all at once.
For each item:
ํ์ธ {n}/{total}: {feature name}
์ด๋ ๊ฒ ํด๋ณด์ธ์:
1. [Specific action]
2. [What to look for]
โ ๋๋์? ์๋๋ฉด ์ด๋ป๊ฒ ๋๋์ง ์๋ ค์ฃผ์ธ์.
Rules:
- One item at a time โ wait for the user's response before moving on
- Tell the user exactly what to do and what to look for
- Accept plain answers: "๋์ด์", "์ ๋์ด์", or a description of what happened
- If something failed, record it but keep going โ don't stop the session to debug
Step 3: Collect Qualitative Feedback
After the checklist is done, ask four questions โ one at a time:
Question 1: "์ฝ์ด ๋ฃจํ(ํต์ฌ ๋ฐ๋ณต ํ๋)๊ฐ ์ฌ๋ฏธ์์๋์? 1์ (์ ํ ์๋)์์ 5์ (๋งค์ฐ ์ฌ๋ฏธ์์) ์ฌ์ด๋ก ์๋ ค์ฃผ์ธ์."
Question 2: "์ด๋์ ๋งํ๊ฑฐ๋ ํท๊ฐ๋ฆฌ์
จ๋์? (์์ผ๋ฉด '์์'์ด๋ผ๊ณ ํด์ฃผ์ธ์)"
Question 3: "๊ฐ์ฅ ์์ฌ์ด ์ ํ๋๋ง ๊ผฝ๋๋ค๋ฉด์?"
Question 4: "๋ค์์ ๊ผญ ์ถ๊ฐ๋์ผ๋ฉด ํ๋ ๊ฒ์ด ์๋ค๋ฉด์?"
Wait for each answer before asking the next one.
Step 4: M0 Special Gate (Prototype Milestone Only)
Only run this step if the current milestone is M0 (the prototype/proof-of-concept milestone).
Ask: "๋ง์ง๋ง์ผ๋ก, ์ด ํ๋กํ ํ์
์์ ํต์ฌ ์ฌ๋ฏธ๊ฐ ๊ฒ์ฆ๋๋ค๊ณ ๋๋ผ์๋์?"
Give three options:
- Y (๋ค) โ Core fun confirmed
- N (์๋์) โ Core fun not confirmed
- ๋ถ๋ถ์ (์ด๋ ์ ๋) โ Partially confirmed
If Y:
์ข์์! ์ด ํ๋กํ ํ์
์ด ์์ผ๋ก ๋ชจ๋ ์์
์ ๋ ํผ๋ฐ์ค๊ฐ ๋ฉ๋๋ค.
์ง๊ธ ๋ง๋ค์ด์ง ๊ฒ๋ค์ ๋ ํผ๋ฐ์ค๋ก ์ ์ฅํด๋๋ฆด๊ฒ์.
[Scan references/ directory and list what's there]
์ถ๊ฐ๋ก ๋ ํผ๋ฐ์ค๋ก ๋จ๊ธฐ๊ณ ์ถ์ ๊ฒ์ด ์๋์?
(์: "์ด ์ฌ์ ๋๋", "์ด ์กฐ์๊ฐ", "์ด ์ฌ์ด๋ ํ์ด๋ฐ")
Add user-suggested items to the playtest.md references section.
If N:
ํต์ฌ ์ฌ๋ฏธ๊ฐ ์์ง ์๋ค๋ฉด, ๋ค์ ๋ง์ผ์คํค์ผ๋ก ๋์ด๊ฐ๊ธฐ ์ ์ ๋ฐฉํฅ์ ๋ค์ ์ก๋ ๊ฒ ์ข์ ๊ฒ ๊ฐ์์.
concept.json์ ๋ค์ ๊ฒํ ํด๋ณผ๊น์?
- ์ฝ์ด ๋ฃจํ๋ฅผ ๋ฐ๊ฟ๋ณผ๊น์?
- ๋ค๋ฅธ ์ฌ๋ฏธ ์์๋ฅผ ์๋ํด๋ณผ๊น์?
- ์๋๋ฉด ์ง๊ธ ๋ง๋ ๊ฒ์์ ์ด๋ค ๋ถ๋ถ์ด ์๋ชป๋ ๊ฒ ๊ฐ์ผ์ ๊ฐ์?
(์ด ๋จ๊ณ๊ฐ concept์ ์์ ํ ์ ์๋ ์ ์ผํ ๊ธฐํ์์.)
Guide the user through reviewing concept.json and updating the core loop definition.
Do NOT proceed to retro until the user decides: fix the prototype or accept and move on.
If ๋ถ๋ถ์ :
์ด๋ ์ ๋ ์ฌ๋ฏธ๊ฐ ์๊ตฐ์. ์ด๋ค ๋ถ๋ถ์ด ์ฌ๋ฏธ์์๊ณ ์ด๋ค ๋ถ๋ถ์ด ์์ฌ์ ๋์?
Capture the details, then ask: "๊ณ์ ์งํํ ๊น์, ์๋๋ฉด ์กฐ๊ธ ๋ ๋ค๋ฌ์ด๋ณผ๊น์?"
Let the user decide โ record their choice in playtest.md.
Step 5: References Scan (M0 or user request)
If M0 and core fun was confirmed (Y or ๋ถ๋ถ์ + user wants to proceed):
Scan references/ directory and list its contents.
Ask: "๋ ํผ๋ฐ์ค ํด๋์ ์ถ๊ฐํ๊ณ ์ถ์ ๊ฒ ์๋์? ํ์ฌ ํ๋กํ ํ์
์์ '์ด๊ฒ๋งํผ์ ์ ์งํ๊ณ ์ถ๋ค'๋ ๊ฒ๋ค์ด์."
Examples to prompt the user:
- ํน์ ์กฐ์๊ฐ์ด๋ ๋ฐ์ ์๋
- ํ๋ฉด ๊ตฌ์ฑ์ด๋ ์๊ฐ
- ์ฌ์ด๋๋ ํผ๋๋ฐฑ ํ์ด๋ฐ
- ๋ฐธ๋ฐ์ค ์์น๋ ๊ท์น
Record suggestions in the playtest.md references section.
Step 6: Save Playtest Results
Save to milestones/{milestoneId}/playtest.md:
# M{id} ํ๋ ์ดํ
์คํธ โ {๋ ์ง}
## ์ฒดํฌ๋ฆฌ์คํธ ๊ฒฐ๊ณผ
- [x] {feature} โ {user's comment if any}
- [ ] {feature} โ {what went wrong}
## ์ฌ๋ฏธ ํ์ (M0 ์ ์ฉ)
ํต์ฌ ์ฌ๋ฏธ ๊ฒ์ฆ: Y / N / ๋ถ๋ถ์
์ด์ : {user's words, verbatim if possible}
## ์ ์ฑ ํผ๋๋ฐฑ
์ฌ๋ฏธ๋: {์ ์}/5
๋งํ ๋ถ๋ถ: {user's answer}
๊ฐ์ฅ ์์ฌ์ด ์ : {user's answer}
๋ค์์ ์ถ๊ฐ๋์ผ๋ฉด: {user's answer}
## ๋ ํผ๋ฐ์ค ์ถ๊ฐ ์ ์
- references/์ ์ถ๊ฐ ๊ถ์ฅ: {list of items}
Rules for saving:
- Use the user's actual words, not a paraphrase
- If a checklist item failed, record what the user described โ not a technical diagnosis
- M0 fun judgment section is only included for M0 milestones
Step 7: Wrap Up
ํ๋ ์ดํ
์คํธ๊ฐ ๋๋ฌ์ด์. ํผ๋๋ฐฑ์ ์ ์ฅํ์ต๋๋ค.
์ฒดํฌ๋ฆฌ์คํธ: {passed}/{total} ํต๊ณผ
์ฌ๋ฏธ๋: {score}/5
[If issues found]: {n}๊ฐ ํญ๋ชฉ์์ ๋ฌธ์ ๊ฐ ์์์ด์. ํ๊ณ ์์ ๊ฐ์ด ๊ฒํ ํ ๊ฒ์.
๋ค์ ๋จ๊ณ: /taskforge-retro ๋ฅผ ์คํํ๋ฉด ํ๊ณ ์ ํจ๊ป ๋ค์ ๋ง์ผ์คํค ๊ณํ์ ์ ๊ฒํ ๊ฒ์.
Storage
| File | What it contains |
|---|
milestones/{milestoneId}/playtest.md | Full playtest session record |
This file is automatically read by /taskforge-retro as evidence input.
Integration with Other Skills
| Skill | Relationship |
|---|
/taskforge-validate milestone | Must pass before playtest runs |
/taskforge-verify | Similar but for non-game projects; playtest extends it with fun metrics and M0 gate |
/taskforge-retro | Reads playtest.md as input โ run playtest before retro |
/taskforge-discover | M0 core loop changes flow back into concept.json via retro |
Milestone Sequence
/taskforge-validate milestone โ /taskforge-playtest โ /taskforge-retro โ /taskforge-discover (next milestone)
This is the recommended sequence. Each step's output feeds into the next.
Notes
- If the user hasn't run the game yet, help them start it before asking any questions. Don't proceed with an imaginary playtest.
- Accept vague answers gracefully. "๊ทธ๋ฅ ์ฌ๋ฏธ์์์ด์" is a valid answer โ record it and move on.
- M0's core fun gate is the ONLY point where
concept.json can be revised. After M0, the core loop is locked โ new features are additions, not replacements.
- If the user wants to skip a question, accept "์์" / "ํจ์ค" and move on โ don't push.
- Never tell the user their feedback is wrong or suggest what the "correct" answer is.