@unbrained/pm-cli 2026.9.11 → 2026.9.12

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 (133) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +22 -0
  3. package/dist/cli/error-guidance.d.ts +10 -0
  4. package/dist/cli/error-guidance.js +1 -1
  5. package/dist/cli/option-values.d.ts +3 -0
  6. package/dist/cli/option-values.js +2 -0
  7. package/dist/cli/register-mutation.d.ts +5 -0
  8. package/dist/cli/register-mutation.js +2 -16
  9. package/dist/cli/schema/registration.d.ts +4 -0
  10. package/dist/cli/schema/registration.js +16 -0
  11. package/dist/cli-bundle/bundle-manifest.json +155 -147
  12. package/dist/cli-bundle/chunks/{chunk-TDKWJQD7.js → chunk-2JAY4LFI.js} +2 -2
  13. package/dist/cli-bundle/chunks/{chunk-QER6OSOP.js → chunk-3ZJDGTYC.js} +53 -53
  14. package/dist/cli-bundle/chunks/{chunk-DAWH7TGV.js → chunk-67H4PKQ5.js} +2 -2
  15. package/dist/cli-bundle/chunks/{chunk-BN5QVWNY.js → chunk-7H33WPDF.js} +2 -2
  16. package/dist/cli-bundle/chunks/chunk-7KF6HCRC.js +20 -0
  17. package/dist/cli-bundle/chunks/chunk-DEGRLB6Y.js +235 -0
  18. package/dist/cli-bundle/chunks/{chunk-RJQSCK74.js → chunk-GKY655T7.js} +6 -6
  19. package/dist/cli-bundle/chunks/{chunk-JMQKJ7CJ.js → chunk-I6VQUHK6.js} +2 -2
  20. package/dist/cli-bundle/chunks/{chunk-IRUNFLLG.js → chunk-PTX2JRFR.js} +2 -2
  21. package/dist/cli-bundle/chunks/{chunk-VFKBNGF6.js → chunk-TAGDYARO.js} +2 -2
  22. package/dist/cli-bundle/chunks/{chunk-SGAKQIGQ.js → chunk-X6POOZKD.js} +27 -27
  23. package/dist/cli-bundle/chunks/{chunk-TFVKBJJ4.js → chunk-YU75JRTW.js} +103 -103
  24. package/dist/cli-bundle/chunks/{register-list-query-U6MY437C.js → register-list-query-KEZPDR6X.js} +2 -2
  25. package/dist/cli-bundle/chunks/register-mutation-HEXA3ZDM.js +20 -0
  26. package/dist/cli-bundle/chunks/{register-operations-EHWIZW3X.js → register-operations-TEZT65JF.js} +2 -2
  27. package/dist/cli-bundle/chunks/{register-setup-BZYL3HBL.js → register-setup-IIL74WUG.js} +2 -2
  28. package/dist/cli-bundle/focused-chunks/{chunk-VS6MR2HT.js → chunk-2BQ4JSJQ.js} +2 -2
  29. package/dist/cli-bundle/focused-chunks/{chunk-BEQAW7OT.js → chunk-5CRND7UA.js} +4 -4
  30. package/dist/cli-bundle/focused-chunks/chunk-5PSYV3AT.js +164 -0
  31. package/dist/cli-bundle/focused-chunks/{chunk-7WISPJRZ.js → chunk-7EKXAUKF.js} +52 -52
  32. package/dist/cli-bundle/focused-chunks/{chunk-TWE3GPQM.js → chunk-BIOWOU6S.js} +17 -17
  33. package/dist/cli-bundle/focused-chunks/{chunk-6JF66HAG.js → chunk-EIXGDI77.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-ONDKO4EL.js → chunk-GAKFECOQ.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/chunk-HFAW3FJQ.js +2 -0
  36. package/dist/cli-bundle/focused-chunks/{chunk-HM6JS6Q3.js → chunk-IURELABV.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-UJCQXUD2.js → chunk-KK7KSXUP.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-MOT32PR2.js → chunk-LWJBBM6X.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/chunk-MFVABYEU.js +2 -0
  40. package/dist/cli-bundle/focused-chunks/{chunk-GKUF7TM5.js → chunk-PERRTPIY.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/{chunk-FJDEFA64.js → chunk-SDQOOL34.js} +2 -2
  42. package/dist/cli-bundle/focused-chunks/{chunk-TGMSSI3Z.js → chunk-TTRB47KM.js} +2 -2
  43. package/dist/cli-bundle/focused-chunks/chunk-VWMP6W7Y.js +20 -0
  44. package/dist/cli-bundle/focused-chunks/chunk-YNBACVQ2.js +2 -0
  45. package/dist/cli-bundle/main.js +4 -4
  46. package/dist/cli-bundle/sdk-authoring.js +1 -1
  47. package/dist/cli-bundle/sdk-contracts.js +2 -2
  48. package/dist/cli-bundle/sdk-core.js +37 -37
  49. package/dist/cli-bundle/sdk-governance.js +1 -1
  50. package/dist/cli-bundle/sdk-graph.js +1 -1
  51. package/dist/cli-bundle/sdk-merge.js +42 -42
  52. package/dist/cli-bundle/sdk-query.js +1 -1
  53. package/dist/cli-bundle/sdk-runtime.js +1 -1
  54. package/dist/cli-bundle/sdk-testing.js +1 -1
  55. package/dist/cli-bundle/sdk.js +8 -8
  56. package/dist/core/history/history.js +1 -1
  57. package/dist/core/history/operation-contract.d.ts +30 -0
  58. package/dist/core/history/operation-contract.js +2 -0
  59. package/dist/core/history/tombstone.d.ts +3 -0
  60. package/dist/core/history/tombstone.js +2 -0
  61. package/dist/core/item/id.d.ts +8 -7
  62. package/dist/core/item/id.js +1 -1
  63. package/dist/core/output/mutation-projection.d.ts +1 -0
  64. package/dist/core/output/mutation-projection.js +1 -1
  65. package/dist/core/shared/command-line.d.ts +10 -0
  66. package/dist/core/shared/command-line.js +2 -0
  67. package/dist/core/shared/errors.d.ts +13 -0
  68. package/dist/core/shared/errors.js +1 -1
  69. package/dist/core/store/item-store.d.ts +5 -1
  70. package/dist/core/store/item-store.js +1 -1
  71. package/dist/sdk/cli-contracts/runtime-contracts.d.ts +3 -0
  72. package/dist/sdk/cli-contracts/runtime-contracts.js +1 -1
  73. package/dist/sdk/cli-contracts/tool-schema.d.ts +1 -1
  74. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  75. package/dist/sdk/command-line.d.ts +1 -6
  76. package/dist/sdk/command-line.js +1 -1
  77. package/dist/sdk/comments.js +1 -1
  78. package/dist/sdk/contracts.d.ts +1 -0
  79. package/dist/sdk/contracts.js +1 -1
  80. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  81. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  82. package/dist/sdk/governance/storage-integrity.js +1 -1
  83. package/dist/sdk/governance/workflow-completeness.js +1 -1
  84. package/dist/sdk/governance/workflow-policy.js +2 -2
  85. package/dist/sdk/index.d.ts +1 -0
  86. package/dist/sdk/index.js +1 -1
  87. package/dist/sdk/learnings.js +1 -1
  88. package/dist/sdk/lifecycle/claim.d.ts +2 -0
  89. package/dist/sdk/lifecycle/claim.js +1 -1
  90. package/dist/sdk/lifecycle/mcp-actions.d.ts +4 -0
  91. package/dist/sdk/lifecycle/mcp-actions.js +1 -1
  92. package/dist/sdk/lifecycle/task-composition.d.ts +2 -0
  93. package/dist/sdk/lifecycle/task-composition.js +1 -1
  94. package/dist/sdk/merge/reconcile.js +1 -1
  95. package/dist/sdk/merge/three-way.js +2 -2
  96. package/dist/sdk/notes.js +1 -1
  97. package/dist/sdk/public-surface.json +1 -1
  98. package/dist/sdk/query/projection-contracts.d.ts +1 -1
  99. package/dist/sdk/query/projection-contracts.js +1 -1
  100. package/dist/sdk/runtime.js +1 -1
  101. package/docs/AGENT_UX_CONTRACTS.md +8 -0
  102. package/docs/ARCHITECTURE.md +7 -0
  103. package/docs/HISTORY_OPERATIONS.md +46 -0
  104. package/docs/HISTORY_RECOVERY.md +27 -2
  105. package/docs/LIFECYCLE_COMMANDS.md +19 -2
  106. package/docs/MERGE_SAFETY.md +64 -3
  107. package/docs/WORKFLOW_POLICIES.md +47 -3
  108. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +6 -3
  109. package/marketplace.json +2 -2
  110. package/package.json +1 -1
  111. package/packages/pm-beads/package.json +1 -1
  112. package/packages/pm-calendar/package.json +1 -1
  113. package/packages/pm-command-kit/package.json +1 -1
  114. package/packages/pm-digital-twin/package.json +1 -1
  115. package/packages/pm-governance-audit/README.md +22 -0
  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-codex/.codex-plugin/plugin.json +1 -1
  127. package/dist/cli-bundle/chunks/chunk-FBY6PEIR.js +0 -20
  128. package/dist/cli-bundle/chunks/chunk-RJZFAXBW.js +0 -235
  129. package/dist/cli-bundle/chunks/register-mutation-HAPHD4S7.js +0 -20
  130. package/dist/cli-bundle/focused-chunks/chunk-3JVTLBCW.js +0 -20
  131. package/dist/cli-bundle/focused-chunks/chunk-DZ3ATEFS.js +0 -2
  132. package/dist/cli-bundle/focused-chunks/chunk-M74YW332.js +0 -164
  133. package/dist/cli-bundle/focused-chunks/chunk-YOPNRWSX.js +0 -2
@@ -1,6 +1,6 @@
1
1
  # Declarative workflow policies
2
2
 
3
- Tracker: [pm-mj42og](../.agents/pm/features/pm-mj42og.toon) and [pm-htbetn](../.agents/pm/features/pm-htbetn.toon).
3
+ Tracker: [pm-mj42og](../.agents/pm/features/pm-mj42og.toon) [pm-htbetn](../.agents/pm/features/pm-htbetn.toon), [pm-khd2fd](../.agents/pm/issues/pm-khd2fd.toon), and [pm-ycv2cz](../.agents/pm/issues/pm-ycv2cz.toon).
4
4
 
5
5
  Projects can describe their lifecycle requirements as versioned data. The SDK
6
6
  uses the same evaluator for item mutations, policy previews, and completeness
@@ -10,7 +10,7 @@ warn, or refuse; refusal also requires an explicit workspace opt-in.
10
10
  ## Configure a requirement
11
11
 
12
12
  ```bash
13
- pm schema policy-put close-evidence --definition '{"id":"close-evidence","effect":"refuse","subject":{"statuses":["closed"]},"rule":{"kind":"require_fields","fields":["resolution","actual_result"]}}'
13
+ pm schema policy-put close-evidence --definition '{"effect":"refuse","subject":{"statuses":["closed"]},"rule":{"kind":"require_fields","fields":["resolution","actual_result"]}}'
14
14
  pm schema policies
15
15
  pm schema policy-check pm-example --definition '{"status":"closed"}'
16
16
  pm schema policy-mode refuse
@@ -21,6 +21,10 @@ body. Custom fields can use dotted paths with at most eight segments. Empty
21
21
  strings, arrays, objects, null, and absent values do not satisfy required fields;
22
22
  zero and false are meaningful values.
23
23
 
24
+ `policy-put` accepts the id once: pass it as the operand, or omit the operand
25
+ and include `id` in the definition. When both are supplied their normalized ids
26
+ must agree; a mismatch refuses without changing the registry or history.
27
+ The same normalization applies to JSON strings, objects, previews, SDK, and MCP.
24
28
  `policy-put` replaces a declaration with the same id. `policy-remove <id>` removes
25
29
  one declaration. `policy-mode advise` disables refusal while retaining diagnostics.
26
30
  Registry writes are locked and recorded in workspace history. `--dry-run` previews
@@ -122,8 +126,48 @@ declaration once. Later edits to the supplied document do not change that
122
126
  snapshot; create another evaluator to adopt them. Completeness validation uses
123
127
  one such snapshot for the whole supplied corpus.
124
128
 
125
- The schema contract version is 4.16. Existing schema operations remain available;
129
+ The schema contract version is 4.19; `policy-put` requires `definition` but
130
+ no longer requires a separate `name`. Existing schema operations remain available;
126
131
  `SchemaResult` now also includes `WorkflowPolicyActionResult`. Consumers that
127
132
  exhaustively narrow schema results should handle the `policy_result: true`
128
133
  discriminant. Validation options include `checkCompleteness`, and validation
129
134
  results can contain a `completeness` check.
135
+
136
+ ## Require a meaningful completeness contract
137
+
138
+ A successful completeness check means no applicable field requirement was
139
+ violated. It does not establish that a project declared any requirements.
140
+ The receipt exposes these independent measurements even in counts mode:
141
+
142
+ | Field | Meaning |
143
+ | --- | --- |
144
+ | `declared_requirement_count` | Number of `require_fields` declarations, including operation-specific ones |
145
+ | `state_requirement_count` | Number eligible for a state scan, without operation selectors |
146
+ | `applicable_requirement_count` | Distinct requirements that matched at least one supplied item |
147
+ | `requirement_application_count` | Item/requirement pairs actually evaluated |
148
+ | `governed_items`, `ungoverned_items` | Items with and without a matching state requirement |
149
+ | `contract_status` | `undeclared`, `empty`, `inapplicable`, `partial`, or `covered` |
150
+
151
+ `applied_policy_ids` is bounded by the diagnostic row limit; its truncation flag
152
+ and `applicable_requirement_count` retain the complete total. `covered` describes
153
+ applicability, not compliance: violations are reported independently. Unreadable
154
+ source data still fails the check, regardless of the coverage of readable items.
155
+
156
+ Projects can require a nonempty applied contract with the existing assurance
157
+ primitives. Replace `pm-example` with the accountable item in your workspace:
158
+
159
+ ```bash
160
+ pm assurance put measurement completeness-contract --definition '{"id":"completeness-contract","source":{"kind":"validate","check":"completeness","field":"applicable_requirement_count"}}'
161
+ pm assurance put assertion completeness-contract-required --definition '{"id":"completeness-contract-required","measurement_id":"completeness-contract","owner_item_id":"pm-example","scope":{"kind":"all"},"floor":1,"lifetime":"hold","enforcement":"block","negative_control":{"cases":[{"observed":0,"expected":"fail"},{"observed":1,"expected":"pass"}]}}'
162
+ pm assurance put gate completeness-contract --definition '{"id":"completeness-contract","assertion_ids":["completeness-contract-required"],"triggers":["ci"]}'
163
+ pm assurance run completeness-contract --trigger ci --dry-run
164
+ pm ops validate --check-completeness --strict-exit
165
+ ```
166
+
167
+ Run both checks: the gate requires applicability and validation checks compliance.
168
+ Deleting the last applicable policy fails the gate. For an empty workspace, or a
169
+ contract intended only for a future lifecycle state, measure
170
+ `state_requirement_count` instead. To require coverage of every current item,
171
+ also enforce a zero bound on `ungoverned_items`. Higher per-project floors can
172
+ protect against partial policy deletion; a floor of one only proves at least
173
+ one requirement applies.
@@ -4,12 +4,12 @@ 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: 371
7
+ - Catalog error codes: 374
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: 352
12
- - Coverage fraction: 0.051213
11
+ - Uncovered error codes: 355
12
+ - Coverage fraction: 0.050802
13
13
  - Closed-domain probes: 19
14
14
  - Grammar probes: 101
15
15
 
@@ -169,10 +169,13 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
169
169
  | `invalid_reproducible_process_environment` | `invalid_reproducible_process_environment` | uncovered | none | 0 |
170
170
  | `invalid_workspace_snapshot_target` | `invalid_workspace_snapshot_target` | uncovered | none | 0 |
171
171
  | `item_already_active` | `item_already_active` | uncovered | none | 0 |
172
+ | `item_deleted` | `item_deleted` | uncovered | none | 0 |
172
173
  | `item_document_encoding_invalid` | `item_document_encoding_invalid` | uncovered | none | 0 |
173
174
  | `item_document_invalid` | `item_document_invalid` | uncovered | none | 0 |
174
175
  | `item_document_roundtrip_failed` | `item_document_roundtrip_failed` | uncovered | none | 0 |
175
176
  | `item_id_collision` | `item_id_collision` | uncovered | none | 0 |
177
+ | `item_identity_ambiguous` | `item_identity_ambiguous` | uncovered | none | 0 |
178
+ | `item_identity_conflict` | `item_identity_conflict` | uncovered | none | 0 |
176
179
  | `item_identity_reserved` | `item_identity_reserved` | uncovered | none | 0 |
177
180
  | `item_not_found` | `item_not_found` | uncovered | none | 0 |
178
181
  | `likely_duplicate` | `likely_duplicate` | 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.11"
9
+ "version": "2026.9.12"
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.11",
16
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.10.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-beads",
3
- "version": "2026.9.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.",
@@ -4,6 +4,28 @@ Trackers: [pm-fmy9ih](../../.agents/pm/tasks/pm-fmy9ih.toon), [pm-vjk3](../../.a
4
4
 
5
5
  First-party package that restores optional governance audit surfaces in bare-core `pm`.
6
6
 
7
+ ## Concurrent annotations under strict ownership
8
+
9
+ Tracked by [pm-nrkjik](../../.agents/pm/issues/pm-nrkjik.toon).
10
+
11
+ Merge-safe notes preserve independent entries during merging. Strict ownership
12
+ still applies to writes. For an approved append across owners, install this
13
+ package and use its narrow flag:
14
+
15
+ ```bash
16
+ pm package install governance-audit --project
17
+ pm notes pm-example "Review observation" --allow-audit-comment
18
+ ```
19
+
20
+ The same flag works for `comments` and `learnings`. It permits additions only:
21
+ edit and delete still require ownership, and the existing assignee is preserved.
22
+ For a non-terminal handoff, the current owner runs `pm release <id>`, then the
23
+ new owner runs `pm claim <id>`; claim refuses work still held by another owner.
24
+ This changes the assignee;
25
+ it is a different operation from appending an observation. Bare `--force` remains
26
+ an explicit override requiring approval. Body `append` is not merge-safe and has
27
+ no annotation bypass; use a note when the information is an independent event.
28
+
7
29
  ## Hooks
8
30
 
9
31
  The package also registers default-inert `onRead` and `onWrite` hooks as the
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-governance-audit",
3
- "version": "2026.9.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
3
+ "version": "2026.9.12",
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.11",
4
+ "version": "2026.9.12",
5
5
  "author": {
6
6
  "name": "unbrained",
7
7
  "url": "https://github.com/unbraind/pm-cli"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pm-codex",
3
- "version": "2026.9.11",
3
+ "version": "2026.9.12",
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",