一键导入
writing-plans
Use when you have an approved design or requirements for a multi-step task, before touching code
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when you have an approved design or requirements for a multi-step task, before touching code
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when the user wants to create a new pull request, update an existing PR's body, open a draft PR, or preview a PR body locally before pushing.
Use when executing implementation plans with independent tasks in the current Pi session using fresh subagents and review loops
Create a new Pi task folder for a specific task or feature development. Use when the user wants to start a new task, plan a feature, or asks to create a task file.
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Use when you have a written implementation plan to execute with review checkpoints
Use when you notice something to fix later while working on another task - captures context without breaking flow (~10 seconds)
| name | writing-plans |
| description | Use when you have an approved design or requirements for a multi-step task, before touching code |
Write a comprehensive implementation plan from an approved design. Assume the implementer understands software development but has little context for this repository. Include exact files, steps, verification commands, acceptance criteria, dependencies, and commit points.
Announce at start: "I'm using the writing-plans skill to create the implementation plan."
Plan location: Read 2-DESIGN.md from the active ~/.pi/plans/<YYYY-MM-DD>_<project>_<task>/ folder and write 3-PLAN.md in the same folder. If no active task folder is known, ask the user for the folder or design file path before proceeding.
If the design covers multiple independent subsystems, suggest breaking it 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 structure informs task decomposition. Each task should produce self-contained changes that make sense independently.
For each implementation task in the plan:
@tintinweb/pi-tasks task tools when available.@tintinweb/pi-tasks is unavailable, use any generic Pi task tools available in the session.3-PLAN.md.Each task should include:
Each task is a coherent unit of work that produces a testable, committable outcome.
Scope test:
TDD cycles happen within tasks, not as separate tasks. A task is "Implement X with tests"; red-green-refactor steps are execution details inside that task.
Every plan MUST start with this header:
# [Feature Name] Implementation Plan
> **For agentic workers:** Use the Pi-adapted `executing-plans` skill after this plan exists. Execute task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. Prefer `@tintinweb/pi-tasks` task tools when available; otherwise use generic Pi task tooling or the Markdown checkboxes in this file.
**Goal:** [One sentence describing what this builds]
**Architecture:** [2-3 sentences about approach]
**Tech Stack:** [Key technologies/libraries]
---
### Task N: [Component Name]
**Goal:** [One sentence — what this task produces]
**Files:**
- Create: `exact/path/to/file.py`
- Modify: `exact/path/to/existing.py:123-145`
- Test: `tests/exact/path/to/test.py`
**Acceptance Criteria:**
- [ ] [Concrete, testable criterion]
- [ ] [Another criterion]
**Verify:** `exact test command` → expected output
**Steps:**
- [ ] **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"
```
Every step must contain the actual content an implementer needs. These are plan failures:
After writing the complete plan, review it against the design.
If you find issues, fix them inline. If a design requirement has no task, add the task.
After writing and self-reviewing 3-PLAN.md, stop and ask the user how they want to execute it.
Offer these choices in plain text:
executing-plans skill in this session./skill:executing-plans <path-to-3-PLAN.md>.Do not begin implementation until the user chooses an execution path.