@unbrained/pm-cli 2026.11.4 → 2026.11.5

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 (219) hide show
  1. package/.agents/skills/HARNESS_COMPATIBILITY.md +1 -1
  2. package/.agents/skills/README.md +14 -14
  3. package/.agents/skills/pm-developer/SKILL.md +16 -16
  4. package/.agents/skills/pm-developer/references/GRAPH_AND_RELATIONSHIPS.md +14 -14
  5. package/.agents/skills/pm-developer/references/SCRIPTING_COMPOSITION.md +10 -10
  6. package/.agents/skills/pm-extensions/SKILL.md +13 -13
  7. package/.agents/skills/pm-extensions/references/AUTHORING.md +12 -12
  8. package/.agents/skills/pm-sdk/SKILL.md +27 -27
  9. package/.agents/skills/pm-sdk/references/SURFACE_MAP.md +32 -32
  10. package/.agents/skills/pm-test-audit/references/AUDIT.md +1 -1
  11. package/.agents/skills/pm-user/SKILL.md +35 -35
  12. package/.claude-plugin/marketplace.json +1 -1
  13. package/AGENTS.md +9 -9
  14. package/CHANGELOG.md +9 -0
  15. package/README.md +13 -13
  16. package/dist/cli/register-setup.js +1 -1
  17. package/dist/cli-bundle/bundle-manifest.json +1 -1
  18. package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
  19. package/dist/cli-bundle/chunks/{chunk-NPEDFOVQ.js → chunk-335BZ75D.js} +2 -2
  20. package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
  21. package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
  22. package/dist/cli-bundle/chunks/{chunk-7PGNAHNW.js → chunk-7DEKAXVA.js} +2 -2
  23. package/dist/cli-bundle/chunks/{chunk-3OXQGGRD.js → chunk-7ZRCYESH.js} +42 -41
  24. package/dist/cli-bundle/chunks/{chunk-BWAXA6S4.js → chunk-AUEKTX7V.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-SRDO2NJU.js → chunk-D7KYPRK4.js} +2 -2
  26. package/dist/cli-bundle/chunks/{chunk-ODMJ3HIB.js → chunk-DAX3AOFI.js} +2 -2
  27. package/dist/cli-bundle/chunks/{chunk-L4BKTPJ6.js → chunk-F6NDMKZ4.js} +2 -2
  28. package/dist/cli-bundle/chunks/{chunk-T56MB6SF.js → chunk-FRNMQM45.js} +2 -2
  29. package/dist/cli-bundle/chunks/{chunk-5S6RT5LX.js → chunk-HNGLDMSZ.js} +3 -3
  30. package/dist/cli-bundle/chunks/{chunk-QN7VCOUU.js → chunk-HRCMORE7.js} +2 -2
  31. package/dist/cli-bundle/chunks/{chunk-BK2XAQVC.js → chunk-HRFGFIYU.js} +2 -2
  32. package/dist/cli-bundle/chunks/{chunk-CERNIZLB.js → chunk-JI2GDE4I.js} +42 -42
  33. package/dist/cli-bundle/chunks/{chunk-6T2V3UIK.js → chunk-LS3GI3H4.js} +53 -53
  34. package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
  35. package/dist/cli-bundle/chunks/{chunk-BRIPGUAO.js → chunk-OJDMJT7Y.js} +2 -2
  36. package/dist/cli-bundle/chunks/{chunk-7RCI7AAA.js → chunk-S4LPZ4TN.js} +2 -2
  37. package/dist/cli-bundle/chunks/{chunk-AQ5UHHQS.js → chunk-UEGXWXUZ.js} +2 -2
  38. package/dist/cli-bundle/chunks/{chunk-5BVZ32G7.js → chunk-XLSHFYXZ.js} +2 -2
  39. package/dist/cli-bundle/chunks/{chunk-2GW662DP.js → chunk-YKXATU2G.js} +2 -2
  40. package/dist/cli-bundle/chunks/{item-revision-UAZOBP2Q.js → item-revision-OJJVPQY7.js} +2 -2
  41. package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
  42. package/dist/cli-bundle/chunks/{mutation-admission-QZQI2NN5.js → mutation-admission-INMM3HHG.js} +2 -2
  43. package/dist/cli-bundle/chunks/{register-list-query-P3NOKQUA.js → register-list-query-5Y5JKWU5.js} +2 -2
  44. package/dist/cli-bundle/chunks/{register-mutation-A6I5K5N6.js → register-mutation-WC7OSQID.js} +2 -2
  45. package/dist/cli-bundle/chunks/{register-operations-SPKB3TNM.js → register-operations-PO63DBZH.js} +2 -2
  46. package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
  47. package/dist/cli-bundle/chunks/{stage-L3T725DS.js → stage-E3MMV4TV.js} +2 -2
  48. package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
  49. package/dist/cli-bundle/focused-chunks/{chunk-TFYTTDAK.js → chunk-7KK66ISG.js} +2 -2
  50. package/dist/cli-bundle/focused-chunks/{chunk-Y5GOUUYJ.js → chunk-AHWJPZSJ.js} +2 -2
  51. package/dist/cli-bundle/focused-chunks/{chunk-C7UX2ZI3.js → chunk-C6P6HPCX.js} +2 -2
  52. package/dist/cli-bundle/focused-chunks/{chunk-Q4OIRSKL.js → chunk-CPMSL4HS.js} +2 -2
  53. package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
  54. package/dist/cli-bundle/focused-chunks/{chunk-CO2DNPH7.js → chunk-D2TBEBNW.js} +2 -2
  55. package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
  56. package/dist/cli-bundle/focused-chunks/{chunk-FXFDVM5O.js → chunk-F62XGAAY.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-J7M52SCZ.js → chunk-G5PJCR7R.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
  60. package/dist/cli-bundle/focused-chunks/{chunk-W3CSX6GI.js → chunk-LW64TINU.js} +2 -2
  61. package/dist/cli-bundle/focused-chunks/{chunk-MEJKELWC.js → chunk-M6V7UMWL.js} +3 -3
  62. package/dist/cli-bundle/focused-chunks/{chunk-CXTDEQ3N.js → chunk-MC7IE7D7.js} +2 -2
  63. package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
  64. package/dist/cli-bundle/focused-chunks/{chunk-QEVJ3Y67.js → chunk-MK4HV4JO.js} +2 -2
  65. package/dist/cli-bundle/focused-chunks/{chunk-A2246ZM7.js → chunk-NQ7GYFOX.js} +54 -54
  66. package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
  67. package/dist/cli-bundle/focused-chunks/{chunk-FFO7RBLN.js → chunk-RFTJZ5VB.js} +2 -2
  68. package/dist/cli-bundle/focused-chunks/{chunk-PNPYQDHU.js → chunk-SNOXXRSJ.js} +2 -2
  69. package/dist/cli-bundle/focused-chunks/{chunk-JQS7TYQ6.js → chunk-UPJUTP2V.js} +2 -2
  70. package/dist/cli-bundle/focused-chunks/{chunk-SDLIUZEL.js → chunk-VWWTIX5L.js} +2 -2
  71. package/dist/cli-bundle/focused-chunks/{chunk-J6FDCAMH.js → chunk-XHOBYCVE.js} +2 -2
  72. package/dist/cli-bundle/focused-chunks/{chunk-J3YOATXR.js → chunk-YMGB2O4E.js} +25 -24
  73. package/dist/cli-bundle/focused-chunks/{item-revision-L6GVT42D.js → item-revision-CTDO4H3I.js} +2 -2
  74. package/dist/cli-bundle/focused-chunks/{item-transaction-GYGP264N.js → item-transaction-AEAYVVHA.js} +2 -2
  75. package/dist/cli-bundle/focused-chunks/{mutation-admission-UWTH56OD.js → mutation-admission-4WM7TNHZ.js} +2 -2
  76. package/dist/cli-bundle/focused-chunks/{stage-WRSNJ7VI.js → stage-WV7QXR4C.js} +2 -2
  77. package/dist/cli-bundle/main.js +2 -2
  78. package/dist/cli-bundle/sdk-authoring.js +1 -1
  79. package/dist/cli-bundle/sdk-contracts.js +1 -1
  80. package/dist/cli-bundle/sdk-core.js +1 -1
  81. package/dist/cli-bundle/sdk-governance.js +1 -1
  82. package/dist/cli-bundle/sdk-graph.js +1 -1
  83. package/dist/cli-bundle/sdk-merge.js +57 -57
  84. package/dist/cli-bundle/sdk-query.js +1 -1
  85. package/dist/cli-bundle/sdk-runtime.js +1 -1
  86. package/dist/cli-bundle/sdk-testing.js +1 -1
  87. package/dist/cli-bundle/sdk.js +9 -9
  88. package/dist/core/config/positional-value.d.ts +6 -0
  89. package/dist/core/config/positional-value.js +1 -1
  90. package/dist/core/item/literal-mutation-input.d.ts +17 -0
  91. package/dist/core/item/literal-mutation-input.js +1 -1
  92. package/dist/core/item/parent-reference-policy.d.ts +8 -4
  93. package/dist/core/item/parent-reference-policy.js +1 -1
  94. package/dist/core/item/sprint-release-format.d.ts +2 -1
  95. package/dist/core/item/sprint-release-format.js +1 -1
  96. package/dist/core/output/mutation-projection.js +1 -1
  97. package/dist/core/store/item-mutation-precondition.d.ts +3 -1
  98. package/dist/core/store/item-mutation-precondition.js +1 -1
  99. package/dist/core/store/item-store.js +1 -1
  100. package/dist/core/store/settings.d.ts +14 -0
  101. package/dist/core/store/settings.js +5 -4
  102. package/dist/core/telemetry/policy.d.ts +27 -1
  103. package/dist/core/telemetry/policy.js +1 -1
  104. package/dist/core/telemetry/runtime.d.ts +18 -7
  105. package/dist/core/telemetry/runtime.js +4 -4
  106. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
  107. package/dist/sdk/cli-contracts.d.ts +1 -1
  108. package/dist/sdk/cli-contracts.js +1 -1
  109. package/dist/sdk/config.d.ts +2 -2
  110. package/dist/sdk/config.js +1 -1
  111. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  112. package/dist/sdk/governance/health.d.ts +2 -2
  113. package/dist/sdk/governance/health.js +2 -2
  114. package/dist/sdk/index.d.ts +4 -2
  115. package/dist/sdk/index.js +1 -1
  116. package/dist/sdk/init.d.ts +4 -4
  117. package/dist/sdk/init.js +8 -8
  118. package/dist/sdk/lifecycle/claim.d.ts +4 -0
  119. package/dist/sdk/lifecycle/claim.js +1 -1
  120. package/dist/sdk/lifecycle/close.d.ts +10 -0
  121. package/dist/sdk/lifecycle/close.js +1 -1
  122. package/dist/sdk/lifecycle/create.d.ts +7 -5
  123. package/dist/sdk/lifecycle/create.js +1 -1
  124. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
  125. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  126. package/dist/sdk/lifecycle/update.d.ts +5 -4
  127. package/dist/sdk/lifecycle/update.js +2 -2
  128. package/dist/sdk/public-surface.json +1 -1
  129. package/dist/sdk/runtime/actions.js +1 -1
  130. package/dist/sdk/runtime/mutation-value-validation.js +1 -1
  131. package/dist/sdk/runtime-input.js +1 -1
  132. package/dist/sdk/runtime-primitives.d.ts +1 -0
  133. package/dist/sdk/runtime-primitives.js +1 -1
  134. package/dist/sdk/telemetry.d.ts +1 -1
  135. package/dist/sdk/telemetry.js +2 -2
  136. package/docs/AGENT_GUIDE.md +48 -48
  137. package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
  138. package/docs/ASSURANCE.md +10 -10
  139. package/docs/BOUNDED_CONTEXT_READS.md +3 -3
  140. package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
  141. package/docs/CLI_GRAMMAR.md +2 -2
  142. package/docs/COMMANDS.md +56 -35
  143. package/docs/COMMAND_NAMESPACES.md +1 -1
  144. package/docs/CONFIGURATION.md +82 -71
  145. package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
  146. package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
  147. package/docs/CORPUS_SHAPES.md +1 -1
  148. package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
  149. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
  150. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
  151. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
  152. package/docs/HISTORY_ATTESTATION.md +1 -1
  153. package/docs/HISTORY_MAINTENANCE.md +1 -1
  154. package/docs/LIFECYCLE_COMMANDS.md +1 -1
  155. package/docs/MCP_2026_07_28.md +16 -16
  156. package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
  157. package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
  158. package/docs/MCP_SKILLS_AND_APPS.md +1 -1
  159. package/docs/MERGE_SAFETY.md +6 -6
  160. package/docs/MUTATION_INTEGRITY.md +5 -5
  161. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
  162. package/docs/PACKED_FIRST_RUN.md +1 -1
  163. package/docs/QUICKSTART.md +10 -10
  164. package/docs/README.md +21 -21
  165. package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
  166. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
  167. package/docs/RELEASING.md +19 -10
  168. package/docs/SCRIPTING.md +10 -10
  169. package/docs/SDK.md +74 -38
  170. package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
  171. package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
  172. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
  173. package/docs/TESTING.md +1 -1
  174. package/docs/WORKFLOW_POLICIES.md +2 -2
  175. package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
  176. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  177. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  178. package/docs/generated/FLAG_LEXICON_BUDGETS.md +1 -1
  179. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +1 -1
  180. package/docs/performance/cli-transport-overhead.md +7 -7
  181. package/marketplace.json +1 -1
  182. package/package.json +1 -1
  183. package/packages/pm-beads/package.json +1 -1
  184. package/packages/pm-calendar/package.json +1 -1
  185. package/packages/pm-command-kit/README.md +5 -5
  186. package/packages/pm-command-kit/package.json +1 -1
  187. package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
  188. package/packages/pm-digital-twin/package.json +1 -1
  189. package/packages/pm-governance-audit/package.json +1 -1
  190. package/packages/pm-guide-shell/package.json +1 -1
  191. package/packages/pm-kanban/README.md +1 -1
  192. package/packages/pm-kanban/package.json +1 -1
  193. package/packages/pm-lifecycle-hooks/package.json +1 -1
  194. package/packages/pm-linked-test-adapters/package.json +1 -1
  195. package/packages/pm-search-advanced/package.json +1 -1
  196. package/packages/pm-templates/package.json +1 -1
  197. package/packages/pm-todos/package.json +1 -1
  198. package/packages/pm-vcs/GAP_REPORT.md +1 -1
  199. package/packages/pm-vcs/package.json +1 -1
  200. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  201. package/plugins/pm-claude/README.md +6 -6
  202. package/plugins/pm-claude/package.json +1 -1
  203. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  204. package/plugins/pm-codex/package.json +1 -1
  205. package/plugins/pm-codex/plugin.json +1 -1
  206. package/runtime-dependencies.json +1 -1
  207. package/dist/cli-bundle/chunks/chunk-5Z6LWFDL.js +0 -31
  208. package/dist/cli-bundle/chunks/chunk-DSCFJTHB.js +0 -122
  209. package/dist/cli-bundle/chunks/chunk-QQHMNUZT.js +0 -2
  210. package/dist/cli-bundle/chunks/chunk-TX2W6G37.js +0 -3
  211. package/dist/cli-bundle/chunks/item-transaction-N5F4LXYV.js +0 -2
  212. package/dist/cli-bundle/chunks/register-setup-ZZRHJ4IS.js +0 -2
  213. package/dist/cli-bundle/focused-chunks/chunk-5NGNO54M.js +0 -44
  214. package/dist/cli-bundle/focused-chunks/chunk-B6U44WPW.js +0 -2
  215. package/dist/cli-bundle/focused-chunks/chunk-BAW3DGQO.js +0 -91
  216. package/dist/cli-bundle/focused-chunks/chunk-BHNY3KPJ.js +0 -2
  217. package/dist/cli-bundle/focused-chunks/chunk-CBG67HUP.js +0 -23
  218. package/dist/cli-bundle/focused-chunks/chunk-FEPE2CE4.js +0 -2
  219. package/dist/cli-bundle/focused-chunks/chunk-PMKR4MJI.js +0 -2
package/docs/SCRIPTING.md CHANGED
@@ -6,16 +6,16 @@ Use this contract when composing `pm` with shells, CI runners, `jq`, or another
6
6
 
7
7
  ## Process Contract
8
8
 
9
- | Exit | Meaning | Script response |
10
- | ---- | -------------------------------------------------------------------------------- | ---------------------------------------------------- |
11
- | `0` | The requested operation completed. A successful read may still return zero rows. | Parse stdout. |
12
- | `1` | Runtime or unexpected failure. | Preserve stderr and stop. |
13
- | `2` | Invalid flags, values, or command composition. | Correct the invocation; do not retry unchanged. |
14
- | `3` | Requested tracker or resource was not found. | Correct the path or ID. |
15
- | `4` | State or concurrency conflict. | Refresh live state before deciding whether to retry. |
16
- | `5` | A required dependency operation failed. | Inspect the dependency evidence before retrying. |
17
- | `6` | The request succeeded but matched nothing to change. | Treat as success and inspect the effect receipt. |
18
- | `7` | The request succeeded and changed only part of the selected targets. | Treat as success and inspect unmatched/skipped rows. |
9
+ | Exit | Meaning | Script response |
10
+ |---|---|---|
11
+ | `0` | The requested operation completed. A successful read may still return zero rows. | Parse stdout. |
12
+ | `1` | Runtime or unexpected failure. | Preserve stderr and stop. |
13
+ | `2` | Invalid flags, values, or command composition. | Correct the invocation; do not retry unchanged. |
14
+ | `3` | Requested tracker or resource was not found. | Correct the path or ID. |
15
+ | `4` | State or concurrency conflict. | Refresh live state before deciding whether to retry. |
16
+ | `5` | A required dependency operation failed. | Inspect the dependency evidence before retrying. |
17
+ | `6` | The request succeeded but matched nothing to change. | Treat as success and inspect the effect receipt. |
18
+ | `7` | The request succeeded and changed only part of the selected targets. | Treat as success and inspect unmatched/skipped rows. |
19
19
 
20
20
  Exits `0`, `6`, and `7` are successful outcomes. Bulk mutation envelopes repeat
21
21
  the distinction as `outcome: effect`, `outcome: no_effect`, or `outcome:
package/docs/SDK.md CHANGED
@@ -107,19 +107,19 @@ Choose the narrowest stable entrypoint that owns the capability you need. This
107
107
  keeps package startup and memory proportional to its purpose while the aggregate
108
108
  barrel remains source-compatible:
109
109
 
110
- | Package export | Intended capability family |
111
- | ------------------------------------------- | -------------------------------------------------------------------------- |
112
- | `@unbrained/pm-cli/sdk/authoring` | Extension blueprints, builders, manifests, and package-author helpers |
113
- | `@unbrained/pm-cli/sdk/contracts` | Static CLI command/action contracts and expected-error protocol |
114
- | `@unbrained/pm-cli/sdk/core` | Broad item, schema, profile, transaction, and runtime primitives |
115
- | `@unbrained/pm-cli/sdk/governance` | Validation, health, garbage collection, and transaction cleanup |
116
- | `@unbrained/pm-cli/sdk/graph` | Relationship stores, graph assembly, traversal, analytics, and remediation |
117
- | `@unbrained/pm-cli/sdk/merge` | VCS-neutral tracker merge contracts |
118
- | `@unbrained/pm-cli/sdk/query` | List/search engines, filtering, pagination, and query rendering |
119
- | `@unbrained/pm-cli/sdk/runtime` | Embedded command execution and package runtime helpers |
120
- | `@unbrained/pm-cli/sdk/testing` | Package and extension assertion/invocation helpers |
121
- | `@unbrained/pm-cli/sdk/public-surface.json` | Published machine-readable SDK compatibility snapshot |
122
- | `@unbrained/pm-cli/sdk` | Compatibility aggregate containing every supported SDK export |
110
+ | Package export | Intended capability family |
111
+ |---|---|
112
+ | `@unbrained/pm-cli/sdk/authoring` | Extension blueprints, builders, manifests, and package-author helpers |
113
+ | `@unbrained/pm-cli/sdk/contracts` | Static CLI command/action contracts and expected-error protocol |
114
+ | `@unbrained/pm-cli/sdk/core` | Broad item, schema, profile, transaction, and runtime primitives |
115
+ | `@unbrained/pm-cli/sdk/governance` | Validation, health, garbage collection, and transaction cleanup |
116
+ | `@unbrained/pm-cli/sdk/graph` | Relationship stores, graph assembly, traversal, analytics, and remediation |
117
+ | `@unbrained/pm-cli/sdk/merge` | VCS-neutral tracker merge contracts |
118
+ | `@unbrained/pm-cli/sdk/query` | List/search engines, filtering, pagination, and query rendering |
119
+ | `@unbrained/pm-cli/sdk/runtime` | Embedded command execution and package runtime helpers |
120
+ | `@unbrained/pm-cli/sdk/testing` | Package and extension assertion/invocation helpers |
121
+ | `@unbrained/pm-cli/sdk/public-surface.json` | Published machine-readable SDK compatibility snapshot |
122
+ | `@unbrained/pm-cli/sdk` | Compatibility aggregate containing every supported SDK export |
123
123
 
124
124
  `@unbrained/pm-cli/cli` is the supported embeddable CLI entrypoint and exports
125
125
  only `runPmCli`. Repository tests import their internal seams from source; those
@@ -177,6 +177,13 @@ preflight refusal. An absent property gives no guarantee about writes; do not
177
177
  coerce it to `false` or treat an executed failure as safe to retry. Consumers
178
178
  that enumerate error keys should accept the additional optional property.
179
179
 
180
+ The telemetry consent update (pm-gh1660) records two conservative breaking
181
+ acknowledgements. `WriteSettingsOptions` gains optional `omitSections` and
182
+ `skipIfStored`; existing calls compile and behave unchanged. `ConfigResult.values`
183
+ becomes `Partial`, because project-scope `list` and `export` omit the global-only
184
+ `telemetry_tracking` key: treat that key as possibly absent, and read consent
185
+ from a global-scope export. No data migration or new dependency bounds are needed.
186
+
180
187
  Validation refusals for item status and priority carry producer-owned
181
188
  `code: "invalid_argument_value"` and `context.field`, `context.value` and
182
189
  `context.allowed`. The allowed spellings come from the active status schema or
@@ -228,7 +235,7 @@ entrypoint from [Import Surfaces](#import-surfaces) for direct primitives.
228
235
  Use these focused guides to choose the primitive and understand its policy:
229
236
 
230
237
  | Capability | Reference |
231
- | --- | --- |
238
+ |---|---|
232
239
  | Item lifecycle, schema, profiles and initialization | [Customization primitives](SDK_CUSTOMIZATION_PRIMITIVES.md), [Lifecycle](SDK_LIFECYCLE.md) |
233
240
  | History, whole-item input, transactions and previews | [Audited mutations](SDK_AUDITED_MUTATIONS.md), [Atomic transactions](#atomic-workspace-transactions), [Schema evolution](#schema-evolution-and-workspace-history) |
234
241
  | Context ranking, packing, memory and evaluation | [Context relevance](#context-relevance-and-evaluation), [Context coordination](SDK_CONTEXT_COORDINATION.md) |
@@ -1220,8 +1227,31 @@ SDK `create`, `update`, and `append` inputs are data: `"-"` remains text,
1220
1227
  file. This also applies to the corresponding `runCreate`, `runUpdate`,
1221
1228
  `runAppend` operations and update-many mutation values. Normal field validation,
1222
1229
  whitespace handling, structured collection syntax, and project schemas still
1223
- apply. Clear fields explicitly with `unset: ["assignee"]` or the declared
1224
- `clear*` collection options; JavaScript `null` is not an unset directive.
1230
+ apply. Clear a scalar field with `unset: ["assignee"]`, or pass JavaScript
1231
+ `null` for any option the command's `unset` list covers: `{ parent: null }` is
1232
+ `unset: ["parent"]`, and `tags: null` clears the tags (`tags` takes a CSV string,
1233
+ not an array, and has no `clearTags`).
1234
+ The nullable keys are exactly the unset table's option keys
1235
+ (`CreateNullClearableOptionKey`, `UpdateNullClearableOptionKey`). `rank` is only
1236
+ an unset alias of `order`, so `rank: null` is refused (pass `order: null`), and
1237
+ create accepts `unset: ["author"]` but refuses `author: null`. `null` on any
1238
+ other option (`title`, `author`, collection options such as `comment` or `dep`)
1239
+ refuses by name; clear collections with their `clear*` options. When typed input
1240
+ stores a former clear sentinel (`"none"`, `"null"` or `"-"`) in a clearable
1241
+ field, the result warns `literal_sentinel_stored:<field>:<value>`: the value is
1242
+ now data (an assignee called `none`). The advisory appears only while the
1243
+ document pm committed and recorded in history still holds the value, so an
1244
+ `item_store_write` override that rewrites stored contents can drop it from
1245
+ storage while the advisory still reports it. Typed SDK and MCP refusals name the
1246
+ option key and the `unset` remedy both accept, for example `parent must not be
1247
+ the placeholder "none". Pass unset: ["parent"] to clear it, or omit parent.`;
1248
+ CLI refusals keep their flag wording. `PmCreateActionOptions`,
1249
+ `PmUpdateActionOptions`, `CreateOperationOptions` and `UpdateOperationOptions`
1250
+ type the clearable fields as nullable, so `runCreate`/`runUpdate` accept the
1251
+ same input as `PmClient.create`/`update`. A direct SDK `runUpdateMany` folds a
1252
+ null in its update record like `runUpdate`, but `runAction("update-many")` drops
1253
+ it (pm-w7clh6), so `PmUpdateManyActionOptions` stays non-nullable: use `unset`
1254
+ there and in MCP tools.
1225
1255
  CLI adapters retain `--description -`, append stdin, file flags, and legacy
1226
1256
  clear-token compatibility. Values inside CLI `--stdin-json` documents are
1227
1257
  literal data, including `"none"` and `"null"`. Explicit CLI flags override
@@ -1236,7 +1266,7 @@ For example, `estimatedMinutes` requires `"45"`, while `priority` accepts a
1236
1266
  string or finite number. JavaScript and JSON bridge callers must correct invalid
1237
1267
  types instead of relying on coercion. Integrations that previously used `"-"`
1238
1268
  to request stdin should read that input themselves and pass the resulting text;
1239
- integrations that used `"none"` to clear must migrate to `unset`.
1269
+ integrations that used `"none"` to clear must migrate to `unset` or `null`.
1240
1270
  Direct `runCreate`/`runUpdate` calls require the declared string arrays for
1241
1271
  repeatable fields. Generic action dispatch retains its documented scalar-to-array
1242
1272
  normalization before invoking those operations.
@@ -1433,7 +1463,13 @@ and `close-many` keep their partial-success semantics: a stale row fails with
1433
1463
  `error_code: "item_revision_conflict"` plus its `expected_revision`,
1434
1464
  `current_revision` and the same `details` (`changes_since`,
1435
1465
  `changes_since_omitted`) a single-item refusal carries, while fresh rows
1436
- proceed. When a peer writes while `restore` or history maintenance waits for
1466
+ proceed. The exported `ItemRevisionConflictRowFields` type declares those row
1467
+ fields; `HistoryCompactBulkItemResult` and `HistoryRepairAllStreamResult` extend
1468
+ it. When an `item_store_write` or `item_store_delete` override transforms,
1469
+ redirects or skips a guarded write, the scope advances to the revision read back
1470
+ from storage under the item lock: its own next write is admitted, a competing
1471
+ one refuses. If the item cannot be read back, or its embedded id was rewritten,
1472
+ the next guarded write refuses (fail closed). When a peer writes while `restore` or history maintenance waits for
1437
1473
  its lock, a declared revision turns the generic drift refusal into this typed
1438
1474
  conflict. Linked-test result recording (`test --run`, `test-all` with
1439
1475
  `test_result_tracking` enabled) stays best-effort, except that a stale declared
@@ -2668,25 +2704,25 @@ For provider-safe schemas, use `PM_PROVIDER_TOOL_PARAMETERS_SCHEMA`. It is flat
2668
2704
 
2669
2705
  ## Capability Requirements
2670
2706
 
2671
- | Registration | Manifest capability |
2672
- | ---------------------------- | ------------------- |
2673
- | `registerCommand` | `commands` |
2674
- | inline command flags | `schema` |
2675
- | `registerFlags` | `schema` |
2676
- | `registerItemFields` | `schema` |
2677
- | `registerItemTypes` | `schema` |
2678
- | `registerRelationshipKinds` | `schema` |
2679
- | `registerMigration` | `schema` |
2680
- | `registerProfile` | `schema` |
2681
- | `registerImporter` | `importers` |
2682
- | `registerExporter` | `importers` |
2683
- | `registerParser` | `parser` |
2684
- | `registerPreflight` | `preflight` |
2685
- | `registerService` | `services` |
2686
- | `registerRenderer` | `renderers` |
2687
- | lifecycle hooks | `hooks` |
2688
- | `registerSearchProvider` | `search` |
2689
- | `registerVectorStoreAdapter` | `search` |
2707
+ | Registration | Manifest capability |
2708
+ |---|---|
2709
+ | `registerCommand` | `commands` |
2710
+ | inline command flags | `schema` |
2711
+ | `registerFlags` | `schema` |
2712
+ | `registerItemFields` | `schema` |
2713
+ | `registerItemTypes` | `schema` |
2714
+ | `registerRelationshipKinds` | `schema` |
2715
+ | `registerMigration` | `schema` |
2716
+ | `registerProfile` | `schema` |
2717
+ | `registerImporter` | `importers` |
2718
+ | `registerExporter` | `importers` |
2719
+ | `registerParser` | `parser` |
2720
+ | `registerPreflight` | `preflight` |
2721
+ | `registerService` | `services` |
2722
+ | `registerRenderer` | `renderers` |
2723
+ | lifecycle hooks | `hooks` |
2724
+ | `registerSearchProvider` | `search` |
2725
+ | `registerVectorStoreAdapter` | `search` |
2690
2726
 
2691
2727
  Some override surfaces are single-winner: command overrides, parser overrides,
2692
2728
  preflight overrides, and output renderers. Preflight overrides can declare
@@ -3717,7 +3753,7 @@ const report = assertExtensionPreflight(blueprint, {
3717
3753
  When a custom harness needs individual registries, use this ownership map:
3718
3754
 
3719
3755
  | Surface | Registry from `activateExtensionForTest` | Assertion / invocation |
3720
- | --- | --- | --- |
3756
+ |---|---|---|
3721
3757
  | Commands, schema types/fields, migrations, importers/exporters, search/vector providers | `registrations` | `assertRegisteredCommandContract`, corresponding `assertRegistered*` |
3722
3758
  | Command overrides | `commands` | `assertRegisteredCommandOverride`, `runRegisteredCommandOverrideForTest` |
3723
3759
  | Parser overrides | `parsers` | `assertRegisteredParserOverride`, `runRegisteredParserOverrideForTest` |
@@ -49,7 +49,7 @@ description.
49
49
  ## Channel behavior
50
50
 
51
51
  | Artifact channel | Default receipt | stdout | stderr |
52
- | --- | --- | --- | --- |
52
+ |---|---|---|---|
53
53
  | `stdout` | `suppress` | Artifact bytes only | Extension-owned diagnostics or summary |
54
54
  | `file` | `render` | Bounded structured receipt | Extension-owned diagnostics |
55
55
 
@@ -35,7 +35,7 @@ inline tracker-not-initialized message anywhere under `src/sdk`.
35
35
  ## Promotion Partition
36
36
 
37
37
  | Promotion item | Primitive family | Primary private domains to promote |
38
- | --- | --- | --- |
38
+ |---|---|---|
39
39
  | [pm-98cz](../.agents/pm/features/pm-98cz.toon) | Item lifecycle | `core/item`, `core/store`, `core/lock`, mutation checkpoints |
40
40
  | [pm-rjqr](../.agents/pm/features/pm-rjqr.toon) | Query and read | `core/search`, read projections, context/next/list/get aggregation |
41
41
  | [pm-zwpp](../.agents/pm/features/pm-zwpp.toon) | Annotations and links | comments, notes, learnings, files, docs, deps, append metadata |
@@ -48,7 +48,7 @@ inline tracker-not-initialized message anywhere under `src/sdk`.
48
48
  ## Command Family Map
49
49
 
50
50
  | CLI/MCP source family | SDK destination | Notes |
51
- | --- | --- | --- |
51
+ |---|---|---|
52
52
  | `create`, `update`, `update-many`, `copy`, `delete`, `restore` | [pm-98cz](../.agents/pm/features/pm-98cz.toon) | Item CRUD and replay paths should become typed lifecycle SDK calls. |
53
53
  | `claim`, `release`, `focus`, lifecycle shortcut helpers | [pm-98cz](../.agents/pm/features/pm-98cz.toon) | Ownership and actionable-state changes belong beside lifecycle primitives. |
54
54
  | `list`, `get`, `search`, `context`, `next`, `aggregate`, `stats` | [pm-rjqr](../.agents/pm/features/pm-rjqr.toon) | `list` and `search` implementations now live under `src/sdk/query/**`; remaining read models should follow the same SDK-owned pattern. |
@@ -17,13 +17,13 @@ Use `pm contracts --summary --json` for the bounded bootstrap and `pm contracts
17
17
 
18
18
  The read primitives accept `--for <intent>`:
19
19
 
20
- | Command | Built-in intent | Purpose |
21
- | ----------------------- | ------------------- | ------------------------------------------------ |
22
- | `context` | `orient`, `handoff` | Active hierarchy or continuation context |
23
- | `get` | `inspect` | Complete item lifecycle and relationship context |
24
- | `list` and list aliases | `triage` | Compact governance and ownership fields |
25
- | `next` | `execute` | One actionable recommendation |
26
- | `search` | `discover` | Ranked canonical-lineage candidates |
20
+ | Command | Built-in intent | Purpose |
21
+ |---|---|---|
22
+ | `context` | `orient`, `handoff` | Active hierarchy or continuation context |
23
+ | `get` | `inspect` | Complete item lifecycle and relationship context |
24
+ | `list` and list aliases | `triage` | Compact governance and ownership fields |
25
+ | `next` | `execute` | One actionable recommendation |
26
+ | `search` | `discover` | Ranked canonical-lineage candidates |
27
27
 
28
28
  Explicit projection and token flags win over intent defaults:
29
29
 
package/docs/TESTING.md CHANGED
@@ -280,7 +280,7 @@ required CI asks for as few runners as the proofs allow
280
280
  ([pm-m6ig79](../.agents/pm/issues/pm-m6ig79.toon)):
281
281
 
282
282
  | Job | Runs |
283
- | --- | --- |
283
+ |---|---|
284
284
  | `Build foundation (Ubuntu, Node 24)` | Build, `dist` artifact, packed tarball. |
285
285
  | `Packed runtime (<os>)` × 3 | Packed first run on Node 22.18.0 and 24 in isolated prefixes, dist version smoke; Ubuntu adds the Node 22 telemetry and snapshot regressions, macOS the native shell and portability checks, Windows the full npm npx and Bun bunx acceptance. |
286
286
  | `Gates (static)` | Typecheck, version, changelog, secret scan, `pnpm lint` (`quality:static`), package artifact, token budgets, tracker merge-safety and assurance gates. |
@@ -40,7 +40,7 @@ match the destination; other selectors inspect both snapshots so a mutation cann
40
40
  escape a protected scope by removing its tag or changing its type.
41
41
 
42
42
  | Rule kind | Required properties | Behavior |
43
- | --- | --- | --- |
43
+ |---|---|---|
44
44
  | `require_fields` | `fields` | Checks evidence on lifecycle, scope, or required-field changes |
45
45
  | `transition` | `allowed` | Allows listed `[from, to]` status pairs; `$create` and `$delete` represent absent records |
46
46
  | `authors` | `authors` | Requires a listed mutation actor |
@@ -153,7 +153,7 @@ violated. It does not establish that a project declared any requirements.
153
153
  The receipt exposes these independent measurements even in counts mode:
154
154
 
155
155
  | Field | Meaning |
156
- | --- | --- |
156
+ |---|---|
157
157
  | `declared_requirement_count` | Number of `require_fields` declarations, including operation-specific ones |
158
158
  | `state_requirement_count` | Number eligible for a state scan, without operation selectors |
159
159
  | `applicable_requirement_count` | Distinct requirements that matched at least one supplied item |
@@ -69,14 +69,14 @@ tokenized recovery actions.
69
69
 
70
70
  Recovery precedence is intentional:
71
71
 
72
- | State | Next action | Why it comes first |
73
- | ------------------------------- | ------------------------------------------ | ------------------------------------------------------------------------- |
74
- | `merge_evidence_invalid` | `pm merge report` | Untrusted evidence must be inspected before it can drive repair. |
75
- | `history_evidence_invalid` | `pm validate --check-history-drift --full` | Required history evidence could not be interpreted safely. |
76
- | `merge_reconciliation_required` | `pm merge reconcile` | Pending scalar decisions can explain and settle merge-created divergence. |
77
- | `history_repair_required` | `pm history-repair --all` | Remaining append-only drift needs an audited re-anchor. |
78
- | `merge_fence_unprepared` | `pm merge install` | The committed fence or clone-local drivers are absent or drifted. |
79
- | `ready` | none | All included readiness predicates passed. |
72
+ | State | Next action | Why it comes first |
73
+ |---|---|---|
74
+ | `merge_evidence_invalid` | `pm merge report` | Untrusted evidence must be inspected before it can drive repair. |
75
+ | `history_evidence_invalid` | `pm validate --check-history-drift --full` | Required history evidence could not be interpreted safely. |
76
+ | `merge_reconciliation_required` | `pm merge reconcile` | Pending scalar decisions can explain and settle merge-created divergence. |
77
+ | `history_repair_required` | `pm history-repair --all` | Remaining append-only drift needs an audited re-anchor. |
78
+ | `merge_fence_unprepared` | `pm merge install` | The committed fence or clone-local drivers are absent or drifted. |
79
+ | `ready` | none | All included readiness predicates passed. |
80
80
 
81
81
  `pm health --strict-exit` also treats missing clone-local merge drivers as blocking. Default health remains advisory for never-installed drivers so ordinary diagnostics retain backward compatibility.
82
82
 
@@ -5,7 +5,7 @@ Tracker: `pm-kxci8x`.
5
5
  This file is generated from `PM_COMMAND_CAPABILITY_CONTRACTS`. Do not edit it manually.
6
6
 
7
7
  | Capability family | Commands |
8
- | --- | --- |
8
+ |---|---|
9
9
  | workspace | `workspace init`, `workspace config`, `workspace merge`, `workspace schema`, `workspace profile`, `ops telemetry`, `ops health`, `ops gc`, `workspace` |
10
10
  | intake | `create`, `item`, `item copy`, `context focus`, `history restore` |
11
11
  | context | `list`, `aggregate`, `context`, `get`, `search`, `item duplicates`, `ops eval`, `context next`, `history activity`, `ops stats`, `help` |
@@ -3,7 +3,7 @@
3
3
  This file is generated from `PM_COMMAND_CAPABILITY_CONTRACTS`. Do not edit it manually.
4
4
 
5
5
  | Command | Minimum visibility tier | Capability family |
6
- | --- | --- | --- |
6
+ |---|---|---|
7
7
  | `init` | core | workspace |
8
8
  | `workspace init` | core | workspace |
9
9
  | `config` | standard | workspace |
@@ -3,7 +3,7 @@
3
3
  This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not consume canonical budget.
4
4
 
5
5
  | Command | Capability family | Canonical flags | Maximum |
6
- | --- | --- | ---: | ---: |
6
+ |---|---|---:|---:|
7
7
  | `init` | workspace | 31 | 31 |
8
8
  | `item` | intake | 21 | 21 |
9
9
  | `config` | workspace | 37 | 37 |
@@ -14,7 +14,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
14
14
  - Grammar probes: 117
15
15
 
16
16
  | Error code | Canonical code | Disposition | Evidence kinds | Probe count |
17
- | --- | --- | --- | --- | --- |
17
+ |---|---|---|---|---|
18
18
  | `acceptance_criteria_mutation_conflict` | `acceptance_criteria_mutation_conflict` | uncovered | none | 0 |
19
19
  | `acceptance_criteria_remove_unmatched` | `acceptance_criteria_remove_unmatched` | uncovered | none | 0 |
20
20
  | `acceptance_criteria_semicolon_forbidden` | `acceptance_criteria_semicolon_forbidden` | uncovered | none | 0 |
@@ -18,14 +18,14 @@ fails closed when a budget exists. Admission adds a fixed 512 KiB noise margin
18
18
  without changing the committed budget; a majority persistent increase beyond
19
19
  that bounded margin still fails.
20
20
 
21
- | Command | best | p50 | p95 |
22
- | --------- | -----: | -----: | -----: |
23
- | `get` | 269 ms | 316 ms | 388 ms |
24
- | `list` | 315 ms | 354 ms | 357 ms |
21
+ | Command | best | p50 | p95 |
22
+ |---|---:|---:|---:|
23
+ | `get` | 269 ms | 316 ms | 388 ms |
24
+ | `list` | 315 ms | 354 ms | 357 ms |
25
25
  | `context` | 326 ms | 345 ms | 428 ms |
26
- | `next` | 332 ms | 339 ms | 352 ms |
27
- | `create` | 298 ms | 317 ms | 326 ms |
28
- | `claim` | 312 ms | 331 ms | 350 ms |
26
+ | `next` | 332 ms | 339 ms | 352 ms |
27
+ | `create` | 298 ms | 317 ms | 326 ms |
28
+ | `claim` | 312 ms | 331 ms | 350 ms |
29
29
 
30
30
  ## Current attribution
31
31
 
package/marketplace.json CHANGED
@@ -1 +1 @@
1
- {"name":"pm","owner":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"description":"Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.","version":"2026.11.4","plugins":[{"name":"pm-claude","source":"./plugins/pm-claude","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 workflow skills with slash invocations, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.","version":"2026.11.4","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","project-management","mcp","tasks","agents","workflows","git-native","task-tracker","ai"],"category":"productivity"}]}
1
+ {"name":"pm","owner":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"description":"Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.","version":"2026.11.5","plugins":[{"name":"pm-claude","source":"./plugins/pm-claude","description":"Native pm CLI integration for Claude Code — 32 MCP tools, 14 workflow skills with slash invocations, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.","version":"2026.11.5","author":{"name":"unbrained","url":"https://github.com/unbraind/pm-cli"},"homepage":"https://github.com/unbraind/pm-cli","repository":"https://github.com/unbraind/pm-cli","license":"MIT","keywords":["pm-cli","project-management","mcp","tasks","agents","workflows","git-native","task-tracker","ai"],"category":"productivity"}]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.11.4",
3
+ "version": "2026.11.5",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.28.5",
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-beads","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for importing Beads JSONL records.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-beads"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","beads"],"pm":{"aliases":["beads"],"extensions":["extensions/beads"],"catalog":{"display_name":"Beads Import","category":"migration","summary":"Import Beads JSONL records into pm while preserving source IDs.","tags":["migration","beads","import"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-beads","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for importing Beads JSONL records.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-beads"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","beads"],"pm":{"aliases":["beads"],"extensions":["extensions/beads"],"catalog":{"display_name":"Beads Import","category":"migration","summary":"Import Beads JSONL records into pm while preserving source IDs.","tags":["migration","beads","import"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-beads","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-calendar","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for calendar and agenda views.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-calendar"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","calendar","agenda"],"pm":{"aliases":["calendar"],"extensions":["extensions/calendar"],"catalog":{"display_name":"Calendar Views","category":"workflow","summary":"Show agenda, day, week, and month views for deadlines, reminders, and scheduled events.","tags":["calendar","agenda","workflow"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-calendar","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for calendar and agenda views.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-calendar"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","calendar","agenda"],"pm":{"aliases":["calendar"],"extensions":["extensions/calendar"],"catalog":{"display_name":"Calendar Views","category":"workflow","summary":"Show agenda, day, week, and month views for deadlines, reminders, and scheduled events.","tags":["calendar","agenda","workflow"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-calendar","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -6,11 +6,11 @@ command-facing SDK registration APIs in their smallest complete form.
6
6
 
7
7
  ## What it demonstrates
8
8
 
9
- | API | What the exemplar does |
10
- | ----------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
11
- | `api.registerCommand(definition)` | Registers `pm command-kit echo` with a FULL `CommandDefinition`: `name`, `action`, `tier`, `family`, `description`, `intent`, `arguments` (required variadic positional), `flags`, `examples`, `failure_hints`, and a pure `run` handler. |
12
- | `api.registerParser(command, override)` | Preprocesses parsed options before the handler runs: rewrites the deprecated `--shout` alias to `--upper`, coerces `--repeat` to a positive integer, and trims/dedupes `--decorations` values. The override returns a delta (`{ options }`) that is merged over the parsed input. |
13
- | `api.registerFlags(targetCommand, flags)` | Injects an inert, namespaced `--kit-note <text>` flag into the EXISTING core `pm list` command — the pattern for augmenting commands you do not own. |
9
+ | API | What the exemplar does |
10
+ |---|---|
11
+ | `api.registerCommand(definition)` | Registers `pm command-kit echo` with a FULL `CommandDefinition`: `name`, `action`, `tier`, `family`, `description`, `intent`, `arguments` (required variadic positional), `flags`, `examples`, `failure_hints`, and a pure `run` handler. |
12
+ | `api.registerParser(command, override)` | Preprocesses parsed options before the handler runs: rewrites the deprecated `--shout` alias to `--upper`, coerces `--repeat` to a positive integer, and trims/dedupes `--decorations` values. The override returns a delta (`{ options }`) that is merged over the parsed input. |
13
+ | `api.registerFlags(targetCommand, flags)` | Injects an inert, namespaced `--kit-note <text>` flag into the EXISTING core `pm list` command — the pattern for augmenting commands you do not own. |
14
14
 
15
15
  ## Install
16
16
 
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-command-kit","version":"2026.11.4","private":true,"type":"module","description":"First-party pm exemplar package for the commands capability: registerCommand, registerFlags, and registerParser.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-command-kit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","commands","exemplar"],"pm":{"aliases":["command-kit"],"extensions":["extensions/command-kit"],"catalog":{"display_name":"Command Kit Exemplar","category":"sdk","summary":"Copy-paste-able exemplar for registerCommand, registerFlags, and registerParser.","tags":["sdk","commands","parser","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-command-kit","version":"2026.11.5","private":true,"type":"module","description":"First-party pm exemplar package for the commands capability: registerCommand, registerFlags, and registerParser.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-command-kit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","commands","exemplar"],"pm":{"aliases":["command-kit"],"extensions":["extensions/command-kit"],"catalog":{"display_name":"Command Kit Exemplar","category":"sdk","summary":"Copy-paste-able exemplar for registerCommand, registerFlags, and registerParser.","tags":["sdk","commands","parser","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-command-kit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -5,22 +5,22 @@ phase-two acceptance inventory for
5
5
  [pm-8ngt](../../.agents/pm/stories/pm-8ngt.toon) and the SDK-first epic
6
6
  [pm-usfg](../../.agents/pm/epics/pm-usfg.toon).
7
7
 
8
- | Domain need | Public primitive used | Result | Canonical lineage |
9
- | --------------------------------------------- | ------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------- | ------------------------------------------------- |
10
- | Stable facility and asset identities | `PmClient.create/get/list`, custom item types and fields, project profiles | Complete | [pm-3mna](../../.agents/pm/features/pm-3mna.toon) |
11
- | Attributable immutable observations | `RelationshipEventStore.append`, custom payloads, optimistic versions | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
12
- | Crash-consistent identity plus initial event | `commitWorkspaceTransaction` with idempotent inspect/apply/compensate steps | Complete | [pm-4e12](../../.agents/pm/features/pm-4e12.toon) |
13
- | Typed containment, flow, and utility topology | `RelationshipKindRegistry`, `RelationshipGraph`, package-contributed kinds | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
14
- | Current and point-in-time state | Event-time replay plus `RelationshipEventLog.snapshot` | Complete; late-arrival correctness fixed by [pm-j3swnb](../../.agents/pm/issues/pm-j3swnb.toon) | [pm-hib1](../../.agents/pm/features/pm-hib1.toon) |
15
- | Topology blast radius | `analyzeGraphImpact` with bounds and exact paths | Complete | [pm-7ob5](../../.agents/pm/features/pm-7ob5.toon) |
16
- | Domain invariants | Package-owned pure policies over SDK graph and replay projections | Complete | [pm-xc68](../../.agents/pm/features/pm-xc68.toon) |
17
- | Corrections without rewriting history | `supersede` events plus explicit `supersedes_event_id` provenance | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
18
- | Schema evolution | Versioned event payload normalization with explicit unsupported-version findings | Complete for exemplar; general bulk schema migration remains planned | [pm-dijg](../../.agents/pm/features/pm-dijg.toon) |
19
- | Offline and federated replicas | Deterministic event-time merge, idempotent identical-event skips, explicit content conflicts | Complete at package boundary; cross-workspace transport remains planned | [pm-is1a](../../.agents/pm/features/pm-is1a.toon) |
20
- | Atomic bulk import | `RelationshipEventStore.appendBatch` validation and atomic replacement | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
21
- | Tamper evidence and restore | Canonical SHA-256 checkpoints plus full durable replay | Complete at package boundary | [pm-klo8](../../.agents/pm/features/pm-klo8.toon) |
22
- | Bounded shell export | Compact JSON command result, explicit limit and truncation | Complete | [pm-646c](../../.agents/pm/features/pm-646c.toon) |
23
- | Live cross-process subscription | Durable store can be reopened and paged, but follow-mode subscription is intentionally outside this exemplar | Existing planned capability; no duplicate filed | [pm-e200](../../.agents/pm/features/pm-e200.toon) |
8
+ | Domain need | Public primitive used | Result | Canonical lineage |
9
+ |---|---|---|---|
10
+ | Stable facility and asset identities | `PmClient.create/get/list`, custom item types and fields, project profiles | Complete | [pm-3mna](../../.agents/pm/features/pm-3mna.toon) |
11
+ | Attributable immutable observations | `RelationshipEventStore.append`, custom payloads, optimistic versions | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
12
+ | Crash-consistent identity plus initial event | `commitWorkspaceTransaction` with idempotent inspect/apply/compensate steps | Complete | [pm-4e12](../../.agents/pm/features/pm-4e12.toon) |
13
+ | Typed containment, flow, and utility topology | `RelationshipKindRegistry`, `RelationshipGraph`, package-contributed kinds | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
14
+ | Current and point-in-time state | Event-time replay plus `RelationshipEventLog.snapshot` | Complete; late-arrival correctness fixed by [pm-j3swnb](../../.agents/pm/issues/pm-j3swnb.toon) | [pm-hib1](../../.agents/pm/features/pm-hib1.toon) |
15
+ | Topology blast radius | `analyzeGraphImpact` with bounds and exact paths | Complete | [pm-7ob5](../../.agents/pm/features/pm-7ob5.toon) |
16
+ | Domain invariants | Package-owned pure policies over SDK graph and replay projections | Complete | [pm-xc68](../../.agents/pm/features/pm-xc68.toon) |
17
+ | Corrections without rewriting history | `supersede` events plus explicit `supersedes_event_id` provenance | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
18
+ | Schema evolution | Versioned event payload normalization with explicit unsupported-version findings | Complete for exemplar; general bulk schema migration remains planned | [pm-dijg](../../.agents/pm/features/pm-dijg.toon) |
19
+ | Offline and federated replicas | Deterministic event-time merge, idempotent identical-event skips, explicit content conflicts | Complete at package boundary; cross-workspace transport remains planned | [pm-is1a](../../.agents/pm/features/pm-is1a.toon) |
20
+ | Atomic bulk import | `RelationshipEventStore.appendBatch` validation and atomic replacement | Complete | [pm-ju83](../../.agents/pm/features/pm-ju83.toon) |
21
+ | Tamper evidence and restore | Canonical SHA-256 checkpoints plus full durable replay | Complete at package boundary | [pm-klo8](../../.agents/pm/features/pm-klo8.toon) |
22
+ | Bounded shell export | Compact JSON command result, explicit limit and truncation | Complete | [pm-646c](../../.agents/pm/features/pm-646c.toon) |
23
+ | Live cross-process subscription | Durable store can be reopened and paged, but follow-mode subscription is intentionally outside this exemplar | Existing planned capability; no duplicate filed | [pm-e200](../../.agents/pm/features/pm-e200.toon) |
24
24
 
25
25
  ## Findings
26
26
 
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-digital-twin","version":"2026.11.4","private":true,"type":"module","description":"Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-digital-twin"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","sdk","digital-twin","event-sourcing","temporal-graph","exemplar"],"pm":{"aliases":["digital-twin","twin"],"extensions":["extensions/digital-twin"],"catalog":{"display_name":"Digital Twin SDK Exemplar","category":"sdk","summary":"Temporal facility graph proving event replay, point-in-time state, invariants, federation, checkpoints, and compact exports through public SDK contracts.","tags":["sdk","digital-twin","event-sourcing","graph","offline-first","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin","report":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin/GAP_REPORT.md"}},"docs":["README.md","GAP_REPORT.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-digital-twin","version":"2026.11.5","private":true,"type":"module","description":"Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-digital-twin"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","sdk","digital-twin","event-sourcing","temporal-graph","exemplar"],"pm":{"aliases":["digital-twin","twin"],"extensions":["extensions/digital-twin"],"catalog":{"display_name":"Digital Twin SDK Exemplar","category":"sdk","summary":"Temporal facility graph proving event replay, point-in-time state, invariants, federation, checkpoints, and compact exports through public SDK contracts.","tags":["sdk","digital-twin","event-sourcing","graph","offline-first","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin","report":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-digital-twin/GAP_REPORT.md"}},"docs":["README.md","GAP_REPORT.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-governance-audit","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for governance audit and normalization workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-governance-audit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","governance","audit","normalize","hooks"],"pm":{"aliases":["governance-audit","audit"],"extensions":["extensions/governance-audit"],"catalog":{"display_name":"Governance Audit","category":"governance","summary":"Run dedupe audits, comments audits, and normalize sweeps as package-owned workflows.","tags":["governance","audit","normalize","hooks"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-governance-audit","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for governance audit and normalization workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-governance-audit"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","governance","audit","normalize","hooks"],"pm":{"aliases":["governance-audit","audit"],"extensions":["extensions/governance-audit"],"catalog":{"display_name":"Governance Audit","category":"governance","summary":"Run dedupe audits, comments audits, and normalize sweeps as package-owned workflows.","tags":["governance","audit","normalize","hooks"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-governance-audit","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-guide-shell","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for guide and shell completion workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-guide-shell"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","guide","completion","shell"],"pm":{"aliases":["guide-shell"],"extensions":["extensions/guide-shell"],"catalog":{"display_name":"Guide + Shell UX","category":"workflow","summary":"Restore guide documentation and shell completion commands as package-owned UX surfaces.","tags":["guide","completion","shell"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-guide-shell","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for guide and shell completion workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-guide-shell"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","guide","completion","shell"],"pm":{"aliases":["guide-shell"],"extensions":["extensions/guide-shell"],"catalog":{"display_name":"Guide + Shell UX","category":"workflow","summary":"Restore guide documentation and shell completion commands as package-owned UX surfaces.","tags":["guide","completion","shell"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-guide-shell","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -13,7 +13,7 @@ core-baked profiles (`agile`, `ops`, `research`) without modifying core.
13
13
  ## What it demonstrates
14
14
 
15
15
  | Surface | What the exemplar does |
16
- | --- | --- |
16
+ |---|---|
17
17
  | `api.registerItemTypes([...])` | Registers the `Card` flow item type (`folder: cards`, alias `kanban-card`) as a GLOBAL schema contribution. |
18
18
  | `api.registerItemFields([...])` | Registers the flow fields `wip_limit` (number), `class_of_service` (string), and `impediment` (string). |
19
19
  | `api.registerProfile(kanbanProfile)` | Registers the complete archetype — types, custom statuses (`doing`, `verifying`), fields, the `Card` workflow, offline search config, a `card` create template, and package recommendations — so `pm profile apply kanban` stages it idempotently, alongside the core `agile`/`ops`/`research` archetypes. |
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-kanban","version":"2026.11.4","private":true,"type":"module","description":"First-party pm archetype package: a complete Kanban continuous-flow profile built on public SDK primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-kanban"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","profile","archetype","kanban","exemplar"],"pm":{"aliases":["kanban"],"extensions":["extensions/kanban"],"catalog":{"display_name":"Kanban Archetype","category":"sdk","summary":"Installable Kanban continuous-flow archetype: Card item type, flow fields, and a ProjectProfileDefinition built on public SDK primitives.","tags":["sdk","profile","archetype","kanban","schema","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-kanban","version":"2026.11.5","private":true,"type":"module","description":"First-party pm archetype package: a complete Kanban continuous-flow profile built on public SDK primitives.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-kanban"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","sdk","profile","archetype","kanban","exemplar"],"pm":{"aliases":["kanban"],"extensions":["extensions/kanban"],"catalog":{"display_name":"Kanban Archetype","category":"sdk","summary":"Installable Kanban continuous-flow archetype: Card item type, flow fields, and a ProjectProfileDefinition built on public SDK primitives.","tags":["sdk","profile","archetype","kanban","schema","exemplar"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-kanban","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-lifecycle-hooks","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package demonstrating safe lifecycle hook registration.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-lifecycle-hooks"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","hooks","lifecycle","sdk"],"pm":{"aliases":["lifecycle-hooks"],"extensions":["extensions/lifecycle-hooks"],"catalog":{"display_name":"Lifecycle Hooks","category":"sdk","summary":"Default-inert lifecycle hook exemplar for package authors.","tags":["hooks","lifecycle","sdk"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-lifecycle-hooks","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package demonstrating safe lifecycle hook registration.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-lifecycle-hooks"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","hooks","lifecycle","sdk"],"pm":{"aliases":["lifecycle-hooks"],"extensions":["extensions/lifecycle-hooks"],"catalog":{"display_name":"Lifecycle Hooks","category":"sdk","summary":"Default-inert lifecycle hook exemplar for package authors.","tags":["hooks","lifecycle","sdk"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-lifecycle-hooks","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-linked-test-adapters","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for optional linked-test run management adapters and reporters.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-linked-test-adapters"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","linked-tests","background-runs","test-runs"],"pm":{"aliases":["linked-test-adapters"],"extensions":["extensions/linked-test-adapters"],"catalog":{"display_name":"Linked Test Adapters","category":"testing","summary":"Restore optional linked-test run management/reporting command surfaces.","tags":["tests","linked-tests","background","reporting"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-linked-test-adapters","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for optional linked-test run management adapters and reporters.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-linked-test-adapters"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","linked-tests","background-runs","test-runs"],"pm":{"aliases":["linked-test-adapters"],"extensions":["extensions/linked-test-adapters"],"catalog":{"display_name":"Linked Test Adapters","category":"testing","summary":"Restore optional linked-test run management/reporting command surfaces.","tags":["tests","linked-tests","background","reporting"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-linked-test-adapters","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
@@ -1 +1 @@
1
- {"name":"@unbrained/pm-search-advanced","version":"2026.11.4","private":true,"type":"module","description":"First-party pm package for semantic, hybrid, and reindex search workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-search-advanced"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","search","reindex","semantic","hybrid"],"pm":{"aliases":["search-advanced"],"extensions":["extensions/search-advanced"],"catalog":{"display_name":"Advanced Search","category":"search","summary":"Enable semantic/hybrid search modes and reindex workflows.","tags":["search","semantic","hybrid","reindex"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}
1
+ {"name":"@unbrained/pm-search-advanced","version":"2026.11.5","private":true,"type":"module","description":"First-party pm package for semantic, hybrid, and reindex search workflows.","homepage":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":{"type":"git","url":"git+https://github.com/unbraind/pm-cli.git","directory":"packages/pm-search-advanced"},"bugs":{"url":"https://github.com/unbraind/pm-cli/issues"},"keywords":["pm-package","project-management","search","reindex","semantic","hybrid"],"pm":{"aliases":["search-advanced"],"extensions":["extensions/search-advanced"],"catalog":{"display_name":"Advanced Search","category":"search","summary":"Enable semantic/hybrid search modes and reindex workflows.","tags":["search","semantic","hybrid","reindex"],"links":{"docs":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced#readme","repository":"https://github.com/unbraind/pm-cli/tree/main/packages/pm-search-advanced","report":"https://github.com/unbraind/pm-cli/issues"}},"docs":["README.md"],"examples":["README.md"]}}