Skip to content
Back to skills

Writing Plans

ASecurity

Use when you have approved requirements for multi-step work and need a concrete implementation plan before touching code.

  • 7 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 2, 2026
developmentgodocumentation

Security analysis

A100/100

Scanned September 20, 2026

npx -y skills add yishan-io/yishan-mono --skill writing-plans --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Writing Plans?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Writing Plans
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/yishan-io-writing-plans/badge)](https://www.skillsdirectory.com/skills/yishan-io-writing-plans)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: writing-plans
description: Use when you have approved requirements for multi-step work and need a concrete implementation plan before touching code.
---

# Writing Plans

Use this skill to turn requirements or an approved design into an implementation plan.

## Relationship To Context Skills

When the work has a tracked Local Task, use `context-task` alongside this skill.

- use `task_read` without a document to read the synthetic, read-only brief
- use `task_read` to read the relevant current `plan.md`, `notes.md`, and `outcome.md` context documents
- use `context-task` to maintain the context documents, including writing the resulting plan to `plan.md`

When prior project decisions or non-obvious history may matter, use `context-memory` before finalizing the plan.

## When to Use This Skill

Use this skill when:

- The work has multiple steps or checkpoints
- The user wants a plan before implementation
- The work spans several files or responsibilities
- The requirements are clear enough to sequence into plan subtasks

Do not use this skill for tiny, direct edits that can be implemented safely without separate planning.

## Core Principles

- Plan against the real codebase, not an imagined structure
- The controller owns plan-subtask scope; a plan must not silently enlarge it
- A tracked Local Task may contain multiple independently deliverable plan subtasks; do not create a new Local Task merely because a plan subtask is independently deliverable
- Freeze each plan subtask as an independently verifiable brief before execution
- Keep the plan concrete: exact files, responsibilities, and validation steps
- Prefer the smallest correct implementation
- Follow existing project patterns unless there is a strong reason not to

## Workflow

### 1. Confirm Inputs

Before writing the plan, make sure you have:

- The approved goal or requirements
- Enough codebase context to know where the change belongs
- A reasonable work boundary

If the work has a tracked Local Task, use `task_read` without a document to read its synthetic brief first. If research notes already exist, use `task_read` to read `notes.md` too.

If the request is too broad, split it into smaller plans. Within a tracked Local Task, split independently deliverable results into plan subtasks before execution; do not defer that split to a builder working on an active plan subtask. Do not create a new Local Task solely because a plan subtask is independently deliverable.

For every plan subtask, freeze a brief that states:

- **Goal:** the outcome this plan subtask alone must deliver
- **Scope boundary:** the allowed changes and interfaces
- **Non-goals:** related work that is explicitly excluded
- **Acceptance check:** an observable, independent verification of completion
- **Execution budget:** a finite limit appropriate to the work, such as a bounded number of steps, files, investigations, or attempts

The controller owns these briefs. Do not leave their scope open for an executor to reinterpret.

### 2. Map the File Structure

Before listing plan subtasks, identify:

- Which files will likely change
- Which new files may be needed
- What responsibility each file should have

Prefer focused responsibilities and clear interfaces. Avoid unnecessary restructuring.

If there may be relevant prior decisions, architecture notes, or durable discoveries, check `context-memory` before locking the file map and plan-subtask boundaries.

### 3. Break Work Into Plan Subtasks

Each plan subtask should:

- Produce one independently deliverable, meaningful completion boundary
- Have a frozen scope boundary and explicit non-goals
- Include the files involved
- Include an independent acceptance check
- Have a finite execution budget

Do not combine results merely because they are related. If either result can be delivered and verified independently, make it a separate plan subtask before execution. Keep those plan subtasks in the same tracked Local Task unless another reason requires separate Local Task tracking.

Good plan-subtask boundaries usually separate:

- setup or scaffolding that enables later work
- core behavior changes
- UI or integration wiring
- tests and validation
- documentation or follow-up cleanup when needed

### 4. Make Each Plan Subtask Concrete

For each plan subtask, include:

- Plan-subtask name
- Goal
- Scope boundary
- Non-goals
- Files to create or modify
- Main implementation steps
- Acceptance check and validation steps
- Finite execution budget
- Risks or dependencies if they matter

If execution reveals scope-changing work, do not add it to the active plan subtask. Stop that attempt. The controller decides whether to continue and, if so, must create a newly frozen brief for the additional or revised work. Do not repeatedly expand or retry a stopped plan subtask without a new brief.

Use exact file paths whenever you know them.

### 5. Include Verification

Every plan should say how to verify progress.

Examples:

- Run a focused test file
- Run the relevant lint command
- Exercise the feature manually
- Verify a specific regression case

### 6. Review the Plan in Isolation

After drafting the plan, send it to the `plan-reviewer` agent for a read-only review pass.

Give the reviewer:

- The plan path or plan content
- The original requirements or approved design
- Any project-wide constraints
- Any areas you are uncertain about

Use the review to catch:

- missing requirements
- oversized or poorly ordered plan subtasks
- vague steps or placeholders
- weak validation steps
- unnecessary scope

Fix the plan before presenting it as ready.

If the work has a tracked Local Task, use `context-task` to keep `plan.md` as the current source of planning truth rather than leaving the plan only in transient conversation history.

## Suggested Plan Format

```markdown
# <Feature Name> Implementation Plan

**Goal:** <one-sentence outcome>

**Context:** <key codebase or product constraints>

**Scope boundary:** <changes this plan may make>

**Non-goals:** <related work excluded from this plan>

## File Map

- Modify: `path/to/file.ts` - <responsibility>
- Create: `path/to/new-file.ts` - <responsibility>

## Plan Subtasks

### Plan Subtask 1: <name>

**Goal:** <what this plan subtask delivers>

**Scope boundary:** <allowed changes and interfaces>

**Non-goals:** <related work excluded from this plan subtask>

**Execution budget:** <finite limit on steps, files, investigations, or attempts>

**Files:**
- Modify: `path/to/file.ts`
- Create: `path/to/test.ts`

**Steps:**
1. <concrete action>
2. <concrete action>
3. <concrete action>

**Acceptance check / Verify:**
- Run: `<command>`
- Expect: <independently observable result>

### Plan Subtask 2: <name>
...
```

## Quality Bar

Do not write plans with placeholders like:

- TBD
- TODO
- implement later
- add tests
- handle edge cases

Replace vague instructions with explicit actions.

## Self-Review

After writing the plan, check:

1. Does every requirement map to a plan subtask?
2. Are plan-subtask boundaries small enough to verify and complete independently?
3. Are file paths and ownership clear?
4. Does every plan subtask have an explicit scope boundary, non-goals, acceptance check, and finite execution budget?
5. Are validation steps specific and independently verifiable?
6. Did you split independently deliverable results into plan subtasks before execution without creating a new Local Task solely for that reason?
7. Did you avoid unnecessary scope?

Fix obvious gaps inline before sending the plan to `plan-reviewer`.

After `plan-reviewer` returns findings:

1. Apply needed fixes to the plan
2. Re-check for consistency after the edits
3. Present the revised plan to the user

## Handoff

When the plan is complete:

- If the work has a tracked Local Task, use `context-task` to write or update `plan.md`
- Present the plan clearly to the user
- Mention that it has already passed through `plan-reviewer`
- Ask whether they want changes before implementation
- If approved, switch to implementation or the relevant execution workflow

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.