원클릭으로
whyspec-execute
Use when starting implementation, continuing work, or executing tasks from a WhySpec plan.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Use when starting implementation, continuing work, or executing tasks from a WhySpec plan.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when planning a code change, capturing decisions before coding, or setting up the Decision Bridge.
Use after coding to preserve reasoning — resolves the Decision Bridge with actual outcomes.
Use when encountering any bug, test failure, or unexpected behavior — before proposing fixes.
Use when looking for why something was built a certain way or finding past decisions.
Use when reviewing the full story of a change — intent, design, tasks, and Decision Bridge delta.
| name | whyspec-execute |
| description | Use when starting implementation, continuing work, or executing tasks from a WhySpec plan. |
| argument-hint | [change-name] |
Implement a change — read the plan, work through tasks, commit atomically.
When all tasks are done, run /whyspec-capture to save your reasoning.
Input: Optionally specify a change name. If omitted, auto-detect or prompt for available changes.
NEVER SKIP THE PLAN. Read intent.md and design.md before writing a single line of code. The plan is the contract — if reality doesn't match the plan, update the plan first.
Select the change
If ARGUMENTS provides a name, use it. Otherwise:
whyspec list --json and let the user selectAnnounce: "Executing change: "
Load execution context
whyspec execute --json "<name>"
Parse the JSON response:
change_name: The change being executedintent: Content of intent.mddesign: Content of design.mdtasks: Content of tasks.mdprogress: { total, completed, remaining }pending_tasks: Array of uncompleted tasksRead plan files for context
Read the full content of:
intent.md — understand WHY this change exists, what constraints applydesign.md — understand HOW to approach it, what decisions are pendingtasks.md — understand WHAT to implement and how to verifyKeep intent and design in mind throughout implementation. When making a decision during coding, check if it's listed under "Decisions to Make" — you're resolving the Decision Bridge in real-time.
Show current progress
## Executing: <name>
Progress: N/M tasks complete
Remaining:
- [ ] Task description 1
- [ ] Task description 2
Implement tasks sequentially
For each pending task:
a. Show: Working on task N/M: <description>
b. Implement the code changes
c. Mark task complete in tasks.md: - [ ] → - [x]
d. Run the task's verify: check if one is defined
e. Commit atomically — one commit per task or logical unit
f. Continue to next task
Reading src/middleware/index.ts — current chain: cors → helmet → bodyParser → routes Installing express-rate-limit@7.1.0 (compatible with Express 4.18) Added rateLimiter middleware after helmet at src/middleware/index.ts:14 Config: 100 req/15min window, Redis store via existing src/lib/redis.ts client
verify: npm test -- --grep "rate-limit" → 4 tests pass
verify: curl -I localhost:3000/api/users → X-RateLimit-Limit: 100 header present
Committed: "feat(middleware): add rate-limit middleware with Redis backing" Why good: References exact files/lines, shows what was done and why, runs specific verification commands, commits atomically with clear message.
Working on task 3/5: Add rate-limit middleware Done! Moving to task 4. Why bad: No detail about what was implemented. No verification. No commit. The user can't tell if this was done correctly. Working on task 2/4: Refactor auth to use JWT PAUSE — design.md says "cookie-based sessions" (design.md:12) but this task says "JWT". This contradicts the design. Options: A) Update design.md to JWT and continue (Recommended — JWT aligns with the API-first intent) B) Implement cookie-based sessions as designed C) Discuss the trade-offs before deciding Why good: Catches a contradiction between plan and task. Stops to resolve with specific options instead of silently making a decision. Working on task 2/4: Refactor auth to use JWT Design says cookies but I'll use JWT since the task says so. Why bad: Silently overrides the design without flagging the contradiction.On completion
Report status using completion codes:
| Status | When | What to show |
|---|---|---|
| DONE | All tasks completed and verified | Full summary + /whyspec-capture prompt |
| DONE_WITH_CONCERNS | Tasks done but something feels off | Summary + concerns + /whyspec-capture |
| BLOCKED | Cannot proceed without input | Blocker details + resume command |
| NEEDS_CONTEXT | Missing information | Specific question about what's missing |
## DONE
Change: <name>
Progress: M/M tasks complete
Completed:
- [x] Task 1: description — committed as "feat: ..."
- [x] Task 2: description — committed as "feat: ..."
Ready to capture reasoning? Run /whyspec-capture
| Tool | When to use | When NOT to use |
|---|---|---|
| Read | Read plan files (intent.md, design.md, tasks.md) BEFORE coding | Don't skip reading the plan |
| Grep | Find affected code before editing (e.g., all usages of a function you're changing) | Don't grep after editing — grep BEFORE to understand impact |
| Edit | Modify existing files — prefer Edit over Write for existing code | Don't rewrite entire files when a targeted edit suffices |
| Write | Create new files only | Don't use Write to modify existing files |
| Bash | Run tests (npm test), verify (curl, build commands), commit (git commit) | Don't run destructive git commands without asking |
| AskUserQuestion | When a task is unclear, or design contradicts implementation (see format below) | Don't ask about things you can determine from the plan or code |
<task description>"design.md says use the existing ioredis client (src/lib/redis.ts:8), but that
client uses db: 0 which is shared with session data. Rate limit keys could
collide with session keys.
A) Use db: 0 with a ratelimit: key prefix (simple, small collision risk)
B) Create a separate client on db: 1 (isolated, adds ~2MB memory)
C) Reuse db: 0 but with a Redis namespace library
I'd recommend B — isolation is worth 2MB. Why good: Specific blocker with evidence from code. Options with trade-offs.
| Situation | Attempts allowed | Action |
|---|---|---|
| Task is unclear or ambiguous | 0 — ask immediately | Ask ONE specific clarification question |
| Implementation keeps failing | 3 attempts max | Report: what was tried, what failed, what error |
| Design contradiction found | 0 — flag immediately | Present options, let user decide |
| Unexpected dependency or constraint | 1 attempt to resolve | If can't resolve, present findings and ask |
| If you catch yourself thinking... | Reality |
|---|---|
| "I'll read the plan later, the task name is clear enough" | The plan has constraints you'll violate. Read it. 15 seconds. |
| "One big commit is fine, I'll split it later" | You won't. Atomic commits are the contract. Do it now. |
| "This test is probably passing, no need to run it" | "Probably" is not evidence. Run the test. |
| "I'll skip the verify step for this trivial task" | Trivial tasks have trivial verifications. Run them anyway. |
| "The design is slightly wrong but my way is better" | Flag it. The user made the design for a reason you might not see. |
/whyspec-capture suggestion.