@unbrained/pm-cli 2026.6.5 → 2026.6.6
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/CHANGELOG.md +40 -0
- package/CONTRIBUTING.md +1 -0
- package/README.md +12 -4
- package/dist/cli/commands/completion.js +21 -7
- package/dist/cli/commands/completion.js.map +1 -1
- package/dist/cli/commands/contracts.js +5 -3
- package/dist/cli/commands/contracts.js.map +1 -1
- package/dist/cli/commands/gc.d.ts +8 -1
- package/dist/cli/commands/gc.js +26 -3
- package/dist/cli/commands/gc.js.map +1 -1
- package/dist/cli/commands/health.js +15 -2
- package/dist/cli/commands/health.js.map +1 -1
- package/dist/cli/commands/history.d.ts +4 -1
- package/dist/cli/commands/history.js +12 -24
- package/dist/cli/commands/history.js.map +1 -1
- package/dist/cli/commands/index.d.ts +1 -0
- package/dist/cli/commands/index.js +3 -2
- package/dist/cli/commands/index.js.map +1 -1
- package/dist/cli/commands/stats.d.ts +8 -1
- package/dist/cli/commands/stats.js +18 -17
- package/dist/cli/commands/stats.js.map +1 -1
- package/dist/cli/commands/telemetry.d.ts +8 -0
- package/dist/cli/commands/telemetry.js +253 -0
- package/dist/cli/commands/telemetry.js.map +1 -0
- package/dist/cli/help-content.js +11 -2
- package/dist/cli/help-content.js.map +1 -1
- package/dist/cli/register-list-query.js +7 -4
- package/dist/cli/register-list-query.js.map +1 -1
- package/dist/cli/register-operations.js +29 -6
- package/dist/cli/register-operations.js.map +1 -1
- package/dist/cli-bundle/chunks/activity-CVXTCHYY.js +16 -0
- package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js → activity-JM6DTDND.js} +11 -11
- package/dist/cli-bundle/chunks/{aggregate-J35K7WZB.js → aggregate-GI7WSZPH.js} +10 -10
- package/dist/cli-bundle/chunks/{aggregate-OOAGKWRG.js → aggregate-VNAHUNNF.js} +10 -10
- package/dist/cli-bundle/chunks/{append-5JE3YGXU.js → append-7H5N64R2.js} +8 -8
- package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js → append-WMKRXKCE.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js → chunk-23YFZ3IG.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js → chunk-2HVRUSQA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-V3JQ4IPL.js → chunk-2RSPZI5H.js} +102 -22
- package/dist/cli-bundle/chunks/chunk-2RSPZI5H.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-SZQCER6S.js → chunk-2VBQ6ZXS.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js → chunk-2VVCGBNV.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js → chunk-3BWOVLTH.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-5IRA6IYD.js → chunk-3FI4SEFT.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js → chunk-3LB74A67.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js → chunk-3VAM3NNM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4QCR4QW3.js → chunk-4LL6TK5B.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-TBQVUNVH.js → chunk-52MAOQ6J.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-5KB4X7YY.js → chunk-5FDATVEZ.js} +4 -4
- package/dist/cli-bundle/chunks/{chunk-4LTBNUYT.js → chunk-5SFCOO6B.js} +76 -7
- package/dist/cli-bundle/chunks/{chunk-4LTBNUYT.js.map → chunk-5SFCOO6B.js.map} +1 -1
- package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js → chunk-6ER6DXH5.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js → chunk-6P6GGMOG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js → chunk-77GFDHGF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js → chunk-AO442XLN.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js → chunk-AY43SBIN.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js → chunk-BQHUILZS.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js → chunk-E5FJNAZA.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OIQIXTNB.js → chunk-ECCMVXGM.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-5PAOPUZX.js → chunk-FRAUKRU2.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js → chunk-GCOQW437.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js → chunk-GGYWB3Y2.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-ATBVS6WW.js → chunk-GU2ZJ2VV.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js → chunk-GXSUPCBV.js} +5 -4
- package/dist/cli-bundle/chunks/{chunk-SSFMJCPF.js → chunk-HZGUAH22.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js → chunk-I2HSTRJF.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js → chunk-I6BNFU5X.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js → chunk-IJGCZSIQ.js} +12 -12
- package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js +1491 -0
- package/dist/cli-bundle/chunks/chunk-IOR7LGF4.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js → chunk-KAG77BY3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js → chunk-KJ33AOCY.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-4PJQSECJ.js → chunk-KJE2FOS4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-GNHVV4SY.js → chunk-KWU6HG75.js} +37 -14
- package/dist/cli-bundle/chunks/chunk-KWU6HG75.js.map +1 -0
- package/dist/cli-bundle/chunks/{chunk-KBG47ZOY.js → chunk-LB3RUL2N.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js → chunk-LCM63IXU.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js → chunk-ME2YH6FN.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js → chunk-MITFDD35.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js → chunk-N7ACFE26.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js → chunk-NUZ5HKR4.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js → chunk-OVQCEJPG.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js → chunk-OZ7NSQHL.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-TK633IVD.js → chunk-PDDFYW4X.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js → chunk-PIU6RSL3.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js → chunk-PO3GSVFV.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-WIKR7KFL.js → chunk-PRJCELV4.js} +108 -21
- package/dist/cli-bundle/chunks/chunk-PRJCELV4.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-ZQ4F6EC4.js → chunk-PROOHX4K.js} +38 -15
- package/dist/cli-bundle/chunks/chunk-PROOHX4K.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-N5YF3VFN.js → chunk-Q7SPNHLW.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-RANZIID5.js → chunk-QO7EBBOM.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js → chunk-R6UFP2GE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js → chunk-RWPSOIEE.js} +7 -7
- package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js → chunk-RZN6VURO.js} +3 -3
- package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js +1501 -0
- package/dist/cli-bundle/chunks/chunk-SKJWX3QB.js.map +7 -0
- package/dist/cli-bundle/chunks/{chunk-KA24HME7.js → chunk-T3LC5LKB.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-NQP3ECKF.js → chunk-TCD3R2PF.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-EHXPIKKP.js → chunk-TPH5XEVD.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-SRVKTWPR.js → chunk-U5SXYXSY.js} +75 -6
- package/dist/cli-bundle/chunks/{chunk-SRVKTWPR.js.map → chunk-U5SXYXSY.js.map} +2 -2
- package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js → chunk-UBOPJT3S.js} +9 -9
- package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js → chunk-UM2GBHS4.js} +5 -4
- package/dist/cli-bundle/chunks/{chunk-G5BACLYH.js → chunk-W7XABV4H.js} +8 -8
- package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js → chunk-WKY2IBOQ.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-7K24QB23.js → chunk-WOPXVEZP.js} +5 -5
- package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js → chunk-WSMOSYRD.js} +12 -12
- package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js → chunk-XLTD2HN3.js} +2 -2
- package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js → chunk-XSJCLN2R.js} +3 -3
- package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js → chunk-XTGLRY2Y.js} +6 -6
- package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js → chunk-YL2DJGYS.js} +7 -7
- package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js → claim-4DBF6RVG.js} +10 -10
- package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js → claim-X2P4IB7J.js} +10 -10
- package/dist/cli-bundle/chunks/close-3HDWDA3L.js +13 -0
- package/dist/cli-bundle/chunks/{close-65DFYAVS.js → close-PTYFA45H.js} +8 -8
- package/dist/cli-bundle/chunks/{close-many-UKZSQGM7.js → close-many-7CGIDPTJ.js} +15 -15
- package/dist/cli-bundle/chunks/{close-many-AKPZNSGI.js → close-many-ERFO6LHR.js} +15 -15
- package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js → comments-OONGABK5.js} +10 -10
- package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js → comments-QKBYCWKD.js} +10 -10
- package/dist/cli-bundle/chunks/{config-DDPYIA6J.js → config-6FXCQKIF.js} +8 -8
- package/dist/cli-bundle/chunks/{config-5ON3ADRH.js → config-U4RZ4CQB.js} +8 -8
- package/dist/cli-bundle/chunks/{context-E6U3DWVM.js → context-FYYJGFWS.js} +13 -13
- package/dist/cli-bundle/chunks/{context-ZOJEN5VT.js → context-YMJ3Z2HQ.js} +13 -13
- package/dist/cli-bundle/chunks/{contracts-LCSX5R53.js → contracts-QDB6OMLQ.js} +10 -6
- package/dist/cli-bundle/chunks/contracts-QDB6OMLQ.js.map +1 -0
- package/dist/cli-bundle/chunks/{contracts-CXSFM45B.js → contracts-RFSPGVVJ.js} +9 -5
- package/dist/cli-bundle/chunks/{contracts-LCSX5R53.js.map → contracts-RFSPGVVJ.js.map} +7 -1
- package/dist/cli-bundle/chunks/{create-WYFKN2U4.js → create-I5L4EYYZ.js} +13 -13
- package/dist/cli-bundle/chunks/create-JTZNCTQC.js +27 -0
- package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js → delete-7HPGI4GZ.js} +7 -7
- package/dist/cli-bundle/chunks/{delete-RONNH4F4.js → delete-VXUPH5RS.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-WII3O4HB.js → deps-JSRRWC3Z.js} +7 -7
- package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js → deps-SCZIFK2Z.js} +7 -7
- package/dist/cli-bundle/chunks/{docs-PDREIMLS.js → docs-GJK6K4VP.js} +9 -9
- package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js → docs-WW4N3MBM.js} +9 -9
- package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js → extension-J7IBMFTD.js} +4 -4
- package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js → extension-VDY2U33M.js} +4 -4
- package/dist/cli-bundle/chunks/{files-2PN7UM2D.js → files-ISZJGILQ.js} +9 -9
- package/dist/cli-bundle/chunks/{files-MXYS5W4M.js → files-WKOD326U.js} +9 -9
- package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js +362 -0
- package/dist/cli-bundle/chunks/gc-JDVJ6OQ2.js.map +1 -0
- package/dist/cli-bundle/chunks/gc-ULPVWMTN.js +372 -0
- package/dist/cli-bundle/chunks/gc-ULPVWMTN.js.map +7 -0
- package/dist/cli-bundle/chunks/{get-WXMLRG7M.js → get-RV37HT3G.js} +10 -10
- package/dist/cli-bundle/chunks/{get-CINFEUIY.js → get-WXU6WI5P.js} +10 -10
- package/dist/cli-bundle/chunks/{health-IT5DBPRJ.js → health-6L6EH4WR.js} +26 -13
- package/dist/cli-bundle/chunks/health-6L6EH4WR.js.map +7 -0
- package/dist/cli-bundle/chunks/{health-5VPOJQ53.js → health-LOI2HHKB.js} +27 -14
- package/dist/cli-bundle/chunks/health-LOI2HHKB.js.map +1 -0
- package/dist/cli-bundle/chunks/history-2BA3T5AE.js +20 -0
- package/dist/cli-bundle/chunks/{history-FLZIP7PM.js → history-PKN67D5O.js} +10 -10
- package/dist/cli-bundle/chunks/history-redact-JBZNXHGR.js +19 -0
- package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js → history-redact-V4FOJGS7.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js → history-repair-HIBCBIKK.js} +11 -11
- package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js → history-repair-SDMHR7JT.js} +11 -11
- package/dist/cli-bundle/chunks/init-HIVSNX3O.js +16 -0
- package/dist/cli-bundle/chunks/{init-6MRFVOLH.js → init-P56QYWJF.js} +8 -8
- package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js → learnings-GDFRG5J7.js} +10 -10
- package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js → learnings-MIXSESLK.js} +10 -10
- package/dist/cli-bundle/chunks/{list-DBRECOG4.js → list-FGOWQMSM.js} +10 -10
- package/dist/cli-bundle/chunks/list-MUSQNMTD.js +20 -0
- package/dist/cli-bundle/chunks/{notes-42LIC3UE.js → notes-4XVSH2AZ.js} +10 -10
- package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js → notes-5UK3GEH2.js} +10 -10
- package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js → plan-DUMBV3QB.js} +13 -13
- package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js → plan-SLMODHWX.js} +13 -13
- package/dist/cli-bundle/chunks/{register-list-query-EMNSIUO4.js → register-list-query-POCFZ5JW.js} +24 -22
- package/dist/cli-bundle/chunks/{register-list-query-EMNSIUO4.js.map → register-list-query-POCFZ5JW.js.map} +1 -1
- package/dist/cli-bundle/chunks/{register-list-query-AG3XKXWL.js → register-list-query-WST76HSQ.js} +23 -21
- package/dist/cli-bundle/chunks/{register-list-query-AG3XKXWL.js.map → register-list-query-WST76HSQ.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-mutation-M3YS6XDO.js → register-mutation-N5GSUZJV.js} +30 -30
- package/dist/cli-bundle/chunks/{register-mutation-RSMT6DPK.js → register-mutation-OA675SOU.js} +30 -30
- package/dist/cli-bundle/chunks/{register-operations-KYUOOOOD.js → register-operations-GNHBE5I3.js} +47 -34
- package/dist/cli-bundle/chunks/register-operations-GNHBE5I3.js.map +1 -0
- package/dist/cli-bundle/chunks/{register-operations-Q54JQZUN.js → register-operations-N3PMHXH5.js} +46 -33
- package/dist/cli-bundle/chunks/{register-operations-Q54JQZUN.js.map → register-operations-N3PMHXH5.js.map} +2 -2
- package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js → register-setup-JIMPKJKV.js} +15 -15
- package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js → register-setup-ZHJI2DI3.js} +15 -15
- package/dist/cli-bundle/chunks/restore-D4RGNX33.js +17 -0
- package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js → restore-PBL6T5TW.js} +11 -11
- package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js → schema-2NOO6NGB.js} +8 -8
- package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js → schema-EBI4NLUO.js} +8 -8
- package/dist/cli-bundle/chunks/{search-C7NPB7G7.js → search-JPUQTVCY.js} +10 -10
- package/dist/cli-bundle/chunks/{search-5A3BMFA7.js → search-OA6JX27A.js} +10 -10
- package/dist/cli-bundle/chunks/stats-CV54BAWY.js +202 -0
- package/dist/cli-bundle/chunks/stats-CV54BAWY.js.map +1 -0
- package/dist/cli-bundle/chunks/stats-XYB6KTFG.js +212 -0
- package/dist/cli-bundle/chunks/stats-XYB6KTFG.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js +251 -0
- package/dist/cli-bundle/chunks/telemetry-LMJ7PFUO.js.map +7 -0
- package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js +248 -0
- package/dist/cli-bundle/chunks/telemetry-NCMEPJNR.js.map +1 -0
- package/dist/cli-bundle/chunks/{test-RJ4ZF35X.js → test-MXX3E5JL.js} +13 -13
- package/dist/cli-bundle/chunks/{test-OFYONO3C.js → test-WBROAJIE.js} +13 -13
- package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js → test-all-N6NSRDTV.js} +13 -13
- package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js → test-all-NTOZ7C3M.js} +13 -13
- package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js → test-runs-V6A7LPWZ.js} +5 -5
- package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js → test-runs-WMVTQU3Y.js} +5 -5
- package/dist/cli-bundle/chunks/update-OSV3NAQB.js +25 -0
- package/dist/cli-bundle/chunks/update-YRXSUGYQ.js +21 -0
- package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js → update-many-EM6OXYGO.js} +22 -22
- package/dist/cli-bundle/chunks/{update-many-322CCH2L.js → update-many-KGGEYABR.js} +22 -22
- package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js → upgrade-BLI7XBAJ.js} +4 -4
- package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js → upgrade-LXPOQKFV.js} +4 -4
- package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js → validate-AGOAUOVW.js} +15 -15
- package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js → validate-L5J6A7YO.js} +15 -15
- package/dist/cli-bundle/main.js +42 -1451
- package/dist/cli-bundle/main.js.map +4 -4
- package/dist/core/history/history-diff.d.ts +47 -0
- package/dist/core/history/history-diff.js +152 -0
- package/dist/core/history/history-diff.js.map +1 -0
- package/dist/core/history/history-storage-stats.d.ts +31 -0
- package/dist/core/history/history-storage-stats.js +101 -0
- package/dist/core/history/history-storage-stats.js.map +1 -0
- package/dist/core/lock/lock-gc.d.ts +46 -0
- package/dist/core/lock/lock-gc.js +194 -0
- package/dist/core/lock/lock-gc.js.map +1 -0
- package/dist/core/shared/serial-queue.d.ts +12 -0
- package/dist/core/shared/serial-queue.js +43 -0
- package/dist/core/shared/serial-queue.js.map +1 -0
- package/dist/core/store/settings.d.ts +19 -1
- package/dist/core/store/settings.js +92 -7
- package/dist/core/store/settings.js.map +1 -1
- package/dist/core/telemetry/observability.js +3 -3
- package/dist/core/telemetry/observability.js.map +1 -1
- package/dist/core/telemetry/runtime.js +16 -4
- package/dist/core/telemetry/runtime.js.map +1 -1
- package/dist/mcp/server.d.ts +1 -0
- package/dist/mcp/server.js +155 -37
- package/dist/mcp/server.js.map +1 -1
- package/dist/sdk/cli-contracts/enum-contracts.d.ts +2 -2
- package/dist/sdk/cli-contracts/enum-contracts.js +4 -2
- package/dist/sdk/cli-contracts/enum-contracts.js.map +1 -1
- package/dist/sdk/cli-contracts/tool-parameter-tables.js +10 -7
- package/dist/sdk/cli-contracts/tool-parameter-tables.js.map +1 -1
- package/dist/sdk/cli-contracts.d.ts +23 -0
- package/dist/sdk/cli-contracts.js +41 -7
- package/dist/sdk/cli-contracts.js.map +1 -1
- package/docs/AGENT_GUIDE.md +1 -1
- package/docs/ARCHITECTURE.md +11 -1
- package/docs/CLAUDE_CODE_PLUGIN.md +2 -2
- package/docs/COMMANDS.md +33 -2
- package/docs/CONFIGURATION.md +9 -1
- package/docs/EXTENSIONS.md +7 -0
- package/docs/EXTENSION_AUTHOR_CONTRACTS.md +73 -0
- package/docs/ONBOARDING.md +165 -0
- package/docs/QUICKSTART.md +1 -1
- package/docs/README.md +12 -4
- package/docs/RELEASING.md +36 -1
- package/docs/TESTING.md +19 -1
- package/package.json +5 -2
- package/plugins/pm-claude/.claude-plugin/plugin.json +1 -1
- package/plugins/pm-claude/README.md +7 -4
- package/plugins/pm-claude/agents/pm-coordinator.md +1 -1
- package/plugins/pm-claude/commands/pm-init.md +1 -1
- package/dist/cli-bundle/chunks/activity-P5BUMWP3.js +0 -16
- package/dist/cli-bundle/chunks/chunk-GNHVV4SY.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-V3JQ4IPL.js.map +0 -1
- package/dist/cli-bundle/chunks/chunk-WIKR7KFL.js.map +0 -7
- package/dist/cli-bundle/chunks/chunk-ZQ4F6EC4.js.map +0 -7
- package/dist/cli-bundle/chunks/close-RMHQ3KWH.js +0 -13
- package/dist/cli-bundle/chunks/contracts-CXSFM45B.js.map +0 -7
- package/dist/cli-bundle/chunks/create-ATONSAZW.js +0 -27
- package/dist/cli-bundle/chunks/gc-GT552UJH.js +0 -178
- package/dist/cli-bundle/chunks/gc-GT552UJH.js.map +0 -1
- package/dist/cli-bundle/chunks/gc-QNBRJG6H.js +0 -181
- package/dist/cli-bundle/chunks/gc-QNBRJG6H.js.map +0 -7
- package/dist/cli-bundle/chunks/health-5VPOJQ53.js.map +0 -1
- package/dist/cli-bundle/chunks/health-IT5DBPRJ.js.map +0 -7
- package/dist/cli-bundle/chunks/history-6FC4H6HI.js +0 -20
- package/dist/cli-bundle/chunks/history-redact-XKYEZDBL.js +0 -19
- package/dist/cli-bundle/chunks/init-KHX3FEEM.js +0 -16
- package/dist/cli-bundle/chunks/list-53LZ2AEO.js +0 -20
- package/dist/cli-bundle/chunks/register-operations-KYUOOOOD.js.map +0 -1
- package/dist/cli-bundle/chunks/restore-JL5QIH7H.js +0 -17
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js +0 -120
- package/dist/cli-bundle/chunks/stats-FNLYVXTB.js.map +0 -1
- package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js +0 -123
- package/dist/cli-bundle/chunks/stats-Y2CBTZSL.js.map +0 -7
- package/dist/cli-bundle/chunks/update-6YEHPVXH.js +0 -25
- package/dist/cli-bundle/chunks/update-PYLVHMRD.js +0 -21
- /package/dist/cli-bundle/chunks/{activity-P5BUMWP3.js.map → activity-CVXTCHYY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{activity-3RWRRNOW.js.map → activity-JM6DTDND.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-J35K7WZB.js.map → aggregate-GI7WSZPH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{aggregate-OOAGKWRG.js.map → aggregate-VNAHUNNF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-5JE3YGXU.js.map → append-7H5N64R2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{append-PNN6UIBZ.js.map → append-WMKRXKCE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D5X7N6FI.js.map → chunk-23YFZ3IG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-FVXM3GKS.js.map → chunk-2HVRUSQA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SZQCER6S.js.map → chunk-2VBQ6ZXS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-A6PEXMYN.js.map → chunk-2VVCGBNV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UOVLWB47.js.map → chunk-3BWOVLTH.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5IRA6IYD.js.map → chunk-3FI4SEFT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-3OH4DAEB.js.map → chunk-3LB74A67.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GFWHHMVV.js.map → chunk-3VAM3NNM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4QCR4QW3.js.map → chunk-4LL6TK5B.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TBQVUNVH.js.map → chunk-52MAOQ6J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5KB4X7YY.js.map → chunk-5FDATVEZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GCAVRLGE.js.map → chunk-6ER6DXH5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-26KTVXJW.js.map → chunk-6P6GGMOG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-MISYRLEP.js.map → chunk-77GFDHGF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HPH6X4ZZ.js.map → chunk-AO442XLN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ORTLYVA4.js.map → chunk-AY43SBIN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-D3WUNETC.js.map → chunk-BQHUILZS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KCMIYKTA.js.map → chunk-E5FJNAZA.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OIQIXTNB.js.map → chunk-ECCMVXGM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-5PAOPUZX.js.map → chunk-FRAUKRU2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JQI2HE55.js.map → chunk-GCOQW437.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CWT53EYT.js.map → chunk-GGYWB3Y2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ATBVS6WW.js.map → chunk-GU2ZJ2VV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ASQM3IF5.js.map → chunk-GXSUPCBV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-SSFMJCPF.js.map → chunk-HZGUAH22.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-GPGAYASV.js.map → chunk-I2HSTRJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RQAWLSUU.js.map → chunk-I6BNFU5X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-OUF3ARDX.js.map → chunk-IJGCZSIQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XX5LRINW.js.map → chunk-KAG77BY3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-BNL6S7QH.js.map → chunk-KJ33AOCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-4PJQSECJ.js.map → chunk-KJE2FOS4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KBG47ZOY.js.map → chunk-LB3RUL2N.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-HZOS2UG5.js.map → chunk-LCM63IXU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-VGO2T3TY.js.map → chunk-ME2YH6FN.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-ZRVSMOMR.js.map → chunk-MITFDD35.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-Y2AKE2HS.js.map → chunk-N7ACFE26.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-AXXKLVTW.js.map → chunk-NUZ5HKR4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KK6YPGH3.js.map → chunk-OVQCEJPG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-B3N4TKNL.js.map → chunk-OZ7NSQHL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TK633IVD.js.map → chunk-PDDFYW4X.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DFIZGAI5.js.map → chunk-PIU6RSL3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-O5IBJE6S.js.map → chunk-PO3GSVFV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-N5YF3VFN.js.map → chunk-Q7SPNHLW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-RANZIID5.js.map → chunk-QO7EBBOM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-LDJK7SHN.js.map → chunk-R6UFP2GE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CCUFLH4J.js.map → chunk-RWPSOIEE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-UFCG3SWR.js.map → chunk-RZN6VURO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-KA24HME7.js.map → chunk-T3LC5LKB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-NQP3ECKF.js.map → chunk-TCD3R2PF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-EHXPIKKP.js.map → chunk-TPH5XEVD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-T2ORWB6D.js.map → chunk-UBOPJT3S.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-S3CV7JGJ.js.map → chunk-UM2GBHS4.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-G5BACLYH.js.map → chunk-W7XABV4H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-K47WAYQV.js.map → chunk-WKY2IBOQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-7K24QB23.js.map → chunk-WOPXVEZP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-DFUSXJDE.js.map → chunk-WSMOSYRD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-CJDQB2ED.js.map → chunk-XLTD2HN3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-TQ3ZK6VD.js.map → chunk-XSJCLN2R.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-XG7RJYHV.js.map → chunk-XTGLRY2Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{chunk-JB4RGL4V.js.map → chunk-YL2DJGYS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-AZLP7YFO.js.map → claim-4DBF6RVG.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{claim-ZFA7HKU4.js.map → claim-X2P4IB7J.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-RMHQ3KWH.js.map → close-3HDWDA3L.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-65DFYAVS.js.map → close-PTYFA45H.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-UKZSQGM7.js.map → close-many-7CGIDPTJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{close-many-AKPZNSGI.js.map → close-many-ERFO6LHR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-CJWXQI7X.js.map → comments-OONGABK5.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{comments-AGBNSJJH.js.map → comments-QKBYCWKD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-DDPYIA6J.js.map → config-6FXCQKIF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{config-5ON3ADRH.js.map → config-U4RZ4CQB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-E6U3DWVM.js.map → context-FYYJGFWS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{context-ZOJEN5VT.js.map → context-YMJ3Z2HQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-WYFKN2U4.js.map → create-I5L4EYYZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{create-ATONSAZW.js.map → create-JTZNCTQC.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-ZXWC56WO.js.map → delete-7HPGI4GZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{delete-RONNH4F4.js.map → delete-VXUPH5RS.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-WII3O4HB.js.map → deps-JSRRWC3Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{deps-EHXIFOZR.js.map → deps-SCZIFK2Z.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-PDREIMLS.js.map → docs-GJK6K4VP.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{docs-JMVCFNHH.js.map → docs-WW4N3MBM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-G6UXSM5S.js.map → extension-J7IBMFTD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{extension-B4ROVWJD.js.map → extension-VDY2U33M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-2PN7UM2D.js.map → files-ISZJGILQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{files-MXYS5W4M.js.map → files-WKOD326U.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-WXMLRG7M.js.map → get-RV37HT3G.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{get-CINFEUIY.js.map → get-WXU6WI5P.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-6FC4H6HI.js.map → history-2BA3T5AE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-FLZIP7PM.js.map → history-PKN67D5O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-XKYEZDBL.js.map → history-redact-JBZNXHGR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-redact-SSZBAD76.js.map → history-redact-V4FOJGS7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-KC5ZOJRZ.js.map → history-repair-HIBCBIKK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{history-repair-X7CO5JJZ.js.map → history-repair-SDMHR7JT.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-KHX3FEEM.js.map → init-HIVSNX3O.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{init-6MRFVOLH.js.map → init-P56QYWJF.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-DCX55BNX.js.map → learnings-GDFRG5J7.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{learnings-A3CLB5CO.js.map → learnings-MIXSESLK.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-DBRECOG4.js.map → list-FGOWQMSM.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{list-53LZ2AEO.js.map → list-MUSQNMTD.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-42LIC3UE.js.map → notes-4XVSH2AZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{notes-P5O3VMQ3.js.map → notes-5UK3GEH2.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-IGTE3WOJ.js.map → plan-DUMBV3QB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{plan-HDQXEUKD.js.map → plan-SLMODHWX.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-M3YS6XDO.js.map → register-mutation-N5GSUZJV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-mutation-RSMT6DPK.js.map → register-mutation-OA675SOU.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-DI6P7X75.js.map → register-setup-JIMPKJKV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{register-setup-YJKIQRKA.js.map → register-setup-ZHJI2DI3.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-JL5QIH7H.js.map → restore-D4RGNX33.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{restore-2XVTBLKQ.js.map → restore-PBL6T5TW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-V6BX65Q2.js.map → schema-2NOO6NGB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{schema-LVXZWFGY.js.map → schema-EBI4NLUO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-C7NPB7G7.js.map → search-JPUQTVCY.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{search-5A3BMFA7.js.map → search-OA6JX27A.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-RJ4ZF35X.js.map → test-MXX3E5JL.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-OFYONO3C.js.map → test-WBROAJIE.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-OJE6CIO7.js.map → test-all-N6NSRDTV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-all-EEMKNTGU.js.map → test-all-NTOZ7C3M.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-IPOPFOAF.js.map → test-runs-V6A7LPWZ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{test-runs-L2M7WKH7.js.map → test-runs-WMVTQU3Y.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-6YEHPVXH.js.map → update-OSV3NAQB.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-PYLVHMRD.js.map → update-YRXSUGYQ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-DYWGW57M.js.map → update-many-EM6OXYGO.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{update-many-322CCH2L.js.map → update-many-KGGEYABR.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-2U727SAM.js.map → upgrade-BLI7XBAJ.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{upgrade-3W3RVSNM.js.map → upgrade-LXPOQKFV.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-ZFVWPEEN.js.map → validate-AGOAUOVW.js.map} +0 -0
- /package/dist/cli-bundle/chunks/{validate-GZ24NYHO.js.map → validate-L5J6A7YO.js.map} +0 -0
package/docs/AGENT_GUIDE.md
CHANGED
|
@@ -19,7 +19,7 @@ pm guide workflows
|
|
|
19
19
|
If a relevant item exists, reuse it. If not, create a parent lineage, then create and claim the child implementation item.
|
|
20
20
|
When AGENTS/CLAUDE guidance is missing, use `pm init --agent-guidance add` to inject compact workflow guardrails, or `pm init --agent-guidance skip` to persist an explicit decline.
|
|
21
21
|
|
|
22
|
-
Tracked documentation work: [pm-
|
|
22
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
23
23
|
|
|
24
24
|
## Canonical Loop
|
|
25
25
|
|
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -10,7 +10,7 @@ This page is for contributors changing `pm-cli` internals. Users should start wi
|
|
|
10
10
|
- Items are stored as TOON by default; history is append-only JSONL.
|
|
11
11
|
- `pm contracts` is the machine-readable runtime contract source.
|
|
12
12
|
|
|
13
|
-
Tracked documentation work: [pm-
|
|
13
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
14
14
|
|
|
15
15
|
## System Overview
|
|
16
16
|
|
|
@@ -205,6 +205,16 @@ pm contracts --command create --flags-only --json
|
|
|
205
205
|
pm help create --json
|
|
206
206
|
```
|
|
207
207
|
|
|
208
|
+
## Telemetry Schema Negotiation
|
|
209
|
+
|
|
210
|
+
Telemetry preserves wire compatibility through an explicit client/server negotiation split:
|
|
211
|
+
|
|
212
|
+
- Event payloads keep `event.schema_version` as the event-document schema (currently v1).
|
|
213
|
+
- Queue envelopes include `client_schema_version` so client/runtime evolution can be tracked independently from event payload versioning.
|
|
214
|
+
- `pm health --check-telemetry` probes `/healthz` and records any advertised max-version header for observability/debugging.
|
|
215
|
+
|
|
216
|
+
This keeps v1 behavior stable while providing a forward path for future telemetry schema upgrades.
|
|
217
|
+
|
|
208
218
|
## Output Pipeline
|
|
209
219
|
|
|
210
220
|
Core output formats:
|
|
@@ -65,7 +65,7 @@ This clones the repo, reads `.claude-plugin/marketplace.json` at the root, insta
|
|
|
65
65
|
claude mcp add --transport stdio pm-mcp -- npx -y @unbrained/pm-cli pm-mcp
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
Gives you the
|
|
68
|
+
Gives you the 21 MCP tools without skills or slash commands.
|
|
69
69
|
|
|
70
70
|
### 3. Direct project `.mcp.json` (project-scoped MCP only)
|
|
71
71
|
|
|
@@ -123,7 +123,7 @@ node scripts/smoke-claude-plugin.mjs
|
|
|
123
123
|
pnpm smoke:claude-plugin
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
Verifies: plugin file structure, manifest name consistency, MCP initialize,
|
|
126
|
+
Verifies: plugin file structure, manifest name consistency, MCP initialize, 21 tools present, full workflow (init → create → claim → update → link files/docs/tests → get → context → search → validate → health), and session-start hook.
|
|
127
127
|
|
|
128
128
|
### MCP server smoke test
|
|
129
129
|
|
package/docs/COMMANDS.md
CHANGED
|
@@ -16,13 +16,13 @@ pm contracts --command <command> --flags-only --json
|
|
|
16
16
|
- Use `pm contracts` for machine clients.
|
|
17
17
|
- Every mutation writes history.
|
|
18
18
|
|
|
19
|
-
Tracked documentation work: [pm-
|
|
19
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
20
20
|
|
|
21
21
|
## Command Families
|
|
22
22
|
|
|
23
23
|
| Family | Commands | Purpose |
|
|
24
24
|
|--------|----------|---------|
|
|
25
|
-
| Bootstrap | `init`, `config`, `health` | create and inspect tracker setup |
|
|
25
|
+
| Bootstrap | `init`, `config`, `health`, `telemetry` | create and inspect tracker setup |
|
|
26
26
|
| Triage | `context`, `search`, `list*`, `aggregate`, `dedupe-audit` | find work and audit decomposition |
|
|
27
27
|
| Lifecycle | `create`, `claim`, `update`, `append`, `close`, `release`, `delete`, `start-task`, `pause-task`, `close-task` | mutate item state |
|
|
28
28
|
| Planning | `plan create`, `plan add-step`, `plan update-step`, `plan complete-step`, `plan link`, `plan approve`, `plan materialize` | agent-optimized living plans with ordered steps, evidence, decisions, validation, and materialization |
|
|
@@ -44,6 +44,7 @@ pm init --agent-guidance status
|
|
|
44
44
|
pm init --agent-guidance add
|
|
45
45
|
pm config project list
|
|
46
46
|
pm health --check-only --summary --json
|
|
47
|
+
pm telemetry status
|
|
47
48
|
```
|
|
48
49
|
|
|
49
50
|
`pm init` creates `.agents/pm`. `pm health --check-only --summary --json` gives the smallest machine-readable health gate without refreshing optional search artifacts.
|
|
@@ -303,12 +304,31 @@ pm validate --check-files --scan-mode tracked-all
|
|
|
303
304
|
pm validate --check-resolution --fix-hints --json
|
|
304
305
|
pm normalize --dry-run --json
|
|
305
306
|
pm gc --dry-run
|
|
307
|
+
pm gc --scope locks --dry-run
|
|
306
308
|
```
|
|
307
309
|
|
|
308
310
|
Use dry-run modes before broad lifecycle or cleanup changes.
|
|
309
311
|
|
|
312
|
+
`pm gc` accepts `--scope` values `index`, `embeddings`, `runtime`, and `locks` (comma-separated or repeatable); with no `--scope` it sweeps all of them. The `locks` scope removes only **expired** lock files in `locks/` — those whose own embedded `created_at + ttl_seconds` has elapsed (debris left by crashed processes). Active locks and any lock file that cannot be parsed are always retained (never deleted when staleness cannot be proven), and the result includes a `locks` summary (`scanned`/`removed`/`retained`).
|
|
313
|
+
|
|
310
314
|
`--fix-hints` is a read-only flag: each failing check gains `details.fix_hints`, an array of `pm` command templates derived from the warning codes it raised (for example `pm history-repair <id>` for history drift, or `pm update <id> --reviewer "<name>"` for a missing reviewer). Generic hints may contain `<id>`/`<field>`/`<path>` placeholders the agent substitutes from the check's detail rows; the resolution check aliases concrete per-row commands and marks `fix_hints_truncated` when the list is summarized. It never mutates items. The mapping comes from the shared remediation registry that also backs `pm health --json` (see Self-Repair Remediation below), so agents gating on `pm validate` can auto-repair findings without hardcoding warning-code-to-command lookups.
|
|
311
315
|
|
|
316
|
+
### Telemetry Local Analytics
|
|
317
|
+
|
|
318
|
+
`pm telemetry` surfaces local queue/runtime telemetry state without running full health checks:
|
|
319
|
+
|
|
320
|
+
```bash
|
|
321
|
+
pm telemetry status
|
|
322
|
+
pm telemetry stats --limit 10
|
|
323
|
+
pm telemetry flush
|
|
324
|
+
pm telemetry clear
|
|
325
|
+
```
|
|
326
|
+
|
|
327
|
+
- `status` reports queue depth, endpoint, and latest flush metadata.
|
|
328
|
+
- `stats` groups queued local telemetry events by command name.
|
|
329
|
+
- `flush` runs an immediate local queue flush attempt.
|
|
330
|
+
- `clear` disables telemetry and deletes local queue/runtime telemetry artifacts.
|
|
331
|
+
|
|
312
332
|
### Self-Repair Remediation
|
|
313
333
|
|
|
314
334
|
`pm health --json` annotates every non-extension check whose warnings have a known code with `details.remediation_map`, an object mapping each warning-code prefix to the executable `pm` command that fixes it:
|
|
@@ -326,6 +346,8 @@ Use dry-run modes before broad lifecycle or cleanup changes.
|
|
|
326
346
|
|
|
327
347
|
```bash
|
|
328
348
|
pm history <id> --limit 20
|
|
349
|
+
pm history <id> --diff
|
|
350
|
+
pm history <id> --diff --field status
|
|
329
351
|
pm history <id> --full --diff --verify
|
|
330
352
|
pm history-redact <id> --literal "[redacted_path_prefix]/private" --replacement "[redacted_path]"
|
|
331
353
|
pm history-redact <id> --regex "/192\\.168\\.[0-9.]+/g" --dry-run
|
|
@@ -337,6 +359,15 @@ pm restore <id> <timestamp-or-version>
|
|
|
337
359
|
```
|
|
338
360
|
|
|
339
361
|
History is append-only. Restore appends a new restore event instead of rewriting old history.
|
|
362
|
+
|
|
363
|
+
`--diff` replays the history chain and emits, per entry, a `changes` array of `{ field, before, after }` field-level value transitions (alongside the `changed_fields` name list) — so you can see exactly what each field changed from and to without comparing snapshots. It is independent of the compact/full projection. `--field <name>` narrows the diff to a single field's transitions (implying `--diff`), answering "when did `<field>` change?" — e.g. `pm history <id> --diff --field status`.
|
|
364
|
+
|
|
365
|
+
`pm stats` reports item and history totals plus per-type/per-status counts. Add `--storage` for aggregate history-stream metrics — `total_streams`, `total_lines`, `total_bytes`, the top streams by size (`largest_by_bytes`) and by depth (`deepest_by_lines`), and the global `oldest_entry`/`newest_entry` — to decide when to compact or redact streams and to plan storage:
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
pm stats
|
|
369
|
+
pm stats --storage --json
|
|
370
|
+
```
|
|
340
371
|
`history-redact` rewrites matching history payloads deterministically, recomputes hash chains, and appends an auditable `history_redact` marker entry when changes are applied.
|
|
341
372
|
`history-repair` re-anchors a drifted history chain when `pm health`/`pm validate --check-history-drift` report stale hashes: it replays the stream, recomputes every before/after hash, repairs legacy patch ops that no longer strictly apply, reconciles the latest hash with the on-disk item, and appends an auditable `history_repair` marker. It never modifies item content and is a safe no-op on a clean stream.
|
|
342
373
|
|
package/docs/CONFIGURATION.md
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
- Use `--json` only when strict parsing is needed.
|
|
10
10
|
- Use `pm contracts` for current command/schema metadata.
|
|
11
11
|
|
|
12
|
-
Tracked documentation work: [pm-
|
|
12
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
13
13
|
|
|
14
14
|
## Configuration Commands
|
|
15
15
|
|
|
@@ -177,6 +177,14 @@ Keyword search is always available:
|
|
|
177
177
|
pm search "release docs" --mode keyword --limit 10
|
|
178
178
|
```
|
|
179
179
|
|
|
180
|
+
`search.tuning` controls deterministic lexical weighting in keyword mode and the lexical component of hybrid mode. Default runtime weights:
|
|
181
|
+
|
|
182
|
+
- `title_exact_bonus=10`
|
|
183
|
+
- `title_weight=8`, `description_weight=5`, `tags_weight=6`, `status_weight=2`
|
|
184
|
+
- `body_weight=1`, `comments_weight=1`, `notes_weight=1`, `learnings_weight=1`
|
|
185
|
+
- `reminders_weight=2`, `events_weight=2`
|
|
186
|
+
- `dependencies_weight=3`, `linked_content_weight=1`
|
|
187
|
+
|
|
180
188
|
Semantic and hybrid search can use built-in OpenAI-compatible or Ollama providers plus vector stores such as Qdrant or LanceDB. If local Ollama is available and semantic settings are unset, `pm` can resolve local defaults automatically.
|
|
181
189
|
|
|
182
190
|
For local Ollama or slower embedding providers, tune `search.embedding_batch_size`, `search.embedding_timeout_ms`, and `search.scanner_max_batch_retries` in project config before assuming semantic search is broken. Keyword search remains the fast baseline while semantic indexing catches up.
|
package/docs/EXTENSIONS.md
CHANGED
|
@@ -18,6 +18,7 @@ Related docs:
|
|
|
18
18
|
- [Configuration](CONFIGURATION.md)
|
|
19
19
|
- [Testing](TESTING.md)
|
|
20
20
|
- [Command Reference](COMMANDS.md)
|
|
21
|
+
- [Extension Author Contracts](EXTENSION_AUTHOR_CONTRACTS.md)
|
|
21
22
|
|
|
22
23
|
## Package Sources
|
|
23
24
|
|
|
@@ -310,6 +311,12 @@ pm contracts --runtime-only --schema-only --json
|
|
|
310
311
|
pm contracts --command <command> --flags-only --json
|
|
311
312
|
```
|
|
312
313
|
|
|
314
|
+
Detailed package-author runtime contracts live in
|
|
315
|
+
[Extension Author Contracts](EXTENSION_AUTHOR_CONTRACTS.md), including
|
|
316
|
+
`telemetry.capture_level`, create-path vs `mutateItem` write behavior, and hook
|
|
317
|
+
surface guarantees.
|
|
318
|
+
|
|
319
|
+
|
|
313
320
|
## Lifecycle Commands
|
|
314
321
|
|
|
315
322
|
Explore installed runtime entries:
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Extension Author Contracts
|
|
2
|
+
|
|
3
|
+
Tracker: pm-at83
|
|
4
|
+
|
|
5
|
+
This page records runtime contracts package authors need when they build on the public SDK. For the install, manifest, lifecycle, and troubleshooting overview, see [Packages and Extensions](EXTENSIONS.md).
|
|
6
|
+
|
|
7
|
+
## Telemetry Capture Level
|
|
8
|
+
|
|
9
|
+
Every `pm` command records a telemetry event. Extension commands use the same telemetry pipeline as core commands and inherit `telemetry.capture_level` from the active settings.
|
|
10
|
+
|
|
11
|
+
Allowed values:
|
|
12
|
+
|
|
13
|
+
| Value | Meaning |
|
|
14
|
+
|-------|---------|
|
|
15
|
+
| `redacted` | Default. Records sanitized command args, options, result summary, and runtime environment. |
|
|
16
|
+
| `minimal` | Records structural metadata and one-way digests only. No readable command text, args, options, result summary, or runtime environment is kept. |
|
|
17
|
+
| `max` | Same as `redacted`, but raises the per-string truncation cap from 512 to 2048 characters. Redaction still applies. |
|
|
18
|
+
|
|
19
|
+
All levels redact inline secrets, bearer tokens, private paths, emails, private IPv4 addresses, and object keys whose names look sensitive. `minimal` additionally digests arg and option values with HMAC-SHA-256 so extension authors cannot reconstruct user input.
|
|
20
|
+
|
|
21
|
+
Inspect and change the level:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
pm health --json | jq '.details.capture_level'
|
|
25
|
+
pm config set telemetry.capture_level minimal
|
|
26
|
+
pm config set telemetry.capture_level redacted
|
|
27
|
+
pm config set telemetry.capture_level max
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
The setting lives in the global pm settings file (`~/.pm-cli/settings.json` by default), not in the project tracker.
|
|
31
|
+
|
|
32
|
+
## Item Write Paths
|
|
33
|
+
|
|
34
|
+
`pm` has two item write paths. Hook, service, and migration authors should treat them as different contracts.
|
|
35
|
+
|
|
36
|
+
Create path:
|
|
37
|
+
|
|
38
|
+
- Used by `pm create` and importer-created items.
|
|
39
|
+
- Acquires the item lock, writes the item file atomically, appends the create history entry, fires `onWrite` for the item file and history stream, records the after-command affected-item snapshot, then releases the lock.
|
|
40
|
+
- Does not fire `onRead`, because there is no existing item.
|
|
41
|
+
- Does not call the `item_store_write` service override. Use `onWrite` with `op="create"` if a package needs to observe new items.
|
|
42
|
+
|
|
43
|
+
`mutateItem` path:
|
|
44
|
+
|
|
45
|
+
- Used by `pm update`, `pm close`, `pm claim`, `pm release`, `pm restore`, `pm delete`, and other mutations of existing items.
|
|
46
|
+
- Locates the item, acquires the lock, reads the item through the `onRead` hook, enforces ownership and history policy, applies the mutation, consults `item_store_write`, writes the item atomically, appends history, fires `onWrite` for the item and history stream, records the after-command affected-item snapshot, then releases the lock.
|
|
47
|
+
- `item_store_write` handlers can redirect the target path, replace serialized contents, or skip the physical item write.
|
|
48
|
+
|
|
49
|
+
Both paths guarantee:
|
|
50
|
+
|
|
51
|
+
- Atomic item writes.
|
|
52
|
+
- Lock coverage across item write and history append.
|
|
53
|
+
- History append after the item write, with rollback if history append fails.
|
|
54
|
+
- `onWrite` hooks only after item and history commits.
|
|
55
|
+
- Non-fatal hook failures reported as `extension_hook_failed:<layer>:<name>:onWrite`.
|
|
56
|
+
|
|
57
|
+
`changed_fields` sentinel values:
|
|
58
|
+
|
|
59
|
+
| Value | Meaning |
|
|
60
|
+
|-------|---------|
|
|
61
|
+
| `["imported"]` | Item came from an importer. |
|
|
62
|
+
| `["restored"]` | Item was restored from a previous state. |
|
|
63
|
+
| `["deleted"]` | Item was deleted. |
|
|
64
|
+
|
|
65
|
+
Surface matrix:
|
|
66
|
+
|
|
67
|
+
| Surface | Create path | `mutateItem` path |
|
|
68
|
+
|---------|-------------|-------------------|
|
|
69
|
+
| `onRead` hook | No | Yes |
|
|
70
|
+
| `item_store_write` service override | No | Yes |
|
|
71
|
+
| `history_append` service override | Yes | Yes |
|
|
72
|
+
| `onWrite` item hook | Yes, `op="create"` | Yes, `op=<mutation op>` |
|
|
73
|
+
| `onWrite` history hook | Yes, `op="create:history"` | Yes, `op="<mutation op>:history"` |
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# Onboarding
|
|
2
|
+
|
|
3
|
+
Use this guide to become productive in your first two hours without breaking release flow or tracker integrity.
|
|
4
|
+
|
|
5
|
+
## Agent Quick Context
|
|
6
|
+
|
|
7
|
+
- Bootstrap with `npm install -g .`, verify toolchain versions, then run `pnpm build`.
|
|
8
|
+
- Use `pm context` + `pm search` before creating any new item.
|
|
9
|
+
- Claim before substantial edits and link files/docs/tests as you go.
|
|
10
|
+
- Run sandbox-safe tests before closing items.
|
|
11
|
+
- Never hand-edit tracker records or generated changelog output.
|
|
12
|
+
|
|
13
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon), [pm-oh5h](../.agents/pm/tasks/pm-oh5h.toon), [pm-10ml](../.agents/pm/stories/pm-10ml.toon).
|
|
14
|
+
|
|
15
|
+
## Prerequisites
|
|
16
|
+
|
|
17
|
+
- Node.js 20 or newer
|
|
18
|
+
- pnpm 10 or newer
|
|
19
|
+
- Git + GitHub CLI (`gh`) authenticated for this repository
|
|
20
|
+
|
|
21
|
+
## First-Time Bootstrap (Real Repository Work)
|
|
22
|
+
|
|
23
|
+
Run from the repository root:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npm install -g .
|
|
27
|
+
pm --version
|
|
28
|
+
node -v
|
|
29
|
+
pnpm -v
|
|
30
|
+
pnpm build
|
|
31
|
+
export PM_AUTHOR="<stable-agent-id>"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
For real repository tracking, do not set `PM_PATH`.
|
|
35
|
+
|
|
36
|
+
## First Read Path
|
|
37
|
+
|
|
38
|
+
Use progressive disclosure:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
pm context --limit 10
|
|
42
|
+
pm search "<request keywords>" --limit 10
|
|
43
|
+
pm list-open --limit 20
|
|
44
|
+
pm list-in-progress --limit 20
|
|
45
|
+
pm install guide-shell --project
|
|
46
|
+
pm guide workflows
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Then use:
|
|
50
|
+
|
|
51
|
+
- [Agent Guide](AGENT_GUIDE.md)
|
|
52
|
+
- [Command Reference](COMMANDS.md)
|
|
53
|
+
- [Testing](TESTING.md)
|
|
54
|
+
- [Releasing](RELEASING.md)
|
|
55
|
+
|
|
56
|
+
## Safe Local Verification
|
|
57
|
+
|
|
58
|
+
Use sandbox-safe wrappers for test execution:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
node scripts/run-tests.mjs test
|
|
62
|
+
node scripts/run-tests.mjs coverage
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Standard local gate set:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
pnpm build
|
|
69
|
+
pnpm typecheck
|
|
70
|
+
node scripts/run-tests.mjs coverage
|
|
71
|
+
pnpm quality:docs-skills
|
|
72
|
+
pm validate --check-resolution --check-history-drift
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
## Real Tracker Workflow (Canonical Loop)
|
|
76
|
+
|
|
77
|
+
1) Orient and dedupe
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
pm context --limit 10
|
|
81
|
+
pm search "<keywords>" --limit 10
|
|
82
|
+
pm list-open --limit 20
|
|
83
|
+
pm list-in-progress --limit 20
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
2) Claim and start
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
pm claim <id>
|
|
90
|
+
pm update <id> --status in_progress --message "Start implementation"
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
3) Link execution context while editing
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
pm files <id> --add path=src/...,scope=project,note="implementation scope"
|
|
97
|
+
pm docs <id> --add path=docs/...,scope=project,note="user-facing behavior"
|
|
98
|
+
pm test <id> --add command="node scripts/run-tests.mjs test -- tests/unit/...",scope=project,timeout_seconds=240
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
4) Record progress
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
pm comments <id> "Progress update and rationale."
|
|
105
|
+
pm notes <id> --add "Design tradeoff."
|
|
106
|
+
pm learnings <id> --add "Durable lesson."
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
5) Verify, close, and release
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
pm test <id> --run --progress
|
|
113
|
+
pm comments <id> "Evidence: linked tests and gates passed."
|
|
114
|
+
pm close <id> "Acceptance criteria met; verification passed." --validate-close warn
|
|
115
|
+
pm release <id>
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Release Overview
|
|
119
|
+
|
|
120
|
+
- Daily release prep runs via `.github/workflows/auto-release.yml`.
|
|
121
|
+
- Tag-triggered publish runs via `.github/workflows/release.yml`.
|
|
122
|
+
- `CHANGELOG.md` is generated by `pm-changelog` and must stay package-generated.
|
|
123
|
+
|
|
124
|
+
Local parity:
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
pnpm release:pipeline:dry-run
|
|
128
|
+
pnpm release:pipeline
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
## Hard Never-Do List
|
|
132
|
+
|
|
133
|
+
- Do not hand-edit `CHANGELOG.md` (use `pnpm changelog:pm` only).
|
|
134
|
+
- Do not run manual `npm publish` for this project.
|
|
135
|
+
- Do not set `PM_PATH` for real repository mutations.
|
|
136
|
+
- Do not edit `.agents/pm/**` files directly; mutate through `pm` commands.
|
|
137
|
+
- Do not bypass governance with destructive git commands unless explicitly approved.
|
|
138
|
+
|
|
139
|
+
## Diagnostics and Recovery
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
pm health --check-only
|
|
143
|
+
pm validate --check-resolution --check-history-drift
|
|
144
|
+
pm normalize --dry-run --json
|
|
145
|
+
pm package doctor --project --detail summary
|
|
146
|
+
pm contracts --command <command> --flags-only --json
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
If history drift is reported:
|
|
150
|
+
|
|
151
|
+
```bash
|
|
152
|
+
pm history-repair <id> --dry-run
|
|
153
|
+
pm history-repair <id>
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
If sensitive content is found in history:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
pm history-redact <id> --literal "<secret>" --replacement "[redacted]" --dry-run
|
|
160
|
+
pm history-redact <id> --literal "<secret>" --replacement "[redacted]"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Private Operations Boundary
|
|
164
|
+
|
|
165
|
+
Keep credentials, host-specific runbooks, internal topology, and raw private reliability logs out of tracked docs and package output. Keep those details in local, ignored operations notes.
|
package/docs/QUICKSTART.md
CHANGED
|
@@ -11,7 +11,7 @@ Use this page to get from a clean repository to a tracked, verified item.
|
|
|
11
11
|
- Close only after evidence is recorded.
|
|
12
12
|
- Use `pm install guide-shell --project` before `pm guide quickstart` or `pm guide workflows` when you need local docs routing.
|
|
13
13
|
|
|
14
|
-
Tracked documentation work: [pm-
|
|
14
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
15
15
|
|
|
16
16
|
## Install
|
|
17
17
|
|
package/docs/README.md
CHANGED
|
@@ -20,15 +20,18 @@ pm guide release --json
|
|
|
20
20
|
| Reader | First page | Then read |
|
|
21
21
|
|--------|------------|-----------|
|
|
22
22
|
| New user | [Quickstart](QUICKSTART.md) | [Command Reference](COMMANDS.md) |
|
|
23
|
+
| New maintainer | [Onboarding](ONBOARDING.md) | [Agent Guide](AGENT_GUIDE.md), [Testing](TESTING.md), [Releasing](RELEASING.md) |
|
|
23
24
|
| Coding agent | [Agent Guide](AGENT_GUIDE.md) | [Configuration](CONFIGURATION.md), then command help |
|
|
24
25
|
| Maintainer | [Contributing](../CONTRIBUTING.md) | [Testing](TESTING.md), [Releasing](RELEASING.md), [Architecture](ARCHITECTURE.md) |
|
|
25
26
|
| Package author | [Packages and Extensions](EXTENSIONS.md) | [SDK](SDK.md), [starter extension](examples/starter-extension/README.md) |
|
|
26
27
|
| Codex user | [Codex Plugin](CODEX_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
|
|
28
|
+
| Claude Code user | [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) | [Agent Guide](AGENT_GUIDE.md), then [Command Reference](COMMANDS.md) |
|
|
27
29
|
| Machine client | `pm contracts --json` | [Command Reference](COMMANDS.md#machine-contracts), optionally `pm install guide-shell --project && pm guide commands` |
|
|
28
30
|
|
|
29
31
|
## Documentation Map
|
|
30
32
|
|
|
31
33
|
- [Quickstart](QUICKSTART.md) - install, initialize, create, claim, link, test, close.
|
|
34
|
+
- [Onboarding](ONBOARDING.md) - first-two-hours maintainer and contributor setup.
|
|
32
35
|
- [Agent Guide](AGENT_GUIDE.md) - canonical agent loop, tracker linking, and token-minimal command choices.
|
|
33
36
|
- [Command Reference](COMMANDS.md) - command families with examples and when to use each family.
|
|
34
37
|
- [Configuration](CONFIGURATION.md) - settings, storage formats, output, search, validation, and environment variables.
|
|
@@ -37,6 +40,7 @@ pm guide release --json
|
|
|
37
40
|
- [Packages and Extensions](EXTENSIONS.md) - package install workflows, runtime extension lifecycle, and API reference.
|
|
38
41
|
- [SDK](SDK.md) - public import surfaces and typed authoring examples.
|
|
39
42
|
- [Codex Plugin](CODEX_PLUGIN.md) - native MCP plugin install, tools, skills, and safety notes.
|
|
43
|
+
- [Claude Code Plugin](CLAUDE_CODE_PLUGIN.md) - native Claude Code plugin architecture and install flow.
|
|
40
44
|
- [Releasing](RELEASING.md) - maintainer release checklist and failure handling.
|
|
41
45
|
- [starter extension](examples/starter-extension/README.md) - compact extension scaffold reference.
|
|
42
46
|
|
|
@@ -71,11 +75,15 @@ Community files:
|
|
|
71
75
|
|
|
72
76
|
## Tracker References
|
|
73
77
|
|
|
74
|
-
|
|
78
|
+
Current documentation structure work is tracked through:
|
|
75
79
|
|
|
76
|
-
- [pm-
|
|
77
|
-
|
|
78
|
-
|
|
80
|
+
- [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon)
|
|
81
|
+
|
|
82
|
+
Legacy documentation baseline references (closed):
|
|
83
|
+
|
|
84
|
+
- [pm-3042](../.agents/pm/epics/pm-3042.toon) (closed)
|
|
85
|
+
- [pm-r9gu](../.agents/pm/features/pm-r9gu.toon) (closed)
|
|
86
|
+
- [pm-1sb2](../.agents/pm/tasks/pm-1sb2.toon) (closed)
|
|
79
87
|
|
|
80
88
|
When changing docs, link files back to the active item:
|
|
81
89
|
|
package/docs/RELEASING.md
CHANGED
|
@@ -12,7 +12,7 @@ For local progressive-disclosure routing, install `guide-shell` with `pm install
|
|
|
12
12
|
- Run local parity gates before pushing release tags.
|
|
13
13
|
- Use `pm guide release --json` for machine-readable release docs routing after `guide-shell` is installed.
|
|
14
14
|
|
|
15
|
-
Tracked documentation work: [pm-
|
|
15
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
16
16
|
|
|
17
17
|
## Version Policy
|
|
18
18
|
|
|
@@ -74,6 +74,41 @@ The pipeline performs:
|
|
|
74
74
|
|
|
75
75
|
The generated changelog includes clickable pm item links to the tracked `.toon` files. Missing release evidence should be fixed in pm item history, not by hand-editing `CHANGELOG.md`.
|
|
76
76
|
|
|
77
|
+
## Changelog Classification (Contributor-Facing)
|
|
78
|
+
|
|
79
|
+
`pnpm changelog:pm` routes closed pm items into keep-a-changelog sections using `pm-changelog` classification logic. Use explicit type/tag metadata when you want deterministic section routing.
|
|
80
|
+
|
|
81
|
+
Signal tiers:
|
|
82
|
+
|
|
83
|
+
- **Strong signals**: item `type` + `tags`
|
|
84
|
+
- **Weak signal**: item `title` (after stripping CLI-flag-like tokens such as `--add`)
|
|
85
|
+
|
|
86
|
+
Category precedence (first matching bucket wins):
|
|
87
|
+
|
|
88
|
+
| Priority | Category | Trigger terms (from strong + weak signals unless noted) |
|
|
89
|
+
|---|---|---|
|
|
90
|
+
| 1 | `Security` | `security`, `cve`, `vulnerability` |
|
|
91
|
+
| 2 | `Deprecated` | `deprecated`, `deprecation` |
|
|
92
|
+
| 3 | `Removed` | `removed`, `remove`, `deleted`, `delete` |
|
|
93
|
+
| 4 | `Fixed` | `fix`, `fixed`, `bug`, `bugfix`, `hotfix`, `regression` |
|
|
94
|
+
| 5 | `Added` | `feature`, `feat`, `added`, `add`, `new` |
|
|
95
|
+
| 6 | `Changed` | strong-signal `change`, `changed`, `refactor`, `update`, `updated`, `improve`; for non-bug-like types only, title fallback is also used |
|
|
96
|
+
| 7 | `Other` | no classifier match |
|
|
97
|
+
|
|
98
|
+
Bug-like default:
|
|
99
|
+
|
|
100
|
+
- Items with type `Issue`, `Bug`, `Bugfix`, or `Defect` default to `Fixed` unless a higher-priority category already matched.
|
|
101
|
+
- This bug-like default runs before title-only `Changed` fallback to avoid misrouting command-name issue titles (for example "`pm update ...`" issue reports).
|
|
102
|
+
|
|
103
|
+
Practical examples:
|
|
104
|
+
|
|
105
|
+
- `Issue` + title `pm update --add-tags fails` -> `Fixed`
|
|
106
|
+
- `Task` + tag `refactor` -> `Changed`
|
|
107
|
+
- `Feature` + tag `security` -> `Security`
|
|
108
|
+
- `Issue` + tag `feature` -> `Added` (explicit stronger signal beats default)
|
|
109
|
+
|
|
110
|
+
If a changelog routing rule appears incorrect, fix classifier behavior in the `pm-changelog` package/repo and then consume the updated package here. Do not patch generator internals in this repository.
|
|
111
|
+
|
|
77
112
|
## Local Release Parity Checklist
|
|
78
113
|
|
|
79
114
|
1. Confirm or compute the version.
|
package/docs/TESTING.md
CHANGED
|
@@ -9,7 +9,7 @@ This page describes safe local tests, linked tests, coverage, and release-readin
|
|
|
9
9
|
- Linked tests added through `pm test` should use sandbox-safe commands.
|
|
10
10
|
- Run linked tests before closing the item that owns the work.
|
|
11
11
|
|
|
12
|
-
Tracked documentation work: [pm-
|
|
12
|
+
Tracked documentation work: [pm-u9d0](../.agents/pm/epics/pm-u9d0.toon).
|
|
13
13
|
|
|
14
14
|
## Standard Local Checks
|
|
15
15
|
|
|
@@ -140,3 +140,21 @@ rg -n "forbidden-private-token-or-path" README.md docs
|
|
|
140
140
|
```
|
|
141
141
|
|
|
142
142
|
Replace the placeholder pattern with the actual sensitive term being guarded in the current task.
|
|
143
|
+
|
|
144
|
+
## Contract Snapshot Gate
|
|
145
|
+
|
|
146
|
+
Tracked by [pm-d6kq](../.agents/pm/tasks/pm-d6kq.toon).
|
|
147
|
+
|
|
148
|
+
`pm contracts --full --json` is a public machine-readable SDK and agent surface.
|
|
149
|
+
Keep its committed golden snapshot current when command contracts, schemas,
|
|
150
|
+
aliases, or extension-provided command contracts intentionally change:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
pnpm build
|
|
154
|
+
pnpm contracts:update
|
|
155
|
+
pnpm contracts:check
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
CI runs `pnpm contracts:check` in the static gate. Snapshot diffs should be
|
|
159
|
+
reviewed like an API change and paired with the package-owned changelog flow
|
|
160
|
+
when the contract surface changes intentionally.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unbrained/pm-cli",
|
|
3
|
-
"version": "2026.6.
|
|
3
|
+
"version": "2026.6.6",
|
|
4
4
|
"description": "Git-native project management CLI for humans and agents.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "unbrained",
|
|
@@ -74,6 +74,9 @@
|
|
|
74
74
|
"test:coverage": "node scripts/run-tests.mjs coverage",
|
|
75
75
|
"quality:static": "node scripts/release/static-quality-gate.mjs",
|
|
76
76
|
"quality:docs-skills": "node scripts/release/docs-skills-gate.mjs",
|
|
77
|
+
"quality:docs-links": "node scripts/release/docs-skills-gate.mjs --links-only",
|
|
78
|
+
"contracts:update": "node scripts/contracts-snapshot.mjs --update",
|
|
79
|
+
"contracts:check": "node scripts/contracts-snapshot.mjs --check",
|
|
77
80
|
"dogfood:package-first": "node scripts/dogfood-package-first.mjs",
|
|
78
81
|
"smoke:external-packages": "node scripts/smoke-external-packages.mjs",
|
|
79
82
|
"smoke:codex-plugin": "node scripts/smoke-codex-plugin-mcp.mjs",
|
|
@@ -129,7 +132,7 @@
|
|
|
129
132
|
},
|
|
130
133
|
"devDependencies": {
|
|
131
134
|
"@sentry/cli": "^3.5.0",
|
|
132
|
-
"@types/node": "^25.9.
|
|
135
|
+
"@types/node": "^25.9.2",
|
|
133
136
|
"@vitest/coverage-v8": "^4.1.8",
|
|
134
137
|
"esbuild": "0.28.0",
|
|
135
138
|
"tsx": "^4.22.4",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pm-claude",
|
|
3
|
-
"description": "Native pm CLI integration for Claude Code —
|
|
3
|
+
"description": "Native pm CLI integration for Claude Code — 21 MCP tools, 5 workflow skills, 14 slash commands, 3 subagents (coordinator, 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
4
|
"version": "1.4.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "unbrained",
|
|
@@ -6,7 +6,7 @@ Native pm CLI integration for Claude Code. Use pm project management tools direc
|
|
|
6
6
|
|
|
7
7
|
| Component | What it provides |
|
|
8
8
|
|-----------|----------------|
|
|
9
|
-
| **
|
|
9
|
+
| **21 MCP tools** | Full pm surface: context, search, list, get, create, update, claim, release, close, comments, files, docs, notes, learnings, deps, test, validate, health, contracts, plan + `pm_run` for everything else |
|
|
10
10
|
| **5 skills** | `pm-workflow`, `pm-developer`, `pm-release`, `pm-audit`, `pm-planner` — auto-loaded as Claude Code skills |
|
|
11
11
|
| **14 slash commands** | Full lifecycle coverage — status, start, close, triage, audit, search, new, list, calendar, developer, planner, release, workflow, init |
|
|
12
12
|
| **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) |
|
|
@@ -29,7 +29,7 @@ claude plugin marketplace add /path/to/pm-cli
|
|
|
29
29
|
# claude plugin marketplace add unbraind/pm-cli
|
|
30
30
|
```
|
|
31
31
|
|
|
32
|
-
This installs all
|
|
32
|
+
This installs all 21 MCP tools, 5 skills, 14 slash commands, 4 subagents, hybrid TUI tracking, and the session hook in one step.
|
|
33
33
|
|
|
34
34
|
### Option B: Legacy marketplace alias (also works)
|
|
35
35
|
|
|
@@ -45,7 +45,7 @@ Both `pm` and `pm-cli` marketplace IDs resolve to the same plugin.
|
|
|
45
45
|
claude mcp add --transport stdio pm-mcp -- npx -y @unbrained/pm-cli pm-mcp
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
This gives you the
|
|
48
|
+
This gives you the 21 MCP tools but not the skills, slash commands, or session hook.
|
|
49
49
|
|
|
50
50
|
### Option D: Direct `.mcp.json` (project-scoped MCP only)
|
|
51
51
|
|
|
@@ -159,6 +159,9 @@ Spawn pm-triage-agent to set up the pm item for: add OAuth2 login support
|
|
|
159
159
|
| `pm_comments` | List or add comments |
|
|
160
160
|
| `pm_files` | Link/unlink files |
|
|
161
161
|
| `pm_docs` | Link/unlink docs |
|
|
162
|
+
| `pm_notes` | List or add notes |
|
|
163
|
+
| `pm_learnings` | List or add learnings |
|
|
164
|
+
| `pm_deps` | List/add/remove dependencies |
|
|
162
165
|
| `pm_test` | Link or run tests |
|
|
163
166
|
| `pm_validate` | Run validation checks |
|
|
164
167
|
| `pm_health` | Run health diagnostics |
|
|
@@ -171,7 +174,7 @@ Spawn pm-triage-agent to set up the pm item for: add OAuth2 login support
|
|
|
171
174
|
|------|---------|
|
|
172
175
|
| `pm_run` | Any pm action not covered above — pass `action` field |
|
|
173
176
|
|
|
174
|
-
**`pm_run` actions:** `init`, `calendar`, `activity`, `aggregate`, `dedupe-audit`, `normalize`, `reindex`, `extension`, `history`, `stats`, `append`, `
|
|
177
|
+
**`pm_run` actions:** `init`, `calendar`, `activity`, `aggregate`, `dedupe-audit`, `normalize`, `reindex`, `extension`, `history`, `stats`, `append`, `test-all`, `comments-audit`, `gc`, `templates-list`, `templates-save`, `templates-show`, `test-runs-list`, `test-runs-status`, `test-runs-logs`, `test-runs-stop`, `test-runs-resume`, `config`, `completion`
|
|
175
178
|
|
|
176
179
|
## Hybrid TUI Sync Pattern
|
|
177
180
|
|
|
@@ -29,7 +29,7 @@ For batch audits spanning many items, create one top-level `TaskCreate` for the
|
|
|
29
29
|
|
|
30
30
|
## Tools Available
|
|
31
31
|
|
|
32
|
-
Use the `pm-mcp` MCP server tools: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_plan`, and `pm_run` for all other operations.
|
|
32
|
+
Use the `pm-mcp` MCP server tools: `pm_context`, `pm_search`, `pm_list`, `pm_get`, `pm_create`, `pm_update`, `pm_claim`, `pm_release`, `pm_close`, `pm_comments`, `pm_files`, `pm_docs`, `pm_notes`, `pm_learnings`, `pm_deps`, `pm_test`, `pm_validate`, `pm_health`, `pm_contracts`, `pm_plan`, and `pm_run` for all other operations.
|
|
33
33
|
|
|
34
34
|
Also use Claude Code's built-in `TaskCreate` and `TaskUpdate` tools for TUI panel display.
|
|
35
35
|
|