Skip to content
Back to skills

Skill Planning Format

ASecurity

Standards for Development Plans (PLAN.md) and Detailed Task Descriptions (TASK.md).

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 9, 2026
ai-agentspythonawsgitdatabase

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 9, 2026

npx -y skills add MatrixFounder/Agentic-development --skill skill-planning-format --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skill Planning Format?

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

Security grade badge for Skill Planning Format
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/matrixfounder-skill-planning-format/badge)](https://www.skillsdirectory.com/skills/matrixfounder-skill-planning-format)

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: skill-planning-format
description: Standards for Development Plans (PLAN.md) and Detailed Task Descriptions (TASK.md).
tier: 1
version: 1.5
---

# Planning Output Format

**Purpose**: Defines the rigid structure for planning documents effectively.

## 1. Red Flags (Anti-Rationalization)
**STOP if you are thinking:**
- "I'll plan the details later" -> **WRONG**. "Later" means "Never". Breakdown must happen NOW.
- "This task is too simple for a file" -> **WRONG**. Every unit of work needs a `task-*.md` file for tracking.
- "I'll use my own format" -> **WRONG**. The Orchestrator relies on this specific structure.
- "I'll draw the plan chart by hand" -> **WRONG**. `plan_gantt.py` generates it from the
  schedule block (§2.1).

## 2. Development Plan Structure (`docs/PLAN.md`)
The Main Plan acts as the "Table of Contents" for the feature.

> [!TIP]
> Use the template at `assets/templates/plan_md_template.md`.

### 2.1. Schedule block and plan chart
Every `docs/PLAN.md` carries the schedule block that the template shows. The plan chart is
generated by `plan_gantt.py` of `mermaid-authoring-guidelines`, never written by hand.

1. Directly under `<!-- contract:schedule -->`, write one `json` fence of schema
   `plan-schedule/v1`. It lists every task of the sequence once, with the `id` of its record. Each
   entry holds `title`, `stage`, `est` in integer hours, `deps` as a list of ids, and
   `"status": "not-started"`. The develop workflows change the status (§2.2). The script refuses
   an entry that breaks one of these rules:
   - `id` matches `^[A-Za-z0-9][A-Za-z0-9._-]*$`. It is not a gantt keyword such as `section`,
     it does not start with `gantt`, `topAxis` or `inclusiveEndDates` followed by `.` or `-`, and
     it does not start with a date. Keywords match in any letter case. Two ids collide when they
     are equal with each `.`, `-` and `_` read as `x`, such as `1.1`, `1-1` and `1x1`.
   - `est` is a whole number, at least 1.
   - `title` and `stage` each keep a visible character once `#` and zero-width characters are
     dropped. Two stages whose section titles come out the same, such as `Ops#` and `Ops`, are
     refused; rename one.
   - The bar label is `<id> <title>`. The label limit of `mermaid-authoring-guidelines` counts
     both (`references/gantt.md` §1.3). A longer label is shortened, with a warning. The id stays
     whole.
2. For every plan, run
   `python3 .agent/skills/mermaid-authoring-guidelines/scripts/plan_gantt.py docs/PLAN.md --write docs/PLAN.md`.
   With 8 or more tasks, the chart lands between `<!-- generated:plan-gantt-start -->` and
   `<!-- generated:plan-gantt-end -->`. Postcondition: the same command with `--check` in place of
   `--write` exits 0.
3. With fewer than 8 tasks, add no chart. The command of step 2 still validates the block, and
   both markers stay, with nothing between them.
4. Exit 1 names the defect, such as a cycle, an unknown dependency, a duplicate id or a
   non-integer estimate. Fix the block and repeat step 2. Each line that starts with
   `plan_gantt: warning:` needs an answer, although the exit code is 0. Over the soft bar budget,
   or with a bar too narrow to read, split the chart (step 6) or attach a render check. A
   shortened label or section title: shorten the title or the stage name. A label that shows no
   title: shorten the id.
5. After any later change to the block, repeat step 2.
6. Over the plan chart budget of `mermaid-authoring-guidelines` (its `references/gantt.md` states
   it), generate one chart per stage group. Add `--stages A,B --stages C` to the `--write` of
   step 2, one option per chart, and name every stage in exactly one group. The script stores the
   groups in the first line of the region, `<!-- plan-gantt-groups: ... -->`, so the commands of
   step 2 keep the split as written. A later `--stages` replaces the groups; one group that names
   every stage returns the plan to one chart.
7. Without `.agent/skills/mermaid-authoring-guidelines/` in the project, the command of step 2
   cannot run. Add no chart at any plan size. Report the absent skill at any plan size, in the
   `figures` field of the planner's return JSON.

**Why.** The script reads the JSON block and never the plan's prose. Headings and field labels
follow the project's language (ARCHITECTURE §7.2, invariant L1).

### 2.2. Plan status
A develop workflow keeps the `status` of each task in the schedule block of `docs/PLAN.md`
(TASK 110 R8). `plan_gantt.py` draws `done` and `in-progress` bars from it.

1. A task turns `in-progress` when it starts and `done` when its review approves it. A task
   entered again after `done`, to be fixed, turns `in-progress`. A failure path leaves the status
   as it is.
2. A status edit changes the value. After each edit, run
   `python3 .agent/skills/mermaid-authoring-guidelines/scripts/plan_gantt.py docs/PLAN.md --write docs/PLAN.md`,
   then the same with `--check docs/PLAN.md` in place of `--write docs/PLAN.md`. A step that leaves
   the value as it was runs neither command.
3. The first edit of a task adds its `status` key. A block without `status` keys stays valid: a
   task without one is `not-started`.
4. The step skips:
   - a PLAN with no schedule anchor: no edit, no command;
   - a task with no entry in the block: no edit, no command. The step never adds an entry;
   - a project where `mermaid-authoring-guidelines` is not installed: the status is edited, and
     both commands are skipped, as §2.1 step 7 skips the chart.
5. `--write` is not on the allow-list of `.claude/settings.json`, so each run asks for approval.

## 3. Detailed Task Description Structure
For **each** task in the plan, you must create a separate file: `docs/tasks/task-{ID}-{SubID}-{slug}.md`.

- `{ID}` is the Task ID of `docs/TASK.md`, zero-padded to three digits.
- `{SubID}` matches `\d+[a-z]?`: digits, then at most one lowercase letter. A sub-task added
  after `05` is `05a`, the next one `05b`; `05` keeps its name.
- The file's first H1 is `# Task {ID}-{SubID}: {Task Name}`, e.g. `# Task 033-05a: Test database`.
  Older files write `# Task {ID}.{SubID}`; both forms are read.
- `skill-archive-task` tells a sub-task from a parent archive by this H1 first and by the
  filename second (TASK 114). A file with the H1 `# Task {ID}: …` is read as a parent archive;
  a file whose H1 names no task ID is classified by its filename.

> [!TIP]
> Use the template at `assets/templates/task_md_template.md`.

### Rationalization Table
| Agent Excuse | Reality / Counter-Argument |
| :--- | :--- |
| "I don't know the implementation details yet" | That is why you are in PLANNING mode: research until you know. |
| "Writing 5 files takes too long" | Fixing a disorganized codebase takes 10x longer. |

## 4. Result Structure Rules
1. **`docs/PLAN.md` file** — general development plan with task sequence and schedule block
   (§2.1).
2. **`docs/tasks/task-{ID}-{SubID}-{Slug}.md` files** — detailed descriptions of each task.
3. **CRITICAL:** Use only RELATIVE paths for file links (e.g., `[Link](docs/tasks/file.md)`), never absolute.

## 5. Resources
- `assets/templates/`: Standard markdown templates.
- `examples/`: Real-world planning examples.

Files in this skill

  • SKILL.md7.1 KB
  • assets/templates/plan_md_template.md2.7 KB
  • assets/templates/task_md_template.md2.6 KB
  • examples/PLAN_EXAMPLE.md1.4 KB
  • examples/TASK_EXAMPLE.md1.5 KB

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…