@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
@@ -4,14 +4,14 @@ Tracker: `pm-f05lsg`.
4
4
 
5
5
  Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.
6
6
 
7
- - Catalog error codes: 378
7
+ - Catalog error codes: 385
8
8
  - Executable error codes: 19
9
9
  - Executable-code ratchet floor: 18
10
10
  - Required executable canonical codes: `bulk_ids_input_empty`, `bulk_ids_input_missing_path`, `bulk_ids_input_unreadable`, `invalid_argument_value`, `manifest_unknown_key`, `missing_lifecycle_target`, `missing_required_argument`, `no_version_bounds_declared`, `projection_options_mutually_exclusive`, `tracker_not_initialized`, `tracker_root_missing`, `tracker_root_not_directory`, `tracker_root_unreadable`, `unknown_context_intent`, `unknown_field_projection`, `unknown_option`, `unknown_subcommand`
11
- - Uncovered error codes: 359
12
- - Coverage fraction: 0.050265
11
+ - Uncovered error codes: 366
12
+ - Coverage fraction: 0.049351
13
13
  - Closed-domain probes: 19
14
- - Grammar probes: 113
14
+ - Grammar probes: 117
15
15
 
16
16
  | Error code | Canonical code | Disposition | Evidence kinds | Probe count |
17
17
  | --- | --- | --- | --- | --- |
@@ -96,6 +96,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
96
96
  | `extension_mutation_guard_invalid_denial` | `extension_mutation_guard_invalid_denial` | uncovered | none | 0 |
97
97
  | `extension_mutation_guard_timed_out` | `extension_mutation_guard_timed_out` | uncovered | none | 0 |
98
98
  | `extension_update_health_partial_coverage` | `extension_update_health_partial_coverage` | uncovered | none | 0 |
99
+ | `extensions_unreadable` | `extensions_unreadable` | uncovered | none | 0 |
99
100
  | `field_duplicate` | `field_duplicate` | uncovered | none | 0 |
100
101
  | `field_invalid` | `field_invalid` | uncovered | none | 0 |
101
102
  | `field_mcp_input_collision` | `field_mcp_input_collision` | uncovered | none | 0 |
@@ -189,8 +190,12 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
189
190
  | `locks_stale_count` | `locks_stale_count` | uncovered | none | 0 |
190
191
  | `locks_unreadable` | `locks_unreadable` | uncovered | none | 0 |
191
192
  | `malformed_plan_step_evidence` | `malformed_plan_step_evidence` | uncovered | none | 0 |
193
+ | `managed_state_invalid` | `managed_state_invalid` | uncovered | none | 0 |
194
+ | `managed_state_unreadable` | `managed_state_unreadable` | uncovered | none | 0 |
192
195
  | `manifest_capabilities_absent` | `manifest_capabilities_absent` | uncovered | none | 0 |
196
+ | `manifest_invalid` | `manifest_invalid` | uncovered | none | 0 |
193
197
  | `manifest_unknown_key` | `manifest_unknown_key` | executable | owned_state | 1 |
198
+ | `manifest_unreadable` | `manifest_unreadable` | uncovered | none | 0 |
194
199
  | `mcp_annotation_file_unavailable` | `mcp_annotation_file_unavailable` | uncovered | none | 0 |
195
200
  | `mcp_stdin_unavailable` | `mcp_stdin_unavailable` | uncovered | none | 0 |
196
201
  | `mcp_task_not_found_or_not_authorized` | `mcp_task_not_found_or_not_authorized` | uncovered | none | 0 |
@@ -216,7 +221,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
216
221
  | `missing_parameter_alias` | `missing_parameter_alias` | uncovered | none | 0 |
217
222
  | `missing_positive_execution_receipt` | `missing_positive_execution_receipt` | uncovered | none | 0 |
218
223
  | `missing_probe` | `missing_probe` | uncovered | none | 0 |
219
- | `missing_required_argument` | `missing_required_argument` | executable | grammar | 75 |
224
+ | `missing_required_argument` | `missing_required_argument` | executable | grammar | 77 |
220
225
  | `missing_required_option` | `missing_required_option` | uncovered | none | 0 |
221
226
  | `missing_suggested_retry` | `missing_suggested_retry` | uncovered | none | 0 |
222
227
  | `missing_suggested_retry_args` | `missing_suggested_retry_args` | uncovered | none | 0 |
@@ -274,10 +279,12 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
274
279
  | `retry_failed` | `retry_failed` | uncovered | none | 0 |
275
280
  | `schema_migration_input_required` | `schema_migration_input_required` | uncovered | none | 0 |
276
281
  | `semantic_spelling_collision` | `semantic_spelling_collision` | uncovered | none | 0 |
282
+ | `settings_invalid` | `settings_invalid` | uncovered | none | 0 |
277
283
  | `settings_read_fs_error` | `settings_read_fs_error` | uncovered | none | 0 |
278
284
  | `settings_read_invalid_json` | `settings_read_invalid_json` | uncovered | none | 0 |
279
285
  | `settings_read_invalid_schema` | `settings_read_invalid_schema` | uncovered | none | 0 |
280
286
  | `settings_read_merge_failed` | `settings_read_merge_failed` | uncovered | none | 0 |
287
+ | `settings_unreadable` | `settings_unreadable` | uncovered | none | 0 |
281
288
  | `stale_budget` | `stale_budget` | uncovered | none | 0 |
282
289
  | `stale_destination` | `stale_destination` | uncovered | none | 0 |
283
290
  | `stale_observed_signature` | `stale_observed_signature` | uncovered | none | 0 |
@@ -318,13 +325,13 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
318
325
  | `unknown_field` | `unknown_field` | uncovered | none | 0 |
319
326
  | `unknown_field_projection` | `unknown_field_projection` | executable | closed_domain | 10 |
320
327
  | `unknown_item_type` | `unknown_item_type` | uncovered | none | 0 |
321
- | `unknown_lifecycle_action` | `unknown_subcommand` | executable | grammar, owned_state | 12 |
328
+ | `unknown_lifecycle_action` | `unknown_subcommand` | executable | grammar, owned_state | 14 |
322
329
  | `unknown_noun` | `unknown_noun` | uncovered | none | 0 |
323
330
  | `unknown_option` | `unknown_option` | executable | owned_state | 1 |
324
331
  | `unknown_plan_template` | `unknown_plan_template` | uncovered | none | 0 |
325
332
  | `unknown_provenance_dimension` | `unknown_provenance_dimension` | uncovered | none | 0 |
326
333
  | `unknown_status` | `unknown_status` | uncovered | none | 0 |
327
- | `unknown_subcommand` | `unknown_subcommand` | executable | grammar, owned_state | 12 |
334
+ | `unknown_subcommand` | `unknown_subcommand` | executable | grammar, owned_state | 14 |
328
335
  | `unsafe_init_recovery` | `unsafe_init_recovery` | uncovered | none | 0 |
329
336
  | `unsupported_update_option` | `unsupported_update_option` | uncovered | none | 0 |
330
337
  | `validate_command_references_stale_pm_ids` | `validate_command_references_stale_pm_ids` | uncovered | none | 0 |
package/marketplace.json CHANGED
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
9
- "version": "2026.9.26"
9
+ "version": "2026.9.27"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "pm-claude",
14
14
  "source": "./plugins/pm-claude",
15
15
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
16
- "version": "2026.9.26",
16
+ "version": "2026.9.27",
17
17
  "author": {
18
18
  "name": "unbrained",
19
19
  "url": "https://github.com/unbraind/pm-cli"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.10.0",
@@ -123,7 +123,7 @@
123
123
  "lint:complexity:baseline": "eslint . --suppress-rule complexity --suppress-rule sonarjs/cognitive-complexity",
124
124
  "lint:duplicates": "jscpd --config .jscpd.json && jscpd --config .jscpd.source.json && jscpd --config .jscpd.tables.json",
125
125
  "lint:codefactor": "pnpm quality:static",
126
- "quality:static": "pnpm quality:docstrings && pnpm quality:exports && pnpm lint:eslint && pnpm lint:duplicates && node scripts/check-workflow-permissions.mjs && node scripts/check-dependency-cooldown.mjs && node scripts/gen-plugin-mcp-wrappers.mjs --check && pnpm build && node scripts/contracts-snapshot.mjs --check && node scripts/generate-agent-capability-surfaces.mjs --check && node scripts/generate-error-code-catalog.mjs --check && node scripts/release/repository-assurance.mjs repository-static-quality --trigger ci --json && node scripts/release/audit-package-boundary.mjs && node scripts/release/package-sdk-contract-parity.mjs && node scripts/release/surface-replication-gate.mjs && node scripts/release/command-grammar-gate.mjs && node scripts/release/flag-invocation-parity.mjs && node scripts/release/flag-lexicon-gate.mjs && node scripts/release/refusal-closure-gate.mjs && node scripts/release/agent-task-token-gate.mjs && pnpm quality:mcp-deprecations && node dist/cli.js assurance run tracker-context-quality --trigger ci --dry-run --json --output-budget unbounded && node scripts/release/gate-registry.mjs && node scripts/sdk-surface-snapshot.mjs --check && node scripts/bench/sdk-entrypoint-costs.mjs --check && node scripts/bench/cli-transport-floor.mjs --check && node dist/cli.js assurance run graph-composition --trigger ci --dry-run --json --output-budget unbounded && node dist/cli.js assurance run record-integrity --trigger ci --dry-run --json --output-budget unbounded && pnpm quality:mutation -- --prebuilt",
126
+ "quality:static": "pnpm quality:docstrings && pnpm quality:exports && pnpm lint:eslint && pnpm lint:duplicates && node scripts/check-workflow-permissions.mjs && node scripts/check-dependency-cooldown.mjs && node scripts/gen-plugin-mcp-wrappers.mjs --check && node scripts/gen-agent-plugin-skills.mjs --check && pnpm build && node scripts/contracts-snapshot.mjs --check && node scripts/generate-agent-capability-surfaces.mjs --check && node scripts/generate-error-code-catalog.mjs --check && node scripts/release/repository-assurance.mjs repository-static-quality --trigger ci --json && node scripts/release/audit-package-boundary.mjs && node scripts/release/package-sdk-contract-parity.mjs && node scripts/release/surface-replication-gate.mjs && node scripts/release/command-grammar-gate.mjs && node scripts/release/flag-invocation-parity.mjs && node scripts/release/flag-lexicon-gate.mjs && node scripts/release/refusal-closure-gate.mjs && node scripts/release/agent-task-token-gate.mjs && pnpm quality:mcp-deprecations && node dist/cli.js assurance run tracker-context-quality --trigger ci --dry-run --json --output-budget unbounded && node scripts/release/gate-registry.mjs && node scripts/sdk-surface-snapshot.mjs --check && node scripts/bench/sdk-entrypoint-costs.mjs --check && node scripts/bench/cli-transport-floor.mjs --check && node dist/cli.js assurance run graph-composition --trigger ci --dry-run --json --output-budget unbounded && node dist/cli.js assurance run record-integrity --trigger ci --dry-run --json --output-budget unbounded && pnpm quality:mutation -- --prebuilt",
127
127
  "quality:exports": "knip --no-config-hints && node scripts/run-tests.mjs test -- tests/unit/scripts/release/dead-exports.spec.ts",
128
128
  "quality:command-grammar": "pnpm build && node scripts/release/command-grammar-gate.mjs && node scripts/release/flag-invocation-parity.mjs && node scripts/release/flag-lexicon-gate.mjs",
129
129
  "quality:recovery-closure": "pnpm build && node scripts/release/refusal-closure-gate.mjs",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-beads",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for importing Beads JSONL records.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-calendar",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for calendar and agenda views.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-command-kit",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm exemplar package for the commands capability: registerCommand, registerFlags, and registerParser.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-digital-twin",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-governance-audit",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for governance audit and normalization workflows.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-guide-shell",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for guide and shell completion workflows.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-kanban",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm archetype package: a complete Kanban continuous-flow profile built on public SDK primitives.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-lifecycle-hooks",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package demonstrating safe lifecycle hook registration.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-linked-test-adapters",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for optional linked-test run management adapters and reporters.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-search-advanced",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for semantic, hybrid, and reindex search workflows.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-templates",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for reusable create templates.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-todos",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for Todo markdown import and export.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-vcs-sdk-exemplar",
3
- "version": "2026.9.26",
3
+ "version": "2026.9.27",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a VCS-style changeset workflow built entirely on public pm SDK and extension primitives.",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pm-claude",
3
3
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
4
- "version": "2026.9.26",
4
+ "version": "2026.9.27",
5
5
  "author": {
6
6
  "name": "unbrained",
7
7
  "url": "https://github.com/unbraind/pm-cli"
@@ -13,6 +13,10 @@ Native pm CLI integration for Claude Code. Use pm project management tools direc
13
13
  | **Hybrid TUI tracking** | pm items sync to Claude Code's task panel — pm is the persistent store, the task panel is the live session view |
14
14
  | **Session hook** | Injects active pm item summary at session start using the same pinned pm-cli runtime as the MCP server |
15
15
 
16
+ The five skills are generated from the shared portable source in
17
+ `templates/agent-skills/`. Both plugin packages carry identical workflow
18
+ guidance; the Claude task panel mapping is conditional on its tools.
19
+
16
20
  ## Installation
17
21
 
18
22
  ### Option A: Plugin marketplace — canonical install (recommended)
@@ -177,7 +181,7 @@ Spawn pm-triage-agent to set up the pm item for: add OAuth2 login support
177
181
 
178
182
  ## Hybrid TUI Sync Pattern
179
183
 
180
- All skills and commands implement this pattern for every claimed item:
184
+ Claude commands can mirror claimed items with this pattern:
181
185
 
182
186
  ```
183
187
  1. pm_claim → [pm stores claim]
@@ -2,8 +2,8 @@
2
2
  "name": "pm-claude-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
  }
@@ -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."