@unbrained/pm-cli 2026.9.27 → 2026.9.28
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 +4 -6
- package/CHANGELOG.md +26 -0
- package/dist/cli/help-json-payload.js +1 -1
- package/dist/cli/register-operations.js +1 -1
- package/dist/cli-bundle/bundle-manifest.json +154 -154
- package/dist/cli-bundle/chunks/{chunk-OKVDVERQ.js → chunk-35DME35A.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-AUS6USO4.js → chunk-A2G5OG6W.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-CPOWTIIS.js +2 -0
- package/dist/cli-bundle/chunks/{chunk-7TAGYNFP.js → chunk-GLH2LNRH.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-3BTJ66CB.js → chunk-NBDB3SRC.js} +48 -48
- package/dist/cli-bundle/chunks/{chunk-JX6WCCHL.js → chunk-NEUIVBFO.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-6OJVQ7SW.js → chunk-OYCCWPBM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LKGQUZ5M.js → chunk-PLNNUAFZ.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-4SLLCDFL.js → chunk-PR4UAMI5.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-TSF2LPIH.js → chunk-UT7GRGHY.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-V5UGBYHN.js → chunk-VMJLM7P2.js} +62 -62
- package/dist/cli-bundle/chunks/{chunk-IEP3VAT5.js → chunk-YERBAGQD.js} +2 -2
- package/dist/cli-bundle/chunks/chunk-ZFHJP7YD.js +29 -0
- package/dist/cli-bundle/chunks/{register-list-query-6PAJ4PBU.js → register-list-query-N6RP6PSP.js} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-RZCXZXYS.js → register-mutation-CY7JGQE6.js} +2 -2
- package/dist/cli-bundle/chunks/{register-operations-GK6VU2H2.js → register-operations-53HAD3QP.js} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-ASEMNMBF.js → register-setup-NVX6374E.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-OJRX6G22.js → chunk-5KJXX2TZ.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-MILJCOFJ.js → chunk-6IVQPNYN.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NETVXIH5.js → chunk-A5O3VYWV.js} +2 -2
- package/dist/cli-bundle/focused-chunks/chunk-AZA4AEOR.js +75 -0
- package/dist/cli-bundle/focused-chunks/chunk-BGWF6CMP.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-PDVL7QYU.js → chunk-BRLXKRI2.js} +15 -15
- package/dist/cli-bundle/focused-chunks/{chunk-SMADBUPL.js → chunk-DTLRXY77.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-6UNKK3UH.js → chunk-IJXZQE3D.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NWRVNHAD.js → chunk-IWLMQLBO.js} +6 -6
- package/dist/cli-bundle/focused-chunks/chunk-K7GSZ7YZ.js +2 -0
- package/dist/cli-bundle/focused-chunks/{chunk-OJKJFDIG.js → chunk-ONDNR3VU.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-NZAG7OKB.js → chunk-OVVCXTIE.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-GZD4ZYIB.js → chunk-V7OPZRL6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-LBDWUHQD.js → chunk-Y5Z3XNGY.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-QO4MTAEA.js → chunk-YZB7IPR6.js} +2 -2
- package/dist/cli-bundle/focused-chunks/{chunk-DQ3MB7BO.js → chunk-ZMQTIS3L.js} +2 -2
- package/dist/cli-bundle/main.js +21 -21
- package/dist/cli-bundle/sdk-authoring.js +1 -1
- package/dist/cli-bundle/sdk-contracts.js +1 -1
- package/dist/cli-bundle/sdk-core.js +18 -18
- 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 +51 -51
- 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 +1 -1
- package/dist/core/diagnostics/remediation.js +1 -1
- package/dist/core/item/item-format.js +1 -1
- package/dist/core/store/settings.js +3 -3
- package/dist/sdk/cli-contracts/commander-mutation-options.js +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +1 -1
- package/dist/sdk/completion/fish.js +3 -3
- package/dist/sdk/completion/zsh.js +3 -3
- package/dist/sdk/extension/copy-scope.d.ts +2 -2
- package/dist/sdk/extension/copy-scope.js +1 -1
- package/dist/sdk/extension/install-plan.js +1 -1
- package/dist/sdk/extension/install-runtime.js +2 -2
- package/dist/sdk/extension/static-inventory.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-1.js +1 -1
- package/dist/sdk/generated/generated-error-code-catalog-part-2.js +1 -1
- package/dist/sdk/governance/health-merge-evidence.d.ts +18 -0
- package/dist/sdk/governance/health-merge-evidence.js +2 -0
- package/dist/sdk/governance/health.js +1 -1
- package/dist/sdk/merge/install.js +2 -2
- package/dist/sdk/output-projection.d.ts +1 -1
- package/dist/sdk/output-projection.js +1 -1
- package/dist/sdk/public-surface.json +1 -1
- package/dist/sdk/read-output-budget.d.ts +1 -1
- package/dist/sdk/read-output-budget.js +1 -1
- package/dist/sdk/read-output-contracts.js +1 -1
- package/dist/sdk/test/execution.d.ts +11 -0
- package/dist/sdk/test/execution.js +2 -2
- package/dist/sdk/test/parsers.d.ts +1 -1
- package/dist/sdk/test/parsers.js +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.js +1 -1
- package/docs/AGENT_READ_AND_TEST_RECEIPTS.md +21 -0
- package/docs/CLAUDE_CODE_PLUGIN.md +12 -7
- package/docs/CONFIGURATION.md +2 -0
- package/docs/PACKAGE_EVIDENCE.md +18 -7
- package/docs/README.md +1 -0
- package/docs/TESTING.md +14 -3
- package/docs/generated/REFUSAL_CLOSURE_CENSUS.md +7 -3
- package/marketplace.json +4 -6
- package/package.json +5 -5
- 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 +4 -2
- package/plugins/pm-claude/.mcp.json +1 -2
- package/plugins/pm-claude/README.md +7 -7
- package/plugins/pm-claude/package.json +2 -2
- package/plugins/pm-claude/{commands/pm-calendar.md → skills/pm-calendar/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-close-task.md → skills/pm-close-task/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-init.md → skills/pm-init/SKILL.md} +2 -1
- package/plugins/pm-claude/{commands/pm-list.md → skills/pm-list/SKILL.md} +2 -1
- package/plugins/pm-claude/{commands/pm-new.md → skills/pm-new/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-search.md → skills/pm-search/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-start-task.md → skills/pm-start-task/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-status.md → skills/pm-status/SKILL.md} +1 -0
- package/plugins/pm-claude/{commands/pm-triage.md → skills/pm-triage/SKILL.md} +1 -0
- package/plugins/pm-codex/.codex-plugin/plugin.json +1 -1
- package/plugins/pm-codex/package.json +2 -2
- package/plugins/pm-codex/plugin.json +1 -1
- package/dist/cli-bundle/chunks/chunk-4UPZLUT2.js +0 -29
- package/dist/cli-bundle/chunks/chunk-LC6WEA5U.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-6J2YCGSN.js +0 -75
- package/dist/cli-bundle/focused-chunks/chunk-E7LYK7V5.js +0 -2
- package/dist/cli-bundle/focused-chunks/chunk-KMPKKSA6.js +0 -2
- package/plugins/pm-claude/commands/pm-audit.md +0 -38
- package/plugins/pm-claude/commands/pm-developer.md +0 -38
- package/plugins/pm-claude/commands/pm-planner.md +0 -54
- package/plugins/pm-claude/commands/pm-release.md +0 -41
- package/plugins/pm-claude/commands/pm-workflow.md +0 -49
package/docs/PACKAGE_EVIDENCE.md
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
# Install Plans and Update Evidence
|
|
2
2
|
|
|
3
|
-
Tracked by [pm-
|
|
3
|
+
Tracked by [pm-erogk1](../.agents/pm/issues/pm-erogk1.toon),
|
|
4
|
+
[pm-5bsofk](../.agents/pm/issues/pm-5bsofk.toon) and
|
|
4
5
|
[pm-gf5zw8](../.agents/pm/issues/pm-gf5zw8.toon), with claim controls tracked by
|
|
5
|
-
[pm-eqdo85](../.agents/pm/issues/pm-eqdo85.toon)
|
|
6
|
+
[pm-eqdo85](../.agents/pm/issues/pm-eqdo85.toon) and Git metadata exclusion by
|
|
7
|
+
[pm-k7nxaz](../.agents/pm/issues/pm-k7nxaz.toon).
|
|
6
8
|
|
|
7
9
|
## Install planning
|
|
8
10
|
|
|
@@ -10,17 +12,26 @@ Preview an install with `pm package install ./local-package --project --dry-run`
|
|
|
10
12
|
The `details.install_plan` receipt distinguishes directory, archive, npm, and
|
|
11
13
|
GitHub sources and reports logical file bytes, file/directory/link counts, and
|
|
12
14
|
the copy policy. External local directories are directory snapshots, including
|
|
13
|
-
development artifacts
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
development artifacts other than `.git`. All copied directory sources exclude
|
|
16
|
+
`.git` entries at every depth, including worktree files and symlinks, and count
|
|
17
|
+
those entries in `excluded_entries`. Nested destinations also exclude `.agents`,
|
|
18
|
+
`node_modules`, and installer backup directories at every depth using the
|
|
19
|
+
installer's filter.
|
|
20
|
+
The bounded planner can return lower-bound counts with `complete: false` and a
|
|
21
|
+
`stop_reason` when called directly. Installing a local directory now refuses
|
|
22
|
+
that incomplete scan in both dry-run and real modes before writing or
|
|
23
|
+
activating. SDK callers receive
|
|
24
|
+
`extension_install_incomplete_source_scan`; the CLI exits nonzero with the
|
|
25
|
+
entry or depth limit and a packed-archive recovery step. That recovery keeps
|
|
26
|
+
the requested `--project` or `--global` installation scope. A source-directory
|
|
27
|
+
alias resolves to its
|
|
17
28
|
directory before copying; symlink entries inside the source remain links and
|
|
18
29
|
their targets are never traversed.
|
|
19
30
|
Planning writes no destination files, managed state, or activation settings;
|
|
20
31
|
archive and remote source resolution can still prepare temporary source files
|
|
21
32
|
and perform network or dependency-resolution work.
|
|
22
33
|
|
|
23
|
-
For development-heavy
|
|
34
|
+
For development-heavy local snapshots, `packed_alternative`
|
|
24
35
|
provides argument vectors for `npm pack --ignore-scripts --json` and archive
|
|
25
36
|
installation. Run packing in its reported `cwd`, substitute the returned
|
|
26
37
|
`pack_result[0].filename`, and install the resulting archive. Normal local
|
package/docs/README.md
CHANGED
|
@@ -34,6 +34,7 @@ pm guide release --json
|
|
|
34
34
|
- [Quickstart](QUICKSTART.md) - install, initialize, create, claim, link, test, close.
|
|
35
35
|
- [Onboarding](ONBOARDING.md) - first-two-hours maintainer and contributor setup.
|
|
36
36
|
- [Agent Guide](AGENT_GUIDE.md) - canonical agent loop, tracker linking, and token-minimal command choices.
|
|
37
|
+
- [Agent Read and Test Receipts](AGENT_READ_AND_TEST_RECEIPTS.md) - JSON help provenance, linked-test persistence, and history diff continuation.
|
|
37
38
|
- [Command Reference](COMMANDS.md) - command families with examples and when to use each family.
|
|
38
39
|
- [Context and Operations Namespaces](COMMAND_NAMESPACES.md) - native navigation, diagnostics, event streams, and compatibility aliases.
|
|
39
40
|
- [CLI Scripting Contract](SCRIPTING.md) - exit codes, flat mutation receipts versus read envelopes, stdout/stderr boundaries, stable JSON fields, uniform OR filters, and shell composition recipes.
|
package/docs/TESTING.md
CHANGED
|
@@ -2,17 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
This page describes safe local tests, linked tests, coverage, and release-readiness checks.
|
|
4
4
|
|
|
5
|
+
Current linked-test and merge-fence work: [pm-t05d8d](../.agents/pm/issues/pm-t05d8d.toon), [pm-kynkl8](../.agents/pm/issues/pm-kynkl8.toon).
|
|
6
|
+
|
|
5
7
|
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), [pm-e97jyf](../.agents/pm/issues/pm-e97jyf.toon), [pm-efkvdy](../.agents/pm/issues/pm-efkvdy.toon), [pm-ed28wi](../.agents/pm/issues/pm-ed28wi.toon), and [pm-5ug5xq](../.agents/pm/issues/pm-5ug5xq.toon).
|
|
6
8
|
|
|
7
9
|
## Agent Quick Context
|
|
8
10
|
|
|
9
11
|
- Unit and integration tests must not read or write real `.agents/pm` data.
|
|
10
12
|
- Prefer `node scripts/run-tests.mjs ...` because it creates sandboxed `PM_PATH` and `PM_GLOBAL_PATH`.
|
|
11
|
-
- Linked-test execution injects isolated `
|
|
12
|
-
|
|
13
|
+
- Linked-test execution injects isolated `PM_GLOBAL_PATH` and normally
|
|
14
|
+
`PM_PATH`; `pm_context_mode=none` omits `PM_PATH` for self-isolating SDK tests
|
|
15
|
+
in disposable workspaces. It applies stored-command provenance checks before process
|
|
13
16
|
creation. Direct runners are accepted; prefer
|
|
14
17
|
`node scripts/run-tests.mjs ...` when the repository provides it because the
|
|
15
|
-
wrapper also reproduces build, coverage, and cleanup policy.
|
|
18
|
+
wrapper also reproduces build, coverage, and cleanup policy. Use a direct
|
|
19
|
+
runner when a `none`-mode test must observe an unset `PM_PATH`; the wrapper
|
|
20
|
+
creates its own sandboxed `PM_PATH`.
|
|
16
21
|
- Run linked tests before closing the item that owns the work.
|
|
17
22
|
|
|
18
23
|
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
@@ -510,6 +515,11 @@ only their schema roots; a non-PM command explicitly configured with
|
|
|
510
515
|
data are materialized only when at least one selected command requires tracker
|
|
511
516
|
context. This preserves source isolation without copying an unrelated tracker
|
|
512
517
|
into constrained temporary storage.
|
|
518
|
+
For SDK tests that create independent temporary PM roots, use
|
|
519
|
+
`pm_context_mode: "none"` with `workspace_context_mode: "isolated"` or
|
|
520
|
+
`"snapshot"`. The runner omits `PM_PATH` so each SDK client can resolve its
|
|
521
|
+
explicit workspace independently; `PM_GLOBAL_PATH` remains sandboxed. Source
|
|
522
|
+
workspace execution and direct PM commands refuse this mode before execution.
|
|
513
523
|
Capacity, permission, and resource failures while seeding a required tracker
|
|
514
524
|
surface as typed, path-redacted host-environment refusals with recovery steps.
|
|
515
525
|
When a legacy source tracker has settings but no `_workspace` history, tracker
|
|
@@ -593,6 +603,7 @@ Use explicit modes when needed:
|
|
|
593
603
|
pm test <item-id> --run --pm-context schema
|
|
594
604
|
pm test <item-id> --run --pm-context tracker
|
|
595
605
|
pm test <item-id> --run --pm-context auto --check-context --auto-pm-context
|
|
606
|
+
pm test <item-id> --add-json '{"command":"pnpm exec vitest run tests/integration/linked-test-context-trust.integration.spec.ts","pm_context_mode":"none","workspace_context_mode":"snapshot"}'
|
|
596
607
|
```
|
|
597
608
|
|
|
598
609
|
For complex linked-test commands, prefer JSON input so shell syntax survives unchanged:
|
|
@@ -4,12 +4,12 @@ Tracker: `pm-f05lsg`.
|
|
|
4
4
|
|
|
5
5
|
Every catalog code is listed. An `uncovered` row is an explicit closure obligation, never an omission or implied approval.
|
|
6
6
|
|
|
7
|
-
- Catalog error codes:
|
|
7
|
+
- Catalog error codes: 389
|
|
8
8
|
- Executable error codes: 19
|
|
9
9
|
- Executable-code ratchet floor: 18
|
|
10
10
|
- Required executable canonical codes: `bulk_ids_input_empty`, `bulk_ids_input_missing_path`, `bulk_ids_input_unreadable`, `invalid_argument_value`, `manifest_unknown_key`, `missing_lifecycle_target`, `missing_required_argument`, `no_version_bounds_declared`, `projection_options_mutually_exclusive`, `tracker_not_initialized`, `tracker_root_missing`, `tracker_root_not_directory`, `tracker_root_unreadable`, `unknown_context_intent`, `unknown_field_projection`, `unknown_option`, `unknown_subcommand`
|
|
11
|
-
- Uncovered error codes:
|
|
12
|
-
- Coverage fraction: 0.
|
|
11
|
+
- Uncovered error codes: 370
|
|
12
|
+
- Coverage fraction: 0.048843
|
|
13
13
|
- Closed-domain probes: 19
|
|
14
14
|
- Grammar probes: 117
|
|
15
15
|
|
|
@@ -86,6 +86,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
|
|
|
86
86
|
| `extension_dependency_name_unsafe` | `extension_dependency_name_unsafe` | uncovered | none | 0 |
|
|
87
87
|
| `extension_dependency_spec_invalid` | `extension_dependency_spec_invalid` | uncovered | none | 0 |
|
|
88
88
|
| `extension_dependency_version_unsafe` | `extension_dependency_version_unsafe` | uncovered | none | 0 |
|
|
89
|
+
| `extension_install_incomplete_source_scan` | `extension_install_incomplete_source_scan` | uncovered | none | 0 |
|
|
89
90
|
| `extension_install_soft_failed` | `extension_install_soft_failed` | uncovered | none | 0 |
|
|
90
91
|
| `extension_install_source_contains_destination` | `extension_install_source_contains_destination` | uncovered | none | 0 |
|
|
91
92
|
| `extension_item_field_reserved` | `extension_item_field_reserved` | uncovered | none | 0 |
|
|
@@ -203,6 +204,8 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
|
|
|
203
204
|
| `merge_decisions_unreviewed` | `merge_decisions_unreviewed` | uncovered | none | 0 |
|
|
204
205
|
| `merge_driver_configuration_drift` | `merge_driver_configuration_drift` | uncovered | none | 0 |
|
|
205
206
|
| `merge_driver_configuration_missing` | `merge_driver_configuration_missing` | uncovered | none | 0 |
|
|
207
|
+
| `merge_fence_drift` | `merge_fence_drift` | uncovered | none | 0 |
|
|
208
|
+
| `merge_fence_missing` | `merge_fence_missing` | uncovered | none | 0 |
|
|
206
209
|
| `merge_git_config_unwritable` | `merge_git_config_unwritable` | uncovered | none | 0 |
|
|
207
210
|
| `merge_receipt_evidence_invalid` | `merge_receipt_evidence_invalid` | uncovered | none | 0 |
|
|
208
211
|
| `merge_receipt_history_reference_missing` | `merge_receipt_history_reference_missing` | uncovered | none | 0 |
|
|
@@ -285,6 +288,7 @@ Every catalog code is listed. An `uncovered` row is an explicit closure obligati
|
|
|
285
288
|
| `settings_read_invalid_schema` | `settings_read_invalid_schema` | uncovered | none | 0 |
|
|
286
289
|
| `settings_read_merge_failed` | `settings_read_merge_failed` | uncovered | none | 0 |
|
|
287
290
|
| `settings_unreadable` | `settings_unreadable` | uncovered | none | 0 |
|
|
291
|
+
| `settings_write_invalid_existing_json` | `settings_write_invalid_existing_json` | uncovered | none | 0 |
|
|
288
292
|
| `stale_budget` | `stale_budget` | uncovered | none | 0 |
|
|
289
293
|
| `stale_destination` | `stale_destination` | uncovered | none | 0 |
|
|
290
294
|
| `stale_observed_signature` | `stale_observed_signature` | uncovered | none | 0 |
|
package/marketplace.json
CHANGED
|
@@ -4,16 +4,14 @@
|
|
|
4
4
|
"name": "unbrained",
|
|
5
5
|
"url": "https://github.com/unbraind/pm-cli"
|
|
6
6
|
},
|
|
7
|
-
"
|
|
8
|
-
|
|
9
|
-
"version": "2026.9.27"
|
|
10
|
-
},
|
|
7
|
+
"description": "Official marketplace for pm CLI — native git-based project management for Claude Code and AI coding agents.",
|
|
8
|
+
"version": "2026.9.28",
|
|
11
9
|
"plugins": [
|
|
12
10
|
{
|
|
13
11
|
"name": "pm-claude",
|
|
14
12
|
"source": "./plugins/pm-claude",
|
|
15
|
-
"description": "Native pm CLI integration for Claude Code —
|
|
16
|
-
"version": "2026.9.
|
|
13
|
+
"description": "Native pm CLI integration for Claude Code — 32 MCP tools, 14 workflow skills with slash invocations, 4 subagents, hybrid TUI task tracking, session context injection, and coordination subagents for git-based project management without leaving Claude Code.",
|
|
14
|
+
"version": "2026.9.28",
|
|
17
15
|
"author": {
|
|
18
16
|
"name": "unbrained",
|
|
19
17
|
"url": "https://github.com/unbraind/pm-cli"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-cli",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.28",
|
|
4
4
|
"description": "Git-native project management CLI for humans and agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@11.10.0",
|
|
@@ -238,10 +238,10 @@
|
|
|
238
238
|
"eslint-plugin-unicorn": "76.0.0",
|
|
239
239
|
"fast-check": "^4.10.2",
|
|
240
240
|
"github-slugger": "2.0.0",
|
|
241
|
-
"greptile": "^3.
|
|
242
|
-
"jscpd": "^5.3.
|
|
243
|
-
"knip": "^6.
|
|
244
|
-
"marked": "18.0.
|
|
241
|
+
"greptile": "^3.6.0",
|
|
242
|
+
"jscpd": "^5.3.2",
|
|
243
|
+
"knip": "^6.38.0",
|
|
244
|
+
"marked": "18.0.14",
|
|
245
245
|
"parse5": "8.0.1",
|
|
246
246
|
"tsx": "^4.23.15",
|
|
247
247
|
"typescript": "^6.0.3",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-digital-twin",
|
|
3
|
-
"version": "2026.9.
|
|
3
|
+
"version": "2026.9.28",
|
|
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,9 @@
|
|
|
1
1
|
{
|
|
2
|
+
"$schema": "https://json.schemastore.org/claude-code-plugin-manifest.json",
|
|
2
3
|
"name": "pm-claude",
|
|
3
|
-
"
|
|
4
|
-
"
|
|
4
|
+
"displayName": "pm CLI",
|
|
5
|
+
"description": "Native pm CLI integration for Claude Code — 32 MCP tools, 14 skills with slash invocations, 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.",
|
|
6
|
+
"version": "2026.9.28",
|
|
5
7
|
"author": {
|
|
6
8
|
"name": "unbrained",
|
|
7
9
|
"url": "https://github.com/unbraind/pm-cli"
|
|
@@ -2,8 +2,7 @@
|
|
|
2
2
|
"mcpServers": {
|
|
3
3
|
"pm-mcp": {
|
|
4
4
|
"command": "node",
|
|
5
|
-
"args": ["${CLAUDE_PLUGIN_ROOT}/scripts/pm-mcp-server.mjs"]
|
|
6
|
-
"note": "Native pm-cli MCP server with automatic client/harness identity. Imports pm command modules directly — no pm shell invocation needed."
|
|
5
|
+
"args": ["${CLAUDE_PLUGIN_ROOT}/scripts/pm-mcp-server.mjs"]
|
|
7
6
|
}
|
|
8
7
|
}
|
|
9
8
|
}
|
|
@@ -7,15 +7,15 @@ Native pm CLI integration for Claude Code. Use pm project management tools direc
|
|
|
7
7
|
| Component | What it provides |
|
|
8
8
|
|-----------|----------------|
|
|
9
9
|
| **32 MCP tools** | Full pm surface: discover, next, context, search, events, list, get, create, atomic mutate, copy, focus, update, claim, release, close, comments, files, docs, notes, learnings, deps, graph, test, validate, health, contracts, plan, append, schema, config, profile + `pm_run` for everything else |
|
|
10
|
-
| **
|
|
11
|
-
| **14 slash commands** | Full lifecycle coverage — status, start, close, triage, audit, search, new, list, calendar, developer, planner, release, workflow, init |
|
|
10
|
+
| **14 skills and slash invocations** | Full lifecycle coverage — status, start, close, triage, audit, search, new, list, calendar, developer, planner, release, workflow, init |
|
|
12
11
|
| **4 subagents** | `pm-coordinator` (batch/multi-item), `pm-triage-agent` (duplicate-safe item creation), `pm-verification-agent` (evidence + close readiness), and `pm-delivery-chain` (orchestrated delivery) |
|
|
13
12
|
| **Hybrid TUI tracking** | pm items sync to Claude Code's task panel — pm is the persistent store, the task panel is the live session view |
|
|
14
13
|
| **Session hook** | Injects active pm item summary at session start using the same pinned pm-cli runtime as the MCP server |
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
Five core workflow skills are generated from the shared portable source in
|
|
17
16
|
`templates/agent-skills/`. Both plugin packages carry identical workflow
|
|
18
17
|
guidance; the Claude task panel mapping is conditional on its tools.
|
|
18
|
+
The other nine skills provide Claude-specific, directly invocable workflows.
|
|
19
19
|
|
|
20
20
|
## Installation
|
|
21
21
|
|
|
@@ -33,7 +33,7 @@ claude plugin marketplace add /path/to/pm-cli
|
|
|
33
33
|
# claude plugin marketplace add unbraind/pm-cli
|
|
34
34
|
```
|
|
35
35
|
|
|
36
|
-
This installs all 32 MCP tools,
|
|
36
|
+
This installs all 32 MCP tools, 14 skills available through `/pm-*`, 4 subagents, hybrid TUI tracking, and the session hook in one step. (`pm-claude` is the plugin name; `pm` is the marketplace name from `.claude-plugin/marketplace.json`.)
|
|
37
37
|
|
|
38
38
|
### Option B: Global MCP server via Claude Code CLI (MCP tools only)
|
|
39
39
|
|
|
@@ -41,7 +41,7 @@ This installs all 32 MCP tools, 5 skills, 14 slash commands, 4 subagents, hybrid
|
|
|
41
41
|
claude mcp add --transport stdio pm-mcp -- npx -y --package=@unbrained/pm-cli@latest pm-mcp
|
|
42
42
|
```
|
|
43
43
|
|
|
44
|
-
This gives you the 32 MCP tools but not the skills
|
|
44
|
+
This gives you the 32 MCP tools but not the skills or session hook.
|
|
45
45
|
|
|
46
46
|
### Option C: Direct `.mcp.json` (project-scoped MCP only)
|
|
47
47
|
|
|
@@ -91,7 +91,7 @@ When you `/pm-start-task` or `/pm-developer`:
|
|
|
91
91
|
|
|
92
92
|
This means you get full history in pm (survives restarts, visible in `pm list`) and live visual feedback in the Claude Code session.
|
|
93
93
|
|
|
94
|
-
##
|
|
94
|
+
## Skill Invocations
|
|
95
95
|
|
|
96
96
|
| Command | What it does |
|
|
97
97
|
|---------|-------------|
|
|
@@ -110,7 +110,7 @@ This means you get full history in pm (survives restarts, visible in `pm list`)
|
|
|
110
110
|
| `/pm-workflow [id or description]` | General pm workflow loop with TUI tracking |
|
|
111
111
|
| `/pm-init [project name]` | Initialize pm in the current project |
|
|
112
112
|
|
|
113
|
-
## Skills
|
|
113
|
+
## Core Skills
|
|
114
114
|
|
|
115
115
|
| Skill | When Claude uses it |
|
|
116
116
|
|-------|-------------------|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
name: pm-init
|
|
2
3
|
description: Initialize pm in the current project — creates the .agents/pm/ tracker directory, sets up default settings, and shows a quick-start summary. Accepts an optional project name as argument.
|
|
3
4
|
---
|
|
4
5
|
|
|
@@ -46,7 +47,7 @@ Initialize pm project tracking using native MCP tools. Argument: `$ARGUMENTS` (o
|
|
|
46
47
|
- pm initialized at `.agents/pm/`
|
|
47
48
|
- guidance mode defaults to `ask` (TTY prompt only); use `agentGuidance=add|skip|status` in `pm_run` options for deterministic behavior
|
|
48
49
|
- Available slash commands: `/pm-status`, `/pm-new`, `/pm-start-task`, `/pm-close-task`, `/pm-list`, `/pm-search`, `/pm-triage`, `/pm-calendar`, `/pm-developer`, `/pm-planner`, `/pm-release`, `/pm-audit`, `/pm-workflow`
|
|
49
|
-
-
|
|
50
|
+
- Use `pm_discover` to inspect the current MCP tool catalog and `pm_contracts` for exact command flags. The catalog is currently 32 tools.
|
|
50
51
|
- Next: use `/pm-new <title>` to create your first item, or `/pm-status` to see the tracker state
|
|
51
52
|
|
|
52
53
|
If initialization fails, report the error and suggest running `pm init` manually in the terminal.
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
name: pm-list
|
|
2
3
|
description: List pm items with optional status or type filter. Pass a filter like "open", "in_progress", "blocked", "bugs", or leave empty for active items.
|
|
3
4
|
---
|
|
4
5
|
|
|
@@ -23,7 +24,7 @@ List pm items using native MCP tools. Filter: `$ARGUMENTS`
|
|
|
23
24
|
}
|
|
24
25
|
}
|
|
25
26
|
```
|
|
26
|
-
For `all`, use `pm_list` with
|
|
27
|
+
For `all`, use `pm_list` with `status: "all"` so closed and canceled items are included.
|
|
27
28
|
|
|
28
29
|
3. **If filter is empty** (active items) — also call `pm_context` for a richer summary:
|
|
29
30
|
```json
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
|
|
3
3
|
"name": "pm-codex",
|
|
4
|
-
"version": "2026.9.
|
|
4
|
+
"version": "2026.9.28",
|
|
5
5
|
"description": "Repository-native project context workflows and a version-pinned pm MCP server for Codex.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "unbrained",
|