Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Full PM playbook — triage backlog, prioritize, assign, track, report, escalate. Copilot, autopilot, or pair modes.
.claude/skills/automagik-dev-pm/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 97% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 196% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 135% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 295% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 212% | 0% |
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.
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.
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.
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) |
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).
bashgenie 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).
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>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 |
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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 4,922 | 17,809 | +262% | 1 | 1 | 0% | 758 | 3,062 | +304% | 0 | 0 | — |
case-02 | pass→pass | 10,265 | 12,237 | +19% | 1 | 1 | 0% | 1,272 | 2,873 | +126% | 0 | 0 | — |
case-03 | fail→fail | 13,776 | 6,491 | -53% | 1 | 1 | 0% | 2,121 | 1,948 | -8% | 0 | 0 | — |
case-04 | fail→pass | 7,195 | 5,600 | -22% | 1 | 1 | 0% | 1,238 | 2,436 | +97% | 0 | 0 | — |
case-05 | fail→pass | 5,462 | 4,280 | -22% | 1 | 1 | 0% | 734 | 2,171 | +196% | 0 | 0 | — |
case-11 | fail→pass | 5,850 | 2,351 | -60% | 1 | 1 | 0% | 822 | 1,929 | +135% | 0 | 0 | — |
case-06 | fail→pass | 5,157 | 12,638 | +145% | 1 | 1 | 0% | 883 | 3,492 | +295% | 0 | 0 | — |
case-07 | pass→pass | 5,755 | 2,542 | -56% | 1 | 1 | 0% | 862 | 1,939 | +125% | 0 | 0 | — |
case-08 | fail→pass | 5,648 | 4,699 | -17% | 1 | 1 | 0% | 747 | 2,334 | +212% | 0 | 0 | — |
case-09 | fail→pass | 6,827 | 3,259 | -52% | 1 | 1 | 0% | 954 | 2,058 | +116% | 0 | 0 | — |
case-10 | fail→pass | 9,010 | 2,456 | -73% | 1 | 1 | 0% | 1,376 | 1,946 | +41% | 0 | 0 | — |
case-12 | fail→pass | 10,974 | 3,753 | -66% | 1 | 1 | 0% | 1,575 | 2,111 | +34% | 0 | 0 | — |
case-13 | fail→fail | 7,208 | 1,756 | -76% | 1 | 1 | 0% | 1,162 | 1,835 | +58% | 0 | 0 | — |
case-14 | fail→pass | 12,822 | 2,034 | -84% | 1 | 1 | 0% | 2,040 | 1,899 | -7% | 0 | 0 | — |
case-15 | fail→fail | 9,880 | 2,269 | -77% | 1 | 1 | 0% | 1,555 | 1,845 | +19% | 0 | 0 | — |
case-16 | pass→pass | 9,383 | 2,333 | -75% | 1 | 1 | 0% | 1,341 | 1,899 | +42% | 0 | 0 | — |
case-17 | pass→pass | 8,149 | 3,330 | -59% | 1 | 1 | 0% | 1,159 | 2,027 | +75% | 0 | 0 | — |
case-18 | pass→pass | 6,803 | 2,314 | -66% | 1 | 1 | 0% | 1,076 | 1,918 | +78% | 0 | 0 | — |
case-19 | fail→pass | 12,695 | 4,662 | -63% | 1 | 1 | 0% | 1,900 | 2,219 | +17% | 0 | 0 | — |
case-20 | pass→pass | 9,122 | 3,443 | -62% | 1 | 1 | 0% | 1,343 | 2,044 | +52% | 0 | 0 | — |
case-21 | pass→pass | 8,177 | 2,704 | -67% | 1 | 1 | 0% | 1,221 | 2,004 | +64% | 0 | 0 | — |
case-22 | pass→pass | 12,310 | 7,989 | -35% | 1 | 1 | 0% | 2,088 | 2,911 | +39% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 20 counted toward the lift figure. The other 2 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 20 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.