@unbrained/pm-cli 2026.9.26 → 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 (130) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +16 -0
  3. package/dist/cli/commander-usage.js +2 -2
  4. package/dist/cli/error-guidance.js +1 -1
  5. package/dist/cli/main.js +2 -2
  6. package/dist/cli/register-setup.js +1 -1
  7. package/dist/cli/runtime/selection.d.ts +3 -1
  8. package/dist/cli/runtime/selection.js +1 -1
  9. package/dist/cli-bundle/bundle-manifest.json +160 -152
  10. package/dist/cli-bundle/chunks/{chunk-IYN4MJ2C.js → chunk-3BTJ66CB.js} +56 -56
  11. package/dist/cli-bundle/chunks/{chunk-FOTXRNY6.js → chunk-4SLLCDFL.js} +39 -39
  12. package/dist/cli-bundle/chunks/{chunk-GRWPZR7F.js → chunk-4UPZLUT2.js} +7 -7
  13. package/dist/cli-bundle/chunks/{chunk-U55RYT3I.js → chunk-6OJVQ7SW.js} +2 -2
  14. package/dist/cli-bundle/chunks/{chunk-TYJXMT3Q.js → chunk-7TAGYNFP.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-QQD3VRMZ.js → chunk-AUS6USO4.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-4ODHIX7N.js → chunk-IEP3VAT5.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-HTHTX6E6.js → chunk-JX6WCCHL.js} +2 -2
  18. package/dist/cli-bundle/chunks/chunk-LC6WEA5U.js +2 -0
  19. package/dist/cli-bundle/chunks/{chunk-VMO4P5MX.js → chunk-LKGQUZ5M.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-TC74K7SS.js → chunk-OKVDVERQ.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-SZQCHJI4.js → chunk-TSF2LPIH.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-MJWKR7YA.js → chunk-V5UGBYHN.js} +3 -3
  23. package/dist/cli-bundle/chunks/{register-list-query-426QTRET.js → register-list-query-6PAJ4PBU.js} +2 -2
  24. package/dist/cli-bundle/chunks/{register-mutation-FLI3HHMP.js → register-mutation-RZCXZXYS.js} +2 -2
  25. package/dist/cli-bundle/chunks/{register-operations-TP7ZG4MK.js → register-operations-GK6VU2H2.js} +2 -2
  26. package/dist/cli-bundle/chunks/register-setup-ASEMNMBF.js +2 -0
  27. package/dist/cli-bundle/focused-chunks/{chunk-H3BI4EDO.js → chunk-6J2YCGSN.js} +3 -3
  28. package/dist/cli-bundle/focused-chunks/{chunk-XKH2FC5D.js → chunk-6UNKK3UH.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-NRHTXBTI.js → chunk-DQ3MB7BO.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-PMPFLA6X.js → chunk-E7LYK7V5.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-25BBHWMH.js → chunk-GZD4ZYIB.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-KMPKKSA6.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-TLF6N56J.js → chunk-LBDWUHQD.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-UIFVIE5F.js → chunk-MILJCOFJ.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-MK5AKKHK.js → chunk-NETVXIH5.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-Q355NPLH.js → chunk-NWRVNHAD.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-XVBWZTU2.js → chunk-NZAG7OKB.js} +12 -12
  38. package/dist/cli-bundle/focused-chunks/{chunk-OY3VHCTX.js → chunk-OJKJFDIG.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-OJRX6G22.js +2 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-NVVB2HJC.js → chunk-PDVL7QYU.js} +16 -16
  41. package/dist/cli-bundle/focused-chunks/{chunk-O7MIBEMK.js → chunk-QO4MTAEA.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-ABA3KRPY.js → chunk-SMADBUPL.js} +2 -2
  43. package/dist/cli-bundle/main.js +21 -21
  44. package/dist/cli-bundle/sdk-authoring.js +1 -1
  45. package/dist/cli-bundle/sdk-contracts.js +1 -1
  46. package/dist/cli-bundle/sdk-core.js +2 -2
  47. package/dist/cli-bundle/sdk-governance.js +1 -1
  48. package/dist/cli-bundle/sdk-graph.js +1 -1
  49. package/dist/cli-bundle/sdk-merge.js +23 -23
  50. package/dist/cli-bundle/sdk-query.js +1 -1
  51. package/dist/cli-bundle/sdk-runtime.js +1 -1
  52. package/dist/cli-bundle/sdk-testing.js +1 -1
  53. package/dist/cli-bundle/sdk.js +8 -8
  54. package/dist/sdk/agent-capability-contracts.js +1 -1
  55. package/dist/sdk/cli-contracts/command-aliases.js +1 -1
  56. package/dist/sdk/cli-contracts/grammar-contracts.js +1 -1
  57. package/dist/sdk/completion/shared.d.ts +1 -1
  58. package/dist/sdk/completion/shared.js +1 -1
  59. package/dist/sdk/extension/static-inventory.d.ts +54 -0
  60. package/dist/sdk/extension/static-inventory.js +2 -0
  61. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  62. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  63. package/dist/sdk/guide-topics.js +1 -1
  64. package/dist/sdk/index.d.ts +1 -0
  65. package/dist/sdk/index.js +1 -1
  66. package/dist/sdk/public-surface.json +1 -1
  67. package/dist/sdk/query/complete-list.js +1 -1
  68. package/dist/sdk/read-output/provenance.d.ts +20 -0
  69. package/dist/sdk/read-output/provenance.js +2 -0
  70. package/dist/sdk/read-output-contracts.js +1 -1
  71. package/dist/sdk/runtime-input.js +1 -1
  72. package/docs/CLI_GRAMMAR.md +31 -0
  73. package/docs/CODEX_PLUGIN.md +8 -0
  74. package/docs/EXTENSION_LIFECYCLE.md +18 -0
  75. package/docs/RELEASING.md +46 -1
  76. package/docs/agent-task-token-baseline.json +4 -4
  77. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  78. package/docs/generated/AGENT_COMMAND_SURFACE.md +5 -1
  79. package/docs/generated/FLAG_LEXICON_BUDGETS.md +4 -0
  80. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +14 -7
  81. package/marketplace.json +2 -2
  82. package/package.json +2 -2
  83. package/packages/pm-beads/package.json +1 -1
  84. package/packages/pm-calendar/package.json +1 -1
  85. package/packages/pm-command-kit/package.json +1 -1
  86. package/packages/pm-digital-twin/package.json +1 -1
  87. package/packages/pm-governance-audit/package.json +1 -1
  88. package/packages/pm-guide-shell/package.json +1 -1
  89. package/packages/pm-kanban/package.json +1 -1
  90. package/packages/pm-lifecycle-hooks/package.json +1 -1
  91. package/packages/pm-linked-test-adapters/package.json +1 -1
  92. package/packages/pm-search-advanced/package.json +1 -1
  93. package/packages/pm-templates/package.json +1 -1
  94. package/packages/pm-todos/package.json +1 -1
  95. package/packages/pm-vcs/package.json +1 -1
  96. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  97. package/plugins/pm-claude/README.md +5 -1
  98. package/plugins/pm-claude/package.json +2 -2
  99. package/plugins/pm-claude/skills/pm-audit/SKILL.md +14 -103
  100. package/plugins/pm-claude/skills/pm-audit/agents/openai.yaml +4 -0
  101. package/plugins/pm-claude/skills/pm-developer/SKILL.md +20 -143
  102. package/plugins/pm-claude/skills/pm-developer/agents/openai.yaml +4 -0
  103. package/plugins/pm-claude/skills/pm-planner/SKILL.md +16 -167
  104. package/plugins/pm-claude/skills/pm-planner/agents/openai.yaml +4 -0
  105. package/plugins/pm-claude/skills/pm-release/SKILL.md +18 -102
  106. package/plugins/pm-claude/skills/pm-release/agents/openai.yaml +4 -0
  107. package/plugins/pm-claude/skills/pm-workflow/SKILL.md +25 -156
  108. package/plugins/pm-claude/skills/pm-workflow/agents/openai.yaml +4 -0
  109. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  110. package/plugins/pm-codex/README.md +10 -2
  111. package/plugins/pm-codex/mcp.json +11 -0
  112. package/plugins/pm-codex/package.json +2 -2
  113. package/plugins/pm-codex/plugin.json +45 -0
  114. package/plugins/pm-codex/skills/pm-audit/SKILL.md +21 -0
  115. package/plugins/pm-codex/skills/pm-audit/agents/openai.yaml +4 -0
  116. package/plugins/pm-codex/skills/pm-auditor/SKILL.md +5 -40
  117. package/plugins/pm-codex/skills/pm-auditor/agents/openai.yaml +3 -5
  118. package/plugins/pm-codex/skills/pm-developer/SKILL.md +26 -0
  119. package/plugins/pm-codex/skills/pm-developer/agents/openai.yaml +4 -0
  120. package/plugins/pm-codex/skills/pm-native/SKILL.md +7 -87
  121. package/plugins/pm-codex/skills/pm-native/agents/openai.yaml +3 -5
  122. package/plugins/pm-codex/skills/pm-planner/SKILL.md +22 -0
  123. package/plugins/pm-codex/skills/pm-planner/agents/openai.yaml +4 -0
  124. package/plugins/pm-codex/skills/pm-release/SKILL.md +17 -38
  125. package/plugins/pm-codex/skills/pm-release/agents/openai.yaml +2 -4
  126. package/plugins/pm-codex/skills/pm-workflow/SKILL.md +39 -0
  127. package/plugins/pm-codex/skills/pm-workflow/agents/openai.yaml +4 -0
  128. package/dist/cli-bundle/chunks/register-setup-574SIVQZ.js +0 -2
  129. package/dist/cli-bundle/focused-chunks/chunk-HNHMK5JI.js +0 -2
  130. package/dist/cli-bundle/focused-chunks/chunk-HQPTDJLF.js +0 -2
@@ -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."
@@ -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.26",
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.26",
5
+ "version": "2026.9.27",
6
6
  "dependencies": {
7
- "@unbrained/pm-cli": "2026.9.26"
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
+ }