Claude
Skills
Sign in
Back

pm-project-templates

Included with Lifetime
$97 forever

Tag-keyed template registry for project types (feature-epic, migration, research-track, integration). Mirrors pm-templates one tier up — the registry is consulted by pm-projects create (to scaffold a project body) and by pm-project-review (to lint required sections). Operates on a project (a Linear Project / GitHub Milestone), not an individual issue. Trigger phrases — "project template", "template for an epic", "template for a migration project", "list project templates", "add a project template", "register a project type", "/pm-project-templates".

Code Review

What this skill does


# PM Project Templates

Tag-keyed registry of project-type templates. One template per type, two-layer resolution: `<repo>/.claude/pm/project-templates/` overrides the plugin default if present.

## Registry layout

```
<repo>/.claude/pm/project-templates/
├── _manifest.json
└── <type>.md
```

Plugin defaults ship at `skills/pm-project-templates/templates/`.

## Manifest schema

`_manifest.json`:

```json
{
  "types": {
    "<type-key>": {
      "required_sections": ["..."],
      "optional_sections": ["..."],
      "labels": { "linear": ["..."], "github": ["..."] }
    }
  }
}
```

`required_sections` drive the `pm-project-review` linter; `optional_sections` are recommended but not enforced; `labels` are applied at create time per-tracker.

## Default types shipped

| Type | Required sections |
|---|---|
| `feature-epic` | Goal / Success Metrics / Milestones / Risks / Out of Scope |
| `migration` | Goal / Scope / Rollback Plan / Cutover Steps / Risks |
| `research-track` | Question / Hypotheses / Time Box / Deliverable / Decision Criteria |
| `integration` | Goal / Systems Involved / Contract / Risks / Acceptance |

## Resolution order

1. `<repo>/.claude/pm/project-templates/_manifest.json` — fully replaces plugin defaults if present (in-repo manifest is authoritative).
2. `plugins/project-manager/skills/pm-project-templates/templates/_manifest.json` — plugin default.

Body resolution (per type) follows the same two-layer rule.

## Operations

| Task | How |
|---|---|
| List registered types | Read the resolved manifest's `types` keys |
| Show a type body | Read `<type>.md` (in-repo first, then plugin) |
| Register a new type | Author `<repo>/.claude/pm/project-templates/<type>.md` + add an entry to the in-repo `_manifest.json` |
| Drop a default type | Author the in-repo manifest with the trimmed `types` map |

## Related

- `pm-projects` — uses the template body + required sections to scaffold and validate creates.
- `pm-project-review` — lints an existing project against its type's `required_sections`.
- `pm-templates` — the **issue-tier** equivalent. Distinct registry, identical mechanic.

Related in Code Review