@unbrained/pm-cli 2026.9.25 → 2026.9.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (161) hide show
  1. package/.agents/skills/README.md +1 -0
  2. package/.agents/skills/pm-developer/SKILL.md +3 -0
  3. package/.agents/skills/pm-test-audit/LICENSE.txt +21 -0
  4. package/.agents/skills/pm-test-audit/SKILL.md +103 -0
  5. package/.agents/skills/pm-test-audit/references/AUDIT.md +54 -0
  6. package/.agents/skills/pm-test-audit/references/CAMPAIGN.md +47 -0
  7. package/.claude-plugin/marketplace.json +2 -2
  8. package/CHANGELOG.md +28 -1
  9. package/dist/cli/commander-usage.js +2 -2
  10. package/dist/cli/error-guidance.js +1 -1
  11. package/dist/cli/main.js +2 -2
  12. package/dist/cli/register-list-query.js +2 -2
  13. package/dist/cli/register-setup.js +1 -1
  14. package/dist/cli/runtime/selection.d.ts +3 -1
  15. package/dist/cli/runtime/selection.js +1 -1
  16. package/dist/cli/schema/registration.js +2 -2
  17. package/dist/cli-bundle/bundle-manifest.json +155 -147
  18. package/dist/cli-bundle/chunks/chunk-3BTJ66CB.js +238 -0
  19. package/dist/cli-bundle/chunks/{chunk-5AP67ZXH.js → chunk-4SLLCDFL.js} +39 -39
  20. package/dist/cli-bundle/chunks/{chunk-GAU55CWI.js → chunk-4UPZLUT2.js} +7 -7
  21. package/dist/cli-bundle/chunks/{chunk-25KTCTBL.js → chunk-6OJVQ7SW.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-445ARBKY.js → chunk-7TAGYNFP.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-GOWZEBTH.js → chunk-AUS6USO4.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-YDIGMRLZ.js → chunk-IEP3VAT5.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-3IB4THWX.js → chunk-JX6WCCHL.js} +6 -6
  26. package/dist/cli-bundle/chunks/chunk-LC6WEA5U.js +2 -0
  27. package/dist/cli-bundle/chunks/{chunk-CZ3VJJEA.js → chunk-LKGQUZ5M.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-P7ZSJOWH.js → chunk-OKVDVERQ.js} +2 -2
  29. package/dist/cli-bundle/chunks/{chunk-COFQCKF4.js → chunk-TSF2LPIH.js} +2 -2
  30. package/dist/cli-bundle/chunks/{chunk-YABJDOOX.js → chunk-V5UGBYHN.js} +3 -3
  31. package/dist/cli-bundle/chunks/{register-list-query-IZ7ZVTDE.js → register-list-query-6PAJ4PBU.js} +4 -4
  32. package/dist/cli-bundle/chunks/{register-mutation-IPAZTFDZ.js → register-mutation-RZCXZXYS.js} +4 -4
  33. package/dist/cli-bundle/chunks/{register-operations-APN33LNI.js → register-operations-GK6VU2H2.js} +2 -2
  34. package/dist/cli-bundle/chunks/register-setup-ASEMNMBF.js +2 -0
  35. package/dist/cli-bundle/focused-chunks/{chunk-KRIHJH5U.js → chunk-6J2YCGSN.js} +5 -5
  36. package/dist/cli-bundle/focused-chunks/{chunk-XKH2FC5D.js → chunk-6UNKK3UH.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-NRHTXBTI.js → chunk-DQ3MB7BO.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-PMPFLA6X.js → chunk-E7LYK7V5.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-GZD4ZYIB.js +20 -0
  40. package/dist/cli-bundle/focused-chunks/chunk-KMPKKSA6.js +2 -0
  41. package/dist/cli-bundle/focused-chunks/{chunk-TLF6N56J.js → chunk-LBDWUHQD.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-UIFVIE5F.js → chunk-MILJCOFJ.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/{chunk-MK5AKKHK.js → chunk-NETVXIH5.js} +2 -2
  44. package/dist/cli-bundle/focused-chunks/{chunk-Q355NPLH.js → chunk-NWRVNHAD.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-IXNNMP2R.js → chunk-NZAG7OKB.js} +12 -12
  46. package/dist/cli-bundle/focused-chunks/{chunk-OY3VHCTX.js → chunk-OJKJFDIG.js} +2 -2
  47. package/dist/cli-bundle/focused-chunks/chunk-OJRX6G22.js +2 -0
  48. package/dist/cli-bundle/focused-chunks/{chunk-NVVB2HJC.js → chunk-PDVL7QYU.js} +16 -16
  49. package/dist/cli-bundle/focused-chunks/{chunk-O7MIBEMK.js → chunk-QO4MTAEA.js} +2 -2
  50. package/dist/cli-bundle/focused-chunks/{chunk-ABA3KRPY.js → chunk-SMADBUPL.js} +2 -2
  51. package/dist/cli-bundle/main.js +21 -21
  52. package/dist/cli-bundle/sdk-authoring.js +1 -1
  53. package/dist/cli-bundle/sdk-contracts.js +1 -1
  54. package/dist/cli-bundle/sdk-core.js +20 -20
  55. package/dist/cli-bundle/sdk-governance.js +1 -1
  56. package/dist/cli-bundle/sdk-graph.js +1 -1
  57. package/dist/cli-bundle/sdk-merge.js +46 -46
  58. package/dist/cli-bundle/sdk-query.js +1 -1
  59. package/dist/cli-bundle/sdk-runtime.js +1 -1
  60. package/dist/cli-bundle/sdk-testing.js +1 -1
  61. package/dist/cli-bundle/sdk.js +8 -8
  62. package/dist/core/search/embedding-batches.d.ts +47 -15
  63. package/dist/core/search/embedding-batches.js +1 -1
  64. package/dist/core/search/eval-thresholds.d.ts +14 -0
  65. package/dist/core/search/eval-thresholds.js +2 -0
  66. package/dist/core/search/eval.d.ts +4 -1
  67. package/dist/core/search/eval.js +1 -1
  68. package/dist/core/search/http-client.d.ts +7 -0
  69. package/dist/core/search/http-client.js +1 -1
  70. package/dist/sdk/agent-capability-contracts.js +1 -1
  71. package/dist/sdk/cli-contracts/command-aliases.js +1 -1
  72. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  73. package/dist/sdk/completion/shared.d.ts +1 -1
  74. package/dist/sdk/completion/shared.js +1 -1
  75. package/dist/sdk/eval.d.ts +19 -17
  76. package/dist/sdk/eval.js +1 -1
  77. package/dist/sdk/extension/static-inventory.d.ts +54 -0
  78. package/dist/sdk/extension/static-inventory.js +2 -0
  79. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  80. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  81. package/dist/sdk/governance/reindex.d.ts +4 -1
  82. package/dist/sdk/governance/reindex.js +2 -2
  83. package/dist/sdk/guide-topics.js +1 -1
  84. package/dist/sdk/index.d.ts +1 -0
  85. package/dist/sdk/index.js +1 -1
  86. package/dist/sdk/public-surface.json +1 -1
  87. package/dist/sdk/query/complete-list.js +1 -1
  88. package/dist/sdk/query.d.ts +3 -0
  89. package/dist/sdk/query.js +1 -1
  90. package/dist/sdk/read-output/provenance.d.ts +20 -0
  91. package/dist/sdk/read-output/provenance.js +2 -0
  92. package/dist/sdk/read-output-contracts.js +1 -1
  93. package/dist/sdk/runtime/schema-preview.d.ts +2 -0
  94. package/dist/sdk/runtime/schema-preview.js +2 -0
  95. package/dist/sdk/runtime/schema.js +1 -1
  96. package/dist/sdk/runtime-input.js +1 -1
  97. package/dist/sdk/runtime-primitives.d.ts +2 -1
  98. package/dist/sdk/runtime-primitives.js +1 -1
  99. package/docs/CLI_GRAMMAR.md +31 -0
  100. package/docs/CODEX_PLUGIN.md +8 -0
  101. package/docs/EXTENSION_LIFECYCLE.md +18 -0
  102. package/docs/README.md +1 -0
  103. package/docs/RELEASING.md +51 -2
  104. package/docs/SEARCH_QUALITY.md +116 -0
  105. package/docs/agent-task-token-baseline.json +4 -4
  106. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  107. package/docs/generated/AGENT_COMMAND_SURFACE.md +5 -1
  108. package/docs/generated/FLAG_LEXICON_BUDGETS.md +4 -0
  109. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +14 -7
  110. package/marketplace.json +2 -2
  111. package/package.json +2 -2
  112. package/packages/pm-beads/package.json +1 -1
  113. package/packages/pm-calendar/package.json +1 -1
  114. package/packages/pm-command-kit/package.json +1 -1
  115. package/packages/pm-digital-twin/package.json +1 -1
  116. package/packages/pm-governance-audit/package.json +1 -1
  117. package/packages/pm-guide-shell/package.json +1 -1
  118. package/packages/pm-kanban/package.json +1 -1
  119. package/packages/pm-lifecycle-hooks/package.json +1 -1
  120. package/packages/pm-linked-test-adapters/package.json +1 -1
  121. package/packages/pm-search-advanced/package.json +1 -1
  122. package/packages/pm-templates/package.json +1 -1
  123. package/packages/pm-todos/package.json +1 -1
  124. package/packages/pm-vcs/package.json +1 -1
  125. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  126. package/plugins/pm-claude/README.md +5 -1
  127. package/plugins/pm-claude/package.json +2 -2
  128. package/plugins/pm-claude/skills/pm-audit/SKILL.md +14 -103
  129. package/plugins/pm-claude/skills/pm-audit/agents/openai.yaml +4 -0
  130. package/plugins/pm-claude/skills/pm-developer/SKILL.md +20 -143
  131. package/plugins/pm-claude/skills/pm-developer/agents/openai.yaml +4 -0
  132. package/plugins/pm-claude/skills/pm-planner/SKILL.md +16 -167
  133. package/plugins/pm-claude/skills/pm-planner/agents/openai.yaml +4 -0
  134. package/plugins/pm-claude/skills/pm-release/SKILL.md +18 -102
  135. package/plugins/pm-claude/skills/pm-release/agents/openai.yaml +4 -0
  136. package/plugins/pm-claude/skills/pm-workflow/SKILL.md +25 -156
  137. package/plugins/pm-claude/skills/pm-workflow/agents/openai.yaml +4 -0
  138. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  139. package/plugins/pm-codex/README.md +10 -2
  140. package/plugins/pm-codex/mcp.json +11 -0
  141. package/plugins/pm-codex/package.json +2 -2
  142. package/plugins/pm-codex/plugin.json +45 -0
  143. package/plugins/pm-codex/skills/pm-audit/SKILL.md +21 -0
  144. package/plugins/pm-codex/skills/pm-audit/agents/openai.yaml +4 -0
  145. package/plugins/pm-codex/skills/pm-auditor/SKILL.md +5 -40
  146. package/plugins/pm-codex/skills/pm-auditor/agents/openai.yaml +3 -5
  147. package/plugins/pm-codex/skills/pm-developer/SKILL.md +26 -0
  148. package/plugins/pm-codex/skills/pm-developer/agents/openai.yaml +4 -0
  149. package/plugins/pm-codex/skills/pm-native/SKILL.md +7 -87
  150. package/plugins/pm-codex/skills/pm-native/agents/openai.yaml +3 -5
  151. package/plugins/pm-codex/skills/pm-planner/SKILL.md +22 -0
  152. package/plugins/pm-codex/skills/pm-planner/agents/openai.yaml +4 -0
  153. package/plugins/pm-codex/skills/pm-release/SKILL.md +17 -38
  154. package/plugins/pm-codex/skills/pm-release/agents/openai.yaml +2 -4
  155. package/plugins/pm-codex/skills/pm-workflow/SKILL.md +39 -0
  156. package/plugins/pm-codex/skills/pm-workflow/agents/openai.yaml +4 -0
  157. package/dist/cli-bundle/chunks/chunk-JDHWZYZU.js +0 -238
  158. package/dist/cli-bundle/chunks/register-setup-HPHIKG5U.js +0 -2
  159. package/dist/cli-bundle/focused-chunks/chunk-HQPTDJLF.js +0 -2
  160. package/dist/cli-bundle/focused-chunks/chunk-V2X37U6J.js +0 -2
  161. package/dist/cli-bundle/focused-chunks/chunk-Y2M4QLAA.js +0 -20
@@ -1,110 +1,21 @@
1
1
  ---
2
2
  name: pm-audit
3
- description: Audit pm-cli repositories with native pm MCP tools — health checks, validation, duplicate detection, aggregation, privacy review, and workflow health. Use when performing broad repository audits, release readiness checks, or agent-workflow health reviews.
3
+ description: Use when asked to inspect pm tracker health, duplicate work, graph quality, privacy, or release readiness. Report verified findings and reuse existing lineage.
4
+ license: MIT
4
5
  ---
5
6
 
6
- # pm Audit
7
+ # pm Review
7
8
 
8
- Use for comprehensive repository audits, consistency reviews, and health diagnostics.
9
+ Read the requested scope and the full live records behind any status claim.
10
+ Use pm_health, pm_validate, pm_search, pm_graph, and pm_contracts as needed.
11
+ Use pm_run for duplicate checks when no narrow tool covers them. Check omission
12
+ receipts and follow cursors before reporting totals.
9
13
 
10
- ## Audit Flow
14
+ Classify each finding by its observable impact. Search all statuses before
15
+ filing it and link it to its source with a meaningful typed relationship.
16
+ Record exact commands and results on the canonical item. Keep credentials,
17
+ private operational data, and raw meeting content out of public records.
11
18
 
12
- 1. **Context snapshot** — `pm_context` with `depth: "standard"`.
13
- 2. **Search for existing audits** — `pm_search` to avoid duplicate tracking.
14
- 3. **Create or claim audit item** — then call `TaskCreate` to show in Claude Code's task panel.
15
- 4. **Health check** — `pm_health` for tracker diagnostics.
16
- 5. **Validation suite** — `pm_validate` with all checks enabled.
17
- 6. **Aggregate** — `pm_run` with `action: "aggregate"` for governance view.
18
- 8. **Calendar** — `pm_run` with `action: "calendar"` for deadline view.
19
- 9. **Convert findings** — create pm items for each actionable finding.
20
- 10. **Evidence** — `pm_comments` with verification summaries.
21
- 11. **Close audit item** then `TaskUpdate(completed)`.
22
-
23
- ## Hybrid TUI Sync
24
-
25
- After creating/claiming the audit tracking item:
26
- ```
27
- TaskCreate:
28
- subject: "[pm-xxxx] Audit: pm tracker health"
29
- description: "Tracking full audit run — pm-xxxx"
30
- activeForm: "Running pm audit"
31
- ```
32
- Save the `taskId`. Call `TaskUpdate(in_progress)`.
33
- When closing: `TaskUpdate(completed)`.
34
-
35
- For each **finding item** created during the audit, also create a matching `TaskCreate` if you plan to work on it this session.
36
-
37
- ## MCP Calls
38
-
39
- ### Full Audit Suite
40
- ```json
41
- { "tool": "pm_context", "args": { "options": { "depth": "standard", "limit": "20" } } }
42
- { "tool": "pm_health", "args": {} }
43
- { "tool": "pm_validate", "args": { "options": { "checkResolution": true, "checkHistoryDrift": true, "checkFiles": true, "scanMode": "tracked-all" } } }
44
- { "tool": "pm_run", "args": { "action": "aggregate", "options": { "groupBy": "status,type" } } }
45
- { "tool": "pm_run", "args": { "action": "calendar", "options": { "view": "week", "format": "markdown", "include": "deadlines,reminders" } } }
46
- { "tool": "pm_run", "args": { "action": "stats" } }
47
- ```
48
-
49
- ### Activity Review
50
- ```json
51
- { "tool": "pm_run", "args": { "action": "activity", "options": { "limit": "50" } } }
52
- ```
53
-
54
- ### Contracts and Schema Check
55
- ```json
56
- { "tool": "pm_contracts", "args": {} }
57
- ```
58
-
59
- ## Finding Classification
60
-
61
- | Severity | Action |
62
- |----------|--------|
63
- | Blocker | Create pm item with priority 0, status open |
64
- | Warning | Create pm item with priority 1 |
65
- | Info | Append to existing audit item comments |
66
- | No issue | Log as evidence in audit comments |
67
-
68
- ## Evidence Format
69
-
70
- ```json
71
- {
72
- "tool": "pm_comments",
73
- "args": {
74
- "id": "pm-xxxx",
75
- "options": {
76
- "add": "Audit evidence: health=ok, validate=ok (2 warnings), dedupe=5 candidates, items=681, tests=1087 passing."
77
- }
78
- }
79
- }
80
- ```
81
-
82
- ## Privacy
83
-
84
- Keep sensitive operational data (telemetry credentials, user PII, internal endpoints) out of public docs and tracked comments. Use `pm notes` for sensitive context instead of `pm comments`.
85
-
86
- ## Progressive Disclosure and Token Discipline
87
-
88
- Load the smallest thing that answers the question. Costs are measured.
89
-
90
- | Need | Call | Cost |
91
- |------|------|------|
92
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
93
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
94
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
95
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
96
-
97
- Guide topics are declared at runtime: `pm guide` prints the current index and
98
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
99
-
100
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
101
-
102
- Bound every read in this order: projection (`outputInclude`), then row limit
103
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
104
- Read the `omission_receipt` before treating a result as complete — a
105
- budget-truncated read is a claim about the part it withheld, and a truncated
106
- list must never be summarized as if it were the whole population.
107
-
108
- Author identity is detected automatically. Never pass `author` and never set
109
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
110
- on every history entry.
19
+ An inspection does not imply permission to rewrite history or fabricate
20
+ relationships. When asked to fix findings, claim only the work being changed
21
+ and follow the pm-developer skill.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "pm Review"
3
+ short_description: "Inspect tracker health and readiness"
4
+ default_prompt: "Review live pm health, quality, and release evidence; report verified findings."
@@ -1,149 +1,26 @@
1
1
  ---
2
2
  name: pm-developer
3
- description: Run the pm-cli developer execution loop — orient, claim, implement, link evidence, verify, and close — with native MCP tools. Use when coding, debugging, refactoring, or shipping changes tracked in pm items.
3
+ description: Use when implementing, debugging, refactoring, or shipping code, tests, or docs tracked by pm. Keep SDK behavior and verification linked to the active item.
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # pm Developer
7
8
 
8
- Use this skill for implementation work that changes code, docs, tests, or release artifacts.
9
-
10
- ## Canonical Execution Loop
11
-
12
- 1. **Orient** — `pm_context` then `pm_search` for relevant existing items.
13
- 2. **Decide** — reuse an existing item when one matches; create only when needed.
14
- 3. **Claim** — `pm_claim` before any substantial edits.
15
- 4. **Sync TUI** — call `TaskCreate` to mirror the pm item in Claude Code's task panel (see Hybrid TUI Sync).
16
- 5. **Implement** — make the changes, link files/docs/tests as you go.
17
- 6. **Verify** — run linked tests plus local quality gates.
18
- 7. **Evidence** — `pm_comments` with what changed and what passed.
19
- 8. **Close** — `pm_close` then `pm_release` then `TaskUpdate(completed)`.
20
-
21
- ## Hybrid TUI Sync
22
-
23
- pm is the **persistent store**. Claude Code's task panel is the **live session view**.
24
-
25
- ### After pm_claim (or pm_create when starting fresh)
26
-
27
- ```
28
- TaskCreate:
29
- subject: "[pm-xxxx] <item title>"
30
- description: "Tracking pm item pm-xxxx. AC: <acceptance_criteria>"
31
- activeForm: "Implementing pm-xxxx"
32
- ```
33
-
34
- Save the returned `taskId`. Then:
35
-
36
- ```
37
- TaskUpdate: { taskId: <saved>, status: "in_progress" }
38
- ```
39
-
40
- ### After pm_close + pm_release
41
-
42
- ```
43
- TaskUpdate: { taskId: <saved>, status: "completed" }
44
- ```
45
-
46
- ## Step-by-Step MCP Calls
47
-
48
- ### 1. Orient
49
-
50
- ```json
51
- { "tool": "pm_context", "args": { "options": { "limit": "10" } } }
52
- { "tool": "pm_search", "args": { "query": "task keywords", "options": { "limit": "10" } } }
53
- ```
54
-
55
- ### 2. Claim
56
-
57
- ```json
58
- { "tool": "pm_claim", "args": { "id": "pm-xxxx" } }
59
- { "tool": "pm_update", "args": { "id": "pm-xxxx", "options": { "status": "in_progress" } } }
60
- ```
61
-
62
- Then immediately: `TaskCreate` → `TaskUpdate(in_progress)` as shown above.
63
-
64
- ### 3. Link Evidence (during implementation)
65
-
66
- ```json
67
- { "tool": "pm_files", "args": { "id": "pm-xxxx", "options": { "add": ["path=src/file.ts,scope=project,note=implementation"] } } }
68
- { "tool": "pm_docs", "args": { "id": "pm-xxxx", "options": { "add": ["path=docs/GUIDE.md,scope=project,note=updated"] } } }
69
- { "tool": "pm_test", "args": { "id": "pm-xxxx", "options": { "add": ["command=node scripts/run-tests.mjs test -- tests/unit/foo.spec.ts,scope=project,timeout_seconds=240"] } } }
70
- ```
71
-
72
- ### 4. Validate
73
-
74
- ```json
75
- { "tool": "pm_validate", "args": { "options": { "checkResolution": true, "checkHistoryDrift": true } } }
76
- ```
77
-
78
- ### 5. Add Evidence Comment
79
-
80
- ```json
81
- { "tool": "pm_comments", "args": { "id": "pm-xxxx", "options": { "add": "Evidence: changed src/foo.ts. All tests pass. pm validate ok." } } }
82
- ```
83
-
84
- ### 6. Close
85
-
86
- ```json
87
- { "tool": "pm_close", "args": { "id": "pm-xxxx", "reason": "Implementation complete. Acceptance criteria met." } }
88
- { "tool": "pm_release", "args": { "id": "pm-xxxx" } }
89
- ```
90
-
91
- Then: `TaskUpdate: { taskId: <saved>, status: "completed" }`
92
-
93
- ## Verification Defaults
94
-
95
- Run these before closing any implementation item:
96
-
97
- - `pnpm build` (or project build command)
98
- - `node scripts/run-tests.mjs test -- <target>` (targeted test)
99
- - `node scripts/run-tests.mjs coverage` (coverage gate)
100
- - `pm_validate` with `checkResolution: true`
101
-
102
- ## Create When Needed
103
-
104
- When no existing item matches:
105
-
106
- ```json
107
- {
108
- "tool": "pm_create",
109
- "args": {
110
- "options": {
111
- "title": "Fix: concise description of the problem",
112
- "description": "Root cause and approach.",
113
- "type": "Task",
114
- "status": "open",
115
- "priority": "1",
116
- "tags": "relevant,tags",
117
- "createMode": "progressive"
118
- }
119
- }
120
- }
121
- ```
122
-
123
- Then call `TaskCreate` + `TaskUpdate(in_progress)` after claiming.
124
-
125
- ## Progressive Disclosure and Token Discipline
126
-
127
- Load the smallest thing that answers the question. Costs are measured.
128
-
129
- | Need | Call | Cost |
130
- |------|------|------|
131
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
132
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
133
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
134
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
135
-
136
- Guide topics are declared at runtime: `pm guide` prints the current index and
137
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
138
-
139
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
140
-
141
- Bound every read in this order: projection (`outputInclude`), then row limit
142
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
143
- Read the `omission_receipt` before treating a result as complete — a
144
- budget-truncated read is a claim about the part it withheld, and a truncated
145
- list must never be summarized as if it were the whole population.
146
-
147
- Author identity is detected automatically. Never pass `author` and never set
148
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
149
- on every history entry.
9
+ Orient with pm-workflow before editing. Claim the canonical item and keep its
10
+ scope aligned with the change.
11
+
12
+ 1. Read the complete source owner and relevant tests before editing. For a
13
+ regression, identify the observable contract and the change that would
14
+ make its test fail.
15
+ 2. Put domain behavior in the public pm SDK. Keep CLI and MCP adapters thin,
16
+ with transport-specific tests only where those boundaries add risk.
17
+ 3. Link changed files, docs, and isolated runnable tests through pm_files,
18
+ pm_docs, and pm_test.
19
+ 4. Run the focused test, build, full coverage, static quality, and installed
20
+ consumer checks required by the affected contract. Keep tracker test roots
21
+ separate from the real repository.
22
+ 5. Record exact results in pm_comments. Close with structured resolution,
23
+ expected, and actual fields only when the criteria are actually met.
24
+
25
+ Prefer pm_contracts for flags and the SDK public surface for integration APIs.
26
+ An unknown review provider or missing check is not approval.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "pm Developer"
3
+ short_description: "Deliver code with linked pm evidence"
4
+ default_prompt: "Use pm to claim, implement, verify, document, and close this repository change."
@@ -1,173 +1,22 @@
1
1
  ---
2
2
  name: pm-planner
3
- description: Plan and organize pm CLI work — triage requests, break epics into tasks, prioritize the backlog, and keep the tracker clean. Use when decomposing features, planning sprints, or organizing incoming requests.
3
+ description: Use when triaging requests, organizing a backlog, decomposing an epic, or making a durable pm plan. Search all statuses and build evidence-backed typed relationships.
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # pm Planner
7
8
 
8
- Use this skill when decomposing features, organizing backlogs, triaging incoming work, or planning multi-item projects.
9
-
10
- ## Planning Loop
11
-
12
- 1. **Survey** — `pm_context` then `pm_list` with no filter to see the full active backlog.
13
- 2. **Deduplicate** — `pm_search` before every create to avoid duplicate items.
14
- 3. **Decompose** — break large items into Epic → Feature → Task hierarchy.
15
- 4. **Prioritize** — use `pm_update` to set priority (`0`=critical … `4`=minimal).
16
- 5. **Link parents** — always set `parent` on child items via `pm_update`.
17
- 6. **Sync TUI** — call `TaskCreate` for any item you claim during this session (see Hybrid TUI Sync).
18
- 7. **Validate** — `pm_validate` after batch creates to check consistency.
19
-
20
- ## Hybrid TUI Sync
21
-
22
- pm is the **persistent store**. Claude Code's task panel is the **live session view**.
23
-
24
- When you claim a planning item or start active decomposition work:
25
- ```
26
- TaskCreate:
27
- subject: "[pm-xxxx] Plan: <epic/feature title>"
28
- description: "Planning pm-xxxx — decomposing into child items"
29
- activeForm: "Planning pm-xxxx"
30
- ```
31
- Save the `taskId`. Call `TaskUpdate(in_progress)` when active.
32
- Call `TaskUpdate(completed)` when the planning item is closed.
33
-
34
- ## MCP Call Patterns
35
-
36
- ### Survey the Backlog
37
- ```json
38
- { "tool": "pm_context", "args": { "options": { "depth": "standard", "limit": "20" } } }
39
- { "tool": "pm_list", "args": { "options": { "limit": "50" } } }
40
- ```
41
-
42
- ### Deduplicate Before Creating
43
- ```json
44
- { "tool": "pm_search", "args": { "query": "feature keywords", "options": { "limit": "10" } } }
45
- ```
46
-
47
- ### Create Epic → Feature → Task Hierarchy
48
- ```json
49
- {
50
- "tool": "pm_create",
51
- "args": {
52
- "options": {
53
- "title": "Epic: Authentication system overhaul",
54
- "type": "Epic",
55
- "status": "open",
56
- "priority": "1",
57
- "description": "High-level initiative description.",
58
- "createMode": "progressive"
59
- }
60
- }
61
- }
62
- ```
63
- Then for each child feature/task, set `parent: "pm-xxxx"` via `pm_update`.
64
-
65
- ### Prioritize the Backlog
66
-
67
- ```json
68
- { "tool": "pm_list", "args": { "options": { "status": "open", "limit": "30" } } }
69
- { "tool": "pm_update", "args": { "id": "pm-xxxx", "options": { "priority": "0" } } }
70
- ```
71
-
72
- ### Link Parent
73
-
74
- ```json
75
- { "tool": "pm_update", "args": { "id": "pm-child", "options": { "parent": "pm-epic" } } }
76
- ```
77
-
78
- ### Run Dedupe Audit After Batch Work
79
-
80
- ```json
81
- ```
82
-
83
- ### Validate After Batch Creates
84
-
85
- ```json
86
- { "tool": "pm_validate", "args": { "options": { "checkResolution": true } } }
87
- ```
88
-
89
- ## Item Type Guide
90
-
91
- | Type | When to use |
92
- |------|------------|
93
- | `Epic` | Large initiative spanning multiple features (weeks/months) |
94
- | `Feature` | Distinct capability under an epic (days) |
95
- | `Task` | Atomic unit of implementation work (hours) |
96
- | `Bug` | Defect with reproduce steps |
97
- | `Story` | User-facing narrative unit |
98
-
99
- ## Priority Reference
100
-
101
- - `0` = critical — blocking release or other work
102
- - `1` = high — important, should be done soon
103
- - `2` = normal — standard priority (default)
104
- - `3` = low — nice to have
105
- - `4` = minimal — defer unless time allows
106
-
107
- ## Acceptance Criteria Best Practice
108
-
109
- Write AC as numbered, testable assertions:
110
- 1. Given [precondition], when [action], then [result].
111
- 2. All existing tests pass.
112
- 3. Coverage gate maintained.
113
-
114
- Set via `pm_create` with `acceptanceCriteria` field or `pm_update` with `options.acceptanceCriteria`.
115
-
116
- ## Built-in Plan workflow (`pm_plan` / `pm plan`)
117
-
118
- For durable Codex-style ExecPlans, Claude-style Plan Mode, and Cursor-style editable checklists, pm exposes a first-class `Plan` item type plus a `pm plan` command family. Use [Command Reference: Plan Workflow](../../../../docs/COMMANDS.md#plan-workflow) as the canonical lifecycle recipe; this skill keeps only Claude-specific routing notes.
119
-
120
- ### When to use `pm plan` vs. `pm_create` + tasks
121
-
122
- - `pm plan` — when you need a **living, resumable plan** with ordered steps, evidence, decisions, discoveries, validation, and the option to later materialize selected steps as real Tasks. Best for plan-then-execute workflows.
123
- - `pm_create` (Epic/Feature/Task) — when the work is already decomposed and you just need persistent backlog items.
124
-
125
- ### Claude MCP routing
126
-
127
- Call the same lifecycle through the `pm_plan` MCP tool. Use `harness: "claude-code"` on creation, `subcommand: "show"` with `depth: "brief"` for low-token reads, and `subcommand: "resume"` after compaction or handoff.
128
-
129
- ### Harness mapping cheatsheet
130
-
131
- | Harness signal | pm_plan equivalent |
132
- |----------------|--------------------|
133
- | Codex `update_plan` step status | `subcommand=update-step` with `stepStatus` |
134
- | Claude `TaskCreate` | `subcommand=add-step` |
135
- | Claude `TaskUpdate(in_progress)` | `subcommand=update-step` with `stepStatus=in_progress` |
136
- | Cursor edit a plan step | `subcommand=update-step` |
137
- | Resume after compaction | `subcommand=resume` with `resumeContext` then `subcommand=show --depth deep` |
138
- | Approve before edits | `subcommand=approve` |
139
- | Convert checklist into real items | `subcommand=materialize` |
140
-
141
- ## Safety
142
-
143
- - Never pass `path` during real repository tracking.
144
- - Always `pm_search` before `pm_create`/`pm plan create` — avoid duplicates.
145
- - Run `pm_validate` after batch changes.
146
- - Set exactly one step `in_progress` per plan; pass `allowMultipleActive: true` only for explicit parallel branches.
147
- - Use `pm_plan` `subcommand=resume` after long-running sessions so the next agent can pick up with a deterministic context.
148
-
149
- ## Progressive Disclosure and Token Discipline
150
-
151
- Load the smallest thing that answers the question. Costs are measured.
152
-
153
- | Need | Call | Cost |
154
- |------|------|------|
155
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
156
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
157
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
158
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
159
-
160
- Guide topics are declared at runtime: `pm guide` prints the current index and
161
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
162
-
163
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
164
-
165
- Bound every read in this order: projection (`outputInclude`), then row limit
166
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
167
- Read the `omission_receipt` before treating a result as complete — a
168
- budget-truncated read is a claim about the part it withheld, and a truncated
169
- list must never be summarized as if it were the whole population.
170
-
171
- Author identity is detected automatically. Never pass `author` and never set
172
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
173
- on every history entry.
9
+ 1. Read pm_context and the relevant parent or outcome milestone.
10
+ 2. Search all statuses and inspect nearest matches before creating anything.
11
+ 3. Use a Plan when ordered steps, decisions, discoveries, and handoff must
12
+ remain resumable. Use Epic, Feature, Task, Issue, and Decision items for
13
+ durable backlog work with different ownership.
14
+ 4. Give new work a parent, testable acceptance criteria, expected result, and
15
+ a create-time duplicate-check explanation.
16
+ 5. Add typed edges only when evidence supports their meaning. Use dependency
17
+ edges for ordering and verification edges for proof; do not invent graph
18
+ depth or fill the graph with related edges.
19
+ 6. Validate the resulting tracker and summarize the next actionable items.
20
+
21
+ Use pm_plan for a living plan and pm_contracts to discover exact options.
22
+ Keep one plan step in progress unless parallel work is explicitly intended.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "pm Planner"
3
+ short_description: "Plan and connect project work"
4
+ default_prompt: "Use pm to deduplicate this request, plan its work, and link it to the project outcome."
@@ -1,108 +1,24 @@
1
1
  ---
2
2
  name: pm-release
3
- description: Run pm-cli release-readiness workflows — validation, coverage gates, changelog, GitHub checks — using native MCP tools with linked evidence. Use when preparing releases, publishing, or verifying post-release state.
3
+ description: Use when preparing a pm release, reviewing its gates, publishing, or verifying the released artifact. Keep source, reviewed head, main, tag, registry, and telemetry evidence distinct.
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # pm Release
7
8
 
8
- Use for release preparation, publication, and post-release verification.
9
-
10
- ## Release Loop
11
-
12
- 1. **Find or create** the release pm item (after duplicate check with `pm_search`).
13
- 2. **Claim** it — then call `TaskCreate` to show the release in Claude Code's task panel.
14
- 3. **Run local gates** before tagging:
15
- - `pnpm build` — clean build
16
- - `node scripts/run-tests.mjs coverage` — full coverage gate
17
- - `pm_validate` with all checks
18
- - `pm_health` for tracker status
19
- 4. **Tag and push** — let CI run.
20
- 5. **Verify GitHub checks** — `gh run list --limit 5` after push.
21
- 6. **Record evidence** with `pm_comments`.
22
- 7. **Close and release** the pm item, then `TaskUpdate(completed)`.
23
-
24
- ## Hybrid TUI Sync
25
-
26
- ### After claiming the release item
27
- ```
28
- TaskCreate:
29
- subject: "[pm-xxxx] Release: <version>"
30
- description: "Release gate tracking for pm-xxxx"
31
- activeForm: "Running release gates"
32
- ```
33
- Save the `taskId`. Then `TaskUpdate(in_progress)`.
34
-
35
- ### After pm_close + pm_release
36
- ```
37
- TaskUpdate: { taskId: <saved>, status: "completed" }
38
- ```
39
-
40
- ## MCP Calls
41
-
42
- ### Pre-Release Validation
43
- ```json
44
- { "tool": "pm_validate", "args": { "options": { "checkResolution": true, "checkHistoryDrift": true, "checkFiles": true } } }
45
- { "tool": "pm_health", "args": {} }
46
- { "tool": "pm_context", "args": { "options": { "depth": "standard" } } }
47
- ```
48
-
49
- ### Link Release Artifacts
50
- ```json
51
- { "tool": "pm_docs", "args": { "id": "pm-xxxx", "options": { "add": ["path=CHANGELOG.md,scope=project,note=release-notes"] } } }
52
- { "tool": "pm_files", "args": { "id": "pm-xxxx", "options": { "add": ["path=package.json,scope=project,note=version"] } } }
53
- ```
54
-
55
- ### Record Evidence
56
- ```json
57
- {
58
- "tool": "pm_comments",
59
- "args": {
60
- "id": "pm-xxxx",
61
- "options": {
62
- "add": "Release evidence: build ok. Tests pass. 100% coverage. pm validate ok. GitHub CI green. npm publish ok."
63
- }
64
- }
65
- }
66
- ```
67
-
68
- ## Gate Script Reference
69
-
70
- ```bash
71
- pnpm build # TypeScript build
72
- node scripts/run-tests.mjs coverage # Full test + coverage
73
- node scripts/release/run-gates.mjs # All release gates
74
- gh run list --limit 5 # GitHub CI status
75
- gh run view <run-id> # Detailed run status
76
- ```
77
-
78
- ## Safety
79
-
80
- - Never set `path` for real repository tracking — only for sandbox tests.
81
- - Run coverage gate before any `npm publish` or version tag.
82
- - Confirm GitHub CI green before closing the release item.
83
-
84
- ## Progressive Disclosure and Token Discipline
85
-
86
- Load the smallest thing that answers the question. Costs are measured.
87
-
88
- | Need | Call | Cost |
89
- |------|------|------|
90
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
91
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
92
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
93
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
94
-
95
- Guide topics are declared at runtime: `pm guide` prints the current index and
96
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
97
-
98
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
99
-
100
- Bound every read in this order: projection (`outputInclude`), then row limit
101
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
102
- Read the `omission_receipt` before treating a result as complete — a
103
- budget-truncated read is a claim about the part it withheld, and a truncated
104
- list must never be summarized as if it were the whole population.
105
-
106
- Author identity is detected automatically. Never pass `author` and never set
107
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
108
- on every history entry.
9
+ Inspect the release item and current release position before mutation. Search
10
+ for an existing release or incident lineage and reuse it.
11
+
12
+ 1. Link the changed files, changelog, compatibility evidence, and release
13
+ tests to the item that owns them.
14
+ 2. Run the build, full coverage, static quality, security, docs, package,
15
+ version, and hosted analysis gates required by the repository.
16
+ 3. Verify the exact reviewed PR head and resolve actionable feedback before
17
+ merging. A silent or quota-limited provider is unavailable evidence.
18
+ 4. After publishing, verify the main commit, tag, GitHub Release, npm
19
+ package, installed npm and Bun consumers, Sentry, and telemetry separately.
20
+ 5. Record immutable close evidence and release the claim.
21
+
22
+ Use the repository release pipeline and pm_contracts rather than a remembered
23
+ flag spelling. Never assume a successful API request proves a scheduled
24
+ release or physical telemetry delivery.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "pm Release"
3
+ short_description: "Verify release gates and artifacts"
4
+ default_prompt: "Use pm to prepare, gate, and verify this release with distinct source and published evidence."