2026.6.17

Added

  • GH-216: default lifecycle transition suggestions elemento pm-y1z0
  • GH-217: scheduling type creation shortcuts elemento pm-76r5
  • GH-258: strict unknown-key rejection across all structured CSV/markdown link & metadata parsers (validation parity with test --add) elemento pm-0v9k
  • Expose schema.unknown_field_policy via pm config set schema_unknown_field_policy elemento pm-nnaq
  • Expose id_prefix, author_default, output.default_format, locks.ttl_seconds via pm config set elemento pm-9byd
  • GH-245: schema add-type --infer from title prefixes elemento pm-tb42
  • pm schema apply-preset <agile\|ops\|research\>: standalone type-preset for already-initialized projects elemento pm-86ob
  • pm schema list-fields / show-field / add-field / remove-field: CLI management of schema/fields.json elemento pm-vhbf

Fixed

  • Sentry PM-CLI-1R: 'cannot add command init as already have command init' — top-level init double-registration throws raw Commander error elemento pm-zyez

Other

  • Document schema/fields.json runtime custom field authoring in CONFIGURATION.md elemento pm-izx5

2026.6.16

Added

  • pm focus: session default parent/context inheritance for new items (GH-161) elemento pm-72xf
  • GH-235: detect duplicate logical issue code prefixes elemento pm-rpag
  • GH-243: comments edit/delete lifecycle commands elemento pm-4swf
  • GH-244: surface provider/vector-store resolution source in pm health elemento pm-gnu2
  • GH-236: governance metadata missing-field filters elemento pm-mfl1
  • GH-242: field-existence filters for list/search elemento pm-hntj
  • GH-241: stats content-field utilization metrics elemento pm-7snq
  • Finalize literal 100% coverage: close c8-ignore-masked gaps & remediate PR \#240 bot review elemento pm-0xix
  • Apply Gemini correctness fixes & cover new branches (config/init/reindex/register-mutation) elemento pm-bw70
  • Module-mirrored test reorganization: retire lane/wave naming, add shared script harness elemento pm-m449
  • Search: persistent search.hybrid_semantic_weight setting as default for pm search --semantic-weight elemento pm-2xwh
  • Search corpus: include type, priority, parent, assignee fields in keyword and semantic corpus elemento pm-jyie
  • pm search filter parity with pm list: add --updated-after/before, --created-after/before, --assignee, --sprint, --release, --parent elemento pm-13nx
  • Configurable min-score threshold for pm search: --min-score per-query override of search.score_threshold elemento pm-cstl
  • pm search keyword mode: --match-mode (and/or/exact) + default result limit (GH-181 remainder) elemento pm-i1z6
  • pm list --no-truncate/--all: explicit override of any --limit + surface total vs returned count (GH-154) elemento pm-0c0j
  • pm context --depth full: comprehensive snapshot (all sections, no per-section cap) (GH-156) elemento pm-j0vc
  • pm context --parent <id\>: scope snapshot to a single epic/parent subtree elemento pm-ds0m
  • pm get: include child rollup summary for Milestone/Epic items (GH-155) elemento pm-gcm3
  • pm validate: missing-link owner attribution (GH-210) + type-default estimate backfill (GH-212) elemento pm-gnnb
  • Metadata governance & coverage observability (missing-field filters, stats breakdowns, validate full-id lists, aggregate explicit labels) elemento pm-yq7m
  • pm close: short aliases -m/-r/-d for --message/--reason/--duplicate-of (GH-226) elemento pm-i1mu
  • pm create/update --body-file: load body markdown from a file (GH-214) elemento pm-7c48

Changed

  • Small verified cross-file duplications (4 pairs) + static-gate duplicate scan does not cover src/cli elemento pm-z2gi
  • LOC growth watch: 5 src files back over 2000 lines (cap 3400) after 2026-05-25 barrel splits elemento pm-k1im
  • health.ts re-implements doctor.ts capability-guidance helpers verbatim instead of importing the exported versions elemento pm-aabt
  • Dedupe history-rewrite orchestration block triplicated across history-redact/repair/compact elemento pm-bzgt
  • pm update-many: --filter-ac-missing/--filter-estimates-missing/--filter-resolution-missing selection filters for bulk backfill (GH-220) elemento pm-wbak

Fixed

  • GH-256: update-many --dry-run skips field validation (priority/type/status/deadline) elemento pm-v4tb
  • GH-253: invalid --type create error hardcodes .agents/pm path, ignoring active --pm-path elemento pm-nd08
  • GH-252: pm get --json places body outside item (parity with list --include-body) elemento pm-hofv
  • GH-250: pm close checks item existence before the close-reason gate elemento pm-1jtl
  • GH-249: create --status closed bypasses governance.require_close_reason elemento pm-4a1p
  • GH-248: fix schema add-type silent slug-collision overwrite + malformed-name acceptance elemento pm-3l0f
  • Extension activation failure is invisible outside pm health --json: extension list shows ok, no stderr hint, commands partially registered elemento pm-yffj
  • pm create <type\> --title X silently ignores positional type, defaults to Task elemento pm-8sr3
  • c8 ignore end (invalid keyword) silently masked source coverage; literal-100% gate passed on hidden code elemento pm-dg8j
  • GH-205: surface telemetry flush/probe + OTEL export diagnostics in pm health elemento pm-hx5a
  • GH-209 follow-up: OTEL span export keeps the CLI alive ~10s (and can exit 13) when the traces endpoint is unreachable elemento pm-25se

Security

  • Track open Dependabot alerts \#39/\#40/\#41 (vite and @opentelemetry/core) elemento pm-c24n

Other

  • Content-field & governance introspection (GH-241/242/236) elemento pm-php4
  • GitHub issue triage 2026-06-12 elemento pm-tk1z
  • Slim guided-error boilerplate in agent contexts; lead unknown-command Examples with the did-you-mean candidate elemento pm-q0kr
  • PR \#240 review: applied vs declined Gemini findings (with rationale) elemento pm-lg65
  • Close c8-exposed coverage gaps in src/cli/commands/create.ts to 100% elemento pm-eifq
  • Close c8-exposed coverage gaps in src/cli/commands/contracts.ts and restore.ts to 100% elemento pm-dmuq
  • Close c8-exposed coverage gaps in src/cli/commands/history-redact.ts and normalize.ts to 100% elemento pm-byl1
  • Test-suite dedup & best-practice audit (post module-mirror reorg) elemento pm-2nqx
  • Source-correctness audit of all-source-100%-coverage branch src/ edits elemento pm-e2jt
  • tests/unit is at exactly 120/120 spec files: zero headroom before Gates(static) fails; consolidation candidates identified elemento pm-vks9
  • ADR: test organization convention — module-mirrored spec files, no lane/wave naming elemento pm-kjmx
  • ADR: literal all-src coverage supersedes curated include/exclude allowlist elemento pm-w13j
  • Literal 100% all-source test coverage & module-mirrored test reorganization elemento pm-xau3
  • Coverage to 100%: packages, plugins, and docs examples elemento pm-6tch
  • Coverage to 100%: src/cli command handlers (group B — query, search, calendar, test, init, extension) elemento pm-7v9s
  • Coverage to 100%: src/cli command handlers (group A — mutation, history, storage, schema) elemento pm-ud1x
  • Coverage to 100%: src/cli infrastructure (registration, bootstrap, help, main) elemento pm-uvxc
  • Coverage to 100%: build, release, and smoke scripts elemento pm-f2ne
  • pm context power-user projection: --depth full, --fields, --parent subtree (GH-156, pm-ds0m, GH-154) elemento pm-kp1d
  • Document and test telemetry env-var surface: PM_TELEMETRY_DISABLED, PM_NO_TELEMETRY, PM_TELEMETRY_SOURCE_CONTEXT, PM_TELEMETRY_OTEL_DISABLED, PM_TELEMETRY_INLINE_FLUSH elemento pm-r7md
  • GH-212: type-default estimate backfill via validate --auto-fix --fix-scope estimates elemento pm-s3hl
  • GH-210: missing_linked_path_rows owner attribution in validate --check-files elemento pm-z36m
  • pm validate: --all-affected-ids flag + never truncate ID lists in JSON mode (GH-224) elemento pm-o0d2
  • pm aggregate: explicit (unassigned)/(none) labels for blank group keys in all output modes (GH-225) elemento pm-zcx9
  • pm stats: --by-assignee/--by-tag/--by-priority breakdowns + --metadata-coverage + lifecycle/type adoption (GH-213/218/219) elemento pm-gq27
  • pm list: --filter-ac-missing/--filter-estimates-missing/--filter-resolution-missing/--filter-metadata-missing (GH-228) elemento pm-fryg
  • Shared core/governance/metadata-coverage primitive: missing-field predicates + coverage % + grouped lifecycle counts elemento pm-hm1q
  • pm close: when require_close_reason is on, accept --resolution text as the close reason instead of hard-blocking elemento pm-7x8d

2026.6.13

Changed

  • Dedup private Levenshtein implementations onto shared OSA helper elemento pm-dzcx

Fixed

  • Claude Code plugin install spec drift: README says pm-cli@pm but plugin name is pm-claude elemento pm-m4bx
  • Compact strict-create recovery duplicates missing fields under two keys elemento pm-3rjo
  • pm-mcp bin is dead on npm installs: main-module guard fails under symlinked argv\[1\] (silent exit 0, no JSON-RPC output) elemento pm-qtbc
  • GH-209: successful pm mutations can exit 13 from unsettled top-level await elemento pm-1byt
  • pm validate --check-files misclassifies existing directories as deleted (GH-203, prune/auto-fix data-loss path) elemento pm-b1ni

Other

2026.6.12

Added

  • pm files/docs: standalone --note flag alongside --add (GH-170) elemento pm-pfnx
  • Add pm health 'locks' check: surface stale item-claim counts before gc is needed elemento pm-xo1n
  • pm history-repair --all: bulk drift repair across streams (GH-171) elemento pm-9ftr
  • pm validate --check-files: classify stale linked paths (moved vs deleted) and offer --prune-missing (GH-184) elemento pm-0v2m
  • pm validate --auto-fix: apply safe remediations automatically (GH-179, GH-153 interactive part, GH-167 backfill part) elemento pm-c3sz
  • pm validate metadata report grouped by item type (GH-172) elemento pm-pmyq

Fixed

  • PR \#200 review: batch validate prune-missing auto-fix removals elemento pm-60p0
  • MCP pm_files discover/apply/discoveryNote params are declared but ignored by the files action handler elemento pm-wcaa
  • Session 2026-06-11: validation auto-fix & self-repair PR (validate --auto-fix/--prune-missing/grouped metadata, history-repair --all, health locks, files/docs --note, plan --step accumulate, consent CI guard, completion drift) elemento pm-dhrp
  • Lifecycle subcommand flags duplicated on the parent extension/package command are silently dropped (commander hoists them) elemento pm-df9k
  • Telemetry first-run prompt CI guard is inverted: CI=true does not skip, only CI=false/0/no/off does elemento pm-0hx2
  • pm plan create: repeated --step silently keeps only the last value instead of accumulating steps elemento pm-6mit
  • pm validate lifecycle: auto-fix for active items with closed/terminal parents (GH-168) elemento pm-8jss

Other

  • PR \#200 review: contract and defensive hardening follow-up elemento pm-im0s
  • Refresh Sentry expected handled CLI classifier for 2026-06-11 dogfood CommandErrors elemento pm-lg9i
  • Milestone calendar_item_without_schedule warning should include actionable hint (GH-174) elemento pm-2cgu
  • Shell completion drift: show-status missing from bash/zsh/fish schema subcommand lists elemento pm-6qi8

2026.6.11

Added

  • MCP pm_list/pm_search: expose active filter summary in compact output so agents know what was applied elemento pm-rmjy
  • Add narrow pm_append MCP tool for agent log-seeding without pm_run passthrough elemento pm-7u9j
  • Add pm_schema and pm_config narrow MCP tools for workspace configuration via MCP elemento pm-v68d

Fixed

  • GH-191: test --add command parser should accept quoted commands containing -- elemento pm-vcr2

Other

  • Contract schema golden-file must cover MCP tool inputSchema shapes — current snapshot only covers CLI flags elemento pm-4os2

2026.6.10

Added

  • Combined PR: duplicate-aware close, parent fail-fast, id-only output, context/aggregate completion stats, robust test add/run elemento pm-z9e9
  • pm close --duplicate-of: structured duplicate tracking with auto-populated closure fields (GH-183, GH-160) elemento pm-xnkd
  • pm test --run selectors: --match / --only-index / --only-last (GH-194) elemento pm-p86h
  • pm context: per-epic completion stats + recently_created/unparented sections (GH-187, GH-182) elemento pm-ojpq
  • Root --id-only flag: minimal mutation output (id+status) for agent automation loops (GH-195) elemento pm-esf6
  • pm aggregate --completion: closed/total ratio and completion_pct per group (GH-185) elemento pm-eaer
  • pm list: include parent in default compact projection when set (GH-180) elemento pm-awfr
  • Embedding provider migration guide + pm reindex --migrate: automated full reindex on model/provider change elemento pm-wt0g
  • Incremental reindex --mode semantic --stale-only: skip already-up-to-date vectors elemento pm-o3nr
  • Settings read cache: memoize readSettingsWithMetadata across the 3-5 reads per command elemento pm-2bn5
  • Add MCP pm_context, pm_contracts, pm_plan, pm_health integration tests elemento pm-8d00
  • Add importer/exporter options arg and command-def examples to SDK.md elemento pm-btwe
  • pm_max_version default-BLOCK should have a per-layer warn-only toggle in settings elemento pm-k5e8
  • First-party exemplar package for registerCommand + registerFlags + registerParser (commands capability pattern) elemento pm-1js9
  • Extension teardown: per-deactivate timeout guard so a hanging deactivate() cannot block host shutdown/reload elemento pm-bujg

Fixed

  • GH-189: create --parent should fail fast on unresolved references elemento pm-p9hw
  • GH-190: SDK locateItem should default idPrefix or throw explicit argument errors elemento pm-rjh9
  • Telemetry queue max_attempts backlog health warning: surface items near retry exhaustion in pm health elemento pm-irc7
  • Harden history replay and compact diff against malformed patch entries elemento pm-kf5q
  • MCP server: request-scoped extension registries (process-global set/clear can race under concurrent native-action requests) elemento pm-bl6m
  • Fix Windows Nightly smoke cleanup helper import elemento pm-uzty

Security

  • Extension sandbox profiles are advisory-only — no runtime enforcement of declared permission boundaries elemento pm-pl53
  • Declare trusted=true, sandbox_profile, and permissions on all 9 first-party package manifests elemento pm-iljy

Other

  • Run verification matrix and temp-dir smoke for active cycle elemento pm-rav7
  • Upgrade pm-changelog to 2026.6.9 and validate changelog fidelity elemento pm-kx7v
  • Close stale GH issues, clarify dedupe-audit docs, and bump @sentry/node elemento pm-utd6
  • SDK author-ergonomics batch: extension-manifest JSON Schema, getWorkspaceContracts memoization, FlagDefinition type/value_type unification elemento pm-l0jd
  • Document pm-linked-test-adapters package in EXTENSIONS.md and TESTING.md elemento pm-yj8n

2026.6.9

Added

  • PmPackageResourceKind is missing 'assets' and 'prompts' as canonical resource types elemento pm-z9ho
  • Extension activation: no teardown/deactivation hook — extensions cannot clean up timers, connections, or state elemento pm-k1e4
  • Extension API missing self-identity accessor: extensions cannot read their own name, layer, or version at activation elemento pm-qo36
  • registerItemFields/registerItemTypes: validate declared field type against known coercion kinds with did-you-mean elemento pm-oll8

Fixed

  • Extension FlagDefinition lacks 'list' and 'default' fields — extension-registered flags cannot match core comma-list contract elemento pm-ltbr

Other

  • SDK lacks assertRegisteredCommandOverride testing helper (coverage gap in testing.ts) elemento pm-aw7d

2026.6.8

Added

  • list/search: trim default filters/projection/sorting/now trailer in compact/agent mode elemento pm-vhx6
  • MCP pm_health defaults to the compact summary projection for token-efficient agent health checks elemento pm-yjub
  • Add schema show-status status inspection elemento pm-qpus

Changed

  • Remove dead code and dedupe pm-cli version readers into resolvePmCliVersion elemento pm-wrqk

Fixed

  • CI smoke npx pack cleanup can fail with ENOTEMPTY elemento pm-i2xg
  • MCP narrow tools silently drop top-level filter keys (pm_list {type:Task} returns unfiltered) elemento pm-jozc
  • list/search --tags hard-refuses (exit 2) while create --tag auto-corrects — accept --tags as a never-block alias elemento pm-6l17
  • MCP tools/call structuredContent.result is always present but isError path lacks it — inconsistent envelope elemento pm-l40h
  • MCP server serverInfo.version is hardcoded '1.0.0' — should reflect package.json version elemento pm-2nvw
  • Fix inaccurate PR CI matrix description in CONTRIBUTING.md elemento pm-t73k
  • Fix MCP tool-count doc drift (18/21 -\> 22, add pm_copy) and lock the claude-plugin smoke to the live tools/list count elemento pm-7tvx
  • Fix: --path/PM_PATH did not discover .agents/pm under a project root (never-block dead-end) elemento pm-ryik
  • Fix: pm close/close-many hard-failed without a reason via a generic, non-actionable error (P0 never-block) elemento pm-g799
  • pm-changelog classifier mis-routes feature titles containing the word 'remove'/'delete' into the Removed section elemento pm-ybiz
  • Document pm-changelog external repo dependency and pad-match fix in RELEASING.md elemento pm-97yv
  • writeFileAtomic cross-device rename safety: handle EXDEV when tmp and target are on different mounts elemento pm-6vv6
  • Drift-cache gc scope: pm gc --scope runtime should clear history-drift-cache.json elemento pm-7n8v
  • MCP ping method not handled — returns 'Unsupported MCP method' instead of empty response elemento pm-lold

Security

Other

  • Warn in pm health when server-advertised max telemetry schema version exceeds client version elemento pm-dfhp
  • Ecosystem-wide PM living-context audit & forward-backlog rebuild (2026-06-07) elemento pm-8u2a
  • ADR: Agent self-repair via a centralized remediation registry surfaced through pm health --json and pm validate --fix-hints elemento pm-cc04
  • ADR: Test-coverage governance — 100% V8 thresholds with a curated include/exclude allowlist, a tests/unit file-count cap, and pure-logic extraction into small core modules elemento pm-7sq6
  • 2026-06-07 agent UX package ecosystem and path guardrail hardening elemento pm-yo3f
  • 2026-06-07 pm CLI ecosystem audit lanes elemento pm-xm98

2026.6.7

Added

  • pm-governance-audit: onWrite/onRead hooks exemplar (hooks capability) elemento pm-7m8p
  • pm history-compact: checkpoint-based history stream compaction elemento pm-3pbq
  • Advanced relevance tuning (post-v0.1): cross-encoder reranking + query expansion elemento pm-7tsx
  • Configurable vector store collection name (post-v0.1 adapter optimization) elemento pm-usw2
  • pm copy <id\>: clone an item to a new ID with optional title override elemento pm-m4nn
  • pm aggregate --sum/--avg: numeric aggregation over filtered items elemento pm-bvns
  • pm list --tree: recursive subtree rendering with indented hierarchy elemento pm-vbzc
  • Configurable semantic corpus character limit (search.embedding_corpus_max_characters) elemento pm-cxdg
  • Per-query hybrid weight override: pm search --semantic-weight (post-v0.1) elemento pm-cy8i

Fixed

  • Track removal of TOON upstream bracket-bug workaround when upstream fix ships elemento pm-idnz
  • Drift-scan cache can false-hit on mtime-preserving file copies elemento pm-up22
  • Search relevance evaluation harness (golden queries, nDCG) for regression detection elemento pm-22x2

Security

  • Harden afterCommand coverage and GitHub code-scanning visibility elemento pm-izid

Other

  • Agent command compatibility and package command discovery elemento pm-7etc
  • Package install fallback hints and extension collision plans elemento pm-e48i
  • Stabilize npx onboarding path for scoped pm package elemento pm-pgew
  • Publish pm-github starter package as a community reference (credential-requiring pattern) elemento pm-zw0n
  • Make list --ids repeatable for focused agent working-set refresh elemento pm-42tb
  • SDK testing helper for vector store adapter registrations elemento pm-475h
  • SDK testing helper for package manifest resource assertions elemento pm-xevy
  • SDK testing helpers for schema package registrations elemento pm-01bm
  • PR \#123 review: make governance hook sidecar logging fail-open elemento pm-mzlu
  • Config-driven optional close reason via governance.require_close_reason elemento pm-peyv
  • As a maintainer tuning relevance, I want a golden-query eval harness, so that I can catch ranking regressions before release elemento pm-fhsg
  • As a PM with large item bodies, I want to raise the semantic corpus character limit, so that search indexes my full content instead of truncating it elemento pm-tnk5

2026.6.6

Added

  • pm telemetry local-analytics subcommand (status/flush/stats/clear) elemento pm-6xdl
  • Add Claude Code rows to docs read-path and README start-here tables elemento pm-pwdx
  • As a new teammate, I want a single ONBOARDING.md, so that I become productive in two hours without accidentally triggering a release or corrupting the tracker elemento pm-10ml
  • Add AGENTS.md/README workflow-update checkbox to the PR template elemento pm-0sqs
  • Create ONBOARDING.md for new maintainers and first-time contributors elemento pm-oh5h
  • Add markdown broken-link check to the docs CI gate elemento pm-mp6c
  • Add pm stats --storage: aggregate history-stream metrics elemento pm-mnee
  • Add pm history --diff --field: filter the audit diff to one field's transitions elemento pm-g94b
  • pm history --diff: per-entry field-level before/after diffs elemento pm-puvn
  • Add operator-facing stale-lock cleanup to pm gc (locks scope) elemento pm-gbbn
  • Add MCP protocol handshake tests (initialize + tools/list + unknown-tool error) elemento pm-kl11
  • Add narrow MCP tools pm_notes, pm_learnings, pm_deps (agent self-documentation + deps) elemento pm-hywv

Changed

  • As a contributor closing items, I want documented changelog classification, so that my change appears in the correct CHANGELOG section without reading the generator source elemento pm-ijd9
  • Export PM_TOOL_PARAMETERS_SCHEMA_VERSION constant and bind all assertion sites elemento pm-r9sz
  • Generate pm_run action-list description from PM_TOOL_ACTIONS to end prose/enum drift elemento pm-fd8n

Fixed

  • File-backed schema sections (types/statuses/fields/type_workflows) leak into settings.json on writeSettings elemento pm-haak
  • MCP stdio server processes JSON-RPC lines concurrently → pipelined mutations on the same item lock-conflict elemento pm-3puw
  • PRD/contract drift: reminders_weight and events_weight missing from search.tuning docs elemento pm-75du
  • Add pm gc --scope locks: sweep expired lock debris from crashed processes elemento pm-d70h
  • MCP TOOL_SCHEMA_BASE additionalProperties:true silently swallows typo'd top-level args elemento pm-qxwu

Other

  • Telemetry schema versioning/negotiation preparation elemento pm-t4wb
  • Contract schema golden-file snapshot gate in CI elemento pm-d6kq
  • Document changelog classifier keyword routing for contributors elemento pm-5vsv
  • Clean up stale closed tracker-item references in docs/ header lines elemento pm-e376
  • Evaluate commander 15.0.0 major upgrade (current 14.0.3) elemento pm-7j8t
  • Drift-lock the .agents/plugins/marketplace.json (pm-local) manifest in the plugin contract test elemento pm-g3xl
  • History & storage observability: pm gc locks scope, pm history --diff before/after, pm stats --storage elemento pm-l709
  • MCP & contract platform maturity PR (pm-5k4v): narrow tools pm_notes/pm_learnings/pm_deps + schema-base hardening + action-list drift-gen + schema-version constant + handshake tests elemento pm-at83
  • Document the create vs mutateItem dual write-path contract elemento pm-k5r6
  • Document capture_level semantics for extension authors elemento pm-te9x
  • As a coding agent, I want narrow MCP tools for notes/learnings/deps, so that I can self-document and inspect dependencies with the same ergonomics as pm_comments elemento pm-77t3