بنقرة واحدة
writing-plans
Use when you have a spec or requirements for a multi-step task, before touching code
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Use when you have a spec or requirements for a multi-step task, before touching code
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Stress-test a plan, design, decision, or idea through a one-question-at-a-time interview. Use when the user invokes /grill, says grill me, asks to be challenged, 拷问, 压力测试, or wants a plan stress-tested; also use when progress is blocked by an unresolved user-owned decision whose alternatives materially change the outcome after high-risk classification is ruled out. Do not use merely because work is complex, high-risk, new, or spans multiple files.
Use when the user explicitly requests Brainstorming, a design spec, Spec Gate, or the full Superpowers workflow; also use automatically for costly-to-reverse high-risk work involving architecture or service boundaries, public-contract compatibility, authentication or authorization, persistent data/schema migration, or irreversible external side effects. Do not use for ordinary behavior changes or merely because work is new, complex, or spans multiple files.
Chinese workflow for surfacing systematic fact, evidence, context, and blind-spot gaps before, during, and after agentic work. Use when the user explicitly asks for a blind-spot scan, unknown unknowns, prototypes, reference mapping, implementation notes, explainers, or quizzes; when phrases like "I'll know it when I see it" or "teach me this domain" expose unstated assumptions; or when safe progress is blocked by evidence gaps that require multiple low-cost probes. Do not use merely because work is complex, high-risk, long-running, or spans multiple files.
Use when starting or routing a non-trivial task in this workflow harness, when the user references Superpowers, or when deciding which skill, command, rule, or agent should govern the work. Establishes skill invocation discipline: check relevant process skills before acting, follow user/project instructions first, and verify before completion.
用于功能验收、回归验证、确认修复是否生效,以及需要用真实界面、视频或日志证据判断用户流程是否正常的任务。适用于“验收一下”“测一下”“确认修复”“给我可复核证据”等请求。
为 subagent、代码探索、RAG 式检索和大仓库上下文收集设计迭代检索闭环。用于初始上下文不明确、一次性读全仓会污染上下文、子代理不知道该读哪些文件、或搜索结果需要逐轮收敛时。
| name | writing-plans |
| description | Use when you have a spec or requirements for a multi-step task, before touching code |
Write comprehensive implementation plans assuming the engineer has zero context for our codebase and questionable taste. Document everything they need to know: which files to touch for each task, code, testing, docs they might need to check, how to test it. Give them the whole plan as bite-sized tasks. DRY. YAGNI. TDD. Verification checkpoints.
Assume they are a skilled developer, but know almost nothing about our toolset or problem domain. Assume they don't know good test design very well.
Announce at start: "I'm using the writing-plans skill to create the implementation plan."
Context: If working in an isolated worktree, it should be created via skills/using-git-worktrees/SKILL.md at execution time.
Save plans to: docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md
docs/superpowers/ path is ignored.Only write an implementation plan after a design spec exists and the user has approved it. If the request is complex and no approved spec exists, return to skills/brainstorming/SKILL.md instead of creating a plan. The approved spec is the Plan Gate input.
If the spec covers multiple independent subsystems, it should have been broken into sub-project specs during brainstorming. If it wasn't, suggest breaking this into separate plans — one per subsystem. Each plan should produce working, testable software on its own.
Before defining tasks, map out which files will be created or modified and what each one is responsible for. This is where decomposition decisions get locked in.
This structure informs the task decomposition. Each task should produce self-contained changes that make sense independently.
Each step is one action (2-5 minutes):
Do not include commit steps by default. Add git add or git commit steps only when the user explicitly asks for commit handling, or when an approved workflow already says this plan is allowed to create commits.
Every plan MUST start with this header:
# [Feature Name] Implementation Plan
> **For agentic workers:** Implement this plan task-by-task. Keep checkbox (`- [ ]`) status updated. For substantial plans, prefer the project-agent loop: one fresh implementation subagent per task, then requirement/spec compliance review, then code quality review.
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
## Global Constraints
[The spec's project-wide requirements — version floors, dependency limits,
naming and copy rules, platform requirements, commit/PR boundaries, exact
values — one line each, copied verbatim from the spec or user instruction.
Every task's requirements implicitly include this section.]
---
### Task N: [Component Name]
**Files:**
- Create: `exact/path/to/file.py`
- Modify: `exact/path/to/existing.py:123-145`
- Test: `tests/exact/path/to/test.py`
**Interfaces:**
- Consumes: [what this task uses from earlier tasks — exact signatures, file paths, commands, or data contracts]
- Produces: [what later tasks rely on — exact function names, parameter and return types, CLI flags, file formats, or documented behavior. A task implementer may see only this task, so neighboring contracts must be explicit.]
- [ ] **Step 1: Write the failing test**
```python
def test_specific_behavior():
result = function(input)
assert result == expected
```
- [ ] **Step 2: Run test to verify it fails**
Run: `pytest tests/path/test.py::test_name -v`
Expected: FAIL with "function not defined"
- [ ] **Step 3: Write minimal implementation**
```python
def function(input):
return expected
```
- [ ] **Step 4: Run test to verify it passes**
Run: `pytest tests/path/test.py::test_name -v`
Expected: PASS
- [ ] **Step 5: Inspect the diff**
```bash
git diff -- tests/path/test.py src/path/file.py
git status --short
```
Every step must contain the actual content an engineer needs. These are plan failures — never write them:
Global Constraints or per-task Interfaces blocksGlobal Constraints; do not assume implementers or reviewers will remember the spec.Interfaces block, even if it says Consumes: none or Produces: none.After writing the complete plan, look at the spec with fresh eyes and check the plan against it. This is a checklist you run yourself — not a subagent dispatch.
1. Spec coverage: Skim each section/requirement in the spec. Can you point to a task that implements it? List any gaps.
2. Placeholder scan: Search your plan for red flags — any of the patterns from the "No Placeholders" section above. Fix them.
3. Type consistency: Do the types, method signatures, and property names you used in later tasks match what you defined in earlier tasks? A function called clearLayers() in Task 3 but clearFullLayers() in Task 7 is a bug.
4. Contract propagation: Did every task get the relevant Global Constraints and the exact Interfaces it consumes and produces? If a later task depends on a name, format, flag, or file from an earlier task, both tasks must say so consistently.
If you find issues, fix them inline. No need to re-review — just fix and move on. If you find a spec requirement with no task, add the task.
After saving the plan, offer execution choice:
"Plan complete and saved to docs/superpowers/plans/<filename>.md. If you want me to execute it, I will use skills/executing-plans/SKILL.md. Two execution options:
1. Subagent-Driven Development (when commit handling is approved) - Use skills/subagent-driven-development/SKILL.md for independent tasks, task briefs, implementer report files, review packages, and the .superpowers/sdd progress ledger.
2. Project-Agent Loop (no commits by default) - Use this project's existing agents. Dispatch one fresh implementation subagent per task, then run two reviews before marking the task complete.
3. Inline Execution (lightweight) - Execute tasks in this session, task-by-task, with checkpoints. Use this for small, clear, tightly coupled work.
Which approach?"
If Subagent-Driven Development chosen:
skills/subagent-driven-development/SKILL.md..superpowers/sdd/ and must stay out of commits.If Project-Agent Loop chosen:
agents/*.md file and use its role, process, and constraints as the subagent prompt. In runtimes that do not expose custom agent names directly, dispatch a generic worker and seed it with the selected project-agent prompt.agents/tdd-guide.md for new behavior, bug fixes, or behavior changes that need tests firstagents/refactor-cleaner.md for focused refactorsagents/e2e-runner.md for Playwright or user-flow verification tasksagents/planner.md or a generic review worker seeded with the spec and plan. Compare the implementation against the spec and this plan before judging style. If there is a gap, send it back to the same task implementer.agents/code-reviewer.md, plus agents/security-reviewer.md or agents/database-reviewer.md when the touched area warrants it. If issues remain, send them back to the same task implementer and re-review.If Inline Execution chosen:
If any task hits a bug, failing test, flaky behavior, or unexpected result, pause implementation and use skills/systematic-debugging/SKILL.md.
Do not stack quick fixes. Complete the four debugging phases, document the root cause briefly in the task notes, then return to the same task and re-run its required verification.
After all plan tasks are complete:
skills/verification-before-completion/SKILL.md: identify the verification evidence required before any completion claim./verify or equivalent commands) to produce that fresh evidence.skills/systematic-debugging/SKILL.md for each failure class before changing code.agents/code-reviewer.md, adding agents/security-reviewer.md or agents/database-reviewer.md when relevant./pr when the user wants commit, push, or PR handling.