@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,170 +1,39 @@
1
1
  ---
2
2
  name: pm-workflow
3
- description: Use pm CLI natively in Claude Code through MCP tools for planning, tracking, mutation, validation, and reporting. Use this skill whenever work should be tracked through pm — before implementing, during implementation, and at close.
3
+ description: Use when starting, resuming, or handing off work in a repository managed by pm. Orient from live context, reuse existing items, and leave evidence for the next agent.
4
+ license: MIT
4
5
  ---
5
6
 
6
7
  # pm Workflow
7
8
 
8
- Use this skill for all pm-tracked work. Prefer native MCP tools over shell `pm` commands.
9
+ Project management is context management. Read the live tracker before describing
10
+ work as open, blocked, or done. Use the bundled pm MCP tools when available;
11
+ use the pm CLI with the same contracts when they are not.
9
12
 
10
- ## Tool Preference
13
+ ## Orient
11
14
 
12
- **Always use native MCP tools before falling back to Bash `pm` commands:**
15
+ 1. Read pm_context with a bounded limit, then pm_list for open and in-progress work.
16
+ 2. Search all statuses before creating an item. Inspect the candidate's full
17
+ metadata, comments, notes, learnings, dependencies, and history.
18
+ 3. Follow omission receipts and cursors before making a completeness claim.
19
+ 4. Cross-check release, CI, package, or infrastructure claims against the live
20
+ system that owns them.
13
21
 
14
- | Purpose | Tool |
15
- |---------|------|
16
- | Orient / read state | `pm_context`, `pm_search`, `pm_list`, `pm_get` |
17
- | Create / update | `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close` |
18
- | Evidence | `pm_comments`, `pm_notes`, `pm_learnings`, `pm_files`, `pm_docs`, `pm_test` |
19
- | Verify | `pm_validate`, `pm_health`, `pm_contracts` |
20
- | Everything else | `pm_run` with an explicit `action` |
22
+ ## Work and hand off
21
23
 
22
- ## Required Workflow Loop
24
+ Claim only an item being actively edited. Link files, docs, tests, and typed
25
+ relationships that express a real dependency or outcome. Record concise
26
+ evidence, then close with resolution, expected, and actual results when the
27
+ acceptance criteria are met. Release the claim when stopping.
23
28
 
24
- 1. **Orient** — run `pm_context`, `pm_search`, and `pm_list` before creating new work.
25
- 2. **Reuse** — claim an existing item when one matches instead of creating a duplicate.
26
- 3. **Claim** — call `pm_claim` before substantial edits.
27
- 4. **Sync TUI** — after claiming, call `TaskCreate` to mirror the item in Claude Code's task panel (see Hybrid TUI Sync below).
28
- 5. **Link evidence** — call `pm_files`, `pm_docs`, `pm_test` as work progresses.
29
- 6. **Add comments** — `pm_comments` for progress notes and verification results.
30
- 7. **Verify** — run `pm_validate` and project tests before closing.
31
- 8. **Close** — `pm_close` with reason, then `pm_release`, then `TaskUpdate(completed)`.
29
+ For handoff, report the item IDs, exact current status, last verified result,
30
+ remaining work, and the next read command. Do not copy the entire tracker.
32
31
 
33
- ## Hybrid TUI Sync
32
+ ## Host adapters
34
33
 
35
- pm is the **persistent store** (cross-session). Claude Code's task panel is the **live session view**.
34
+ In Claude Code, mirror a claimed item in the task panel when TaskCreate and
35
+ TaskUpdate are available. Keep pm as the durable source of truth. In Codex,
36
+ use the native MCP tools and the same claim, evidence, close, and release loop.
36
37
 
37
- ### When claiming or creating an item
38
-
39
- Call `TaskCreate` immediately after `pm_claim` (or after `pm_create` if starting fresh):
40
-
41
- ```
42
- TaskCreate:
43
- subject: "[pm-xxxx] <item title>"
44
- description: "Tracking pm item pm-xxxx. AC: <acceptance_criteria if set>"
45
- activeForm: "Implementing pm-xxxx"
46
- ```
47
-
48
- Save the returned `taskId` — you'll need it for `TaskUpdate` calls later in this session.
49
-
50
- ### When setting in_progress
51
-
52
- Call `TaskUpdate` with `status: "in_progress"` using the `taskId` from above.
53
-
54
- ### When closing
55
-
56
- Call `pm_close` then `pm_release`, then immediately call:
57
- ```
58
- TaskUpdate:
59
- taskId: <saved taskId>
60
- status: "completed"
61
- ```
62
-
63
- ### Blocked items
64
-
65
- If a pm item becomes blocked, call `TaskUpdate` with `status: "in_progress"` and add "(BLOCKED)" to the subject so it's visible in the panel.
66
-
67
- ## Tool Call Shape
68
-
69
- Most tools accept `cwd`, `author`, and `options`:
70
-
71
- ```json
72
- {
73
- "cwd": "/path/to/repo",
74
- "options": { "limit": "10" }
75
- }
76
- ```
77
-
78
- `pm_run` requires an `action` field:
79
-
80
- ```json
81
- {
82
- "action": "calendar",
83
- "options": { "view": "week", "format": "markdown" }
84
- }
85
- ```
86
-
87
- ## Common Patterns
88
-
89
- **Get active work snapshot:**
90
- ```json
91
- { "tool": "pm_context", "args": { "options": { "limit": "10" } } }
92
- ```
93
-
94
- **Search for existing work:**
95
- ```json
96
- { "tool": "pm_search", "args": { "query": "your keywords", "options": { "limit": "10" } } }
97
- ```
98
-
99
- **Create a new item:**
100
- ```json
101
- {
102
- "tool": "pm_create",
103
- "args": {
104
- "options": {
105
- "title": "Item title",
106
- "description": "What this item tracks.",
107
- "type": "Task",
108
- "status": "open",
109
- "priority": "1",
110
- "createMode": "progressive"
111
- }
112
- }
113
- }
114
- ```
115
-
116
- **Link changed files:**
117
- ```json
118
- {
119
- "tool": "pm_files",
120
- "args": {
121
- "id": "pm-xxxx",
122
- "options": { "add": ["path=src/file.ts,scope=project,note=implementation"] }
123
- }
124
- }
125
- ```
126
-
127
- **Close with evidence:**
128
- ```json
129
- {
130
- "tool": "pm_close",
131
- "args": {
132
- "id": "pm-xxxx",
133
- "reason": "All acceptance criteria met. Tests pass."
134
- }
135
- }
136
- ```
137
-
138
- ## Priority Reference
139
-
140
- - `0` = critical, `1` = high, `2` = normal, `3` = low, `4` = minimal
141
-
142
- ## Safety
143
-
144
- Do not pass `path` during real repository tracking. Only pass `path` for sandbox/test runs.
145
-
146
- ## Progressive Disclosure and Token Discipline
147
-
148
- Load the smallest thing that answers the question. Costs are measured.
149
-
150
- | Need | Call | Cost |
151
- |------|------|------|
152
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
153
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
154
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
155
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
156
-
157
- Guide topics are declared at runtime: `pm guide` prints the current index and
158
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
159
-
160
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
161
-
162
- Bound every read in this order: projection (`outputInclude`), then row limit
163
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
164
- Read the `omission_receipt` before treating a result as complete — a
165
- budget-truncated read is a claim about the part it withheld, and a truncated
166
- list must never be summarized as if it were the whole population.
167
-
168
- Author identity is detected automatically. Never pass `author` and never set
169
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
170
- on every history entry.
38
+ Use pm_contracts for exact active flags and pm_run for actions without a narrow
39
+ tool. Never set a static author; let the host identity be detected.
@@ -0,0 +1,4 @@
1
+ interface:
2
+ display_name: "pm Workflow"
3
+ short_description: "Orient and hand off tracked project work"
4
+ default_prompt: "Use pm to read live context, select existing work, and leave a concise evidence-backed handoff."
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-codex",
3
- "version": "2026.9.25",
3
+ "version": "2026.9.27",
4
4
  "description": "Native Codex integration for pm-cli with bundled MCP tools, skills, commands, and agent workflows.",
5
5
  "author": {
6
6
  "name": "unbrained",
@@ -3,10 +3,18 @@
3
3
  This plugin packages pm-cli for Codex with:
4
4
 
5
5
  - a native stdio MCP server (`pm-mcp`) backed by pm command modules, not shell `pm` invocations
6
- - skills for developer, user, extension, SDK, release, and audit workflows
6
+ - five portable skills for orientation, implementation, planning, review, and release
7
7
  - command prompts for common planning and verification loops
8
8
  - repo marketplace metadata for one-step local installation in Codex
9
9
 
10
+ The root `plugin.json` and typed `mcp.json` are the portable package entrypoints.
11
+ The `.codex-plugin/plugin.json` and `.mcp.json` files support existing hosts.
12
+ Both MCP configurations start the same pinned launcher. The five shared skills are generated with the Claude package from
13
+ `templates/agent-skills/`. The older `pm-native` and `pm-auditor` entrypoints
14
+ are generated compatibility skills that route to `pm-workflow`, `pm-planner`,
15
+ and `pm-audit`. `node scripts/gen-agent-plugin-skills.mjs --check` guards all
16
+ published copies against drift.
17
+
10
18
  ## Install
11
19
 
12
20
  From this repository:
@@ -24,7 +32,7 @@ The launcher uses the local repo build when present. In a copied plugin cache it
24
32
  Prefer the narrow tools when they match the task: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_copy`, `pm_focus`, `pm_update`, `pm_append`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_notes`, `pm_learnings`, `pm_deps`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_schema`, `pm_config`, and `pm_plan`.
25
33
 
26
34
 
27
- `pm_plan` exposes Codex-style ExecPlans as a first-class `Plan` item type with ordered steps, evidence, decisions, discoveries, validation, and materialization. See the `pm-native` skill for the full Plan workflow recipe.
35
+ `pm_plan` exposes Codex-style ExecPlans as a first-class `Plan` item type with ordered steps, evidence, decisions, discoveries, validation, and materialization. See the `pm-planner` skill for the planning workflow.
28
36
  For `init` automation, pass `options.agentGuidance` (`ask|add|skip|status`) when you need deterministic AGENTS/CLAUDE guidance behavior in non-interactive runs.
29
37
 
30
38
  ## Safety
@@ -0,0 +1,11 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json",
3
+ "mcpServers": {
4
+ "pm-mcp": {
5
+ "type": "stdio",
6
+ "command": "node",
7
+ "args": ["./scripts/pm-mcp-server.mjs"],
8
+ "cwd": "./"
9
+ }
10
+ }
11
+ }
@@ -2,8 +2,8 @@
2
2
  "name": "pm-codex-runtime",
3
3
  "private": true,
4
4
  "type": "module",
5
- "version": "2026.9.25",
5
+ "version": "2026.9.27",
6
6
  "dependencies": {
7
- "@unbrained/pm-cli": "2026.9.25"
7
+ "@unbrained/pm-cli": "2026.9.27"
8
8
  }
9
9
  }
@@ -0,0 +1,45 @@
1
+ {
2
+ "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
3
+ "name": "pm-codex",
4
+ "version": "2026.9.27",
5
+ "description": "Repository-native project context workflows and a version-pinned pm MCP server for Codex.",
6
+ "author": {
7
+ "name": "unbrained",
8
+ "url": "https://github.com/unbraind/pm-cli"
9
+ },
10
+ "homepage": "https://github.com/unbraind/pm-cli/tree/main/plugins/pm-codex",
11
+ "repository": "https://github.com/unbraind/pm-cli",
12
+ "license": "MIT",
13
+ "keywords": [
14
+ "pm-cli",
15
+ "codex",
16
+ "mcp",
17
+ "project-management",
18
+ "agents"
19
+ ],
20
+ "extensions": {
21
+ "com.openai": {
22
+ "interface": {
23
+ "displayName": "pm CLI",
24
+ "shortDescription": "Track project context with pm",
25
+ "longDescription": "Orient, plan, implement, verify, and hand off work with repository-native pm records and a bundled MCP server.",
26
+ "developerName": "unbrained",
27
+ "category": "Coding",
28
+ "capabilities": [
29
+ "Interactive",
30
+ "Read",
31
+ "Write"
32
+ ],
33
+ "websiteURL": "https://github.com/unbraind/pm-cli",
34
+ "privacyPolicyURL": "https://github.com/unbraind/pm-cli/blob/main/SECURITY.md",
35
+ "termsOfServiceURL": "https://github.com/unbraind/pm-cli/blob/main/LICENSE",
36
+ "defaultPrompt": [
37
+ "Use pm to orient, track, verify, and hand off this repository task."
38
+ ],
39
+ "composerIcon": "./assets/pm-cli-small.svg",
40
+ "logo": "./assets/pm-cli-small.svg",
41
+ "brandColor": "#2563EB"
42
+ }
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: pm-audit
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
5
+ ---
6
+
7
+ # pm Review
8
+
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.
13
+
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.
18
+
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,46 +1,11 @@
1
1
  ---
2
2
  name: pm-auditor
3
- description: Audit pm-cli repositories with native pm MCP tools, preserving duplicate checks, privacy boundaries, linked evidence, and verification records.
3
+ description: Use only when an existing Codex workflow explicitly invokes pm-auditor. This compatibility skill routes to the canonical pm-audit review skill.
4
4
  license: MIT
5
5
  ---
6
6
 
7
- # pm Auditor
7
+ # pm Auditor Compatibility
8
8
 
9
- Use for broad repository audits, release readiness checks, privacy reviews, and agent-workflow health checks.
10
-
11
- ## Audit Flow
12
-
13
- 1. Use `pm_context` with standard or deep options.
14
- 2. Use `pm_search` for likely existing audit or release items.
15
- 4. Convert each actionable finding into a pm item or append evidence to an existing item.
16
- 5. Keep sensitive operational data out of public docs and tracked comments.
17
-
18
- ## Evidence
19
-
20
- Record exact verification commands and summarized results through `pm_comments`, and link touched files through `pm_files`.
21
-
22
- ## Progressive Disclosure and Token Discipline
23
-
24
- Load the smallest thing that answers the question. Costs are measured.
25
-
26
- | Need | Call | Cost |
27
- |------|------|------|
28
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
29
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
30
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
31
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
32
-
33
- Guide topics are declared at runtime: `pm guide` prints the current index and
34
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
35
-
36
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
37
-
38
- Bound every read in this order: projection (`outputInclude`), then row limit
39
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
40
- Read the `omission_receipt` before treating a result as complete — a
41
- budget-truncated read is a claim about the part it withheld, and a truncated
42
- list must never be summarized as if it were the whole population.
43
-
44
- Author identity is detected automatically. Never pass `author` and never set
45
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
46
- on every history entry.
9
+ Use pm-audit for live tracker health, duplicate, graph, privacy, and release
10
+ readiness reviews. Read full records and omission receipts before making a
11
+ status claim. Reuse existing lineage for each verified finding.
@@ -1,6 +1,4 @@
1
1
  interface:
2
- display_name: "pm Auditor"
3
- short_description: "Audit pm health, contracts, privacy, and readiness"
4
- icon_small: "./assets/pm-cli-small.svg"
5
- icon_large: "./assets/pm-cli-small.svg"
6
- default_prompt: "Audit this pm repository with native pm tools, dedupe findings, link evidence, and avoid leaking private data."
2
+ display_name: "pm Auditor Compatibility"
3
+ short_description: "Route older reviews to the current pm review skill"
4
+ default_prompt: "Review this tracker using the canonical pm-audit guidance."
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: pm-developer
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
5
+ ---
6
+
7
+ # pm Developer
8
+
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,94 +1,14 @@
1
1
  ---
2
2
  name: pm-native
3
- description: Use pm-cli natively in Codex through bundled MCP tools for planning, tracking, mutation, validation, and reporting without invoking the pm shell command.
3
+ description: Use only when an existing Codex workflow explicitly invokes pm-native. This compatibility skill routes to the canonical pm-workflow and pm-planner skills.
4
4
  license: MIT
5
5
  ---
6
6
 
7
- # pm Native Workflow
7
+ # pm Native Compatibility
8
8
 
9
- Use this skill whenever a Codex task should be tracked through pm.
9
+ Use pm-workflow for orientation, claim, evidence, and handoff. Use pm-planner
10
+ for durable Plan steps. The native pm MCP server exposes the same public SDK
11
+ contracts in both workflows.
10
12
 
11
- ## Tool Preference
12
-
13
- Use MCP tools before shell commands:
14
-
15
- - Orient: `pm_context`, `pm_search`, `pm_list`, `pm_get`
16
- - Mutate: `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`
17
- - Evidence: `pm_comments`, `pm_notes`, `pm_learnings`, `pm_files`, `pm_docs`, `pm_test`
18
- - Verify: `pm_validate`, `pm_health`, `pm_contracts`
19
- - Everything else: `pm_run` with an explicit `action`
20
-
21
- Do not pass `path` during real repository work. For tests, pass a sandbox `cwd` or `path`.
22
-
23
- ## Required Loop
24
-
25
- 1. Run `pm_context`, `pm_search`, and `pm_list` before creating work.
26
- 2. Reuse an existing item when one matches.
27
- 3. Claim the item with `pm_claim`.
28
- 4. Link changed files/docs/tests as work proceeds.
29
- 5. Add concise evidence with `pm_comments`.
30
- 6. Run linked and project verification.
31
- 7. Close with `pm_close` and release with `pm_release`.
32
-
33
- ## Native Argument Shape
34
-
35
- Most tools accept:
36
-
37
- ```json
38
- {
39
- "cwd": "/repo/root",
40
- "options": {
41
- "limit": "10"
42
- }
43
- }
44
- ```
45
-
46
- `pm_run` accepts an `action` plus `options`:
47
-
48
- ```json
49
- {
50
- "action": "calendar",
51
- "options": {
52
- "view": "week",
53
- "format": "markdown"
54
- }
55
- }
56
- ```
57
-
58
- ## Plan workflow (`pm_plan`)
59
-
60
- Codex-style living ExecPlans are first-class via the `Plan` item type and the `pm_plan` MCP tool. Use [Command Reference: Plan Workflow](../../../../docs/COMMANDS.md#plan-workflow) as the canonical lifecycle recipe; this skill keeps only Codex-specific routing notes.
61
-
62
- Use `pm_plan` for plan-then-execute workflows; use `pm_create` with type Task/Feature/Epic for already-decomposed backlog work.
63
-
64
- Invariants:
65
-
66
- - One step `in_progress` at a time by default; pass `allowMultipleActive: true` for explicit parallel branches.
67
- - Use `subcommand: block-step` with `stepBlockedReason` when discovery flips a step.
68
- - Use `subcommand: materialize` once steps are concrete enough to become Tasks.
69
-
70
- ## Progressive Disclosure and Token Discipline
71
-
72
- Load the smallest thing that answers the question. Costs are measured.
73
-
74
- | Need | Call | Cost |
75
- |------|------|------|
76
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
77
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
78
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
79
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
80
-
81
- Guide topics are declared at runtime: `pm guide` prints the current index and
82
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
83
-
84
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
85
-
86
- Bound every read in this order: projection (`outputInclude`), then row limit
87
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
88
- Read the `omission_receipt` before treating a result as complete — a
89
- budget-truncated read is a claim about the part it withheld, and a truncated
90
- list must never be summarized as if it were the whole population.
91
-
92
- Author identity is detected automatically. Never pass `author` and never set
93
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
94
- on every history entry.
13
+ Read live pm_context and pm_search before creating or mutating items. Claim
14
+ only active work, preserve linked evidence, and release the claim when done.
@@ -1,6 +1,4 @@
1
1
  interface:
2
- display_name: "pm Native"
3
- short_description: "Track Codex work through native pm MCP tools"
4
- icon_small: "./assets/pm-cli-small.svg"
5
- icon_large: "./assets/pm-cli-small.svg"
6
- default_prompt: "Use native pm tools to orient, claim, implement, verify, and close this task without shelling out to pm."
2
+ display_name: "pm Native Compatibility"
3
+ short_description: "Route older Codex workflows to current pm skills"
4
+ default_prompt: "Continue this older pm-native workflow with the canonical pm-workflow and pm-planner guidance."
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: pm-planner
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
5
+ ---
6
+
7
+ # pm Planner
8
+
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,45 +1,24 @@
1
1
  ---
2
2
  name: pm-release
3
- description: Run compatibility-gated pm-cli release workflows with native pm tools, linked evidence, and public-surface verification.
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
4
  license: MIT
5
5
  ---
6
6
 
7
7
  # pm Release
8
8
 
9
- Use for release prep, compatibility gates, publication checks, and post-release verification.
10
-
11
- ## Release Loop
12
-
13
- 1. Find or create the release item after duplicate checks.
14
- 2. Claim it and link release docs, changelog, compatibility scripts, and tests.
15
- 3. Run sandboxed compatibility checks before changing release assets.
16
- 4. Run full local gates before tagging or publishing.
17
- 5. Verify public surfaces after publish and record results through `pm_comments`.
18
-
19
- Use `pm_run` for release-adjacent pm actions not exposed as narrow tools.
20
-
21
- ## Progressive Disclosure and Token Discipline
22
-
23
- Load the smallest thing that answers the question. Costs are measured.
24
-
25
- | Need | Call | Cost |
26
- |------|------|------|
27
- | Pick or resume work | `pm_next`, or `pm_context` with `limit: 10` | ~2.1-2.5k tok |
28
- | Exact flags for one command | `pm_contracts` with `command: "<name>", flagsOnly: true` | ~1-3.4k tok |
29
- | The whole command surface with per-command ceilings | `pm_contracts` with `summary: true` | ~2.6k tok |
30
- | An unfamiliar capability family | `pm_run` with `action: "guide", topic: "<topic>", depth: "brief"` | ~0.6-1k tok |
31
-
32
- Guide topics are declared at runtime: `pm guide` prints the current index and
33
- `pm guide <topic> --depth brief` expands one topic. Do not copy the list.
34
-
35
- Never load `docs/COMMANDS.md` (~29k tok) or `docs/SDK.md` (~45k tok) whole.
36
-
37
- Bound every read in this order: projection (`outputInclude`), then row limit
38
- (`outputLimit` or `limit`), then `outputBudget`, then `outputCursor` to resume.
39
- Read the `omission_receipt` before treating a result as complete — a
40
- budget-truncated read is a claim about the part it withheld, and a truncated
41
- list must never be summarized as if it were the whole population.
42
-
43
- Author identity is detected automatically. Never pass `author` and never set
44
- `PM_AUTHOR`; the harness, model, effort, role, and topic are probed and recorded
45
- 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.