Fixed
- Exact-tag npm recovery must stabilize public package access before verification Eintrag pm-t310hx
- GH-830: duplicate-safe creation must require explicit bypass before persistence Eintrag pm-35w9l2
- GH-828: init status registries must expose one coherent alias contract Eintrag pm-62n4kk
- GH-826: extension commands need structured failure results and preserved remediation Eintrag pm-ye9v2t
- GH-825: restore SDK excess-property safety for extension definition metadata Eintrag pm-unwsns
- GH-824: core-field recovery must name dedicated flags instead of extension activation Eintrag pm-2jtbl8
- CodeFactor fixed-only success payload blocks exact-head release gate Eintrag pm-xcrlkl
- Both declared context intents are unreachable because the intent applier assigns field-group names into the section value domain, and the two validators give contradictory advice Eintrag pm-ai45y9
- The runtime contract enumeration is not closed over the surface it can resolve: 14 rendered commands, including the list-open that AGENTS.md mandates, are contract-backed by name yet absent from every enumeration Eintrag pm-6j7r1a
- GH-817: machine-readable flag contracts need semantic invocation metadata and stdin capability Eintrag pm-11phn1
Added
- Omission receipts: every bounded read shape names the field groups it withheld and the flag that restores each, with the same rigor row truncation already has Eintrag pm-p258tx
Fixed
- Workspace snapshot heartbeat races atomic root activation and loses its writer lock Eintrag pm-ifuysd
- GH-815: optional missing merge drivers must be advisory in default health verdicts Eintrag pm-r8u2g6
- Sentry gate misclassifies handled snapshot identifier validation as a blocking runtime error Eintrag pm-k785lu
- Scale fixtures vary only in size: the sole synthetic workspace generator hardcodes population shape, so the million-item tier is eleven simulated days deep with one history entry per item Eintrag pm-vv2lti
- Whole-workspace snapshot restore silently rewinds the immutable record: history streams are deleted and nothing records that a rewind happened Eintrag pm-6l2mza
- GH-808: lifecycle completion resolver types and provenance lie when no timestamp exists Eintrag pm-qhnq6t
- pm activity --compact --json emits an empty activity:\[\] decoy key alongside compact_activity Eintrag pm-p3x4
- Mode-paired envelopes zero-fill the inactive collection instead of omitting it, so parsing the obvious key returns an empty array that is indistinguishable from a real empty result Eintrag pm-cyrfjq
- GH-802: persist structured numeric measurements with test runs Eintrag pm-ygerpy
- GH-806: publish and reuse the eval query-set contract across help, errors, SDK, and machine discovery Eintrag pm-wd61s2
- The rendered command surface is not a subset of the contracted surface: pm workspace ships in help, runs, and exits 2 on its own contract lookup, and no gate compares the two sets Eintrag pm-1jrdri
- GH-797: rank read/show/view recovery by executable intent and bounded contracts guidance Eintrag pm-bex0ui
- GH-803: hoist repeated linked-test execution context and honor lean output Eintrag pm-fqdmbf
- GH-807: make the default eval query set version-controllable in every initialized workspace Eintrag pm-jdh1jg
Other
- The product advertises CI gates in its own help that no pipeline runs: pm eval names --fail-under a CI gate and nothing consumes it Eintrag pm-b2hc4x
- Gate registry: every enforced CI and release gate has an owner item, a declared failure taxonomy, a bypass policy, and a negative-control fixture proving it fails on known-bad input Eintrag pm-k6t4yb
Added
- GH-787: workspace snapshot and restore primitives for cheap reproducible evaluation episodes Eintrag pm-dkrmzv
- Reproducible workspace instances: seeded identifiers, injectable clock, and byte-identical construction from a declared recipe Eintrag pm-rbcvt2
Fixed
- GH-676: list tag filter must accept the CSV shape used by tag mutations Eintrag pm-b1zsk9
- GH-675: lifecycle must record actual completion time separately from tracker close time Eintrag pm-bwnclq
- GH-711: update must support intentional unresolved parent references under strict governance Eintrag pm-cragzs
- GH-715: expose mutation-guard policies through canonical config help and output Eintrag pm-5ecnar
- GH-672: pm context low_level rows omit blocked state and blocker IDs Eintrag pm-r2suqb
- GH-651: pm activity bare relative windows silently return empty results Eintrag pm-b0twiy
- GH-784: SDK blueprint preflight misses host-owned flag collisions and malformed long-flag tokens Eintrag pm-huolbk
- GH-785: align pm health ok with warn-only exit semantics on fresh clones Eintrag pm-83ov2i
- GH-792: fresh-clone health must not require ignored runtime and empty extension directories Eintrag pm-0k4o8t
- GH-793: remove or disambiguate list --all so filtered output cannot claim workspace completeness Eintrag pm-q7qojt
- GH-794: make copied identity output_format overrides decline instead of exposing the host envelope Eintrag pm-wi301j
- Nightly static quality fails closed in shallow workflow checkouts because CodeFactor parity cannot resolve a committed base Eintrag pm-1hbw4y
- GH-790/GH-791: pm merge install reports workspace_root in a different canonical form depending on which channel resolved it, so the same repository has two non-equal spellings on macOS and Windows Eintrag pm-ihmfs6
- The dependency token budget is enforced against a different representation than the one emitted, so a command that reports staying inside 16k tokens delivers about 45k Eintrag pm-t2t709
- pm activity has no default bound: a bare invocation returns all 40,446 history entries at 1.59M tokens, 397x the ceiling its own contract declares Eintrag pm-z2j1qt
- Sentry PM-CLI-2N: malformed missing tags crash normalizeItemMetadata before search can report the item Eintrag pm-89neyq
- pm-governance-audit comments-audit limit contract contradicts runtime alias semantics Eintrag pm-v657
- pm-governance-audit dedupe-audit rejects --status all, breaking explicit all-lifecycle duplicate sweeps Eintrag pm-mp49
- GH-781: managed built-in extensions redeclare public SDK contracts locally, and the mirrors already disagree with the authoritative declarations in shipped packages Eintrag pm-vnk7ob
Security
- GH-799: confine custom item-type storage folders to the tracker root Eintrag pm-d30cmk
- PR \#795 exact-head review hardening: dependency budget progress, rendered fixed points, nightly credential isolation, and drift-cache diagnostics Eintrag pm-jd3m6p
Other
- Refresh compatible 2026-07-29 development dependencies Eintrag pm-77bmeu
- Token-budget gate corpus is unrepresentative in both scale and coverage: budgets are set on a seeded micro-workspace and the largest agent-facing payloads are not measured at all Eintrag pm-z71aoy
- GH-782: guide-shell special-cases one multi-word command name and duplicates its status derivation, and calendar's throw-only validation call is unexplained, inside package-managed built-ins consumers cannot patch Eintrag pm-cb8qq2
Added
- MCP tool profiles: core/standard/full/custom tiers with an allowlist override, so 31 tools are the maximum surface, not the default Eintrag pm-9k90
- MCP resources and prompts surface: expose workspace context as addressable resources and canonical workflows as prompts, not only as tools Eintrag pm-yf07b7
- Project live workspace schema and extension commands into MCP discovery and mutations Eintrag pm-m4ikkz
- Public SDK contracts and static runtimes let extension authors reuse the CLI baseline Eintrag pm-w7mqzt
Changed
- Dedupe flag-contracts.ts repetitive per-command blocks (9 internal clones, ~150 lines) Eintrag pm-ueuq
Fixed
- GH-770: pending merge receipts remain invisible to validation and CI before reconciliation Eintrag pm-ysqb6n
- GH-775: make fresh-clone health distinguish material tracker loss from absent empty type folders Eintrag pm-xyuhh7
- GH-779: invalidate history drift cache after item and repair mutations Eintrag pm-ajaskl
- The merge fence covers item documents but not tracked non-item JSON, so .managed-extensions.json line-conflicts between agents on different branches Eintrag pm-gjicmx
- GH-773: install portable merge drivers without permanent checkout-path drift Eintrag pm-w91mvg
- GH-776: preserve output override compatibility and export the public decision contract Eintrag pm-u2tqn6
- GH-778: make lean structured reads omit caller echoes and inactive pagination metadata Eintrag pm-oi4zs3
- GH-772: rejected extension command registration leaves silent partial activation and zero-exit command gaps Eintrag pm-4vwcvq
- The surface-discovery contract costs 31k tokens in its brief form and still omits every flag, so the cheapest way to learn pm is the most expensive call it offers Eintrag pm-gmdzaa
- Linked-test schema sandbox breaks package prepare hooks that install the PM merge driver Eintrag pm-uawujr
- The list family exposes three incompatible --json projections under one flag, so an agent filtering on an unprojected field silently reads absent instead of unset Eintrag pm-pjnu91
- GH-768: deduplicate public SDK provenance exports across core and root entrypoints Eintrag pm-44aa4x
- GH-766: Windows nightly extension timeout and merge-safety cleanup EBUSY Eintrag pm-25b7tg
- Merge-fence scope ambiguity: extension-contributed item folders make default validation disagree with the no-extensions CI baseline Eintrag pm-mkzw1x
- GH-764: one host-global flag collision quarantines an entire extension and suggests reinstalling the installed package Eintrag pm-gnowgi
- Recovery bundle mines flag names from usage-error prose: scope errors like '--rebuild and --clear apply only to graph index' yield missing:--clear + suggested_retry appending the other invalid flag Eintrag pm-ikv6m0
- GH-755: dependency edges are written with a null author, so the relationship graph is the only recorded collection with no provenance Eintrag pm-0a24f5
- GH-752: list results claim completeness while unreadable items are omitted Eintrag pm-57ir3b
- GH-763: merge-decision receipt persists shell-quoted item_path that cannot resolve Eintrag pm-9nfpwd
- GH-747: the bundled TOON encoder emits documents its own decoder rejects, so a valid item becomes permanently unreadable Eintrag pm-avv3wx
- Identity provenance is a fixed three-dimension schema, so the reasoning level sitting in the environment right now and any session role are structurally unrepresentable Eintrag pm-itsjf0
- Model capture is inert in practice: zero of 35,103 recorded entries carry a model, because the declared signal for the primary harness is an environment variable that harness does not set Eintrag pm-0zcwz6
- The public harness detectors default env to an empty object, so detectAgentIdentity() and detectHarnessIdentity() silently return empty for every SDK caller Eintrag pm-pwq0g5
- GH-746: the release publish step guards on a package scope that does not exist, so publish idempotence and access recovery are permanently dead code Eintrag pm-2z9263
Other
- Evaluate Sentry 10.68.0 compatibility and retain 10.67.0 Eintrag pm-r31390
- Derive ALL MCP tool inputSchemas from \*\_FLAG_CONTRACTS — eliminate hand-declared parallel schema tables (extend the pm_copy pattern) Eintrag pm-xwah
- Generate shell completions, MCP tool registrations, and command reference docs from the contracts table (single source of truth) Eintrag pm-mu8m
- Ecosystem review and deep-graph enrichment pass 2026-07-27: all-status census, CLI simplification + token-efficiency + long-term brainstorm, dedupe-checked gap filing Eintrag pm-89qv6b
- Evaluate @toon-format/toon 4 compatibility and item-format migration Eintrag pm-5cgm2z
- ADR amendment: extensible durable agent provenance dimensions and privacy boundaries Eintrag pm-oskdmu
- SDK completeness is asserted by a 10-case curated array against 85 declared actions: the boundary proves the CLI reaches nothing below the SDK, nothing proves the SDK can do what the CLI does Eintrag pm-te6elw
Fixed
- GH-754: the merge driver's field-level conflict report is transient stdout, so the value it discarded leaves no durable record anywhere Eintrag pm-rh98vo
- Merge fence fails open: an unresolvable pm driver leaves unmarked UU files whose naive resolution silently discards the other branch's fields and history Eintrag pm-c0wthb
- Merged-main Windows init package acceptance exceeds generic Vitest timeout Eintrag pm-0vkmqs
- GH-739: expose duplicate-cluster discovery as a first-class CLI and SDK workflow Eintrag pm-n13lzc
- PmClient activation queue serializes unrelated workspaces and extension-free actions Eintrag pm-zpoyg9
- GH-741: replace reference-identity service override claiming with an explicit observable contract Eintrag pm-h3ipax
- GH-740: make the documented aggregate SDK barrel complete and continuously derived Eintrag pm-obbh43
- GH-738: publish the machine-readable public SDK surface snapshot with the package Eintrag pm-lnswp0
- Terminal release transitions retain stale claim_principal ownership Eintrag pm-bnrndo
- SDK: inject host-bound runtime into ImportExportContext Eintrag pm-i7indd
- Detected agent identity is not agent-unique, so claim mutual exclusion silently degenerates across a same-harness fleet Eintrag pm-z8qd4k
- GH-714: linked-test verbose child stdout still aborts with EAGAIN after bounded-drain fix Eintrag pm-5sm91o
- CodeFactor 2026-07-26 SDK and digital-twin regression cluster (GH-722 through GH-732) Eintrag pm-eq3ak8
- GH-733: Windows Node 24 nightly portability regressions in author, recovery, and drift tests Eintrag pm-wr8utz
- Sentry PM-CLI-2M: classify workspace audit-state drift as an actionable conflict Eintrag pm-o71t68
- GH-728: preserve live harness authorship across initialized multi-agent workspaces Eintrag pm-si2uur
- GH-720: diagnose unbuilt GitHub extension sources and recommend resolvable npm artifacts Eintrag pm-0sx3kz
- GH-719: reject or diagnose extension command flags shadowed by pm globals Eintrag pm-ill9gv
Security
- Scorecard Security-Policy (4→10): enrich SECURITY.md to full scoring depth Eintrag pm-2d7k
- Scorecard Fuzzing (0→10): add a fuzzing/property-based harness for the parser and codec surfaces Eintrag pm-0yi7
Other
- The merge-safety gate verifies one history stream of 2,058 and never checks drift, so a clean merge that provably corrupts stream anchoring passes CI green Eintrag pm-pdr8t1
- Branch merge is an unrecorded mutation: the field-aware merge produces an item state that no history entry ever produced, so the merged state is unaddressable by restore and point-in-time reads Eintrag pm-9j2r3b
- Continuous multi-branch merge conformance: randomized N-branch divergence and merge property suite with a zero-conflict acceptance bar Eintrag pm-76dnfg
- 2026-07-26 ecosystem review: all-status walk, graph depth enrichment, agent-ergonomics and release-pipeline verification Eintrag pm-v4iypw
- Historical release attribution backfill: stamp every terminal item with the release tag that contains its close event Eintrag pm-3j6it6
- Terminal relationship backfill, evidence-derived tranche: make every closed and canceled item reachable by typed graph traversal Eintrag pm-qudvto
- 2026-07-26 agent-context readiness audit: full CLI, SDK, and ecosystem review and optimization plan Eintrag pm-t9e3bc
- Ecosystem review and deep-graph enrichment pass 2026-07-26: all-status inspection, CLI simplification + context-algorithm brainstorm, gap filing Eintrag pm-e9yevx
Added
- Immutable-tree DeepScan and CodeFactor zero-new-issues release gate Eintrag pm-39cqqx
- Model-aware agent identity: detection resolves harness, model, and session so an agent never types an identity flag and history still records which model acted Eintrag pm-03pq3o
Changed
- Dependabot update queue 2026-07-21: PRs \#618-\#621 Eintrag pm-pegcmx
- Harness signal registry: identity detection becomes declared data that a config entry or a package can extend without a code change Eintrag pm-brxdct
- Public SDK surface snapshot and breaking-change gate: the exported API is a reviewed artifact, and an unintended removal or signature change cannot merge Eintrag pm-e6tm5c
Fixed
- GH-716: detect npm and Slack credential shapes in mutation secret guard Eintrag pm-fhhhlk
- pm package init doubles the pm- prefix and mints an unusable pm pm ... command path when given the package name every real pm package actually uses Eintrag pm-c5f0gh
- pm extension --init and pm package init are divergent scaffold generators behind the same grammar; the extension path emits no tests and an unpublishable manifest Eintrag pm-9smp7j
- Built-in help examples teach an explicit --author on dozens of commands, training every agent to suppress its own detected identity and pay tokens for it Eintrag pm-sx52hr
- Shipped MCP manifests and MCP tool guidance hardwire a static author, overriding the automatic identity of every plugin-hosted agent Eintrag pm-zqsrt5
- A configured author_default suppresses harness detection entirely, so any workspace that sets a default author records no harness and no model provenance Eintrag pm-6uxhe0
- GH-677: pm-path relocation must diagnose extension discovery changes Eintrag pm-qswf81
- GH-691: parseItemDocument errors need stable structured SDK classification Eintrag pm-r9pudt
- First-party service collision: builtin-calendar and builtin-guide-shell both override the global output_format service Eintrag pm-ixoa
- GH-680: completed Plan close must transition plan_mode terminally Eintrag pm-g512pv
- GH-692: plan update-step must persist file, test, and doc evidence fields Eintrag pm-z5vamp
- GH-678: linked-test sandbox must preserve freshly installed project extensions across child processes Eintrag pm-jvken3
- GH-709: batch duplicate-cluster sweep with canonical precomputed similarity signals Eintrag pm-2i12ti
- pm config set on one leaf key rewrites settings.json with every default materialized and silently replaces explicit stored values (validation.parent_reference warn -\> strict_error) Eintrag pm-x2aplf
- GH-690: plan resume and approve must apply or reject scope changes Eintrag pm-bxdlfa
- GH-688: seeded Plan creation must be atomic across ownership boundaries Eintrag pm-96tter
- GH-679: linked-test output capture must not abort verbose child tools with EAGAIN Eintrag pm-j36ypd
- Author-resolution bypass class: create/copy and the context, next, and usage-feedback paths re-implement author precedence without harness detection, stamping author 'unknown' on new items Eintrag pm-42p9nk
- GH-706: accept bare conventional forms for create/update boolean metadata flags Eintrag pm-ulb3rc
- GH-700/GH-701/GH-702: nightly Node 22 and cross-platform regression bundle Eintrag pm-3x8w4m
- GH-704: make extension activation failures actionable at command and lifecycle boundaries Eintrag pm-3ljt19
- GH-705: make duplicate governance discoverable and advisory by default Eintrag pm-de3foa
- GH-703: populate portable workspace coordinates in extension CommandHandlerContext Eintrag pm-fc9gm4
Removed
- GH-708: make retained delete tombstones discoverable and policy-controlled Eintrag pm-wdrkfr
Security
- Add TruffleHog OSS verified-secret scanning to the security workflow and complete free GitHub secret-scanning toggles Eintrag pm-4ris
- Refresh 2026-07-15 npm dependency updates with compatibility and release-gate proof Eintrag pm-tll8
Other
- CLI transport overhead budget: gate the per-invocation bootstrap floor and the CLI-vs-SDK delta, not just absolute scale numbers Eintrag pm-yse5dt
- CI/CD + test-suite performance: in-process CLI runner and dedupe redundant matrix legs Eintrag pm-7rlp
- ADR: agent identity model — stable author namespace plus structured harness, model, and session provenance Eintrag pm-qwuber
- Public SDK surface shape: 881 exports behind one flat entrypoint with no capability tiering and a 250ms eager import cost Eintrag pm-38bskj
Added
- Harness-aware author identity: pm resolves the acting agent from its runtime harness so PM_AUTHOR is never required Eintrag pm-z9x1r2
- Mutation event stream primitive: pm events --follow (NDJSON with durable cursor) + SDK subscription API for cross-process agent coordination Eintrag pm-e200
- Create-time near-duplicate advisory: pm create/copy surface similar existing items before new work is filed Eintrag pm-4ri6
Fixed
- GH-686: validate extension flag descriptors and support repeatable as a list alias Eintrag pm-s1w0sf
- GH-683: standard get projection must expose tests_count when tests are omitted Eintrag pm-1exil1
- GH-685: extension CommandContext needs portable source and tracker workspace coordinates Eintrag pm-j4ac9a
- GH-682: linked-test tracker sandbox must preserve source VCS workspace identity Eintrag pm-954h0o
- 10k scale gate regression: CLI create latency and create/claim peak RSS exceed fixed budgets Eintrag pm-hcrmye
- PR \#673 review hardening: literal Git paths, canonical workspace identity, bounded diagnostics, and recoverable init Eintrag pm-d7crwk
- GH-666/GH-667: nightly Node 22 stderr and Windows permission-contract regressions Eintrag pm-lvd647
- GH-665: schema migrations need derived idempotency keys and structured recovery Eintrag pm-s79kel
- GH-663: fresh init must install and surface the semantic merge fence Eintrag pm-1w3ljt
- GH-514: pm init writes no .gitignore rules — runtime/search caches churn as tracked files in downstream repos Eintrag pm-hous
- Stale-lock takeover race in acquireLock: two waiters can both remove the stale lock and both believe they own the item Eintrag pm-zwib
- Create/copy ID allocation TOCTOU: duplicate generated id silently overwrites the other item's file; idExists misses extension type folders Eintrag pm-khdq
- GH-664: published daily release fails Bun node:sqlite verification before GitHub Release Eintrag pm-cedo0g
Security
- Adopt TruffleHog 3.96.0 security action update Eintrag pm-ion0bp
- Semgrep 874840488: High spawn shell true in scripts/release/utils.mjs\#L38 Eintrag pm-a7m7
- Semgrep 874962820: High spawn shell true in plugins/pm-codex/scripts/pm-mcp-server.mjs\#L86 Eintrag pm-1uul
- Semgrep 874962821: High spawn shell true in plugins/pm-claude/scripts/pm-mcp-server.mjs\#L82 Eintrag pm-f7ik
- Dependabot alert: brace-expansion unbounded expansion denial of service (GHSA-mh99-v99m-4gvg) Eintrag pm-5q81jq
- Dependabot alert \#43: PostCSS previous source-map path traversal (GHSA-r28c-9q8g-f849) Eintrag pm-a24aqt
- Release pipeline permits duplicate same-day production versions Eintrag pm-4s24d2
Other
- PR \#684 post-merge deferred checks and review follow-up Eintrag pm-e3g0h6
- Execute and expose the unknown-author acknowledgment flow: dispose the five stranded events and give the shipped SDK primitive a CLI and MCP surface Eintrag pm-zqpnte
- Holistic pm CLI, SDK, and ecosystem optimization roadmap Eintrag pm-xe0c38
Added
- Stale in-progress detection: validate/health flag in_progress items with no active claim or recent activity Eintrag pm-w8q4
Fixed
- Full coverage gate flakes when real all-package install exceeds generic 30-second unit timeout under load Eintrag pm-7x0wqg
- Sentry PM-CLI-2K: schema migration input error crosses CLI boundary as high TypeError Eintrag pm-rxqcp9
- Author attribution enforcement: opt-in strict unknown-author rejection, SDK test-all author parity, and audited disposition for stranded actionable events Eintrag pm-h90s
Security
- Write-time secret detection advisory: mutation paths flag credential-shaped content before it enters the immutable history stream Eintrag pm-pim7
Added
- pm validate needs a counts-only projection so agents can read drift numbers without row-array payloads Eintrag pm-a9mc
- GH-445: suppress/factor repeated inherited tags in pm context rows (--no-tags + tag folding) Eintrag pm-ishm
- NDJSON output mode: --format ndjson on list/search/context emits one JSON object per line for grep/jq/xargs pipelines Eintrag pm-646c
- Workspace-scoped audit history stream: schema/config/profile/init mutations recorded as append-only hash-chained JSONL Eintrag pm-klo8
- Schema evolution migrations: lossless, history-recorded bulk migration of existing items when custom types, fields, or statuses are renamed or retired Eintrag pm-dijg
- Beyond-PM SDK exemplar phase 2: temporal digital-twin graph with entity relationships, event replay, point-in-time state, and invariants Eintrag pm-kr3t
- Bounded SQLite metadata list reads and compact get child continuations Eintrag pm-px153l
- Workspace memory tiers: derived rollup summaries of closed-item epochs keep decades-old work queryable in bounded tokens Eintrag pm-5qmm
Fixed
- pm deps tree must remain bounded on cyclic deep relationship graphs Eintrag pm-gygna8
- GH-449: contracts policy_modes advertises 'enforce' but governance config accepts 'strict' (contract drift) Eintrag pm-kjbh
- Scoped renderer ownership: safe package renderers should not keep isolated package doctor in warning state Eintrag pm-nf7q
- Extension flag value-arity decided by three divergent predicates in cli/extension-command-help.ts - help, parse, and summary surfaces can disagree Eintrag pm-853a
- Post-install activation verification can load stale overwritten extension modules Eintrag pm-4v4c
- Relationship timestamp snapshots must honor event time for late and offline arrivals Eintrag pm-j3swnb
Security
- Extension install: untrusted manifest dependency specs reach npm install unvalidated (arg injection all-OS; shell command injection on Windows) Eintrag pm-g072
- CodeQL alert 30: polynomial ReDoS in shared path normalization primitive Eintrag pm-v3zd3o
Other
- SDK reference documentation for promoted primitives + migration notes for the CLI-on-SDK layering Eintrag pm-ds3b
- SDK authoring DX polish: manifest-drift guard in scaffold tests, expectation key naming, repeated --capability, define\* index signatures Eintrag pm-llrp
- Extension install should scaffold newly required item-type folders (pm health ok:false after installing pm-kanban until pm init) Eintrag pm-l98s
- As a platform developer, I can build a non-PM domain system (e.g. a git-like VCS or a company's business workflows) using only pm SDK primitives Eintrag pm-8ngt
- Cursor fingerprints: replace per-command presentation-flag deny-lists with contract-declared semantic classification in sdk/pagination Eintrag pm-fgih