@unbrained/pm-cli 2026.8.23 → 2026.8.24

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 (147) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +14 -1
  3. package/dist/cli/description-stdin.js +5 -4
  4. package/dist/cli/extension-command-help.d.ts +5 -0
  5. package/dist/cli/extension-command-help.js +6 -2
  6. package/dist/cli/help-content.d.ts +5 -0
  7. package/dist/cli/help-content.js +56 -3
  8. package/dist/cli/help-json-payload.d.ts +5 -2
  9. package/dist/cli/help-json-payload.js +57 -17
  10. package/dist/cli/main.d.ts +3 -0
  11. package/dist/cli/main.js +28 -3
  12. package/dist/cli/register-annotations.js +5 -5
  13. package/dist/cli/register-mutation.js +73 -27
  14. package/dist/cli-bundle/bundle-manifest.json +152 -152
  15. package/dist/cli-bundle/chunks/{chunk-JB4KZWBF.js → chunk-AGUL3HUT.js} +2 -2
  16. package/dist/cli-bundle/chunks/{chunk-EG6CLDZT.js → chunk-DJNJBWAQ.js} +2 -2
  17. package/dist/cli-bundle/chunks/{chunk-F3AI2JFL.js → chunk-I5Q7QSZX.js} +2 -2
  18. package/dist/cli-bundle/chunks/chunk-IW72J5FW.js +2 -0
  19. package/dist/cli-bundle/chunks/{chunk-KXPMB2YL.js → chunk-L22NP5MA.js} +55 -55
  20. package/dist/cli-bundle/chunks/chunk-MKE6MD2K.js +36 -0
  21. package/dist/cli-bundle/chunks/{chunk-QDVHNHAQ.js → chunk-NXBFO63A.js} +2 -2
  22. package/dist/cli-bundle/chunks/chunk-TEQDR5KI.js +202 -0
  23. package/dist/cli-bundle/chunks/{chunk-KPH73XXJ.js → chunk-X7WWQDYQ.js} +2 -2
  24. package/dist/cli-bundle/chunks/{chunk-TFI5V5N2.js → chunk-YOLLRCLY.js} +2 -2
  25. package/dist/cli-bundle/chunks/{chunk-HWZ6CELB.js → chunk-ZAVCS2GH.js} +2 -2
  26. package/dist/cli-bundle/chunks/{register-list-query-UJB5FMV2.js → register-list-query-37A4P6O4.js} +2 -2
  27. package/dist/cli-bundle/chunks/register-mutation-TBJDHYIT.js +20 -0
  28. package/dist/cli-bundle/chunks/{register-operations-RXIJIYXC.js → register-operations-WRZNEBUM.js} +2 -2
  29. package/dist/cli-bundle/chunks/{register-setup-GFUZEKRE.js → register-setup-H4PDLACD.js} +2 -2
  30. package/dist/cli-bundle/focused-chunks/{chunk-AUFH5H35.js → chunk-4WP7LNE3.js} +2 -2
  31. package/dist/cli-bundle/focused-chunks/{chunk-LYVSW5VM.js → chunk-6MUTDXMP.js} +2 -2
  32. package/dist/cli-bundle/focused-chunks/chunk-6Z24ZMU3.js +2 -0
  33. package/dist/cli-bundle/focused-chunks/{chunk-OGLQBL46.js → chunk-BFA6KKCI.js} +2 -2
  34. package/dist/cli-bundle/focused-chunks/{chunk-QGFNI65N.js → chunk-CWCN5RLO.js} +2 -2
  35. package/dist/cli-bundle/focused-chunks/{chunk-UYRFYCDQ.js → chunk-FCTT4CZU.js} +2 -2
  36. package/dist/cli-bundle/focused-chunks/{chunk-IFLWKY2R.js → chunk-GJR6YEMR.js} +2 -2
  37. package/dist/cli-bundle/focused-chunks/{chunk-37Z4OEAP.js → chunk-IMWTYKII.js} +2 -2
  38. package/dist/cli-bundle/focused-chunks/{chunk-R27IDGHD.js → chunk-IZNRRCU3.js} +2 -2
  39. package/dist/cli-bundle/focused-chunks/{chunk-JOWDB2MH.js → chunk-MNPECIRL.js} +2 -2
  40. package/dist/cli-bundle/focused-chunks/{chunk-OFVUGTLJ.js → chunk-O4ZXNJMT.js} +2 -2
  41. package/dist/cli-bundle/focused-chunks/chunk-Q63PSLO4.js +2 -0
  42. package/dist/cli-bundle/focused-chunks/chunk-QBP5FSBX.js +4 -0
  43. package/dist/cli-bundle/focused-chunks/{chunk-OY7QAV4Y.js → chunk-QV5UP27O.js} +46 -46
  44. package/dist/cli-bundle/focused-chunks/{chunk-3UPTYG44.js → chunk-RASVBJX5.js} +2 -2
  45. package/dist/cli-bundle/focused-chunks/{chunk-5S7E72FY.js → chunk-RPRLENVA.js} +2 -2
  46. package/dist/cli-bundle/focused-chunks/chunk-TOFVXBWA.js +19 -0
  47. package/dist/cli-bundle/focused-chunks/{chunk-FZS4H32O.js → chunk-WZLSSGEU.js} +2 -2
  48. package/dist/cli-bundle/main.js +18 -17
  49. package/dist/cli-bundle/sdk-authoring.js +1 -1
  50. package/dist/cli-bundle/sdk-contracts.js +1 -1
  51. package/dist/cli-bundle/sdk-core.js +41 -41
  52. package/dist/cli-bundle/sdk-governance.js +1 -1
  53. package/dist/cli-bundle/sdk-graph.js +1 -1
  54. package/dist/cli-bundle/sdk-merge.js +33 -33
  55. package/dist/cli-bundle/sdk-query.js +1 -1
  56. package/dist/cli-bundle/sdk-runtime.js +1 -1
  57. package/dist/cli-bundle/sdk-testing.js +1 -1
  58. package/dist/cli-bundle/sdk.js +6 -5
  59. package/dist/core/extensions/command-metadata-contract.d.ts +10 -0
  60. package/dist/core/extensions/command-metadata-contract.js +23 -0
  61. package/dist/core/extensions/command-visibility-tier.js +12 -2
  62. package/dist/core/extensions/extension-types.d.ts +6 -0
  63. package/dist/core/extensions/extension-types.js +2 -2
  64. package/dist/core/extensions/loader.js +4 -3
  65. package/dist/core/io/body-file.js +7 -2
  66. package/dist/core/io/bulk-ids-input.d.ts +24 -0
  67. package/dist/core/io/bulk-ids-input.js +113 -0
  68. package/dist/core/item/parse.d.ts +22 -2
  69. package/dist/core/item/parse.js +97 -4
  70. package/dist/mcp/server.d.ts +3 -2
  71. package/dist/mcp/server.js +16 -9
  72. package/dist/sdk/agent/refusal-closure-census.d.ts +66 -0
  73. package/dist/sdk/agent/refusal-closure-census.js +144 -0
  74. package/dist/sdk/agent-capability-contracts.d.ts +34 -1
  75. package/dist/sdk/agent-capability-contracts.js +104 -6
  76. package/dist/sdk/annotations.d.ts +2 -0
  77. package/dist/sdk/annotations.js +25 -7
  78. package/dist/sdk/cli-contracts/tool-parameter-tables.js +38 -2
  79. package/dist/sdk/cli-contracts/typed-action-inputs.d.ts +4 -1
  80. package/dist/sdk/cli-contracts/typed-action-inputs.js +2 -2
  81. package/dist/sdk/comments.js +15 -7
  82. package/dist/sdk/flag-invocation-contracts.d.ts +2 -0
  83. package/dist/sdk/flag-invocation-contracts.js +28 -3
  84. package/dist/sdk/generated/generated-error-code-catalog-part-1.js +71 -38
  85. package/dist/sdk/generated/generated-error-code-catalog-part-2.js +38 -2
  86. package/dist/sdk/guide-topics.d.ts +0 -5
  87. package/dist/sdk/guide-topics.js +28 -2
  88. package/dist/sdk/history-compact.d.ts +2 -1
  89. package/dist/sdk/history-compact.js +24 -5
  90. package/dist/sdk/history-mcp.js +11 -10
  91. package/dist/sdk/index.d.ts +1 -0
  92. package/dist/sdk/index.js +3 -2
  93. package/dist/sdk/item-transaction.js +19 -12
  94. package/dist/sdk/lifecycle/append.js +4 -4
  95. package/dist/sdk/lifecycle/close-many.js +16 -7
  96. package/dist/sdk/lifecycle/create.js +29 -21
  97. package/dist/sdk/lifecycle/plan.js +24 -6
  98. package/dist/sdk/lifecycle/update-many.js +15 -8
  99. package/dist/sdk/lifecycle/update.d.ts +2 -0
  100. package/dist/sdk/lifecycle/update.js +34 -24
  101. package/dist/sdk/runtime-extended-actions.js +5 -3
  102. package/dist/sdk/runtime-input.d.ts +4 -0
  103. package/dist/sdk/runtime-input.js +98 -23
  104. package/dist/sdk/runtime-primitives.d.ts +2 -1
  105. package/dist/sdk/runtime-primitives.js +4 -3
  106. package/dist/sdk/runtime.js +7 -20
  107. package/dist/sdk/scheduling-shortcuts.js +5 -3
  108. package/dist/sdk/structured-mutations.js +10 -3
  109. package/dist/sdk/workspace-contracts.d.ts +3 -0
  110. package/dist/sdk/workspace-contracts.js +3 -2
  111. package/docs/README.md +2 -0
  112. package/docs/RELEASING.md +40 -21
  113. package/docs/SCRIPTING.md +62 -3
  114. package/docs/SDK.md +8 -0
  115. package/docs/generated/AGENT_CAPABILITY_ROUTING.md +17 -0
  116. package/docs/generated/AGENT_COMMAND_SURFACE.md +1 -1
  117. package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +355 -0
  118. package/marketplace.json +2 -2
  119. package/package.json +1 -1
  120. package/packages/pm-beads/package.json +1 -1
  121. package/packages/pm-calendar/package.json +1 -1
  122. package/packages/pm-command-kit/README.md +9 -11
  123. package/packages/pm-command-kit/extensions/command-kit/index.ts +3 -1
  124. package/packages/pm-command-kit/package.json +1 -1
  125. package/packages/pm-digital-twin/package.json +1 -1
  126. package/packages/pm-governance-audit/package.json +1 -1
  127. package/packages/pm-guide-shell/extensions/guide-shell/index.ts +10 -0
  128. package/packages/pm-guide-shell/package.json +1 -1
  129. package/packages/pm-kanban/package.json +1 -1
  130. package/packages/pm-lifecycle-hooks/package.json +1 -1
  131. package/packages/pm-linked-test-adapters/package.json +1 -1
  132. package/packages/pm-search-advanced/package.json +1 -1
  133. package/packages/pm-templates/package.json +1 -1
  134. package/packages/pm-todos/package.json +1 -1
  135. package/packages/pm-vcs/package.json +1 -1
  136. package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
  137. package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
  138. package/scripts/generate-agent-capability-surfaces.mjs +27 -1
  139. package/sdk/public-surface.json +215 -11
  140. package/dist/cli-bundle/chunks/chunk-3ENVHX6C.js +0 -36
  141. package/dist/cli-bundle/chunks/chunk-DW2CGEMU.js +0 -2
  142. package/dist/cli-bundle/chunks/chunk-HZBMLSZI.js +0 -201
  143. package/dist/cli-bundle/chunks/register-mutation-NX5XE4VX.js +0 -20
  144. package/dist/cli-bundle/focused-chunks/chunk-E7X25GC3.js +0 -2
  145. package/dist/cli-bundle/focused-chunks/chunk-FQCSTBWE.js +0 -4
  146. package/dist/cli-bundle/focused-chunks/chunk-MRCNF3U6.js +0 -2
  147. package/dist/cli-bundle/focused-chunks/chunk-ZHVA42R5.js +0 -18
package/docs/SCRIPTING.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # CLI Scripting Contract
2
2
 
3
- Tracked by [pm-psy1](../.agents/pm/tasks/pm-psy1.toon), [pm-hqa8g1](../.agents/pm/tasks/pm-hqa8g1.toon), [pm-gknu](../.agents/pm/issues/pm-gknu.toon), [pm-999jh7](../.agents/pm/issues/pm-999jh7.toon), and [pm-srns](../.agents/pm/issues/pm-srns.toon).
3
+ Tracked by [pm-psy1](../.agents/pm/tasks/pm-psy1.toon), [pm-hqa8g1](../.agents/pm/tasks/pm-hqa8g1.toon), [pm-gknu](../.agents/pm/issues/pm-gknu.toon), [pm-999jh7](../.agents/pm/issues/pm-999jh7.toon), [pm-srns](../.agents/pm/issues/pm-srns.toon), [pm-3oq022](../.agents/pm/issues/pm-3oq022.toon), [pm-iktj](../.agents/pm/tasks/pm-iktj.toon), and [pm-kexu](../.agents/pm/issues/pm-kexu.toon).
4
4
 
5
5
  Use this contract when composing `pm` with shells, CI runners, `jq`, or another process. Exact flags remain discoverable from `pm <command> --help --json` and `pm contracts --command <command> --flags-only --json`.
6
6
 
@@ -14,8 +14,8 @@ Use this contract when composing `pm` with shells, CI runners, `jq`, or another
14
14
  | `3` | Requested tracker or resource was not found. | Correct the path or ID. |
15
15
  | `4` | State or concurrency conflict. | Refresh live state before deciding whether to retry. |
16
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. |
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:
@@ -134,6 +134,65 @@ else
134
134
  fi
135
135
  ```
136
136
 
137
+ Bulk selectors on `update-many`, `close-many`, and `history-compact` accept the
138
+ same explicit ID grammar through three CLI channels: comma/newline-delimited
139
+ argv text, `-` for stdin, and `@path` for a UTF-8 file. This makes a
140
+ read-selector-write pipeline executable without `xargs` command fan-out:
141
+
142
+ ```bash
143
+ pm list --status open,in_progress --fields id,priority --json |
144
+ jq -r '.items[] | select(.priority >= 2) | .id' |
145
+ pm update-many --ids - --priority 1 --dry-run --json
146
+
147
+ pm close-many --ids @reviewed-ids.txt \
148
+ --reason "Reviewed batch completed" --dry-run --json
149
+
150
+ pm list --status closed --fields id --json |
151
+ jq -r '.items[].id' |
152
+ pm history-compact --ids - --dry-run --json
153
+ ```
154
+
155
+ An unreadable `@path`, empty stdin, or empty file fails before the tracker is
156
+ read or mutated. `unmatched_ids` means the requested ID does not exist; an
157
+ existing ID excluded by another filter is not misreported as nonexistent.
158
+ Apply-mode exit `6`/`7` and the structured effect receipt remain authoritative.
159
+
160
+ `update-many --dry-run` may be filter-only. It returns the matched rows with an
161
+ empty `planned_update_options` object and empty per-row `changes`, which is a
162
+ bounded way to validate a selector before choosing a mutation. The same
163
+ filter-only invocation without `--dry-run` is rejected with exit `2`.
164
+
165
+ Direct SDK and MCP callers may pass `ids` as a string, a finite numeric scalar,
166
+ or an array of string and finite numeric IDs. The SDK normalizes every accepted
167
+ shape through the same stable-deduplicating parser; non-finite numbers and
168
+ unsupported explicit selector values are rejected before target selection:
169
+
170
+ ```ts
171
+ import { PmClient } from "@unbrained/pm-cli/sdk";
172
+
173
+ const pm = new PmClient({ pmRoot: ".agents/pm" });
174
+ await pm.run("update-many", {
175
+ options: {
176
+ ids: ["pm-a1b2", "pm-c3d4"],
177
+ priority: 1,
178
+ dryRun: true,
179
+ },
180
+ });
181
+ ```
182
+
183
+ File-reading text flags use the same stdin sentinel. `--body-file -` reads a
184
+ create/update body, while `comments`, `notes`, and `learnings` accept
185
+ `--file -`. Real file paths remain compatible:
186
+
187
+ ```bash
188
+ generate_body | pm create --title "Generated plan" --body-file -
189
+ render_review | pm comments pm-a1b2 --file -
190
+ ```
191
+
192
+ Each command invocation may consume stdin for only one option. Competing
193
+ stdin-backed inputs such as `--description - --body-file -` are rejected before
194
+ the stream is read.
195
+
137
196
  Use NDJSON for streaming row-by-row tools:
138
197
 
139
198
  ```bash
package/docs/SDK.md CHANGED
@@ -2046,6 +2046,8 @@ export default defineExtension({
2046
2046
  api.registerCommand({
2047
2047
  name: "hello",
2048
2048
  action: "hello",
2049
+ tier: "standard",
2050
+ family: "extensions",
2049
2051
  description: "Return a deterministic hello payload.",
2050
2052
  intent: "verify SDK extension activation",
2051
2053
  examples: ["pm hello"],
@@ -2100,6 +2102,12 @@ For a complete commands-capability package that combines `registerCommand`,
2100
2102
  `registerFlags`, and `registerParser`, see the first-party
2101
2103
  [pm-command-kit exemplar](../packages/pm-command-kit/README.md).
2102
2104
 
2105
+ Every command definition can declare its agent-surface `tier` (`core`,
2106
+ `standard`, `full`, or `internal`) and capability `family`. These are the same
2107
+ fields projected into CLI help, completion, MCP profiles, workspace contracts,
2108
+ and generated routing documentation. Omitted package values normalize to
2109
+ `standard` and `extensions`.
2110
+
2103
2111
  For a generated starter, use `pm package init ./my-package`. Pass
2104
2112
  `--capability hooks` to scaffold a command plus an `afterCommand` lifecycle
2105
2113
  reactor and a runnable `node:test` file that exercises
@@ -0,0 +1,17 @@
1
+ # Generated agent capability routing
2
+
3
+ Tracker: `pm-kxci8x`.
4
+
5
+ This file is generated from `PM_COMMAND_CAPABILITY_CONTRACTS`. Do not edit it manually.
6
+
7
+ | Capability family | Commands |
8
+ | --- | --- |
9
+ | workspace | `init`, `config`, `merge`, `schema`, `profile`, `telemetry`, `health`, `gc`, `workspace` |
10
+ | intake | `create`, `copy`, `focus`, `restore` |
11
+ | context | `list`, `aggregate`, `context`, `get`, `search`, `duplicates`, `eval`, `next`, `activity`, `stats`, `help` |
12
+ | lifecycle | `update`, `update-many`, `close`, `close-many`, `delete`, `claim`, `release`, `start-task`, `pause-task`, `close-task` |
13
+ | evidence | `history`, `events`, `history-redact`, `history-repair`, `history-compact`, `history-author-acknowledge`, `append`, `comments`, `notes`, `learnings`, `files`, `docs` |
14
+ | graph | `graph`, `deps`, `plan` |
15
+ | quality | `test`, `test-all`, `validate`, `assurance`, `contracts` |
16
+ | automation | `meet`, `event`, `remind` |
17
+ | extensions | `extension`, `package`, `packages`, `install`, `upgrade` |
@@ -4,7 +4,7 @@ This file is generated from `PM_COMMAND_CAPABILITY_CONTRACTS`. Do not edit it ma
4
4
 
5
5
  | Command | Minimum visibility tier | Capability family |
6
6
  | --- | --- | --- |
7
- | `init` | full | workspace |
7
+ | `init` | core | workspace |
8
8
  | `config` | standard | workspace |
9
9
  | `extension` | full | extensions |
10
10
  | `package` | full | extensions |
@@ -0,0 +1,355 @@
1
+ # Generated refusal closure census
2
+
3
+ Tracker: `pm-f05lsg`.
4
+
5
+ Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.
6
+
7
+ - Catalog error codes: 338
8
+ - Executable error codes: 16
9
+ - Executable-code ratchet floor: 16
10
+ - Required executable canonical codes: `bulk_ids_input_empty`, `bulk_ids_input_missing_path`, `bulk_ids_input_unreadable`, `invalid_argument_value`, `missing_lifecycle_target`, `missing_required_argument`, `projection_options_mutually_exclusive`, `tracker_not_initialized`, `tracker_root_missing`, `tracker_root_not_directory`, `tracker_root_unreadable`, `unknown_context_intent`, `unknown_field_projection`, `unknown_option`, `unknown_subcommand`
11
+ - Uncovered error codes: 322
12
+ - Coverage fraction: 0.047337
13
+ - Closed-domain probes: 18
14
+ - Grammar probes: 95
15
+
16
+ | Error code | Canonical code | Disposition | Evidence kinds | Probe count |
17
+ | --- | --- | --- | --- | --- |
18
+ | `acceptance_criteria_mutation_conflict` | `acceptance_criteria_mutation_conflict` | uncovered | none | 0 |
19
+ | `acceptance_criteria_remove_unmatched` | `acceptance_criteria_remove_unmatched` | uncovered | none | 0 |
20
+ | `acceptance_criteria_semicolon_forbidden` | `acceptance_criteria_semicolon_forbidden` | uncovered | none | 0 |
21
+ | `accepted_rejected_value` | `accepted_rejected_value` | uncovered | none | 0 |
22
+ | `alias_collision` | `alias_collision` | uncovered | none | 0 |
23
+ | `alias_target_missing` | `alias_target_missing` | uncovered | none | 0 |
24
+ | `already_claimed_by` | `already_claimed_by` | uncovered | none | 0 |
25
+ | `ambiguous_option_combination` | `ambiguous_option_combination` | uncovered | none | 0 |
26
+ | `annotation_alias_conflict` | `annotation_alias_conflict` | uncovered | none | 0 |
27
+ | `annotation_flag_like_value` | `annotation_flag_like_value` | uncovered | none | 0 |
28
+ | `annotation_message_without_text` | `annotation_message_without_text` | uncovered | none | 0 |
29
+ | `annotation_transposed_subcommand` | `annotation_transposed_subcommand` | uncovered | none | 0 |
30
+ | `append_empty_body` | `append_empty_body` | uncovered | none | 0 |
31
+ | `assurance_registry_invalid` | `assurance_registry_invalid` | uncovered | none | 0 |
32
+ | `body_file_conflicts_with_body` | `body_file_conflicts_with_body` | uncovered | none | 0 |
33
+ | `body_file_missing_path` | `body_file_missing_path` | uncovered | none | 0 |
34
+ | `body_file_unreadable` | `body_file_unreadable` | uncovered | none | 0 |
35
+ | `budget_exceeded` | `budget_exceeded` | uncovered | none | 0 |
36
+ | `bulk_ids_input_empty` | `bulk_ids_input_empty` | executable | owned_state | 1 |
37
+ | `bulk_ids_input_missing_path` | `bulk_ids_input_missing_path` | executable | owned_state | 1 |
38
+ | `bulk_ids_input_unreadable` | `bulk_ids_input_unreadable` | executable | owned_state | 1 |
39
+ | `bundle_integrity_torn_install` | `bundle_integrity_torn_install` | uncovered | none | 0 |
40
+ | `capability_undeclared` | `capability_undeclared` | uncovered | none | 0 |
41
+ | `capability_unused` | `capability_unused` | uncovered | none | 0 |
42
+ | `child_projection_item_bound_exceeded` | `child_projection_item_bound_exceeded` | uncovered | none | 0 |
43
+ | `close_reason_required` | `close_reason_required` | uncovered | none | 0 |
44
+ | `close_through_update` | `close_through_update` | uncovered | none | 0 |
45
+ | `close_validation_missing_fields` | `close_validation_missing_fields` | uncovered | none | 0 |
46
+ | `collected_zero_items` | `collected_zero_items` | uncovered | none | 0 |
47
+ | `collection_transposed_subcommand` | `collection_transposed_subcommand` | uncovered | none | 0 |
48
+ | `command_failed` | `command_failed` | uncovered | none | 0 |
49
+ | `command_namespace` | `command_namespace` | uncovered | none | 0 |
50
+ | `command_override_conflict` | `command_override_conflict` | uncovered | none | 0 |
51
+ | `config_duplicate` | `config_duplicate` | uncovered | none | 0 |
52
+ | `config_key_unknown` | `config_key_unknown` | uncovered | none | 0 |
53
+ | `config_value_invalid` | `config_value_invalid` | uncovered | none | 0 |
54
+ | `conflicting_lifecycle_owner` | `conflicting_lifecycle_owner` | uncovered | none | 0 |
55
+ | `context_signal_store_invalid` | `context_signal_store_invalid` | uncovered | none | 0 |
56
+ | `context_signal_store_stale` | `context_signal_store_stale` | uncovered | none | 0 |
57
+ | `context_signal_store_write_failed` | `context_signal_store_write_failed` | uncovered | none | 0 |
58
+ | `context_takes_no_item_argument` | `context_takes_no_item_argument` | uncovered | none | 0 |
59
+ | `core_item_field_requires_dedicated_flag` | `core_item_field_requires_dedicated_flag` | uncovered | none | 0 |
60
+ | `create_positional_type_without_title` | `create_positional_type_without_title` | uncovered | none | 0 |
61
+ | `dependency_edge_not_allowed` | `dependency_edge_not_allowed` | uncovered | none | 0 |
62
+ | `dependency_flag_value_invalid` | `dependency_flag_value_invalid` | uncovered | none | 0 |
63
+ | `dependency_remove_no_match` | `dependency_remove_no_match` | uncovered | none | 0 |
64
+ | `dependency_target_not_found` | `dependency_target_not_found` | uncovered | none | 0 |
65
+ | `dependency_temporal_order_invalid` | `dependency_temporal_order_invalid` | uncovered | none | 0 |
66
+ | `duplicate_canonical_flag` | `duplicate_canonical_flag` | uncovered | none | 0 |
67
+ | `duplicate_command` | `duplicate_command` | uncovered | none | 0 |
68
+ | `duplicate_destination` | `duplicate_destination` | uncovered | none | 0 |
69
+ | `duplicate_edge` | `duplicate_edge` | uncovered | none | 0 |
70
+ | `duplicate_observation` | `duplicate_observation` | uncovered | none | 0 |
71
+ | `duplicate_probe` | `duplicate_probe` | uncovered | none | 0 |
72
+ | `duplicate_sweep_cost_limit` | `duplicate_sweep_cost_limit` | uncovered | none | 0 |
73
+ | `duplicate_target_circular` | `duplicate_target_circular` | uncovered | none | 0 |
74
+ | `duplicate_target_is_duplicate` | `duplicate_target_is_duplicate` | uncovered | none | 0 |
75
+ | `duplicate_target_missing` | `duplicate_target_missing` | uncovered | none | 0 |
76
+ | `duplicate_target_self` | `duplicate_target_self` | uncovered | none | 0 |
77
+ | `empty_corpus` | `empty_corpus` | uncovered | none | 0 |
78
+ | `empty_surface` | `empty_surface` | uncovered | none | 0 |
79
+ | `error_code_mismatch` | `error_code_mismatch` | uncovered | none | 0 |
80
+ | `event_cursor_query_mismatch` | `event_cursor_query_mismatch` | uncovered | none | 0 |
81
+ | `event_index_unavailable` | `event_index_unavailable` | uncovered | none | 0 |
82
+ | `exit_code_mismatch` | `exit_code_mismatch` | uncovered | none | 0 |
83
+ | `extension_command_activation_failed` | `extension_command_activation_failed` | uncovered | none | 0 |
84
+ | `extension_dependency_name_unsafe` | `extension_dependency_name_unsafe` | uncovered | none | 0 |
85
+ | `extension_dependency_spec_invalid` | `extension_dependency_spec_invalid` | uncovered | none | 0 |
86
+ | `extension_dependency_version_unsafe` | `extension_dependency_version_unsafe` | uncovered | none | 0 |
87
+ | `extension_install_soft_failed` | `extension_install_soft_failed` | uncovered | none | 0 |
88
+ | `extension_install_source_contains_destination` | `extension_install_source_contains_destination` | uncovered | none | 0 |
89
+ | `extension_item_field_reserved` | `extension_item_field_reserved` | uncovered | none | 0 |
90
+ | `extension_item_field_type_conflict` | `extension_item_field_type_conflict` | uncovered | none | 0 |
91
+ | `extension_item_field_unknown` | `extension_item_field_unknown` | uncovered | none | 0 |
92
+ | `extension_mutation_guard_failed` | `extension_mutation_guard_failed` | uncovered | none | 0 |
93
+ | `extension_mutation_guard_invalid_decision` | `extension_mutation_guard_invalid_decision` | uncovered | none | 0 |
94
+ | `extension_mutation_guard_invalid_denial` | `extension_mutation_guard_invalid_denial` | uncovered | none | 0 |
95
+ | `extension_mutation_guard_timed_out` | `extension_mutation_guard_timed_out` | uncovered | none | 0 |
96
+ | `extension_update_health_partial_coverage` | `extension_update_health_partial_coverage` | uncovered | none | 0 |
97
+ | `field_duplicate` | `field_duplicate` | uncovered | none | 0 |
98
+ | `field_invalid` | `field_invalid` | uncovered | none | 0 |
99
+ | `field_mcp_input_collision` | `field_mcp_input_collision` | uncovered | none | 0 |
100
+ | `github_source_entry_unbuilt` | `github_source_entry_unbuilt` | uncovered | none | 0 |
101
+ | `hierarchy_cardinality_created` | `hierarchy_cardinality_created` | uncovered | none | 0 |
102
+ | `hierarchy_cycle_created` | `hierarchy_cycle_created` | uncovered | none | 0 |
103
+ | `hierarchy_parent_divergence_created` | `hierarchy_parent_divergence_created` | uncovered | none | 0 |
104
+ | `history_author_acknowledge_plan_conflict` | `history_author_acknowledge_plan_conflict` | uncovered | none | 0 |
105
+ | `history_author_acknowledge_plan_fingerprint_required` | `history_author_acknowledge_plan_fingerprint_required` | uncovered | none | 0 |
106
+ | `history_author_acknowledge_preview_limit_invalid` | `history_author_acknowledge_preview_limit_invalid` | uncovered | none | 0 |
107
+ | `history_author_acknowledge_required_values_missing` | `history_author_acknowledge_required_values_missing` | uncovered | none | 0 |
108
+ | `history_author_acknowledge_selector_conflict` | `history_author_acknowledge_selector_conflict` | uncovered | none | 0 |
109
+ | `history_author_acknowledge_selector_required` | `history_author_acknowledge_selector_required` | uncovered | none | 0 |
110
+ | `history_author_acknowledge_target_not_actionable` | `history_author_acknowledge_target_not_actionable` | uncovered | none | 0 |
111
+ | `history_author_acknowledge_target_unreadable` | `history_author_acknowledge_target_unreadable` | uncovered | none | 0 |
112
+ | `history_drift_chain_mismatch` | `history_drift_chain_mismatch` | uncovered | none | 0 |
113
+ | `history_drift_hash_mismatch` | `history_drift_hash_mismatch` | uncovered | none | 0 |
114
+ | `history_drift_missing_stream` | `history_drift_missing_stream` | uncovered | none | 0 |
115
+ | `history_drift_unreadable_stream` | `history_drift_unreadable_stream` | uncovered | none | 0 |
116
+ | `history_merge_conflict_markers_detected` | `merge_conflict_markers_detected` | uncovered | none | 0 |
117
+ | `history_stream_over_compact_threshold` | `history_stream_over_compact_threshold` | uncovered | none | 0 |
118
+ | `history_target_out_of_range` | `history_target_out_of_range` | uncovered | none | 0 |
119
+ | `history_unknown_author_events` | `history_unknown_author_events` | uncovered | none | 0 |
120
+ | `host_environment_capacity_fault` | `host_environment_capacity_fault` | uncovered | none | 0 |
121
+ | `host_environment_operation_invalid` | `host_environment_operation_invalid` | uncovered | none | 0 |
122
+ | `host_environment_permission_fault` | `host_environment_permission_fault` | uncovered | none | 0 |
123
+ | `host_environment_resource_fault` | `host_environment_resource_fault` | uncovered | none | 0 |
124
+ | `improvement_metric_contract_conflict` | `improvement_metric_contract_conflict` | uncovered | none | 0 |
125
+ | `improvement_observation_conflict` | `improvement_observation_conflict` | uncovered | none | 0 |
126
+ | `incomplete_allowed_values` | `incomplete_allowed_values` | uncovered | none | 0 |
127
+ | `inconsistent_concept_kind` | `inconsistent_concept_kind` | uncovered | none | 0 |
128
+ | `init_existing_settings_requires_force` | `init_existing_settings_requires_force` | uncovered | none | 0 |
129
+ | `init_gitignore_unwritable` | `init_gitignore_unwritable` | uncovered | none | 0 |
130
+ | `init_id_prefix_conflict` | `init_id_prefix_conflict` | uncovered | none | 0 |
131
+ | `init_id_prefix_path_like` | `init_id_prefix_path_like` | uncovered | none | 0 |
132
+ | `integrity_history_conflict_marker` | `integrity_history_conflict_marker` | uncovered | none | 0 |
133
+ | `integrity_history_invalid_json` | `integrity_history_invalid_json` | uncovered | none | 0 |
134
+ | `integrity_history_unreadable` | `integrity_history_unreadable` | uncovered | none | 0 |
135
+ | `integrity_item_ahead_format_version` | `integrity_item_ahead_format_version` | uncovered | none | 0 |
136
+ | `integrity_item_conflict_marker` | `integrity_item_conflict_marker` | uncovered | none | 0 |
137
+ | `integrity_item_outdated_format_version` | `integrity_item_outdated_format_version` | uncovered | none | 0 |
138
+ | `integrity_item_parse_failed` | `integrity_item_parse_failed` | uncovered | none | 0 |
139
+ | `integrity_item_unreadable` | `integrity_item_unreadable` | uncovered | none | 0 |
140
+ | `invalid_argument_value` | `invalid_argument_value` | executable | grammar | 26 |
141
+ | `invalid_command_usage` | `invalid_command_usage` | uncovered | none | 0 |
142
+ | `invalid_event_cursor` | `invalid_event_cursor` | uncovered | none | 0 |
143
+ | `invalid_event_cursor_mode` | `invalid_event_cursor_mode` | uncovered | none | 0 |
144
+ | `invalid_event_follow_interval` | `invalid_event_follow_interval` | uncovered | none | 0 |
145
+ | `invalid_event_limit` | `invalid_event_limit` | uncovered | none | 0 |
146
+ | `invalid_event_since` | `invalid_event_since` | uncovered | none | 0 |
147
+ | `invalid_history_analytics_limit` | `invalid_history_analytics_limit` | uncovered | none | 0 |
148
+ | `invalid_history_analytics_minimum_sample` | `invalid_history_analytics_minimum_sample` | uncovered | none | 0 |
149
+ | `invalid_history_analytics_since` | `invalid_history_analytics_since` | uncovered | none | 0 |
150
+ | `invalid_improvement_ledger` | `invalid_improvement_ledger` | uncovered | none | 0 |
151
+ | `invalid_improvement_metric` | `invalid_improvement_metric` | uncovered | none | 0 |
152
+ | `invalid_improvement_observation` | `invalid_improvement_observation` | uncovered | none | 0 |
153
+ | `invalid_improvement_observation_limit` | `invalid_improvement_observation_limit` | uncovered | none | 0 |
154
+ | `invalid_improvement_observation_timestamp` | `invalid_improvement_observation_timestamp` | uncovered | none | 0 |
155
+ | `invalid_provenance_predicate` | `invalid_provenance_predicate` | uncovered | none | 0 |
156
+ | `invalid_query_cursor` | `invalid_query_cursor` | uncovered | none | 0 |
157
+ | `invalid_read_output_session` | `invalid_read_output_session` | uncovered | none | 0 |
158
+ | `invalid_reproducible_process_environment` | `invalid_reproducible_process_environment` | uncovered | none | 0 |
159
+ | `invalid_workspace_snapshot_target` | `invalid_workspace_snapshot_target` | uncovered | none | 0 |
160
+ | `item_already_active` | `item_already_active` | uncovered | none | 0 |
161
+ | `item_document_invalid` | `item_document_invalid` | uncovered | none | 0 |
162
+ | `item_document_roundtrip_failed` | `item_document_roundtrip_failed` | uncovered | none | 0 |
163
+ | `item_id_collision` | `item_id_collision` | uncovered | none | 0 |
164
+ | `item_not_found` | `item_not_found` | uncovered | none | 0 |
165
+ | `likely_duplicate` | `likely_duplicate` | uncovered | none | 0 |
166
+ | `linked_artifact_mutation_conflict` | `linked_artifact_mutation_conflict` | uncovered | none | 0 |
167
+ | `linked_test_remove_no_match` | `linked_test_remove_no_match` | uncovered | none | 0 |
168
+ | `linked_test_value_not_quoted` | `linked_test_value_not_quoted` | uncovered | none | 0 |
169
+ | `list_source_incomplete` | `list_source_incomplete` | uncovered | none | 0 |
170
+ | `local_package_archive_unsafe` | `local_package_archive_unsafe` | uncovered | none | 0 |
171
+ | `local_source_not_found_bare_name` | `local_source_not_found_bare_name` | uncovered | none | 0 |
172
+ | `lock_conflict` | `lock_conflict` | uncovered | none | 0 |
173
+ | `locks_stale_count` | `locks_stale_count` | uncovered | none | 0 |
174
+ | `locks_unreadable` | `locks_unreadable` | uncovered | none | 0 |
175
+ | `malformed_plan_step_evidence` | `malformed_plan_step_evidence` | uncovered | none | 0 |
176
+ | `manifest_capabilities_absent` | `manifest_capabilities_absent` | uncovered | none | 0 |
177
+ | `manifest_unknown_key` | `manifest_unknown_key` | uncovered | none | 0 |
178
+ | `mcp_annotation_file_unavailable` | `mcp_annotation_file_unavailable` | uncovered | none | 0 |
179
+ | `mcp_stdin_unavailable` | `mcp_stdin_unavailable` | uncovered | none | 0 |
180
+ | `merge_conflict_markers_detected` | `merge_conflict_markers_detected` | uncovered | none | 0 |
181
+ | `merge_decisions_unreviewed` | `merge_decisions_unreviewed` | uncovered | none | 0 |
182
+ | `merge_git_config_unwritable` | `merge_git_config_unwritable` | uncovered | none | 0 |
183
+ | `merge_reconcile_discards_require_acceptance` | `merge_reconcile_discards_require_acceptance` | uncovered | none | 0 |
184
+ | `merge_root_not_found` | `merge_root_not_found` | uncovered | none | 0 |
185
+ | `missing_allowed_values` | `missing_allowed_values` | uncovered | none | 0 |
186
+ | `missing_budget` | `missing_budget` | uncovered | none | 0 |
187
+ | `missing_cli_flag` | `missing_cli_flag` | uncovered | none | 0 |
188
+ | `missing_destination` | `missing_destination` | uncovered | none | 0 |
189
+ | `missing_directory` | `missing_directory` | uncovered | none | 0 |
190
+ | `missing_init_recovery` | `missing_init_recovery` | uncovered | none | 0 |
191
+ | `missing_lifecycle_target` | `missing_lifecycle_target` | executable | grammar | 4 |
192
+ | `missing_observation` | `missing_observation` | uncovered | none | 0 |
193
+ | `missing_observed_signature` | `missing_observed_signature` | uncovered | none | 0 |
194
+ | `missing_parameter_alias` | `missing_parameter_alias` | uncovered | none | 0 |
195
+ | `missing_probe` | `missing_probe` | uncovered | none | 0 |
196
+ | `missing_required_argument` | `missing_required_argument` | executable | grammar | 58 |
197
+ | `missing_required_option` | `missing_required_option` | uncovered | none | 0 |
198
+ | `missing_suggested_retry` | `missing_suggested_retry` | uncovered | none | 0 |
199
+ | `missing_suggested_retry_args` | `missing_suggested_retry_args` | uncovered | none | 0 |
200
+ | `module_import_failed` | `module_import_failed` | uncovered | none | 0 |
201
+ | `multi_target_github_install_ambiguous` | `multi_target_github_install_ambiguous` | uncovered | none | 0 |
202
+ | `mutation_author_required` | `mutation_author_required` | uncovered | none | 0 |
203
+ | `mutation_secret_guard_blocked` | `mutation_secret_guard_blocked` | uncovered | none | 0 |
204
+ | `no_matching_tests` | `no_matching_tests` | uncovered | none | 0 |
205
+ | `no_projects_matched_filters` | `no_projects_matched_filters` | uncovered | none | 0 |
206
+ | `no_test_files_found` | `no_test_files_found` | uncovered | none | 0 |
207
+ | `no_tests_found` | `no_tests_found` | uncovered | none | 0 |
208
+ | `no_update_fields` | `no_update_fields` | uncovered | none | 0 |
209
+ | `no_version_bounds_declared` | `no_version_bounds_declared` | uncovered | none | 0 |
210
+ | `non_refusal_exit` | `non_refusal_exit` | uncovered | none | 0 |
211
+ | `npm_package_not_found` | `npm_package_not_found` | uncovered | none | 0 |
212
+ | `ownership_conflict` | `ownership_conflict` | uncovered | none | 0 |
213
+ | `ownership_dependency_bypass_restricted_options` | `ownership_dependency_bypass_restricted_options` | uncovered | none | 0 |
214
+ | `ownership_metadata_bypass_restricted_options` | `ownership_metadata_bypass_restricted_options` | uncovered | none | 0 |
215
+ | `package_spec_empty` | `package_spec_empty` | uncovered | none | 0 |
216
+ | `positional_shape_budget_exceeded` | `positional_shape_budget_exceeded` | uncovered | none | 0 |
217
+ | `positional_signature_mismatch` | `positional_signature_mismatch` | uncovered | none | 0 |
218
+ | `profile_name_empty` | `profile_name_empty` | uncovered | none | 0 |
219
+ | `profile_name_not_normalized` | `profile_name_not_normalized` | uncovered | none | 0 |
220
+ | `profile_summary_empty` | `profile_summary_empty` | uncovered | none | 0 |
221
+ | `profile_title_empty` | `profile_title_empty` | uncovered | none | 0 |
222
+ | `project_runtime_stale_mutation` | `project_runtime_stale_mutation` | uncovered | none | 0 |
223
+ | `project_runtime_stale_read` | `project_runtime_stale_read` | uncovered | none | 0 |
224
+ | `projection_options_mutually_exclusive` | `projection_options_mutually_exclusive` | executable | closed_domain | 3 |
225
+ | `provenance_value_domain_invalid` | `provenance_value_domain_invalid` | uncovered | none | 0 |
226
+ | `read_output_cursor_command_mismatch` | `read_output_cursor_command_mismatch` | uncovered | none | 0 |
227
+ | `read_output_cursor_invalid` | `read_output_cursor_invalid` | uncovered | none | 0 |
228
+ | `read_output_cursor_stale` | `read_output_cursor_stale` | uncovered | none | 0 |
229
+ | `recovery_kind_mismatch` | `recovery_kind_mismatch` | uncovered | none | 0 |
230
+ | `redundant_edge` | `redundant_edge` | uncovered | none | 0 |
231
+ | `refusal_allowed_values_mismatch` | `refusal_allowed_values_mismatch` | uncovered | none | 0 |
232
+ | `refusal_error_code_mismatch` | `refusal_error_code_mismatch` | uncovered | none | 0 |
233
+ | `refusal_exit_code_mismatch` | `refusal_exit_code_mismatch` | uncovered | none | 0 |
234
+ | `refusal_mutated_state` | `refusal_mutated_state` | uncovered | none | 0 |
235
+ | `refusal_probe_missing` | `refusal_probe_missing` | uncovered | none | 0 |
236
+ | `refusal_recovery_failed` | `refusal_recovery_failed` | uncovered | none | 0 |
237
+ | `reindex_already_running` | `reindex_already_running` | uncovered | none | 0 |
238
+ | `removed_canonical_spelling` | `removed_canonical_spelling` | uncovered | none | 0 |
239
+ | `removed_compatibility_spelling` | `removed_compatibility_spelling` | uncovered | none | 0 |
240
+ | `reopen_reason_required` | `reopen_reason_required` | uncovered | none | 0 |
241
+ | `reopen_receipt_missing` | `reopen_receipt_missing` | uncovered | none | 0 |
242
+ | `reopen_target_status_invalid` | `reopen_target_status_invalid` | uncovered | none | 0 |
243
+ | `reserved_item_field` | `reserved_item_field` | uncovered | none | 0 |
244
+ | `retry_failed` | `retry_failed` | uncovered | none | 0 |
245
+ | `schema_migration_input_required` | `schema_migration_input_required` | uncovered | none | 0 |
246
+ | `semantic_spelling_collision` | `semantic_spelling_collision` | uncovered | none | 0 |
247
+ | `settings_read_fs_error` | `settings_read_fs_error` | uncovered | none | 0 |
248
+ | `settings_read_invalid_json` | `settings_read_invalid_json` | uncovered | none | 0 |
249
+ | `settings_read_invalid_schema` | `settings_read_invalid_schema` | uncovered | none | 0 |
250
+ | `settings_read_merge_failed` | `settings_read_merge_failed` | uncovered | none | 0 |
251
+ | `stale_budget` | `stale_budget` | uncovered | none | 0 |
252
+ | `stale_destination` | `stale_destination` | uncovered | none | 0 |
253
+ | `stale_observed_signature` | `stale_observed_signature` | uncovered | none | 0 |
254
+ | `status_duplicate` | `status_duplicate` | uncovered | none | 0 |
255
+ | `status_invalid` | `status_invalid` | uncovered | none | 0 |
256
+ | `stdin_json_invalid` | `stdin_json_invalid` | uncovered | none | 0 |
257
+ | `stdin_json_unknown_key` | `stdin_json_unknown_key` | uncovered | none | 0 |
258
+ | `structured_event_immutable` | `structured_event_immutable` | uncovered | none | 0 |
259
+ | `structured_event_input_conflict` | `structured_event_input_conflict` | uncovered | none | 0 |
260
+ | `structured_event_json_empty` | `structured_event_json_empty` | uncovered | none | 0 |
261
+ | `structured_event_json_invalid` | `structured_event_json_invalid` | uncovered | none | 0 |
262
+ | `structured_event_since_invalid` | `structured_event_since_invalid` | uncovered | none | 0 |
263
+ | `suggested_retry_args_mismatch` | `suggested_retry_args_mismatch` | uncovered | none | 0 |
264
+ | `telemetry_endpoint_probe_failed` | `telemetry_endpoint_probe_failed` | uncovered | none | 0 |
265
+ | `telemetry_endpoint_probe_http_status` | `telemetry_endpoint_probe_http_status` | uncovered | none | 0 |
266
+ | `telemetry_otel_export_failing` | `telemetry_otel_export_failing` | uncovered | none | 0 |
267
+ | `telemetry_queue_high_retries` | `telemetry_queue_high_retries` | uncovered | none | 0 |
268
+ | `telemetry_queue_invalid_rows` | `telemetry_queue_invalid_rows` | uncovered | none | 0 |
269
+ | `telemetry_queue_pending` | `telemetry_queue_pending` | uncovered | none | 0 |
270
+ | `telemetry_schema_version_behind` | `telemetry_schema_version_behind` | uncovered | none | 0 |
271
+ | `telemetry_state_invalid_json` | `telemetry_state_invalid_json` | uncovered | none | 0 |
272
+ | `template_type_unknown` | `template_type_unknown` | uncovered | none | 0 |
273
+ | `terminal_plan_mutation` | `terminal_plan_mutation` | uncovered | none | 0 |
274
+ | `terminal_state_conflict` | `terminal_state_conflict` | uncovered | none | 0 |
275
+ | `tracked_runtime_cache_files` | `tracked_runtime_cache_files` | uncovered | none | 0 |
276
+ | `tracker_not_initialized` | `tracker_not_initialized` | executable | owned_state | 1 |
277
+ | `tracker_root_missing` | `tracker_root_missing` | executable | owned_state | 1 |
278
+ | `tracker_root_not_directory` | `tracker_root_not_directory` | executable | owned_state | 1 |
279
+ | `tracker_root_unreadable` | `tracker_root_unreadable` | executable | owned_state | 1 |
280
+ | `type_duplicate` | `type_duplicate` | uncovered | none | 0 |
281
+ | `type_invalid` | `type_invalid` | uncovered | none | 0 |
282
+ | `undeclared_observation` | `undeclared_observation` | uncovered | none | 0 |
283
+ | `unexpected_refusal_probe` | `unexpected_refusal_probe` | uncovered | none | 0 |
284
+ | `unknown_command` | `unknown_command` | uncovered | none | 0 |
285
+ | `unknown_context_intent` | `unknown_context_intent` | executable | closed_domain | 5 |
286
+ | `unknown_error` | `unknown_error` | uncovered | none | 0 |
287
+ | `unknown_field` | `unknown_field` | uncovered | none | 0 |
288
+ | `unknown_field_projection` | `unknown_field_projection` | executable | closed_domain | 10 |
289
+ | `unknown_item_type` | `unknown_item_type` | uncovered | none | 0 |
290
+ | `unknown_lifecycle_action` | `unknown_subcommand` | executable | grammar, owned_state | 11 |
291
+ | `unknown_noun` | `unknown_noun` | uncovered | none | 0 |
292
+ | `unknown_option` | `unknown_option` | executable | owned_state | 1 |
293
+ | `unknown_plan_template` | `unknown_plan_template` | uncovered | none | 0 |
294
+ | `unknown_provenance_dimension` | `unknown_provenance_dimension` | uncovered | none | 0 |
295
+ | `unknown_status` | `unknown_status` | uncovered | none | 0 |
296
+ | `unknown_subcommand` | `unknown_subcommand` | executable | grammar, owned_state | 11 |
297
+ | `unsafe_init_recovery` | `unsafe_init_recovery` | uncovered | none | 0 |
298
+ | `unsupported_update_option` | `unsupported_update_option` | uncovered | none | 0 |
299
+ | `validate_command_references_stale_pm_ids` | `validate_command_references_stale_pm_ids` | uncovered | none | 0 |
300
+ | `validate_files_missing_linked_paths` | `validate_files_missing_linked_paths` | uncovered | none | 0 |
301
+ | `validate_files_orphaned_paths` | `validate_files_orphaned_paths` | uncovered | none | 0 |
302
+ | `validate_files_tracked_all_strict_forces_pm_internals` | `validate_files_tracked_all_strict_forces_pm_internals` | uncovered | none | 0 |
303
+ | `validate_format_version_ahead_items` | `integrity_item_ahead_format_version` | uncovered | none | 0 |
304
+ | `validate_format_version_outdated_items` | `integrity_item_outdated_format_version` | uncovered | none | 0 |
305
+ | `validate_hierarchy_parent_cycle` | `validate_hierarchy_parent_cycle` | uncovered | none | 0 |
306
+ | `validate_hierarchy_parent_cycle_error` | `validate_hierarchy_parent_cycle_error` | uncovered | none | 0 |
307
+ | `validate_history_drift_chain_mismatches` | `history_drift_chain_mismatch` | uncovered | none | 0 |
308
+ | `validate_history_drift_hash_mismatches` | `history_drift_hash_mismatch` | uncovered | none | 0 |
309
+ | `validate_history_drift_missing_streams` | `history_drift_missing_stream` | uncovered | none | 0 |
310
+ | `validate_history_drift_unreadable_streams` | `history_drift_unreadable_stream` | uncovered | none | 0 |
311
+ | `validate_history_unknown_author_events` | `history_unknown_author_events` | uncovered | none | 0 |
312
+ | `validate_lifecycle_active_closure_like_metadata` | `validate_lifecycle_active_closure_like_metadata` | uncovered | none | 0 |
313
+ | `validate_lifecycle_active_terminal_parent` | `validate_lifecycle_active_terminal_parent` | uncovered | none | 0 |
314
+ | `validate_lifecycle_dependency_cycles` | `validate_lifecycle_dependency_cycles` | uncovered | none | 0 |
315
+ | `validate_lifecycle_dependency_cycles_error` | `validate_lifecycle_dependency_cycles_error` | uncovered | none | 0 |
316
+ | `validate_lifecycle_stale_blockers` | `validate_lifecycle_stale_blockers` | uncovered | none | 0 |
317
+ | `validate_merge_decisions_unreviewed` | `validate_merge_decisions_unreviewed` | uncovered | none | 0 |
318
+ | `validate_merge_fence_drift` | `validate_merge_fence_drift` | uncovered | none | 0 |
319
+ | `validate_metadata_custom_profile_missing_required_fields` | `validate_metadata_custom_profile_missing_required_fields` | uncovered | none | 0 |
320
+ | `validate_metadata_duplicate_issue_codes` | `validate_metadata_duplicate_issue_codes` | uncovered | none | 0 |
321
+ | `validate_metadata_missing_acceptance_criteria` | `validate_metadata_missing_acceptance_criteria` | uncovered | none | 0 |
322
+ | `validate_metadata_missing_close_reason` | `validate_metadata_missing_close_reason` | uncovered | none | 0 |
323
+ | `validate_metadata_missing_confidence` | `validate_metadata_missing_confidence` | uncovered | none | 0 |
324
+ | `validate_metadata_missing_estimate` | `validate_metadata_missing_estimate` | uncovered | none | 0 |
325
+ | `validate_metadata_missing_release` | `validate_metadata_missing_release` | uncovered | none | 0 |
326
+ | `validate_metadata_missing_reviewer` | `validate_metadata_missing_reviewer` | uncovered | none | 0 |
327
+ | `validate_metadata_missing_risk` | `validate_metadata_missing_risk` | uncovered | none | 0 |
328
+ | `validate_metadata_missing_sprint` | `validate_metadata_missing_sprint` | uncovered | none | 0 |
329
+ | `validate_resolution_missing_fields` | `validate_resolution_missing_fields` | uncovered | none | 0 |
330
+ | `validate_storage_duplicate_item_ids` | `validate_storage_duplicate_item_ids` | uncovered | none | 0 |
331
+ | `validate_storage_history_conflict_markers` | `integrity_history_conflict_marker` | uncovered | none | 0 |
332
+ | `validate_storage_resurrected_items` | `validate_storage_resurrected_items` | uncovered | none | 0 |
333
+ | `validate_storage_tracked_runtime_cache_files` | `tracked_runtime_cache_files` | uncovered | none | 0 |
334
+ | `validate_storage_unparseable_config` | `validate_storage_unparseable_config` | uncovered | none | 0 |
335
+ | `validate_storage_unparseable_history` | `validate_storage_unparseable_history` | uncovered | none | 0 |
336
+ | `validate_storage_unreadable_items` | `validate_storage_unreadable_items` | uncovered | none | 0 |
337
+ | `vectorization_embedding_identity_changed` | `vectorization_embedding_identity_changed` | uncovered | none | 0 |
338
+ | `vectorization_stale_items_remaining` | `vectorization_stale_items_remaining` | uncovered | none | 0 |
339
+ | `visible_surface_ceiling_exceeded` | `visible_surface_ceiling_exceeded` | uncovered | none | 0 |
340
+ | `workflow_duplicate_type` | `workflow_duplicate_type` | uncovered | none | 0 |
341
+ | `workflow_status_unknown` | `workflow_status_unknown` | uncovered | none | 0 |
342
+ | `workflow_transition_malformed` | `workflow_transition_malformed` | uncovered | none | 0 |
343
+ | `workflow_type_empty` | `workflow_type_empty` | uncovered | none | 0 |
344
+ | `workflow_type_unknown` | `workflow_type_unknown` | uncovered | none | 0 |
345
+ | `workspace_history_chain_invalid` | `workspace_history_chain_invalid` | uncovered | none | 0 |
346
+ | `workspace_history_state_conflict` | `workspace_history_state_conflict` | uncovered | none | 0 |
347
+ | `workspace_root_pm_path` | `workspace_root_pm_path` | uncovered | none | 0 |
348
+ | `workspace_snapshot_force_required` | `workspace_snapshot_force_required` | uncovered | none | 0 |
349
+ | `workspace_snapshot_manifest_mismatch` | `workspace_snapshot_manifest_mismatch` | uncovered | none | 0 |
350
+ | `workspace_snapshot_name_reserved_fingerprint` | `workspace_snapshot_name_reserved_fingerprint` | uncovered | none | 0 |
351
+ | `workspace_snapshot_not_found` | `workspace_snapshot_not_found` | uncovered | none | 0 |
352
+ | `workspace_snapshot_permission_denied` | `workspace_snapshot_permission_denied` | uncovered | none | 0 |
353
+ | `workspace_snapshot_resource_exhausted` | `workspace_snapshot_resource_exhausted` | uncovered | none | 0 |
354
+ | `workspace_snapshot_storage_exhausted` | `workspace_snapshot_storage_exhausted` | uncovered | none | 0 |
355
+ | `wrong_item_type` | `wrong_item_type` | uncovered | none | 0 |
package/marketplace.json CHANGED
@@ -6,14 +6,14 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
9
- "version": "2026.8.23"
9
+ "version": "2026.8.24"
10
10
  },
11
11
  "plugins": [
12
12
  {
13
13
  "name": "pm-claude",
14
14
  "source": "./plugins/pm-claude",
15
15
  "description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
16
- "version": "2026.8.23",
16
+ "version": "2026.8.24",
17
17
  "author": {
18
18
  "name": "unbrained",
19
19
  "url": "https://github.com/unbraind/pm-cli"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-cli",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "description": "Git-native project management CLI for humans and agents.",
5
5
  "type": "module",
6
6
  "packageManager": "pnpm@11.10.0",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-beads",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for importing Beads JSONL records.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-calendar",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for calendar and agenda views.",
@@ -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`, `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
 
@@ -49,16 +49,14 @@ packages/pm-command-kit/
49
49
  ├── README.md
50
50
  └── extensions/command-kit/
51
51
  ├── manifest.json # capabilities, trusted, sandbox_profile, permissions
52
- ├── index.ts # TypeScript source (type-only SDK imports)
53
- └── index.js # hand-maintained runtime module (import-free)
52
+ └── index.ts # authored and loaded directly with type stripping
54
53
  ```
55
54
 
56
55
  Key conventions for authors:
57
56
 
58
- - `index.js` is what actually runs. It is **import-free** so the extension loads in
59
- extension-only installs without SDK module resolution. `index.ts` mirrors it with
60
- `import type { ... } from` the SDK for editor/typecheck support; type-only imports are
61
- erased and keep the shipped `.js` dependency-free.
57
+ - `index.ts` is both the authored source and the runtime entrypoint. pm strips types
58
+ when loading it, so there is no duplicate compiled module to keep synchronized.
59
+ Type-only SDK imports retain editor/typecheck support without adding runtime imports.
62
60
  - The module's `manifest.capabilities` literal must match `manifest.json` exactly
63
61
  (`commands` for `registerCommand`, `schema` for flag definitions/`registerFlags`,
64
62
  `parser` for `registerParser`).
@@ -25,7 +25,7 @@ import type {
25
25
  export const manifest = {
26
26
  name: "builtin-command-kit",
27
27
  version: "0.1.0",
28
- entry: "./index.js",
28
+ entry: "./index.ts",
29
29
  priority: 0,
30
30
  capabilities: ["commands", "schema", "parser"],
31
31
  activation: { commands: ["command-kit echo", "list"] },
@@ -145,6 +145,8 @@ export function buildEchoCommandDefinition(): CommandDefinition {
145
145
  return {
146
146
  name: ECHO_COMMAND,
147
147
  action: "command-kit-echo",
148
+ tier: "standard",
149
+ family: "extensions",
148
150
  description:
149
151
  "Echo a message as structured output (commands-capability exemplar).",
150
152
  intent:
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-command-kit",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm exemplar package for the commands capability: registerCommand, registerFlags, and registerParser.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-digital-twin",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "Beyond-PM exemplar: a temporal production-facility digital twin built entirely on public pm SDK and extension primitives.",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unbrained/pm-governance-audit",
3
- "version": "2026.8.23",
3
+ "version": "2026.8.24",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "description": "First-party pm package for governance audit and normalization workflows.",