@unbrained/pm-cli 2026.11.3 → 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 (294) 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 +19 -0
  15. package/README.md +13 -13
  16. package/dist/cli/error-guidance.d.ts +14 -35
  17. package/dist/cli/error-guidance.js +2 -2
  18. package/dist/cli/expected-revisions.d.ts +55 -0
  19. package/dist/cli/expected-revisions.js +2 -0
  20. package/dist/cli/main.js +2 -2
  21. package/dist/cli/register-setup.js +1 -1
  22. package/dist/cli/runtime/invocation-options.js +1 -1
  23. package/dist/cli-bundle/bundle-manifest.json +1 -1
  24. package/dist/cli-bundle/chunks/chunk-2RPORE7M.js +31 -0
  25. package/dist/cli-bundle/chunks/{chunk-Y7H55PCY.js → chunk-335BZ75D.js} +2 -2
  26. package/dist/cli-bundle/chunks/chunk-5GWEY4P6.js +122 -0
  27. package/dist/cli-bundle/chunks/chunk-6VRX2CM7.js +2 -0
  28. package/dist/cli-bundle/chunks/{chunk-5JZMF4M5.js → chunk-7DEKAXVA.js} +2 -2
  29. package/dist/cli-bundle/chunks/{chunk-32BCU6HN.js → chunk-7ZRCYESH.js} +47 -46
  30. package/dist/cli-bundle/chunks/chunk-AUEKTX7V.js +6 -0
  31. package/dist/cli-bundle/chunks/chunk-D7KYPRK4.js +2 -0
  32. package/dist/cli-bundle/chunks/{chunk-2CBHQXYJ.js → chunk-DAX3AOFI.js} +2 -2
  33. package/dist/cli-bundle/chunks/{chunk-JPKIUWLG.js → chunk-F6NDMKZ4.js} +2 -2
  34. package/dist/cli-bundle/chunks/chunk-FRNMQM45.js +2 -0
  35. package/dist/cli-bundle/chunks/chunk-HNGLDMSZ.js +9 -0
  36. package/dist/cli-bundle/chunks/{chunk-DEJHTFEF.js → chunk-HRCMORE7.js} +2 -2
  37. package/dist/cli-bundle/chunks/chunk-HRFGFIYU.js +2 -0
  38. package/dist/cli-bundle/chunks/{chunk-5IPXDZKU.js → chunk-JI2GDE4I.js} +66 -66
  39. package/dist/cli-bundle/chunks/{chunk-MQJXZX3Q.js → chunk-LS3GI3H4.js} +53 -53
  40. package/dist/cli-bundle/chunks/chunk-OH6WQ7VT.js +3 -0
  41. package/dist/cli-bundle/chunks/{chunk-TZ3D3DPQ.js → chunk-OJDMJT7Y.js} +2 -2
  42. package/dist/cli-bundle/chunks/chunk-S4LPZ4TN.js +20 -0
  43. package/dist/cli-bundle/chunks/chunk-UEGXWXUZ.js +2 -0
  44. package/dist/cli-bundle/chunks/chunk-XLSHFYXZ.js +2 -0
  45. package/dist/cli-bundle/chunks/{chunk-UYNMKUGA.js → chunk-YKXATU2G.js} +2 -2
  46. package/dist/cli-bundle/chunks/item-revision-OJJVPQY7.js +2 -0
  47. package/dist/cli-bundle/chunks/item-transaction-QEPBUCMY.js +2 -0
  48. package/dist/cli-bundle/chunks/mutation-admission-INMM3HHG.js +2 -0
  49. package/dist/cli-bundle/chunks/{register-list-query-I6AZA3IX.js → register-list-query-5Y5JKWU5.js} +2 -2
  50. package/dist/cli-bundle/chunks/{register-mutation-3DAXCLXR.js → register-mutation-WC7OSQID.js} +2 -2
  51. package/dist/cli-bundle/chunks/register-operations-PO63DBZH.js +2 -0
  52. package/dist/cli-bundle/chunks/register-setup-RRFOS7IT.js +2 -0
  53. package/dist/cli-bundle/chunks/{stage-7H36OTDJ.js → stage-E3MMV4TV.js} +2 -2
  54. package/dist/cli-bundle/focused-chunks/chunk-5PMJOJCZ.js +44 -0
  55. package/dist/cli-bundle/focused-chunks/chunk-7KK66ISG.js +2 -0
  56. package/dist/cli-bundle/focused-chunks/{chunk-D4XQOMG4.js → chunk-AHWJPZSJ.js} +2 -2
  57. package/dist/cli-bundle/focused-chunks/chunk-C3O6JJPO.js +2 -0
  58. package/dist/cli-bundle/focused-chunks/{chunk-LKN2WGGB.js → chunk-C6P6HPCX.js} +2 -2
  59. package/dist/cli-bundle/focused-chunks/chunk-CPMSL4HS.js +2 -0
  60. package/dist/cli-bundle/focused-chunks/chunk-CZM75DE3.js +2 -0
  61. package/dist/cli-bundle/focused-chunks/{chunk-TYHDZUL4.js → chunk-D2TBEBNW.js} +2 -2
  62. package/dist/cli-bundle/focused-chunks/chunk-E56OXRYH.js +2 -0
  63. package/dist/cli-bundle/focused-chunks/{chunk-I5FODKYB.js → chunk-F62XGAAY.js} +2 -2
  64. package/dist/cli-bundle/focused-chunks/chunk-G4QP365K.js +2 -0
  65. package/dist/cli-bundle/focused-chunks/chunk-G5PJCR7R.js +2 -0
  66. package/dist/cli-bundle/focused-chunks/chunk-GS3JC5UU.js +23 -0
  67. package/dist/cli-bundle/focused-chunks/chunk-I5LGPUWH.js +2 -0
  68. package/dist/cli-bundle/focused-chunks/chunk-LW64TINU.js +3 -0
  69. package/dist/cli-bundle/focused-chunks/chunk-M6V7UMWL.js +26 -0
  70. package/dist/cli-bundle/focused-chunks/chunk-MC7IE7D7.js +8 -0
  71. package/dist/cli-bundle/focused-chunks/chunk-MG7C3JUY.js +2 -0
  72. package/dist/cli-bundle/focused-chunks/{chunk-F3X6UWMI.js → chunk-MK4HV4JO.js} +2 -2
  73. package/dist/cli-bundle/focused-chunks/{chunk-ZQRCVRGS.js → chunk-NQ7GYFOX.js} +54 -54
  74. package/dist/cli-bundle/focused-chunks/chunk-O7EI33NP.js +91 -0
  75. package/dist/cli-bundle/focused-chunks/{chunk-RY4QEMAE.js → chunk-RFTJZ5VB.js} +2 -2
  76. package/dist/cli-bundle/focused-chunks/chunk-SNOXXRSJ.js +2 -0
  77. package/dist/cli-bundle/focused-chunks/chunk-UPJUTP2V.js +12 -0
  78. package/dist/cli-bundle/focused-chunks/{chunk-HJ27QLZV.js → chunk-VWWTIX5L.js} +2 -2
  79. package/dist/cli-bundle/focused-chunks/{chunk-HOXIIZEO.js → chunk-XHOBYCVE.js} +2 -2
  80. package/dist/cli-bundle/focused-chunks/chunk-YMGB2O4E.js +81 -0
  81. package/dist/cli-bundle/focused-chunks/item-revision-CTDO4H3I.js +2 -0
  82. package/dist/cli-bundle/focused-chunks/item-transaction-AEAYVVHA.js +2 -0
  83. package/dist/cli-bundle/focused-chunks/mutation-admission-4WM7TNHZ.js +2 -0
  84. package/dist/cli-bundle/focused-chunks/{stage-4SQHVI3O.js → stage-WV7QXR4C.js} +2 -2
  85. package/dist/cli-bundle/main.js +25 -25
  86. package/dist/cli-bundle/sdk-authoring.js +1 -1
  87. package/dist/cli-bundle/sdk-contracts.js +5 -5
  88. package/dist/cli-bundle/sdk-core.js +1 -1
  89. package/dist/cli-bundle/sdk-governance.js +1 -1
  90. package/dist/cli-bundle/sdk-graph.js +1 -1
  91. package/dist/cli-bundle/sdk-merge.js +57 -57
  92. package/dist/cli-bundle/sdk-query.js +1 -1
  93. package/dist/cli-bundle/sdk-runtime.js +1 -1
  94. package/dist/cli-bundle/sdk-testing.js +1 -1
  95. package/dist/cli-bundle/sdk.js +11 -11
  96. package/dist/core/config/positional-value.d.ts +7 -1
  97. package/dist/core/config/positional-value.js +1 -1
  98. package/dist/core/extensions/reserved-host-flags.js +1 -1
  99. package/dist/core/history/history-rewrite.js +1 -1
  100. package/dist/core/item/literal-mutation-input.d.ts +17 -0
  101. package/dist/core/item/literal-mutation-input.js +1 -1
  102. package/dist/core/item/parent-reference-policy.d.ts +8 -4
  103. package/dist/core/item/parent-reference-policy.js +1 -1
  104. package/dist/core/item/sprint-release-format.d.ts +2 -1
  105. package/dist/core/item/sprint-release-format.js +1 -1
  106. package/dist/core/output/mutation-projection.js +1 -1
  107. package/dist/core/shared/command-types.d.ts +7 -0
  108. package/dist/core/store/item-mutation-precondition.d.ts +72 -6
  109. package/dist/core/store/item-mutation-precondition.js +1 -1
  110. package/dist/core/store/item-store.js +1 -1
  111. package/dist/core/store/settings-validator.js +1 -1
  112. package/dist/core/store/settings.d.ts +14 -0
  113. package/dist/core/store/settings.js +5 -4
  114. package/dist/core/telemetry/policy.d.ts +27 -1
  115. package/dist/core/telemetry/policy.js +1 -1
  116. package/dist/core/telemetry/runtime.d.ts +18 -7
  117. package/dist/core/telemetry/runtime.js +4 -4
  118. package/dist/sdk/cli-contracts/bootstrap-command-scanner.js +1 -1
  119. package/dist/sdk/cli-contracts/completeness.js +1 -1
  120. package/dist/sdk/cli-contracts/enum-contracts.d.ts +11 -0
  121. package/dist/sdk/cli-contracts/enum-contracts.js +1 -1
  122. package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +1 -1
  123. package/dist/sdk/cli-contracts/registration-helpers.js +1 -1
  124. package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
  125. package/dist/sdk/cli-contracts/tool-schema.js +1 -1
  126. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +8 -5
  127. package/dist/sdk/cli-contracts.d.ts +1 -1
  128. package/dist/sdk/cli-contracts.js +1 -1
  129. package/dist/sdk/cli-program.js +1 -1
  130. package/dist/sdk/config.d.ts +3 -3
  131. package/dist/sdk/config.js +1 -1
  132. package/dist/sdk/environment/project-runtime-compatibility.js +1 -1
  133. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
  134. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
  135. package/dist/sdk/governance/health.d.ts +2 -2
  136. package/dist/sdk/governance/health.js +2 -2
  137. package/dist/sdk/governance/validate.js +1 -1
  138. package/dist/sdk/history/salvage.js +3 -3
  139. package/dist/sdk/history-compact.d.ts +7 -1
  140. package/dist/sdk/history-compact.js +1 -1
  141. package/dist/sdk/history-repair.d.ts +2 -1
  142. package/dist/sdk/history-repair.js +1 -1
  143. package/dist/sdk/index.d.ts +6 -1
  144. package/dist/sdk/index.js +1 -1
  145. package/dist/sdk/init.d.ts +4 -4
  146. package/dist/sdk/init.js +8 -8
  147. package/dist/sdk/lifecycle/checkpoint-rollback.d.ts +10 -2
  148. package/dist/sdk/lifecycle/checkpoint-rollback.js +1 -1
  149. package/dist/sdk/lifecycle/claim.d.ts +4 -0
  150. package/dist/sdk/lifecycle/claim.js +1 -1
  151. package/dist/sdk/lifecycle/close-many.d.ts +11 -2
  152. package/dist/sdk/lifecycle/close-many.js +1 -1
  153. package/dist/sdk/lifecycle/close.d.ts +25 -0
  154. package/dist/sdk/lifecycle/close.js +1 -1
  155. package/dist/sdk/lifecycle/create.d.ts +7 -5
  156. package/dist/sdk/lifecycle/create.js +1 -1
  157. package/dist/sdk/lifecycle/item-revision.d.ts +162 -0
  158. package/dist/sdk/lifecycle/item-revision.js +2 -0
  159. package/dist/sdk/lifecycle/restore.js +1 -1
  160. package/dist/sdk/lifecycle/shared-unset-fields.d.ts +628 -4
  161. package/dist/sdk/lifecycle/shared-unset-fields.js +1 -1
  162. package/dist/sdk/lifecycle/start-blockers.d.ts +52 -0
  163. package/dist/sdk/lifecycle/start-blockers.js +2 -0
  164. package/dist/sdk/lifecycle/task-composition.d.ts +11 -0
  165. package/dist/sdk/lifecycle/task-composition.js +1 -1
  166. package/dist/sdk/lifecycle/update-many.d.ts +11 -2
  167. package/dist/sdk/lifecycle/update-many.js +1 -1
  168. package/dist/sdk/lifecycle/update.d.ts +5 -4
  169. package/dist/sdk/lifecycle/update.js +2 -2
  170. package/dist/sdk/public-surface.json +1 -1
  171. package/dist/sdk/query/declared-blockers.d.ts +16 -0
  172. package/dist/sdk/query/declared-blockers.js +2 -0
  173. package/dist/sdk/query/get.d.ts +7 -0
  174. package/dist/sdk/query/get.js +1 -1
  175. package/dist/sdk/query/projection-contracts.js +1 -1
  176. package/dist/sdk/runtime/actions.js +1 -1
  177. package/dist/sdk/runtime/mutation-value-validation.js +1 -1
  178. package/dist/sdk/runtime-input.d.ts +12 -0
  179. package/dist/sdk/runtime-input.js +1 -1
  180. package/dist/sdk/runtime-primitives.d.ts +1 -0
  181. package/dist/sdk/runtime-primitives.js +1 -1
  182. package/dist/sdk/runtime.d.ts +10 -0
  183. package/dist/sdk/runtime.js +1 -1
  184. package/dist/sdk/structured-mutations.js +1 -1
  185. package/dist/sdk/telemetry.d.ts +1 -1
  186. package/dist/sdk/telemetry.js +2 -2
  187. package/dist/sdk/test/batch.js +2 -2
  188. package/dist/sdk/test/execution.js +2 -2
  189. package/dist/sdk/test/linked-command-detection.js +1 -1
  190. package/dist/sdk/workspace-transaction.d.ts +17 -6
  191. package/dist/sdk/workspace-transaction.js +1 -1
  192. package/dist/types.d.ts +6 -0
  193. package/dist/types.js +1 -1
  194. package/docs/AGENT_GUIDE.md +48 -48
  195. package/docs/AGENT_OUTPUT_ENCODINGS.md +20 -20
  196. package/docs/ASSURANCE.md +10 -10
  197. package/docs/BOUNDED_CONTEXT_READS.md +3 -3
  198. package/docs/CLAUDE_CODE_PLUGIN.md +1 -1
  199. package/docs/CLI_GRAMMAR.md +2 -2
  200. package/docs/COMMANDS.md +144 -32
  201. package/docs/COMMAND_NAMESPACES.md +1 -1
  202. package/docs/CONFIGURATION.md +82 -70
  203. package/docs/CONTEXT_ALGORITHM_PORTFOLIO.md +2 -2
  204. package/docs/CONTEXT_INTEGRITY_CONTRACTS.md +5 -5
  205. package/docs/CORPUS_SHAPES.md +1 -1
  206. package/docs/DEPENDENCY_KIND_CONTRACT.md +6 -6
  207. package/docs/DIAGNOSTIC_OUTPUT_CONTRACTS.md +5 -5
  208. package/docs/ECOSYSTEM_PLANNING_REVIEW.md +3 -3
  209. package/docs/EXTENSION_AUTHOR_CONTRACTS.md +4 -4
  210. package/docs/HISTORY_ATTESTATION.md +1 -1
  211. package/docs/HISTORY_MAINTENANCE.md +1 -1
  212. package/docs/LIFECYCLE_COMMANDS.md +1 -1
  213. package/docs/MCP_2026_07_28.md +16 -16
  214. package/docs/MCP_2026_07_28_CONFORMANCE.md +19 -19
  215. package/docs/MCP_REMOTE_TRANSPORT_SECURITY.md +22 -22
  216. package/docs/MCP_SKILLS_AND_APPS.md +1 -1
  217. package/docs/MERGE_SAFETY.md +6 -6
  218. package/docs/MUTATION_INTEGRITY.md +5 -5
  219. package/docs/OUTPUT_PROJECTION_CONTRACTS.md +14 -14
  220. package/docs/PACKED_FIRST_RUN.md +1 -1
  221. package/docs/QUICKSTART.md +10 -10
  222. package/docs/README.md +21 -21
  223. package/docs/READ_OUTPUT_CONTRACTS.md +9 -9
  224. package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +1 -1
  225. package/docs/RELEASING.md +19 -10
  226. package/docs/SCRIPTING.md +10 -10
  227. package/docs/SDK.md +183 -38
  228. package/docs/SDK_ARTIFACT_OUTPUT.md +1 -1
  229. package/docs/SDK_PRIMITIVE_INVENTORY.md +2 -2
  230. package/docs/SELF_DESCRIBING_CONTEXT_CONTRACTS.md +7 -7
  231. package/docs/TESTING.md +1 -1
  232. package/docs/WORKFLOW_POLICIES.md +2 -2
  233. package/docs/WORKSPACE_POSITION_AND_LIFECYCLE.md +8 -8
  234. package/docs/agent-task-token-baseline.json +1 -1
  235. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +1 -1
  236. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  237. package/docs/generated/FLAG_LEXICON_BUDGETS.md +112 -112
  238. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +13 -4
  239. package/docs/performance/cli-transport-overhead.md +7 -7
  240. package/marketplace.json +1 -1
  241. package/package.json +1 -1
  242. package/packages/pm-beads/package.json +1 -1
  243. package/packages/pm-calendar/package.json +1 -1
  244. package/packages/pm-command-kit/README.md +5 -5
  245. package/packages/pm-command-kit/package.json +1 -1
  246. package/packages/pm-digital-twin/GAP_REPORT.md +16 -16
  247. package/packages/pm-digital-twin/package.json +1 -1
  248. package/packages/pm-governance-audit/package.json +1 -1
  249. package/packages/pm-guide-shell/package.json +1 -1
  250. package/packages/pm-kanban/README.md +1 -1
  251. package/packages/pm-kanban/package.json +1 -1
  252. package/packages/pm-lifecycle-hooks/package.json +1 -1
  253. package/packages/pm-linked-test-adapters/package.json +1 -1
  254. package/packages/pm-search-advanced/package.json +1 -1
  255. package/packages/pm-templates/package.json +1 -1
  256. package/packages/pm-todos/package.json +1 -1
  257. package/packages/pm-vcs/GAP_REPORT.md +1 -1
  258. package/packages/pm-vcs/package.json +1 -1
  259. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  260. package/plugins/pm-claude/README.md +6 -6
  261. package/plugins/pm-claude/package.json +1 -1
  262. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  263. package/plugins/pm-codex/package.json +1 -1
  264. package/plugins/pm-codex/plugin.json +1 -1
  265. package/runtime-dependencies.json +1 -1
  266. package/dist/cli-bundle/chunks/chunk-7ZEFHFAU.js +0 -2
  267. package/dist/cli-bundle/chunks/chunk-B6UTLYLM.js +0 -3
  268. package/dist/cli-bundle/chunks/chunk-HBKD5HZB.js +0 -2
  269. package/dist/cli-bundle/chunks/chunk-L6LCLC37.js +0 -2
  270. package/dist/cli-bundle/chunks/chunk-NR4KABHC.js +0 -31
  271. package/dist/cli-bundle/chunks/chunk-PWD5RY2D.js +0 -2
  272. package/dist/cli-bundle/chunks/chunk-XRMYA4R7.js +0 -20
  273. package/dist/cli-bundle/chunks/chunk-YWS4XV4I.js +0 -6
  274. package/dist/cli-bundle/chunks/chunk-ZOAJNPBL.js +0 -129
  275. package/dist/cli-bundle/chunks/item-transaction-ZHLJTBD7.js +0 -2
  276. package/dist/cli-bundle/chunks/mutation-admission-ZQMRMGIB.js +0 -2
  277. package/dist/cli-bundle/chunks/register-operations-G3QGGQ5Z.js +0 -2
  278. package/dist/cli-bundle/chunks/register-setup-LDXHMNOT.js +0 -2
  279. package/dist/cli-bundle/focused-chunks/chunk-3XGKBVJ3.js +0 -2
  280. package/dist/cli-bundle/focused-chunks/chunk-4HY6EGPB.js +0 -2
  281. package/dist/cli-bundle/focused-chunks/chunk-AK2CI2GI.js +0 -2
  282. package/dist/cli-bundle/focused-chunks/chunk-HUXZCPWT.js +0 -26
  283. package/dist/cli-bundle/focused-chunks/chunk-IKXJ57XA.js +0 -8
  284. package/dist/cli-bundle/focused-chunks/chunk-MOY6KZGJ.js +0 -44
  285. package/dist/cli-bundle/focused-chunks/chunk-PWUTFKSI.js +0 -2
  286. package/dist/cli-bundle/focused-chunks/chunk-PZRB7IXH.js +0 -91
  287. package/dist/cli-bundle/focused-chunks/chunk-WSYPVBKS.js +0 -80
  288. package/dist/cli-bundle/focused-chunks/chunk-WXLG7HZ5.js +0 -3
  289. package/dist/cli-bundle/focused-chunks/chunk-WZDFCVLX.js +0 -12
  290. package/dist/cli-bundle/focused-chunks/chunk-YGO3FWA2.js +0 -2
  291. package/dist/cli-bundle/focused-chunks/chunk-YVLAP3BL.js +0 -23
  292. package/dist/cli-bundle/focused-chunks/chunk-ZYXQACPB.js +0 -2
  293. package/dist/cli-bundle/focused-chunks/item-transaction-PZ2FQ6B2.js +0 -2
  294. package/dist/cli-bundle/focused-chunks/mutation-admission-XOOK6XFH.js +0 -2
@@ -43,16 +43,16 @@ pm-mcp-http
43
43
 
44
44
  Configuration is explicit and environment-only:
45
45
 
46
- | Variable | Meaning | Default |
47
- | ----------------------------- | --------------------------------------------------- | ------------------ |
48
- | `PM_MCP_HTTP_HOST` | Bind host | `127.0.0.1` |
49
- | `PM_MCP_HTTP_PORT` | Bind port, including `0` for an ephemeral test port | `3000` |
50
- | `PM_MCP_HTTP_ALLOWED_ORIGINS` | Comma-separated exact browser origins | none |
51
- | `PM_MCP_HTTP_BEARER_TOKEN` | Opaque deployment token for the bundled verifier | none |
52
- | `PM_MCP_HTTP_AUTH_ISSUER` | Exact HTTPS authorization-server issuer | none |
53
- | `PM_MCP_HTTP_RESOURCE` | Canonical MCP resource/audience URI | none |
54
- | `PM_MCP_HTTP_SCOPES` | Space-separated consent scopes | `pm:read pm:write` |
55
- | `PM_MCP_DISCOVERY_CURSOR_KEY` | Shared 32-byte-or-longer secret for discovery pages | process-local key |
46
+ | Variable | Meaning | Default |
47
+ |---|---|---|
48
+ | `PM_MCP_HTTP_HOST` | Bind host | `127.0.0.1` |
49
+ | `PM_MCP_HTTP_PORT` | Bind port, including `0` for an ephemeral test port | `3000` |
50
+ | `PM_MCP_HTTP_ALLOWED_ORIGINS` | Comma-separated exact browser origins | none |
51
+ | `PM_MCP_HTTP_BEARER_TOKEN` | Opaque deployment token for the bundled verifier | none |
52
+ | `PM_MCP_HTTP_AUTH_ISSUER` | Exact HTTPS authorization-server issuer | none |
53
+ | `PM_MCP_HTTP_RESOURCE` | Canonical MCP resource/audience URI | none |
54
+ | `PM_MCP_HTTP_SCOPES` | Space-separated consent scopes | `pm:read pm:write` |
55
+ | `PM_MCP_DISCOVERY_CURSOR_KEY` | Shared 32-byte-or-longer secret for discovery pages | process-local key |
56
56
 
57
57
  A non-loopback bind fails closed unless token, issuer, and resource are all
58
58
  present. Production deployments should normally call
@@ -151,18 +151,18 @@ inherit one another's trace context. Raw bearer tokens are hashed for
151
151
  constant-time comparison by the bundled verifier and are never included in
152
152
  claims, errors, traces, or JSON-RPC result data.
153
153
 
154
- | Threat | Enforced boundary |
155
- | ------------------------------ | ------------------------------------------------------------------------------- |
156
- | DNS rebinding/browser drive-by | Loopback default plus exact `Origin` allowlist |
157
- | Token passthrough | Bearer is verified at pm and never forwarded to another service |
158
- | Issuer mix-up | Exact discovery/response issuer checks and issuer-keyed credentials |
159
- | Confused audience | Exact protected-resource audience check |
160
- | Excess authority | Required-scope intersection before dispatch |
161
- | Query/log credential leak | Query tokens rejected; challenges and errors omit token material |
162
- | Header injection | Schema-derived allowlist, reserved-name checks, control-byte rejection |
163
- | Trace privacy leak | Syntax/size validation, baggage-key allowlist, request-local storage |
164
- | Proxy cache disclosure | MCP and metadata errors use explicit content types; MCP results use `no-store` |
165
- | Replay after disconnect | No session, event id, resume cursor, or redelivery; retry uses a new request id |
154
+ | Threat | Enforced boundary |
155
+ |---|---|
156
+ | DNS rebinding/browser drive-by | Loopback default plus exact `Origin` allowlist |
157
+ | Token passthrough | Bearer is verified at pm and never forwarded to another service |
158
+ | Issuer mix-up | Exact discovery/response issuer checks and issuer-keyed credentials |
159
+ | Confused audience | Exact protected-resource audience check |
160
+ | Excess authority | Required-scope intersection before dispatch |
161
+ | Query/log credential leak | Query tokens rejected; challenges and errors omit token material |
162
+ | Header injection | Schema-derived allowlist, reserved-name checks, control-byte rejection |
163
+ | Trace privacy leak | Syntax/size validation, baggage-key allowlist, request-local storage |
164
+ | Proxy cache disclosure | MCP and metadata errors use explicit content types; MCP results use `no-store` |
165
+ | Replay after disconnect | No session, event id, resume cursor, or redelivery; retry uses a new request id |
166
166
 
167
167
  ## Deprecated-feature inventory and sunset
168
168
 
@@ -75,7 +75,7 @@ SDK-backed tools. `resources/list` and `resources/read` expose the corresponding
75
75
  `ui://` documents:
76
76
 
77
77
  | View | Authoritative tool | Purpose |
78
- | --- | --- | --- |
78
+ |---|---|---|
79
79
  | Context explorer | `pm_context` | Context, provenance, omissions, and token cost |
80
80
  | Relationship graph | `pm_graph` | Typed edges, explaining paths, and governance |
81
81
  | Plan and milestone | `pm_plan` | Steps, dependencies, decisions, and validation |
@@ -136,12 +136,12 @@ History scalar rebasing and ignored settlement artifacts are tracked by
136
136
  [pm-gh1553](../.agents/pm/issues/pm-gh1553.toon) and
137
137
  [pm-gh1556](../.agents/pm/issues/pm-gh1556.toon).
138
138
 
139
- | Artifact | Driver | Merge behavior |
140
- | ---------------------------------------------------------------- | ----------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
141
- | Item `.toon` / `.md` | `pm-item-toon` / `pm-item-markdown` | Three-way field merge; append-like collections use set union, `updated_at` uses the latest timestamp, scalar conflicts select the value from the later document update with stable value order as an equal-timestamp tie-break, and canonical serialization recomputes TOON counts. |
142
- | `history/*.jsonl` | `pm-history` | Preserves the common prefix and both divergent suffixes, orders deterministically, then re-anchors the resulting hash chain. |
143
- | tracker `**/*.jsonl` except the later `history/*.jsonl` override | `pm-relationship` | Covers default and package-owned custom relationship event paths, unions divergent suffixes by `eventId` (timestamp-ordered, ours-first on ties), and renumbers `sequence` consecutively so the strict-sequence store loader accepts the merged stream. |
144
- | root `settings.json` and nested `**/*.json` | `pm-json` | Recursively merges objects per key. Arrays compose when both branches preserve the base and add distinct entries, so independent extension installs and evaluation additions merge without weakening edit/removal conflict detection. |
139
+ | Artifact | Driver | Merge behavior |
140
+ |---|---|---|
141
+ | Item `.toon` / `.md` | `pm-item-toon` / `pm-item-markdown` | Three-way field merge; append-like collections use set union, `updated_at` uses the latest timestamp, scalar conflicts select the value from the later document update with stable value order as an equal-timestamp tie-break, and canonical serialization recomputes TOON counts. |
142
+ | `history/*.jsonl` | `pm-history` | Preserves the common prefix and both divergent suffixes, orders deterministically, then re-anchors the resulting hash chain. |
143
+ | tracker `**/*.jsonl` except the later `history/*.jsonl` override | `pm-relationship` | Covers default and package-owned custom relationship event paths, unions divergent suffixes by `eventId` (timestamp-ordered, ours-first on ties), and renumbers `sequence` consecutively so the strict-sequence store loader accepts the merged stream. |
144
+ | root `settings.json` and nested `**/*.json` | `pm-json` | Recursively merges objects per key. Arrays compose when both branches preserve the base and add distinct entries, so independent extension installs and evaluation additions merge without weakening edit/removal conflict detection. |
145
145
 
146
146
  History union validates each event in its original branch before rebasing its
147
147
  effects. A whole metadata-field replacement still assigns its exact value when
@@ -32,11 +32,11 @@ pm config project set mutation_guard_stale_in_progress_hours 48
32
32
 
33
33
  Defaults preserve author compatibility while providing secret advice:
34
34
 
35
- | Setting | Default | Behavior |
36
- | ------------------------------------------ | -------- | -------------------------------------------------------- |
37
- | `mutation_guard.require_attributed_author` | `false` | When enabled, reject an effective author of `unknown`. |
38
- | `mutation_guard.secret_guard` | `advise` | `off`, stderr/structured `advise`, or pre-write `block`. |
39
- | `mutation_guard.stale_in_progress_hours` | `72` | Age threshold for unclaimed active work in `pm health`. |
35
+ | Setting | Default | Behavior |
36
+ |---|---|---|
37
+ | `mutation_guard.require_attributed_author` | `false` | When enabled, reject an effective author of `unknown`. |
38
+ | `mutation_guard.secret_guard` | `advise` | `off`, stderr/structured `advise`, or pre-write `block`. |
39
+ | `mutation_guard.stale_in_progress_hours` | `72` | Age threshold for unclaimed active work in `pm health`. |
40
40
 
41
41
  A blocking secret policy may be bypassed only by an explicit `--force` on a
42
42
  force-capable mutation. The warning records that an override occurred while
@@ -64,13 +64,13 @@ explicit receipt with `has_omissions: false`,
64
64
 
65
65
  Mutually exclusive output modes emit only their active row collection:
66
66
 
67
- | Command mode | Active row key | Withheld group | Restore |
68
- | --------------------------- | --------------------- | -------------- | ---------------- |
69
- | `activity` (digest default) | `activity_digest` | `event_rows` | `--raw` |
70
- | `activity --raw/--compact` | `compact_activity` | `provenance` | `--full` |
71
- | `activity --full` | `activity` | none | already complete |
72
- | `history` (compact default) | `compact_history` | `raw_history` | `--full` |
73
- | `history --full` | `history` | none | already complete |
67
+ | Command mode | Active row key | Withheld group | Restore |
68
+ |---|---|---|---|
69
+ | `activity` (digest default) | `activity_digest` | `event_rows` | `--raw` |
70
+ | `activity --raw/--compact` | `compact_activity` | `provenance` | `--full` |
71
+ | `activity --full` | `activity` | none | already complete |
72
+ | `history` (compact default) | `compact_history` | `raw_history` | `--full` |
73
+ | `history --full` | `history` | none | already complete |
74
74
 
75
75
  Inactive row keys are omitted, not zero-filled. This makes a wrong parser loud:
76
76
  reading `.activity` from compact activity now yields a missing key instead of a
@@ -177,11 +177,11 @@ for their domain without adding package-specific logic to the CLI renderer.
177
177
 
178
178
  The following bounded built-ins now use this shared declaration:
179
179
 
180
- | Command mode | Withheld group | Restore |
181
- | ------------------- | -------------------------------------------------------- | -------- |
182
- | `deps --summary` | selected dependency tree, graph, or relationship context | `--full` |
183
- | `graph --summary` | `result_rows` | `--full` |
184
- | `validate --counts` | `diagnostic_rows` | `--full` |
180
+ | Command mode | Withheld group | Restore |
181
+ |---|---|---|
182
+ | `deps --summary` | selected dependency tree, graph, or relationship context | `--full` |
183
+ | `graph --summary` | `result_rows` | `--full` |
184
+ | `validate --counts` | `diagnostic_rows` | `--full` |
185
185
 
186
186
  Passing `--full` with the corresponding compact flag is a usage error. An
187
187
  explicit full request and the default full request produce the same payload
@@ -337,7 +337,7 @@ metadata as a continuation negative control. The checked-in report is
337
337
  [`scripts/release/context-intent-calibration.json`](../scripts/release/context-intent-calibration.json).
338
338
 
339
339
  | Intent | 2-item tokens / budget | 2,243-item tokens / budget | Current-scale rows | Degradation |
340
- | ------ | ---------------------- | -------------------------- | ------------------ | ----------- |
340
+ |---|---|---|---|---|
341
341
  | `context:orient` | 735 / 2,400 | 1,028 / 2,400 | 3 | bounded sections |
342
342
  | `get:inspect` | 401 / 3,200 | 415 / 3,200 | item envelope | standard item |
343
343
  | `list:triage` | 443 / 3,200 | 3,189 / 3,200 | 69 | budget-derived rows |
@@ -348,7 +348,7 @@ Whole-answer cursor cost is measured against the unprojected single call for
348
348
  the identical ordered row set:
349
349
 
350
350
  | Family | Rows | Pages | Optimized bytes/row | Optimized walk | Repeated-metadata control | Unbounded call | Walk / unbounded |
351
- | ------ | ---- | ----- | ------------------- | -------------- | ------------------------- | -------------- | ---------------- |
351
+ |---|---|---|---|---|---|---|---|
352
352
  | `list:triage` | 1,998 | 31 | 172.93 | 345,519 B | 387,489 B | 1,558,741 B | 0.2217 |
353
353
  | `search:discover` | 1,998 | 66 | 202.50 | 404,591 B | 470,046 B | 1,681,847 B | 0.2406 |
354
354
 
@@ -14,7 +14,7 @@ node scripts/release/packed-first-run.mjs /path/to/installed/@unbrained/pm-cli
14
14
  ```
15
15
 
16
16
  | Journey | Required observation |
17
- | --- | --- |
17
+ |---|---|
18
18
  | Installed README | Ordered init/create/list from `60 Second Example`; missing/reordered commands, unsupported expressions or unbalanced quotes fail. No shell execution. |
19
19
  | Persistence | Each command returns nonempty output below 4,096 characters; the created item exists. |
20
20
  | Branch merge | Independent comments survive a real Git merge; reconciliation and strict history verification succeed. |
@@ -94,16 +94,16 @@ pm create \
94
94
 
95
95
  Useful item types:
96
96
 
97
- | Type | Use |
98
- | ------------------------------------------- | ----------------------------------------------------------- |
99
- | `Epic` | broad outcome or initiative |
100
- | `Feature` | user-facing capability or major slice |
101
- | `Task` | implementation work |
102
- | `Chore` | maintenance, refactoring, or housekeeping work |
103
- | `Issue` | bug or defect |
104
- | `Decision` | recorded choice and rationale |
105
- | `Plan` | agent-optimized living plan with ordered steps and evidence |
106
- | `Event`, `Reminder`, `Milestone`, `Meeting` | calendar-aware planning |
97
+ | Type | Use |
98
+ |---|---|
99
+ | `Epic` | broad outcome or initiative |
100
+ | `Feature` | user-facing capability or major slice |
101
+ | `Task` | implementation work |
102
+ | `Chore` | maintenance, refactoring, or housekeeping work |
103
+ | `Issue` | bug or defect |
104
+ | `Decision` | recorded choice and rationale |
105
+ | `Plan` | agent-optimized living plan with ordered steps and evidence |
106
+ | `Event`, `Reminder`, `Milestone`, `Meeting` | calendar-aware planning |
107
107
 
108
108
  ## Find and Claim Work
109
109
 
package/docs/README.md CHANGED
@@ -17,17 +17,17 @@ pm guide release --json
17
17
 
18
18
  ## Read Path
19
19
 
20
- | Reader | First page | Then read |
21
- | ----------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
22
- | New user | [Quickstart](QUICKSTART.md) | [Command Reference](COMMANDS.md) |
23
- | New maintainer | [Onboarding](ONBOARDING.md) | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md), [Releasing](RELEASING.md) |
24
- | Coding agent | [Agent Guide](AGENT_GUIDE.md) | [Configuration](CONFIGURATION.md), then command help |
25
- | Maintainer | [Contributing](../CONTRIBUTING.md) | [Testing](TESTING.md), [Releasing](RELEASING.md), [Architecture](ARCHITECTURE.md) |
26
- | Package author | [Packages and Extensions](EXTENSIONS.md) | [SDK](SDK.md), [starter extension](examples/starter-extension/README.md) |
27
- | Codex or ChatGPT plugin implementer | [Codex Plugin](CODEX_PLUGIN.md) | [Native ChatGPT and Codex Plugin Implementation Plan](CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md) |
28
- | Codex user | [Codex Plugin](CODEX_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
29
- | Claude Code user | [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
30
- | Machine client | `pm contracts --json` | [CLI Scripting Contract](SCRIPTING.md), [Command Reference](COMMANDS.md#machine-contracts), optionally `pm install guide-shell --project && pm guide commands` |
20
+ | Reader | First page | Then read |
21
+ |---|---|---|
22
+ | New user | [Quickstart](QUICKSTART.md) | [Command Reference](COMMANDS.md) |
23
+ | New maintainer | [Onboarding](ONBOARDING.md) | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md), [Releasing](RELEASING.md) |
24
+ | Coding agent | [Agent Guide](AGENT_GUIDE.md) | [Configuration](CONFIGURATION.md), then command help |
25
+ | Maintainer | [Contributing](../CONTRIBUTING.md) | [Testing](TESTING.md), [Releasing](RELEASING.md), [Architecture](ARCHITECTURE.md) |
26
+ | Package author | [Packages and Extensions](EXTENSIONS.md) | [SDK](SDK.md), [starter extension](examples/starter-extension/README.md) |
27
+ | Codex or ChatGPT plugin implementer | [Codex Plugin](CODEX_PLUGIN.md) | [Native ChatGPT and Codex Plugin Implementation Plan](CHATGPT_CODEX_PLUGIN_IMPLEMENTATION.md) |
28
+ | Codex user | [Codex Plugin](CODEX_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
29
+ | Claude Code user | [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
30
+ | Machine client | `pm contracts --json` | [CLI Scripting Contract](SCRIPTING.md), [Command Reference](COMMANDS.md#machine-contracts), optionally `pm install guide-shell --project && pm guide commands` |
31
31
 
32
32
  ## Documentation Map
33
33
 
@@ -127,16 +127,16 @@ Additional SDK, operations, and generated contracts:
127
127
 
128
128
  ## Guide Topic Map
129
129
 
130
- | Optional `pm guide` topic | Primary docs |
131
- | ------------------------- | --------------------------------------------------------------------------------------------------- |
132
- | `quickstart` | [Quickstart](QUICKSTART.md), [Command Reference](COMMANDS.md) |
133
- | `commands` | [Command Reference](COMMANDS.md), [Configuration](CONFIGURATION.md) |
134
- | `workflows` | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md) |
135
- | `sdk` | [SDK](SDK.md), [SDK context contracts](SDK_CONTEXT.md), [Architecture](ARCHITECTURE.md) |
136
- | `extensions`, `packages` | [Packages and Extensions](EXTENSIONS.md), [starter extension](examples/starter-extension/README.md) |
137
- | `skills` | [Agent Guide](AGENT_GUIDE.md) plus `.agents/skills/*` |
138
- | `harnesses` | [Agent Guide](AGENT_GUIDE.md) plus `.agents/skills/HARNESS_COMPATIBILITY.md` |
139
- | `release` | [Releasing](RELEASING.md), [CHANGELOG](../CHANGELOG.md) |
130
+ | Optional `pm guide` topic | Primary docs |
131
+ |---|---|
132
+ | `quickstart` | [Quickstart](QUICKSTART.md), [Command Reference](COMMANDS.md) |
133
+ | `commands` | [Command Reference](COMMANDS.md), [Configuration](CONFIGURATION.md) |
134
+ | `workflows` | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md) |
135
+ | `sdk` | [SDK](SDK.md), [SDK context contracts](SDK_CONTEXT.md), [Architecture](ARCHITECTURE.md) |
136
+ | `extensions`, `packages` | [Packages and Extensions](EXTENSIONS.md), [starter extension](examples/starter-extension/README.md) |
137
+ | `skills` | [Agent Guide](AGENT_GUIDE.md) plus `.agents/skills/*` |
138
+ | `harnesses` | [Agent Guide](AGENT_GUIDE.md) plus `.agents/skills/HARNESS_COMPATIBILITY.md` |
139
+ | `release` | [Releasing](RELEASING.md), [CHANGELOG](../CHANGELOG.md) |
140
140
 
141
141
  Community files:
142
142
 
@@ -10,12 +10,12 @@ Complete package-envelope fitting and session-reference recovery are tracked by
10
10
 
11
11
  Every built-in read surface uses four output dimensions: what to include, how much to return, how much the result may cost, and how to encode it. The same canonical controls work through the CLI, SDK, MCP, generated schemas, runtime contracts, and shell completions.
12
12
 
13
- | Dimension | CLI | SDK and MCP | Meaning |
14
- | --------- | -------------------------------- | --------------- | ---------------------------------------------------------------------- |
15
- | Include | `--output-include <csv>` | `outputInclude` | Retain named fields or sections, or select a declared projection mode. |
16
- | Amount | `--output-limit <n\|unbounded>` | `outputLimit` | Bound shared row collections. |
17
- | Cost | `--output-budget <n\|unbounded>` | `outputBudget` | Fail closed when even the compact result cannot fit. |
18
- | Encoding | `--output-format <toon\|json>` | `outputFormat` | Select the CLI renderer and record the requested encoding. |
13
+ | Dimension | CLI | SDK and MCP | Meaning |
14
+ |---|---|---|---|
15
+ | Include | `--output-include <csv>` | `outputInclude` | Retain named fields or sections, or select a declared projection mode. |
16
+ | Amount | `--output-limit <n\|unbounded>` | `outputLimit` | Bound shared row collections. |
17
+ | Cost | `--output-budget <n\|unbounded>` | `outputBudget` | Fail closed when even the compact result cannot fit. |
18
+ | Encoding | `--output-format <toon\|json>` | `outputFormat` | Select the CLI renderer and record the requested encoding. |
19
19
 
20
20
  The contract covers `list`, `context`, `search`, `get`, `next`, `health`, `deps`, `graph`, `history`, `activity`, `validate`, `events`, `contracts`, `comments`, `notes`, `files`, `docs`, `stats`, and `aggregate`, including list aliases and `ctx`.
21
21
 
@@ -295,9 +295,9 @@ may only shrink, while repeat suppression may only hold or improve. The gate
295
295
  also fixes the expected unique-fact shape:
296
296
 
297
297
  | Tracker tier | Group spend / budget | Seen items | Suppressed repeats | Delivered bytes |
298
- | ------------ | -------------------- | ---------- | ------------------ | --------------- |
299
- | 2 items | 3,820 / 20,000 | 2 | 3 | 15,274 |
300
- | 2,243 items | 10,156 / 20,000 | 106 | 7 | 40,614 |
298
+ |---|---|---|---|---|
299
+ | 2 items | 3,820 / 20,000 | 2 | 3 | 15,274 |
300
+ | 2,243 items | 10,156 / 20,000 | 106 | 7 | 40,614 |
301
301
 
302
302
  These are deterministic synthetic-corpus measurements from
303
303
  `scripts/release/context-intent-calibration.json`; they contain no hosted
@@ -99,7 +99,7 @@ The refusal contract distinguishes four states before any command-specific
99
99
  read or mutation begins:
100
100
 
101
101
  | Selected root state | Code | Exit | Recovery |
102
- | --- | --- | ---: | --- |
102
+ |---|---|---:|---|
103
103
  | Path does not exist | `tracker_root_missing` | 3 | Tokenized, non-interactive `pm --pm-path <path> init --defaults --agent-guidance skip` |
104
104
  | Directory exists but `settings.json` does not | `tracker_not_initialized` | 3 | The same initialization retry |
105
105
  | Path or ancestor is a regular file | `tracker_root_not_directory` | 2 | Select a directory; never suggest `pm init` against the file |
package/docs/RELEASING.md CHANGED
@@ -220,15 +220,15 @@ Signal tiers:
220
220
 
221
221
  Category precedence (first matching bucket wins):
222
222
 
223
- | Priority | Category | Trigger terms (from strong + weak signals unless noted) |
224
- | -------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------- |
225
- | 1 | `Security` | `security`, `cve`, `vulnerability` |
226
- | 2 | `Deprecated` | `deprecated`, `deprecation` |
227
- | 3 | `Removed` | `removed`, `remove`, `deleted`, `delete` |
228
- | 4 | `Fixed` | `fix`, `fixed`, `bug`, `bugfix`, `hotfix`, `regression` |
229
- | 5 | `Added` | `feature`, `feat`, `added`, `add`, `new` |
230
- | 6 | `Changed` | strong-signal `change`, `changed`, `refactor`, `update`, `updated`, `improve`; for non-bug-like types only, title fallback is also used |
231
- | 7 | `Other` | no classifier match |
223
+ | Priority | Category | Trigger terms (from strong + weak signals unless noted) |
224
+ |---|---|---|
225
+ | 1 | `Security` | `security`, `cve`, `vulnerability` |
226
+ | 2 | `Deprecated` | `deprecated`, `deprecation` |
227
+ | 3 | `Removed` | `removed`, `remove`, `deleted`, `delete` |
228
+ | 4 | `Fixed` | `fix`, `fixed`, `bug`, `bugfix`, `hotfix`, `regression` |
229
+ | 5 | `Added` | `feature`, `feat`, `added`, `add`, `new` |
230
+ | 6 | `Changed` | strong-signal `change`, `changed`, `refactor`, `update`, `updated`, `improve`; for non-bug-like types only, title fallback is also used |
231
+ | 7 | `Other` | no classifier match |
232
232
 
233
233
  Bug-like default:
234
234
 
@@ -284,7 +284,16 @@ semantic class is `usage`, `not_found`, or `conflict`. Message and title prose
284
284
  never participate. Unknown codes, missing or mismatched exits, unhandled
285
285
  events, and every `generic_failure` or `dependency_failed` remain blocking.
286
286
  This keeps rewording independent from release policy and makes stale or broad
287
- message allowlists impossible.
287
+ message allowlists impossible. The gate skips issues seen only in
288
+ `environment=test` (opted-in CI tests); an issue with any other event counts
289
+ whenever any of its events falls inside the activity window. Activity and
290
+ environment are separate Sentry queries, because Sentry applies `lastSeen` after
291
+ an environment filter: a combined query would also skip an issue whose
292
+ production event predates the window while a test event falls inside it. When
293
+ the listing of issues with non-test events may be truncated, nothing is skipped,
294
+ and a failed listing fails the gate. Both listings follow Sentry's next-page links
295
+ up to `--sentry-limit` (default `200`); when active issues remain beyond it, the
296
+ gate fails, because it cannot judge issues it never read.
288
297
 
289
298
  Sentry API requests use a 120-second deadline by default. Operators can set
290
299
  `--sentry-request-timeout-ms` between `1` and `300000` when reproducing
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: