بنقرة واحدة
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 ويثبّتها لك.
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.
استنادا إلى تصنيف SOC المهني
| 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.