@unbrained/pm-cli 2026.8.18 → 2026.8.20
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.
- package/.claude-plugin/marketplace.json +2 -2
- package/CHANGELOG.md +35 -2
- package/dist/cli/error-guidance.js +3 -2
- package/dist/cli/help-content.js +32 -13
- package/dist/cli/help-json-payload.d.ts +15 -0
- package/dist/cli/help-json-payload.js +101 -23
- package/dist/cli/main.js +6 -2
- package/dist/cli/register-list-query.js +18 -13
- package/dist/cli/register-mutation.js +8 -8
- package/dist/cli/register-operations.js +6 -6
- package/dist/cli/register-structured-mutation.d.ts +2 -0
- package/dist/cli/register-structured-mutation.js +29 -6
- package/dist/cli-bundle/bundle-manifest.json +151 -143
- package/dist/cli-bundle/chunks/{chunk-UYCLQVL2.js → chunk-2RDVGYWE.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-BSK2IN3C.js → chunk-4GB2LTOQ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-RZQTVMRQ.js → chunk-7BRF2BX2.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-BLVQHFSY.js +35 -0
- package/dist/cli-bundle/chunks/chunk-CU25EQVV.js +5 -0
- package/dist/cli-bundle/chunks/chunk-K3EN3LK2.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-YRGOLZA7.js → chunk-L4LGPBJU.js} +49 -49
- package/dist/cli-bundle/chunks/chunk-RS3IV2R6.js +197 -0
- package/dist/cli-bundle/chunks/chunk-TSMWLCHS.js +3 -0
- package/dist/cli-bundle/chunks/chunk-US2ZQW2M.js +77 -0
- package/dist/cli-bundle/chunks/{chunk-5UZZAJKR.js → chunk-XYDDWBZN.js} +2 -2
- package/dist/cli-bundle/chunks/register-list-query-JSAQCVOC.js +11 -0
- package/dist/cli-bundle/chunks/register-mutation-XJPAW63D.js +20 -0
- package/dist/cli-bundle/chunks/register-operations-DSOSB2XQ.js +2 -0
- package/dist/cli-bundle/chunks/{register-setup-PPPEF3SN.js → register-setup-QUR6QL2C.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-325UXIO7.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-5L7M4AI7.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-ODOVCP45.js → chunk-6AHG2YW7.js} +44 -44
- package/dist/cli-bundle/focused-chunks/chunk-AZBACT5T.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-TN4AE665.js → chunk-BLJCGGID.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-FUREQLQN.js +18 -0
- package/dist/cli-bundle/focused-chunks/{chunk-M62NO7EI.js → chunk-G3C5ERXG.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-K43KKAFS.js → chunk-GXWQBE3T.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-UI6AJ5TD.js → chunk-JWKEDZJI.js} +3 -3
- package/dist/cli-bundle/focused-chunks/chunk-KYZ6JGPL.js +155 -0
- package/dist/cli-bundle/focused-chunks/{chunk-EX6MKP2X.js → chunk-M32HFIQB.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-EUEGXZ2A.js → chunk-OM65KHGF.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-Q47EX4DI.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-V5XTGLK7.js → chunk-RIHDMCUM.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-T4ZFY7ZJ.js +16 -0
- package/dist/cli-bundle/focused-chunks/chunk-TDR5OGG3.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-UGSS4F5X.js +2 -0
- package/dist/cli-bundle/focused-chunks/chunk-Z3PLWSGM.js +2 -0
- package/dist/cli-bundle/main.js +13 -13
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +2 -1
- package/dist/cli-bundle/sdk-core.js +41 -41
- package/dist/cli-bundle/sdk-governance.js +1 -1
- package/dist/cli-bundle/sdk-graph.js +1 -1
- package/dist/cli-bundle/sdk-merge.js +32 -32
- package/dist/cli-bundle/sdk-query.js +1 -1
- package/dist/cli-bundle/sdk-runtime.js +1 -1
- package/dist/cli-bundle/sdk-testing.js +1 -1
- package/dist/cli-bundle/sdk.js +5 -4
- package/dist/core/output/mutation-projection.js +26 -2
- package/dist/core/shared/constants.d.ts +1 -5
- package/dist/core/shared/constants.js +3 -81
- package/dist/core/shared/errors.d.ts +2 -0
- package/dist/core/shared/errors.js +2 -2
- package/dist/core/shared/item-metadata-contract.d.ts +14 -0
- package/dist/core/shared/item-metadata-contract.js +90 -0
- package/dist/core/store/item-store.d.ts +60 -0
- package/dist/core/store/item-store.js +22 -5
- package/dist/sdk/agent/closed-domain-contracts.d.ts +25 -0
- package/dist/sdk/agent/closed-domain-contracts.js +140 -0
- package/dist/sdk/agent/refusal-closure.d.ts +53 -0
- package/dist/sdk/agent/refusal-closure.js +134 -0
- package/dist/sdk/agent/refusal-reachability.d.ts +27 -1
- package/dist/sdk/agent/refusal-reachability.js +26 -2
- package/dist/sdk/agent-capability-contracts.d.ts +13 -0
- package/dist/sdk/agent-capability-contracts.js +101 -9
- package/dist/sdk/cli-contracts/command-aliases.js +18 -2
- package/dist/sdk/cli-contracts/commander-mutation-options.js +30 -6
- package/dist/sdk/cli-contracts/commander-types.js +5 -4
- package/dist/sdk/cli-contracts/completeness.js +8 -2
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +4 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +16 -6
- package/dist/sdk/cli-contracts/flag-contracts.d.ts +7 -0
- package/dist/sdk/cli-contracts/flag-contracts.js +84 -8
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.d.ts +72 -0
- package/dist/sdk/cli-contracts/flag-lexicon-contracts.js +340 -0
- package/dist/sdk/cli-contracts/grammar-contracts.d.ts +83 -2
- package/dist/sdk/cli-contracts/grammar-contracts.js +618 -2
- package/dist/sdk/cli-contracts/runtime-contracts.d.ts +15 -4
- package/dist/sdk/cli-contracts/runtime-contracts.js +47 -13
- package/dist/sdk/cli-contracts/tool-option-contracts.d.ts +28 -1
- package/dist/sdk/cli-contracts/tool-option-contracts.js +38 -3
- package/dist/sdk/cli-contracts/tool-schema.js +7 -2
- package/dist/sdk/cli-contracts.d.ts +4 -3
- package/dist/sdk/cli-contracts.js +6 -5
- package/dist/sdk/context-intent-contracts.d.ts +2 -2
- package/dist/sdk/context-intent-contracts.js +22 -7
- package/dist/sdk/contracts.d.ts +3 -0
- package/dist/sdk/contracts.js +5 -2
- package/dist/sdk/core.d.ts +1 -1
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flag-invocation-contracts.d.ts +37 -0
- package/dist/sdk/flag-invocation-contracts.js +218 -9
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +206 -2
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +244 -40
- package/dist/sdk/index.d.ts +11 -7
- package/dist/sdk/index.js +10 -6
- package/dist/sdk/init-agent-guidance.d.ts +5 -3
- package/dist/sdk/init-agent-guidance.js +69 -9
- package/dist/sdk/lifecycle/mcp-actions.d.ts +18 -0
- package/dist/sdk/lifecycle/mcp-actions.js +52 -0
- package/dist/sdk/lifecycle/reopen.d.ts +44 -0
- package/dist/sdk/lifecycle/reopen.js +69 -0
- package/dist/sdk/lifecycle/update.d.ts +31 -0
- package/dist/sdk/lifecycle/update.js +95 -13
- package/dist/sdk/output-projection.d.ts +2 -0
- package/dist/sdk/output-projection.js +11 -5
- package/dist/sdk/query/get.d.ts +1 -1
- package/dist/sdk/query/get.js +34 -49
- package/dist/sdk/query/list.d.ts +7 -21
- package/dist/sdk/query/list.js +44 -44
- package/dist/sdk/query/projection-contracts.d.ts +33 -0
- package/dist/sdk/query/projection-contracts.js +185 -0
- package/dist/sdk/query/search-contracts.d.ts +3 -2
- package/dist/sdk/query/search-contracts.js +30 -85
- package/dist/sdk/query/search.d.ts +15 -0
- package/dist/sdk/query/search.js +32 -6
- package/dist/sdk/read-output/continuation.d.ts +1 -1
- package/dist/sdk/read-output/continuation.js +7 -24
- package/dist/sdk/read-output-contracts.js +55 -6
- package/dist/sdk/read-output-rows.d.ts +4 -0
- package/dist/sdk/read-output-rows.js +47 -18
- package/dist/sdk/runtime-primitives.d.ts +1 -1
- package/dist/sdk/runtime-primitives.js +3 -3
- package/dist/sdk/runtime.d.ts +6 -0
- package/dist/sdk/runtime.js +25 -17
- package/dist/sdk/similarity.d.ts +13 -0
- package/dist/sdk/similarity.js +32 -6
- package/dist/sdk/workspace-snapshot.d.ts +2 -0
- package/dist/sdk/workspace-snapshot.js +10 -2
- package/docs/COMMANDS.md +29 -5
- package/docs/OUTPUT_PROJECTION_CONTRACTS.md +11 -2
- package/docs/README.md +1 -0
- package/docs/READ_OUTPUT_CONTRACTS.md +10 -6
- package/docs/RECURRENCE_RECOVERY_CONTRACTS.md +114 -0
- package/docs/SDK.md +16 -2
- package/docs/SDK_CONTEXT_INTEGRITY.md +45 -0
- package/docs/TESTING.md +14 -1
- package/docs/generated/AGENT_COMMAND_SURFACE.md +78 -78
- package/docs/generated/FLAG_LEXICON_BUDGETS.md +76 -0
- package/docs/performance/sdk-entrypoint-import-costs.md +14 -21
- package/marketplace.json +2 -2
- package/package.json +9 -7
- package/packages/pm-beads/package.json +1 -1
- package/packages/pm-calendar/package.json +1 -1
- package/packages/pm-command-kit/package.json +1 -1
- package/packages/pm-digital-twin/package.json +1 -1
- package/packages/pm-governance-audit/package.json +1 -1
- package/packages/pm-guide-shell/package.json +1 -1
- package/packages/pm-kanban/package.json +1 -1
- package/packages/pm-lifecycle-hooks/package.json +1 -1
- package/packages/pm-linked-test-adapters/package.json +1 -1
- package/packages/pm-search-advanced/package.json +1 -1
- package/packages/pm-templates/package.json +1 -1
- package/packages/pm-todos/package.json +1 -1
- package/packages/pm-vcs/package.json +1 -1
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/scripts/generate-agent-capability-surfaces.mjs +20 -14
- package/sdk/public-surface.json +950 -24
- package/dist/cli-bundle/chunks/chunk-ALDJGKAK.js +0 -2
- package/dist/cli-bundle/chunks/chunk-DY4DMUMC.js +0 -197
- package/dist/cli-bundle/chunks/chunk-GNFAFIJI.js +0 -77
- package/dist/cli-bundle/chunks/chunk-L5Q2CLPE.js +0 -35
- package/dist/cli-bundle/chunks/chunk-PVRUN5ZS.js +0 -5
- package/dist/cli-bundle/chunks/chunk-SARFF5H5.js +0 -3
- package/dist/cli-bundle/chunks/register-list-query-I23LALEE.js +0 -11
- package/dist/cli-bundle/chunks/register-mutation-6YGU3GPH.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-4HTFC6J7.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-2PN4TJXH.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-3TKWMNKF.js +0 -18
- package/dist/cli-bundle/focused-chunks/chunk-5AF3ZBNB.js +0 -155
- package/dist/cli-bundle/focused-chunks/chunk-C5IW2NDA.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-RNDNMARJ.js +0 -16
- package/dist/cli-bundle/focused-chunks/chunk-TVV2DONO.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-WGHQVU6P.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-XYNBXTDQ.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-Z56ECT7I.js +0 -2
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
Tracker: [pm-0k19l7](../.agents/pm/issues/pm-0k19l7.toon), [pm-9stazf](../.agents/pm/issues/pm-9stazf.toon), [pm-tu71](../.agents/pm/issues/pm-tu71.toon), [pm-0xmajx](../.agents/pm/issues/pm-0xmajx.toon), [pm-7rrqsk](../.agents/pm/issues/pm-7rrqsk.toon), [pm-ety1qc](../.agents/pm/issues/pm-ety1qc.toon), [pm-lu6sca](../.agents/pm/features/pm-lu6sca.toon), [pm-5y05kq](../.agents/pm/issues/pm-5y05kq.toon), [pm-gjjurs](../.agents/pm/issues/pm-gjjurs.toon), [pm-h97qxd](../.agents/pm/issues/pm-h97qxd.toon), [pm-h06944](../.agents/pm/issues/pm-h06944.toon), [pm-5t33or](../.agents/pm/features/pm-5t33or.toon), [pm-in23qu](../.agents/pm/issues/pm-in23qu.toon), [pm-h8tpeh](../.agents/pm/features/pm-h8tpeh.toon), [pm-okgxwa](../.agents/pm/issues/pm-okgxwa.toon), [pm-22rzjp](../.agents/pm/issues/pm-22rzjp.toon), [pm-76fkpp](../.agents/pm/issues/pm-76fkpp.toon), [pm-igdvfq](../.agents/pm/issues/pm-igdvfq.toon), [pm-643e0k](../.agents/pm/issues/pm-643e0k.toon), [pm-larv4r](../.agents/pm/issues/pm-larv4r.toon), [pm-mcxk8v](../.agents/pm/issues/pm-mcxk8v.toon), and [pm-2zkvxm](../.agents/pm/issues/pm-2zkvxm.toon).
|
|
4
4
|
|
|
5
|
+
Current closure tranche: [pm-fs8q9x](../.agents/pm/tasks/pm-fs8q9x.toon), [pm-gy885b](../.agents/pm/issues/pm-gy885b.toon), and [pm-f05lsg](../.agents/pm/features/pm-f05lsg.toon).
|
|
6
|
+
|
|
5
7
|
## Agent Quick Context
|
|
6
8
|
|
|
7
9
|
These contracts keep project management equal to context management: reads say what they omit, writes return only newly useful context, diagnostics do not unexpectedly call remote providers, and every transport delegates domain validation to the same SDK primitive. Package authors can use the same primitives without reproducing CLI parsing rules.
|
|
@@ -74,6 +76,39 @@ The structured `option_scope` is `declared_on_path`, `declared_elsewhere`, or
|
|
|
74
76
|
case, while the third names the nearest current-path spellings and explicitly
|
|
75
77
|
terminates the otherwise-unbounded command search.
|
|
76
78
|
|
|
79
|
+
## Semantic flag and spelling contracts
|
|
80
|
+
|
|
81
|
+
`listPmFlagLexicon()` classifies flags by meaning rather than spelling alone.
|
|
82
|
+
For example, `--limit` is the shared `result-row-limit` concept, while
|
|
83
|
+
`--node-limit`, `--edge-limit`, `--output-limit`, `--output-budget`, and
|
|
84
|
+
`--token-budget` retain distinct graph, serialization, and intent-budget
|
|
85
|
+
semantics. Command-local overloads such as `--file` are explicitly separated
|
|
86
|
+
into linked-file, annotation-input, and plan-definition concepts.
|
|
87
|
+
|
|
88
|
+
`listPmFlagSpellingInventory()` publishes every canonical spelling and every
|
|
89
|
+
accepted compatibility alias. The repository gate compares it with
|
|
90
|
+
`scripts/release/flag-spelling-baseline.json`; removing either a canonical flag
|
|
91
|
+
or an established alias fails closed. A separate generated help baseline
|
|
92
|
+
records UTF-8 size, estimated tokens, and per-command deltas, so a vocabulary
|
|
93
|
+
change cannot silently expand the agent discovery surface. Refreshing either
|
|
94
|
+
baseline is an explicit reviewed operation through
|
|
95
|
+
`node scripts/release/flag-lexicon-gate.mjs --update-inventory`.
|
|
96
|
+
|
|
97
|
+
## Closed-domain refusal contracts
|
|
98
|
+
|
|
99
|
+
`listCoreClosedDomainContracts()` is the SDK-owned registry for every built-in
|
|
100
|
+
`--for` intent and `--fields` projection refusal. It derives projection values
|
|
101
|
+
from the list, get, and search query modules and covers all eight list-family
|
|
102
|
+
entrypoints. CLI help uses the same registry, representing `item.<field>` and
|
|
103
|
+
runtime-schema extensions with compact generative notation instead of
|
|
104
|
+
repeating every alias.
|
|
105
|
+
|
|
106
|
+
The executable gate derives its refusal corpus from this registry, requires
|
|
107
|
+
the exact error code, complete `allowed_values`, shell-free
|
|
108
|
+
`suggested_retry_args`, and a successful retry, then compares probe identities
|
|
109
|
+
with `scripts/release/refusal-closure-baseline.json`. Adding a new core domain
|
|
110
|
+
without a probe or removing historical coverage therefore fails CI.
|
|
111
|
+
|
|
77
112
|
## Executable recovery-reference coverage
|
|
78
113
|
|
|
79
114
|
Structured refusal guidance is a forward-reference contract, not decorative
|
|
@@ -89,6 +124,16 @@ family. Each obligation declares `recovery`, `replacement`, or
|
|
|
89
124
|
`behavior_preserving` semantics and its proof must demonstrate the same
|
|
90
125
|
promise.
|
|
91
126
|
|
|
127
|
+
`verifyPmRecoveryKindRuntimeCoverage` joins the syntax-aware complete source
|
|
128
|
+
census to distinct emitted values for every typed kind. Its receipt retains
|
|
129
|
+
both denominators and fails when a kind has source producers but no runtime
|
|
130
|
+
evidence, preventing a representative recovery example from masking an
|
|
131
|
+
entirely unexecuted producer family. This is explicitly kind-level assurance:
|
|
132
|
+
it does not claim that every individual source location or every distinct value
|
|
133
|
+
was executed. The former `verifyPmRecoveryProducerRuntimeCoverage` export
|
|
134
|
+
remains as a deprecated compatibility alias with those same kind-level
|
|
135
|
+
semantics.
|
|
136
|
+
|
|
92
137
|
The repository integration corpus drives real CLI refusals, executes the
|
|
93
138
|
emitted retry in a temporary tracker, compares candidate commands with the
|
|
94
139
|
unbounded runtime contract enumeration, and binds examples and next steps to
|
package/docs/TESTING.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
This page describes safe local tests, linked tests, coverage, and release-readiness checks.
|
|
4
4
|
|
|
5
|
-
Tracked implementation updates: [pm-52eh](../.agents/pm/features/pm-52eh.toon), [pm-mcxr](../.agents/pm/issues/pm-mcxr.toon), [pm-u42x](../.agents/pm/issues/pm-u42x.toon), [pm-atfm](../.agents/pm/features/pm-atfm.toon), [pm-xmp5](../.agents/pm/tasks/pm-xmp5.toon), [pm-39cqqx](../.agents/pm/tasks/pm-39cqqx.toon), [pm-5cgm2z](../.agents/pm/chores/pm-5cgm2z.toon), [pm-avv3wx](../.agents/pm/issues/pm-avv3wx.toon), [pm-rizqb6](../.agents/pm/issues/pm-rizqb6.toon), [pm-95h7pg](../.agents/pm/issues/pm-95h7pg.toon), [pm-giks4s](../.agents/pm/issues/pm-giks4s.toon).
|
|
5
|
+
Tracked implementation updates: [pm-52eh](../.agents/pm/features/pm-52eh.toon), [pm-mcxr](../.agents/pm/issues/pm-mcxr.toon), [pm-u42x](../.agents/pm/issues/pm-u42x.toon), [pm-atfm](../.agents/pm/features/pm-atfm.toon), [pm-xmp5](../.agents/pm/tasks/pm-xmp5.toon), [pm-39cqqx](../.agents/pm/tasks/pm-39cqqx.toon), [pm-5cgm2z](../.agents/pm/chores/pm-5cgm2z.toon), [pm-avv3wx](../.agents/pm/issues/pm-avv3wx.toon), [pm-rizqb6](../.agents/pm/issues/pm-rizqb6.toon), [pm-95h7pg](../.agents/pm/issues/pm-95h7pg.toon), [pm-giks4s](../.agents/pm/issues/pm-giks4s.toon), [pm-xa3t0o](../.agents/pm/issues/pm-xa3t0o.toon).
|
|
6
6
|
|
|
7
7
|
## Agent Quick Context
|
|
8
8
|
|
|
@@ -259,6 +259,19 @@ Do not update the baseline merely to make CI green. Change judgments and
|
|
|
259
259
|
rationales in the corpus when product intent changes, and commit the corpus,
|
|
260
260
|
baseline, scorer tests, and SDK documentation together.
|
|
261
261
|
|
|
262
|
+
Context-intent classification has a separate calibration receipt and one
|
|
263
|
+
manifest-backed recovery spelling:
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
pnpm context:intent:calibrate
|
|
267
|
+
pnpm context:intent:calibrate --update
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
The gate verifies that `package.json` exposes that exact script before it reads
|
|
271
|
+
or refreshes `scripts/release/context-intent-calibration.json`. A missing or
|
|
272
|
+
renamed script therefore fails with the same command contributors are told to
|
|
273
|
+
run, and pnpm forwards `--update` to the calibration gate.
|
|
274
|
+
|
|
262
275
|
## Hosted Gate Registry
|
|
263
276
|
|
|
264
277
|
Tracked by [pm-k6t4yb](../.agents/pm/tasks/pm-k6t4yb.toon) and
|
|
@@ -1,81 +1,81 @@
|
|
|
1
1
|
# Generated agent command surface
|
|
2
2
|
|
|
3
|
-
This file is generated from `
|
|
3
|
+
This file is generated from `PM_COMMAND_CAPABILITY_CONTRACTS`. Do not edit it manually.
|
|
4
4
|
|
|
5
|
-
| Command | Minimum visibility tier |
|
|
6
|
-
| --- | --- |
|
|
7
|
-
| `init` | full |
|
|
8
|
-
| `config` | standard |
|
|
9
|
-
| `extension` | full |
|
|
10
|
-
| `package` | full |
|
|
11
|
-
| `packages` | full |
|
|
12
|
-
| `install` | full |
|
|
13
|
-
| `upgrade` | full |
|
|
14
|
-
| `create` | core |
|
|
15
|
-
| `item` | full |
|
|
16
|
-
| `copy` | full |
|
|
17
|
-
| `focus` | standard |
|
|
18
|
-
| `list` | core |
|
|
19
|
-
| `list-all` | standard |
|
|
20
|
-
| `list-draft` | full |
|
|
21
|
-
| `list-open` | standard |
|
|
22
|
-
| `list-in-progress` | standard |
|
|
23
|
-
| `list-blocked` | standard |
|
|
24
|
-
| `list-closed` | standard |
|
|
25
|
-
| `list-canceled` | full |
|
|
26
|
-
| `aggregate` | full |
|
|
27
|
-
| `context` | core |
|
|
28
|
-
| `ctx` | full |
|
|
29
|
-
| `get` | core |
|
|
30
|
-
| `graph` | standard |
|
|
31
|
-
| `search` | core |
|
|
32
|
-
| `duplicates` | full |
|
|
33
|
-
| `eval` | full |
|
|
34
|
-
| `next` | core |
|
|
35
|
-
| `history` | standard |
|
|
36
|
-
| `events` | standard |
|
|
37
|
-
| `history-redact` | full |
|
|
38
|
-
| `history-repair` | full |
|
|
39
|
-
| `history-compact` | full |
|
|
40
|
-
| `history-author-acknowledge` | full |
|
|
41
|
-
| `merge` | full |
|
|
42
|
-
| `schema` | standard |
|
|
43
|
-
| `profile` | standard |
|
|
44
|
-
| `activity` | full |
|
|
45
|
-
| `restore` | full |
|
|
46
|
-
| `update` | core |
|
|
47
|
-
| `update-many` | full |
|
|
48
|
-
| `close` | core |
|
|
49
|
-
| `close-many` | full |
|
|
50
|
-
| `delete` | full |
|
|
51
|
-
| `append` | standard |
|
|
52
|
-
| `comments` | standard |
|
|
53
|
-
| `notes` | standard |
|
|
54
|
-
| `learnings` | standard |
|
|
55
|
-
| `files` | standard |
|
|
56
|
-
| `docs` | standard |
|
|
57
|
-
| `deps` | standard |
|
|
58
|
-
| `plan` | core |
|
|
59
|
-
| `test` | standard |
|
|
60
|
-
| `test-all` | full |
|
|
61
|
-
| `telemetry` | full |
|
|
62
|
-
| `stats` | full |
|
|
63
|
-
| `health` | standard |
|
|
64
|
-
| `validate` | core |
|
|
65
|
-
| `assurance` | full |
|
|
66
|
-
| `gc` | full |
|
|
67
|
-
| `workspace` | full |
|
|
68
|
-
| `contracts` | standard |
|
|
69
|
-
| `claim` | core |
|
|
70
|
-
| `release` | core |
|
|
71
|
-
| `start-task` | full |
|
|
72
|
-
| `pause-task` | full |
|
|
73
|
-
| `close-task` | full |
|
|
74
|
-
| `meet` | full |
|
|
75
|
-
| `event` | full |
|
|
76
|
-
| `remind` | full |
|
|
77
|
-
| `help` | core |
|
|
78
|
-
| `completion-statuses` | internal |
|
|
79
|
-
| `completion-tags` | internal |
|
|
80
|
-
| `completion-types` | internal |
|
|
81
|
-
| `test-runs-worker` | internal |
|
|
5
|
+
| Command | Minimum visibility tier | Capability family |
|
|
6
|
+
| --- | --- | --- |
|
|
7
|
+
| `init` | full | workspace |
|
|
8
|
+
| `config` | standard | workspace |
|
|
9
|
+
| `extension` | full | extensions |
|
|
10
|
+
| `package` | full | extensions |
|
|
11
|
+
| `packages` | full | extensions |
|
|
12
|
+
| `install` | full | extensions |
|
|
13
|
+
| `upgrade` | full | extensions |
|
|
14
|
+
| `create` | core | intake |
|
|
15
|
+
| `item-reopen` | full | lifecycle |
|
|
16
|
+
| `copy` | full | intake |
|
|
17
|
+
| `focus` | standard | intake |
|
|
18
|
+
| `list` | core | context |
|
|
19
|
+
| `list-all` | standard | context |
|
|
20
|
+
| `list-draft` | full | context |
|
|
21
|
+
| `list-open` | standard | context |
|
|
22
|
+
| `list-in-progress` | standard | context |
|
|
23
|
+
| `list-blocked` | standard | context |
|
|
24
|
+
| `list-closed` | standard | context |
|
|
25
|
+
| `list-canceled` | full | context |
|
|
26
|
+
| `aggregate` | full | context |
|
|
27
|
+
| `context` | core | context |
|
|
28
|
+
| `ctx` | full | context |
|
|
29
|
+
| `get` | core | context |
|
|
30
|
+
| `graph` | standard | graph |
|
|
31
|
+
| `search` | core | context |
|
|
32
|
+
| `duplicates` | full | context |
|
|
33
|
+
| `eval` | full | context |
|
|
34
|
+
| `next` | core | context |
|
|
35
|
+
| `history` | standard | evidence |
|
|
36
|
+
| `events` | standard | evidence |
|
|
37
|
+
| `history-redact` | full | evidence |
|
|
38
|
+
| `history-repair` | full | evidence |
|
|
39
|
+
| `history-compact` | full | evidence |
|
|
40
|
+
| `history-author-acknowledge` | full | evidence |
|
|
41
|
+
| `merge` | full | workspace |
|
|
42
|
+
| `schema` | standard | workspace |
|
|
43
|
+
| `profile` | standard | workspace |
|
|
44
|
+
| `activity` | full | context |
|
|
45
|
+
| `restore` | full | intake |
|
|
46
|
+
| `update` | core | lifecycle |
|
|
47
|
+
| `update-many` | full | lifecycle |
|
|
48
|
+
| `close` | core | lifecycle |
|
|
49
|
+
| `close-many` | full | lifecycle |
|
|
50
|
+
| `delete` | full | lifecycle |
|
|
51
|
+
| `append` | standard | evidence |
|
|
52
|
+
| `comments` | standard | evidence |
|
|
53
|
+
| `notes` | standard | evidence |
|
|
54
|
+
| `learnings` | standard | evidence |
|
|
55
|
+
| `files` | standard | evidence |
|
|
56
|
+
| `docs` | standard | evidence |
|
|
57
|
+
| `deps` | standard | graph |
|
|
58
|
+
| `plan` | core | graph |
|
|
59
|
+
| `test` | standard | quality |
|
|
60
|
+
| `test-all` | full | quality |
|
|
61
|
+
| `telemetry` | full | workspace |
|
|
62
|
+
| `stats` | full | context |
|
|
63
|
+
| `health` | standard | workspace |
|
|
64
|
+
| `validate` | core | quality |
|
|
65
|
+
| `assurance` | full | quality |
|
|
66
|
+
| `gc` | full | workspace |
|
|
67
|
+
| `workspace` | full | workspace |
|
|
68
|
+
| `contracts` | standard | quality |
|
|
69
|
+
| `claim` | core | lifecycle |
|
|
70
|
+
| `release` | core | lifecycle |
|
|
71
|
+
| `start-task` | full | lifecycle |
|
|
72
|
+
| `pause-task` | full | lifecycle |
|
|
73
|
+
| `close-task` | full | lifecycle |
|
|
74
|
+
| `meet` | full | automation |
|
|
75
|
+
| `event` | full | automation |
|
|
76
|
+
| `remind` | full | automation |
|
|
77
|
+
| `help` | core | context |
|
|
78
|
+
| `completion-statuses` | internal | internal |
|
|
79
|
+
| `completion-tags` | internal | internal |
|
|
80
|
+
| `completion-types` | internal | internal |
|
|
81
|
+
| `test-runs-worker` | internal | internal |
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Generated flag lexicon budgets
|
|
2
|
+
|
|
3
|
+
This file is generated by `listPmFlagLexicon()`. Compatibility aliases do not consume canonical budget.
|
|
4
|
+
|
|
5
|
+
| Command | Capability family | Canonical flags | Maximum |
|
|
6
|
+
| --- | --- | ---: | ---: |
|
|
7
|
+
| `init` | workspace | 30 | 30 |
|
|
8
|
+
| `config` | workspace | 35 | 35 |
|
|
9
|
+
| `extension` | extensions | 53 | 53 |
|
|
10
|
+
| `package` | extensions | 54 | 54 |
|
|
11
|
+
| `packages` | extensions | 54 | 54 |
|
|
12
|
+
| `install` | extensions | 26 | 26 |
|
|
13
|
+
| `upgrade` | extensions | 29 | 29 |
|
|
14
|
+
| `create` | intake | 100 | 100 |
|
|
15
|
+
| `copy` | intake | 24 | 24 |
|
|
16
|
+
| `focus` | intake | 22 | 22 |
|
|
17
|
+
| `list` | context | 86 | 86 |
|
|
18
|
+
| `list-all` | context | 85 | 85 |
|
|
19
|
+
| `list-draft` | context | 84 | 84 |
|
|
20
|
+
| `list-open` | context | 84 | 84 |
|
|
21
|
+
| `list-in-progress` | context | 84 | 84 |
|
|
22
|
+
| `list-blocked` | context | 84 | 84 |
|
|
23
|
+
| `list-closed` | context | 84 | 84 |
|
|
24
|
+
| `list-canceled` | context | 84 | 84 |
|
|
25
|
+
| `aggregate` | context | 37 | 37 |
|
|
26
|
+
| `context` | context | 45 | 45 |
|
|
27
|
+
| `ctx` | context | 45 | 45 |
|
|
28
|
+
| `get` | context | 30 | 30 |
|
|
29
|
+
| `graph` | graph | 34 | 34 |
|
|
30
|
+
| `search` | context | 78 | 78 |
|
|
31
|
+
| `duplicates` | context | 24 | 24 |
|
|
32
|
+
| `eval` | context | 25 | 25 |
|
|
33
|
+
| `next` | context | 35 | 35 |
|
|
34
|
+
| `history` | evidence | 35 | 35 |
|
|
35
|
+
| `events` | evidence | 33 | 33 |
|
|
36
|
+
| `history-redact` | evidence | 27 | 27 |
|
|
37
|
+
| `history-repair` | evidence | 26 | 26 |
|
|
38
|
+
| `history-compact` | evidence | 30 | 30 |
|
|
39
|
+
| `history-author-acknowledge` | evidence | 28 | 28 |
|
|
40
|
+
| `merge` | workspace | 24 | 24 |
|
|
41
|
+
| `schema` | workspace | 40 | 40 |
|
|
42
|
+
| `profile` | workspace | 22 | 22 |
|
|
43
|
+
| `activity` | context | 35 | 35 |
|
|
44
|
+
| `restore` | intake | 23 | 23 |
|
|
45
|
+
| `update` | lifecycle | 105 | 105 |
|
|
46
|
+
| `update-many` | lifecycle | 140 | 140 |
|
|
47
|
+
| `close` | lifecycle | 31 | 31 |
|
|
48
|
+
| `close-many` | lifecycle | 72 | 72 |
|
|
49
|
+
| `delete` | lifecycle | 24 | 24 |
|
|
50
|
+
| `append` | evidence | 24 | 24 |
|
|
51
|
+
| `comments` | evidence | 30 | 30 |
|
|
52
|
+
| `notes` | evidence | 34 | 34 |
|
|
53
|
+
| `learnings` | evidence | 26 | 26 |
|
|
54
|
+
| `files` | evidence | 39 | 39 |
|
|
55
|
+
| `docs` | evidence | 30 | 30 |
|
|
56
|
+
| `deps` | graph | 32 | 32 |
|
|
57
|
+
| `plan` | graph | 109 | 109 |
|
|
58
|
+
| `test` | quality | 48 | 48 |
|
|
59
|
+
| `test-all` | quality | 37 | 37 |
|
|
60
|
+
| `telemetry` | workspace | 21 | 21 |
|
|
61
|
+
| `stats` | context | 29 | 29 |
|
|
62
|
+
| `health` | workspace | 36 | 36 |
|
|
63
|
+
| `validate` | quality | 45 | 45 |
|
|
64
|
+
| `assurance` | quality | 30 | 30 |
|
|
65
|
+
| `gc` | workspace | 22 | 22 |
|
|
66
|
+
| `workspace` | workspace | 23 | 23 |
|
|
67
|
+
| `contracts` | quality | 29 | 29 |
|
|
68
|
+
| `claim` | lifecycle | 36 | 36 |
|
|
69
|
+
| `release` | lifecycle | 23 | 23 |
|
|
70
|
+
| `start-task` | lifecycle | 23 | 23 |
|
|
71
|
+
| `pause-task` | lifecycle | 23 | 23 |
|
|
72
|
+
| `close-task` | lifecycle | 24 | 24 |
|
|
73
|
+
| `meet` | automation | 33 | 33 |
|
|
74
|
+
| `event` | automation | 33 | 33 |
|
|
75
|
+
| `remind` | automation | 29 | 29 |
|
|
76
|
+
| `test-runs-worker` | internal | 25 | 25 |
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
# SDK entrypoint import costs
|
|
2
2
|
|
|
3
3
|
Tracked by [pm-38bskj](../../.agents/pm/tasks/pm-38bskj.toon) and
|
|
4
|
-
[pm-cg1sjb](../../.agents/pm/issues/pm-cg1sjb.toon).
|
|
5
|
-
topology is tracked by
|
|
6
|
-
[pm-m9gu9r](../../.agents/pm/chores/pm-m9gu9r.toon).
|
|
4
|
+
[pm-cg1sjb](../../.agents/pm/issues/pm-cg1sjb.toon).
|
|
7
5
|
|
|
8
6
|
This table measures fresh-process ESM import and module evaluation. The bare
|
|
9
7
|
Node v26.5.0 process floor on linux/x64
|
|
10
|
-
was
|
|
8
|
+
was 44 ms p50 (56 ms p95) across
|
|
11
9
|
5 measured runs after one warm-up. Focused entrypoints are
|
|
12
10
|
compared with the compatibility aggregate; negative reduction means the focused
|
|
13
11
|
entrypoint was slower in this sample. The gate admits the median measured run
|
|
@@ -15,25 +13,20 @@ against the unchanged upper-bound budget and 30 ms scheduler margin. A single
|
|
|
15
13
|
cold or descheduled process therefore cannot fail the gate, while a majority of
|
|
16
14
|
over-budget samples still does; p95 remains visible as diagnostic evidence.
|
|
17
15
|
|
|
18
|
-
| Package export
|
|
19
|
-
|
|
20
|
-
| `./sdk`
|
|
21
|
-
| `./sdk/authoring`
|
|
22
|
-
| `./sdk/contracts`
|
|
23
|
-
| `./sdk/core`
|
|
24
|
-
| `./sdk/governance` |
|
|
25
|
-
| `./sdk/graph`
|
|
26
|
-
| `./sdk/merge`
|
|
27
|
-
| `./sdk/query`
|
|
28
|
-
| `./sdk/runtime`
|
|
29
|
-
| `./sdk/testing`
|
|
16
|
+
| Package export | p50 | p95 | p50 above Node | Reduction vs aggregate overhead |
|
|
17
|
+
|---|---:|---:|---:|---:|
|
|
18
|
+
| `./sdk` | 320 ms | 348 ms | 276 ms | 0% |
|
|
19
|
+
| `./sdk/authoring` | 91 ms | 99 ms | 47 ms | 83% |
|
|
20
|
+
| `./sdk/contracts` | 152 ms | 156 ms | 108 ms | 60.9% |
|
|
21
|
+
| `./sdk/core` | 285 ms | 291 ms | 241 ms | 12.7% |
|
|
22
|
+
| `./sdk/governance` | 211 ms | 220 ms | 167 ms | 39.5% |
|
|
23
|
+
| `./sdk/graph` | 92 ms | 105 ms | 48 ms | 82.6% |
|
|
24
|
+
| `./sdk/merge` | 130 ms | 145 ms | 86 ms | 68.8% |
|
|
25
|
+
| `./sdk/query` | 132 ms | 156 ms | 88 ms | 68.1% |
|
|
26
|
+
| `./sdk/runtime` | 283 ms | 312 ms | 239 ms | 13.4% |
|
|
27
|
+
| `./sdk/testing` | 274 ms | 319 ms | 230 ms | 16.7% |
|
|
30
28
|
|
|
31
29
|
The aggregate `@unbrained/pm-cli/sdk` remains supported for compatibility.
|
|
32
30
|
New packages should import the narrowest subpath that owns their capability.
|
|
33
|
-
The build emits `./sdk/merge` as a standalone no-splitting bundle because its
|
|
34
|
-
dependency closure overlaps with several broader focused entrypoints. Keeping
|
|
35
|
-
that surface in the shared focused chunk graph made a merge-only import traverse
|
|
36
|
-
unrelated chunks; the isolated output preserves the same public exports while
|
|
37
|
-
keeping its runtime loading cost proportional to the capability requested.
|
|
38
31
|
The committed budget file is an upper-bound ratchet and must not be weakened to
|
|
39
32
|
hide a regression.
|
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.
|
|
9
|
+
"version": "2026.8.20"
|
|
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.
|
|
16
|
+
"version": "2026.8.20",
|
|
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.
|
|
3
|
+
"version": "2026.8.20",
|
|
4
4
|
"description": "Git-native project management CLI for humans and agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@11.10.0",
|
|
@@ -120,12 +120,14 @@
|
|
|
120
120
|
"lint:complexity:baseline": "eslint . --suppress-rule complexity --suppress-rule sonarjs/cognitive-complexity",
|
|
121
121
|
"lint:duplicates": "jscpd --config .jscpd.json",
|
|
122
122
|
"lint:codefactor": "pnpm quality:static",
|
|
123
|
-
"quality:static": "pnpm build && node scripts/release/repository-assurance.mjs repository-static-quality --trigger ci --json && node scripts/release/audit-package-boundary.mjs && node scripts/release/package-sdk-contract-parity.mjs && node scripts/release/surface-replication-gate.mjs && node scripts/release/command-grammar-gate.mjs && node dist/cli.js assurance run tracker-context-quality --trigger ci --dry-run --json --output-budget unbounded && node scripts/release/gate-registry.mjs && node scripts/sdk-surface-snapshot.mjs --check && node scripts/bench/sdk-entrypoint-costs.mjs --check && node scripts/bench/cli-transport-floor.mjs --check && node dist/cli.js assurance run graph-composition --trigger ci --dry-run --json --output-budget unbounded && node dist/cli.js assurance run record-integrity --trigger ci --dry-run --json --output-budget unbounded",
|
|
124
|
-
"quality:command-grammar": "pnpm build && node scripts/release/command-grammar-gate.mjs",
|
|
123
|
+
"quality:static": "pnpm build && node scripts/contracts-snapshot.mjs --check && node scripts/generate-agent-capability-surfaces.mjs --check && node scripts/generate-error-code-catalog.mjs --check && node scripts/release/repository-assurance.mjs repository-static-quality --trigger ci --json && node scripts/release/audit-package-boundary.mjs && node scripts/release/package-sdk-contract-parity.mjs && node scripts/release/surface-replication-gate.mjs && node scripts/release/command-grammar-gate.mjs && node scripts/release/flag-invocation-parity.mjs && node scripts/release/flag-lexicon-gate.mjs && node scripts/release/refusal-closure-gate.mjs && node dist/cli.js assurance run tracker-context-quality --trigger ci --dry-run --json --output-budget unbounded && node scripts/release/gate-registry.mjs && node scripts/sdk-surface-snapshot.mjs --check && node scripts/bench/sdk-entrypoint-costs.mjs --check && node scripts/bench/cli-transport-floor.mjs --check && node dist/cli.js assurance run graph-composition --trigger ci --dry-run --json --output-budget unbounded && node dist/cli.js assurance run record-integrity --trigger ci --dry-run --json --output-budget unbounded",
|
|
124
|
+
"quality:command-grammar": "pnpm build && node scripts/release/command-grammar-gate.mjs && node scripts/release/flag-invocation-parity.mjs && node scripts/release/flag-lexicon-gate.mjs",
|
|
125
|
+
"quality:recovery-closure": "pnpm build && node scripts/release/refusal-closure-gate.mjs",
|
|
125
126
|
"quality:token-budget": "node scripts/release/token-budget-gate.mjs",
|
|
126
127
|
"quality:token-surface": "node scripts/measure-agent-token-surface.mjs --check",
|
|
127
128
|
"quality:token-surface:update": "pnpm build && node scripts/measure-agent-token-surface.mjs --update",
|
|
128
129
|
"quality:context-eval": "pnpm build && node scripts/release/repository-assurance.mjs repository-context-quality --trigger ci --json && pnpm quality:token-surface",
|
|
130
|
+
"context:intent:calibrate": "node scripts/release/context-intent-calibration-gate.mjs",
|
|
129
131
|
"quality:agent-task-token": "pnpm build && node scripts/release/agent-task-token-gate.mjs",
|
|
130
132
|
"quality:agent-task-token:update": "pnpm build && node scripts/release/agent-task-token-gate.mjs --update",
|
|
131
133
|
"quality:retrieval-eval": "pnpm build && node scripts/release/retrieval-eval-gate.mjs",
|
|
@@ -216,18 +218,18 @@
|
|
|
216
218
|
"@sentry/cli": "^3.6.2",
|
|
217
219
|
"@types/node": "^26.2.0",
|
|
218
220
|
"@types/npm-package-arg": "^6.1.4",
|
|
219
|
-
"@vitest/coverage-v8": "^4.1.
|
|
221
|
+
"@vitest/coverage-v8": "^4.1.11",
|
|
220
222
|
"esbuild": "0.28.2",
|
|
221
223
|
"eslint": "^10.8.1",
|
|
222
224
|
"eslint-plugin-sonarjs": "^4.2.0",
|
|
223
225
|
"eslint-plugin-unicorn": "^73.0.0",
|
|
224
226
|
"fast-check": "^4.9.0",
|
|
225
|
-
"greptile": "^3.4.
|
|
226
|
-
"jscpd": "^5.0.
|
|
227
|
+
"greptile": "^3.4.1",
|
|
228
|
+
"jscpd": "^5.0.16",
|
|
227
229
|
"tsx": "^4.23.12",
|
|
228
230
|
"typescript": "^6.0.3",
|
|
229
231
|
"typescript-eslint": "^8.67.0",
|
|
230
|
-
"vitest": "^4.1.
|
|
232
|
+
"vitest": "^4.1.11",
|
|
231
233
|
"yaml": "^2.9.0"
|
|
232
234
|
}
|
|
233
235
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-digital-twin",
|
|
3
|
-
"version": "2026.8.
|
|
3
|
+
"version": "2026.8.20",
|
|
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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-claude",
|
|
3
3
|
"description": "Native pm CLI integration for Claude Code — 28 MCP tools, 5 workflow skills, 14 slash commands, 4 subagents (coordinator, delivery-chain, triage, verification), hybrid TUI task tracking (pm as persistent store + Claude Code task panel as live view), session context injection, and full git-based project management without leaving Claude Code.",
|
|
4
|
-
"version": "2026.8.
|
|
4
|
+
"version": "2026.8.20",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "unbrained",
|
|
7
7
|
"url": "https://github.com/unbraind/pm-cli"
|