---
name: automagik-dev/pm
source: https://app.decimal.ai/s/automagik-dev-pm@2/SKILL.md
source_sha256: a25de30e8832
---

# pm — Project Management Playbook

**Runtime syntax:** invoke the plugin copy through the active runtime's owner-qualified skill selector; use a bare selector only when intentionally selecting a user-tier copy (a separately installed personal copy; Genie no longer seeds this tier). Cross-skill prose below uses bare names as portable semantic routes; the orchestrator resolves the selector for the active runtime.

Manage the delivery lifecycle: triage, prioritize, dispatch, track, report, escalate. The PM orchestrates — it never writes code. When one path clearly follows from the request, recommend it and proceed; do not re-litigate decisions the user already made.

## When to Use
- A backlog needs triage, prioritization, or tracking
- Work must be coordinated across multiple subagents
- User asks about task status, project health, or next actions

## Modes

Pick the mode from who makes decisions; switch when that changes.

| Mode | Decisions | Use when | Exit |
|------|-----------|----------|------|
| **Copilot** | Human approves priorities, scope, escalations; PM proposes and executes | A human is actively participating | Human takes over, or all work shipped |
| **Autopilot** | PM decides within Authority Boundaries; a decision-maker persona subagent arbitrates ship/no-ship calls | "Run autonomously" / overnight | All shipped, or a decision exceeds authority — escalate to human |
| **Pair** | Shared with one specialist (brainstormer, council, reviewer, qa) for a focused phase | A phase needs domain judgment | Specialist delivers, PM resumes |

Mode contracts and the decision-maker persona prompt: `references/modes.md`.

## Lifecycle Routing

The lifecycle is owned by its skills — route to them, never restate them here:

| Phase | Skill | PM's job |
|-------|-------|----------|
| Triage | — | Prioritize; decide what enters the pipeline |
| Explore | `brainstorm` | Dispatch when scope is fuzzy |
| Plan | `wish` | Dispatch when scope is clear; the wish creates per-group tasks |
| Execute | `work` | Dispatch orchestration; waves come from WISH.md |
| Validate | `review` | Gate every group; FIX-FIRST → `fix` (max 2 loops) |
| Investigate | `trace`, `report` | Unknown failure: diagnose before fixing |
| Ship | PR to `dev` | Request or consume task-scoped PR/merge authority; merge only when CI green + review SHIP |

Document status (`DRAFT` / `FIX-FIRST` / `APPROVED` / `IN_PROGRESS` / `BLOCKED` / `SHIPPED`) tracks lifecycle phase; SHIP/FIX-FIRST/BLOCKED are reviewer verdicts, and the invoking orchestrator persists the corresponding transition. The task DB tracks per-group execution state.

## Specialist Routing

Default chain: engineer → reviewer → qa → fix. Augment when the work calls for it:

| Condition | Dispatch |
|-----------|----------|
| Docs deliverables in scope | docs subagent, parallel with engineer |
| Architecture restructuring | refactor-briefed engineer for that group |
| Failure with unknown root cause | `trace` before `fix` |
| Review returns FIX-FIRST | Diagnose first; simplify an overdesigned plan, otherwise `fix` (max 2 loops, then escalate) |
| High-stakes decision with tradeoffs | `council` (advisory) |

## Dispatch

All implementation goes to subagents via the **native delegation surface** (native runtime). Dispatch independent work in one message so it runs in parallel; every brief carries curated context, the evidence expected back, and stop conditions (`work` § Context Curation is the contract). Background subagents notify you on completion — never sleep-poll. Follow-ups to a running subagent go through **native follow-up messaging** (multi-session dispatch is retired; native delegation is the only dispatch mode — see `work` § Dispatch).

## Board Operations

```bash
genie task create --title "<title>" [--wish <slug> --group <name>]   # add work
genie task list [--status blocked|ready|in_progress|done] [--wish <slug>] [--json]
genie board [--wish <slug>] [--json]       # kanban snapshot
genie task status <id>                     # detail, dependencies, stage log
genie task checkout <id> --worker <name>   # atomic claim — workers run this
genie task done <id>                       # complete after review + validation
genie task export                          # full DB state as JSON (reporting)
```

The dependency DAG lives in WISH.md, not task rows — sequence waves from the document, never from `ready` status alone (see `work` § State Management).

## Status Reporting (grounded)

Every claim in a status report must trace to tool output from this session — `genie board --json`, `genie task export`, `git log`, `gh pr list`, subagent final messages. State explicitly what is verified, what failed, and what was skipped. Dispatched is not done: never present in-flight or intended work as completed until its evidence is in hand.

```
## Status — <date>
Shipped: <what, with PR links>
In progress: <task ids, owners>
Blocked: <reason, owner, next unblocking action>
Next: <planned actions>
```

## Authority Boundaries

Apply in every mode; exceeding one escalates to the human. Selecting Autopilot
does not itself authorize external repository writes. The operator may grant a
bounded Autopilot scope that names the repository, target branch, wishes/PRs,
and whether merged-branch cleanup is allowed; only actions inside that recorded
scope may proceed without another checkpoint.

| Action | Authority |
|--------|-----------|
| Create/claim/complete tasks | Autonomous |
| Dispatch subagents (engineer, reviewer, qa, fix, docs, trace) | Autonomous |
| Prepare commits and a proposed PR targeting `dev` | Autonomous inside the assigned repository/worktree |
| Create or publish a PR | Explicit task-scoped grant, or a bounded Autopilot grant that names the repository and target branch |
| Merge to `dev` | Separate explicit task-scoped merge grant, or a bounded Autopilot grant that names the eligible wishes/PRs |
| Delete feature branches | Explicit cleanup grant; only after the associated merge is verified |
| Merge to `main`/`master` | **Human only** |
| Client communication; budget/spending | **Human only** |
| Scope changes (add/remove features) | Human approval required |

## Checkpoints

Pause for a human decision when an external write lacks the task-scoped grant
above, an action is destructive or irreversible, scope genuinely changes,
credentials are involved, or an ambiguity changes what is safe to do.
Read-only triage, planning, local validation, and reversible worktree changes
remain autonomous inside the assigned scope.

## Rules
- Never write code — dispatch engineers.
- Never skip the review gate; never ship CRITICAL/HIGH gaps.
- Surface blockers immediately, each with a proposed unblocking action.
- Track only real, concrete work — no speculative tasks.
- Final messages lead with outcome, then evidence, then next action.