AgentSkillsCN

writing-plans

当您需要创建新技能、编辑现有技能,或在部署前验证技能是否正常运行时,可使用此技能。

SKILL.md
--- frontmatter
name: writing-plans
description: Use when you have a spec or requirements for a multi-step task, before touching code

Writing Plans

Overview

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. Frequent commits.

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: This should be run in a dedicated worktree (created by brainstorming skill).

Save plans to: .cursor/plans/YYYY-MM-DD-<feature-name>.md

Where to save (critical): The plan must exist in the same workspace where it will be executed. If the user will run executing-plans in a worktree (they chose "Parallel Session" / option 2), save the plan in that worktree so the agent there can find it: either (a) write the file to the worktree path (e.g. .worktrees/<branch-name>/.cursor/plans/<filename>.md from repo root) if you know it, or (b) tell the user: "Open the worktree folder in Cursor (File → Open Folder → choose .worktrees/<name>), then in that window ask me to create the plan again so it is saved there." If the user will run in the current session (option 1), save to the current workspace's .cursor/plans/.

Bite-Sized Task Granularity

Each step is one action (2-5 minutes):

  • "Write the failing test" - step
  • "Run it to make sure it fails" - step
  • "Implement the minimal code to make the test pass" - step
  • "Run the tests and make sure they pass" - step
  • "Commit" - step

Plan Document Header

Every plan MUST start with this header:

markdown
# [Feature Name] Implementation Plan

> **For Claude:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.

**Goal:** [One sentence describing what this builds]

**Architecture:** [2-3 sentences about approach]

**Tech Stack:** [Key technologies/libraries]

---

Task Structure

markdown
### 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`

**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: Commit

bash
git add tests/path/test.py src/path/file.py
git commit -m "feat: add specific feature"
code

## Remember
- Exact file paths always
- Complete code in plan (not "add validation")
- Exact commands with expected output
- Reference relevant skills with @ syntax
- DRY, YAGNI, TDD, frequent commits

## Execution Handoff

After saving the plan, offer execution choice:

**"Plan complete and saved to `.cursor/plans/<filename>.md`. Two execution options:**

**1. Subagent-Driven (this session)** - I dispatch fresh subagent per task, review between tasks, fast iteration

**2. Parallel Session (separate)** - Open new session with executing-plans, batch execution with checkpoints

**Which approach?"**

**If Subagent-Driven chosen:**
- **REQUIRED SUB-SKILL:** Use superpowers:subagent-driven-development
- Stay in this session
- Fresh subagent per task + code review

**If Parallel Session chosen:**
- Ensure the plan file exists in the worktree (see "Where to save" above). If the plan was created in another workspace, write it to the worktree's `.cursor/plans/` or tell the user to open the worktree and re-request the plan there.
- Guide them to open new session in worktree (File → Open Folder → worktree path).
- **REQUIRED SUB-SKILL:** New session uses superpowers:executing-plans