This is the current, deliberately selected queue, aligned with the project Obsidian backlog. #IDs are project backlog IDs, not GitHub issue numbers. It does not replace the dated history or claim every older hypothesis was rechecked. Research proposals are not build/release authorization. Sources and scope are in the research report.
PR #308 merged the reviewed
configuration, removal/store, scanner, SRI, prior-lock and import/export fixes.
They shipped in v0.49.1. Do not schedule those same
defects again or close the whole #123/#131/#149/#150 group because one slice is
fixed. The native doctor suite merged in #307; its recorded native measurements
used the published v0.49.0 archive.
| Order | ID | Scope/status | Dependency |
|---|---|---|---|
| Shipped | #156 |
Bounded archive-only receipt in v0.51.0; one-consumer gate met | Expansion retains consumer/value stop rule |
| Deferred | #157 |
Consumer gate evaluated for mcpm's own development/release workflow; adapter unbuilt | Artifact-bound contract and measured incremental value still required |
| Merged PR #333 | #140 |
Full retained Skills fixture MVP for the existing release-harness consumer | Pinned Beta; both archive matrices, independent replay/readback and maintainer acceptance |
| Merged PR #334 | #158 |
Native inline-hook activation/drift experiment | Eight observations/75 checks; independent bindings and maintainer acceptance; scoped evidence below |
| Deferred/unbuilt | #159 |
Offline ACP v1 trace spike; consumer gate evaluated | Current workflow has MCP/native evidence; no supplied ACP trace or concrete ACP-specific review question |
| Measured NO-GO | #95 |
Bounded command-hook confinement decision experiment; production integration unbuilt | Three of five useful cases compatible; all selected effects denied; detached cancellation limitation |
Effort ranges below are engineering judgments for one contributor including tests and documentation, not delivery promises. Native setup, access and review delays are excluded. Do not implement the whole queue in parallel.
Status: shipped in v0.49.2, after #312 and Astra review/fixes. Published-archive SDK and native Linux launcher checks passed. Static-recognition/binary-authentication limits remain explicit. User/problem: a plain server can be misidentified as already guarded, undermining enrollment/status evidence. MVP: define recognized wrapper, plain entry and ambiguous/invalid states; handle original launch forms without silently rewriting or double-wrapping them.
Acceptance: registry-controlled lookalikes and arbitrary node scripts never receive guarded status or skip enrollment. npm/npx/global/dev-checkout and Windows forms, old Node paths, malformed wraps, path moves and enable/disable/update round trips have explicit fixtures. Ambiguous state produces a clear refusal/repair plan; original settings/secrets survive. Test a named real client launch before claiming effective protection. Non-goals: binary authentication or general command attestation. Effort: 3–6 days, revised after the compatibility inventory. Risk: a partial predicate fix can leave false positives or break old wraps.
Status: the bounded Claude Code mcpm scope <project-root> [--json] slice shipped in v0.50.0 after #315 and Astra review/fixes. Seven actual published CLI scope cases and 87 protocol comparisons passed. Claude Code remains the default; the explicit VS Code slice below shipped separately, and broader profile/host coverage remains open. See scope documentation. User/problem: global-only evidence
can miss project configuration and precedence. MVP: explicit project root,
one host profile first, read-only project MCP entries and applicable instruction
files; identify origin, scope, shadowing and unreadable/unsupported coverage.
The bounded VS Code extension shipped in v0.52.0:
explicit --client vscode inventories four fixed VS Code/Copilot origins with
format-specific parsing and instruction metadata. Duplicate names do not become
a cross-harness winner. Candidate and published evidence retain separate archive
identities. Remaining named-profile, remote, workspace-file and other-host
coverage stays explicit in the scope contract.
The broader #141 scope remains open.
Acceptance: parent/workspace paths, symlink escapes, duplicate names, malformed
files, denied access, secret placeholders and unknown host versions cannot become
empty healthy state. Output separates configured from observed-loaded/enforced;
no commands, hooks, credential helpers or servers run. Start with Claude Code;
add another dialect only with fixtures and distinct semantics. Dependencies:
#155 for guarded labels; #131/#149 coverage reporting. Non-goals: project
writes, recursive whole-home discovery or native policy reimplementation.
Effort: 2–4 days. Risk: scope precedence varies by host/version.
Status: bounded Claude Code MVP shipped in v0.50.1, after #324/#325 and Astra review/fixes. Actual published archive passed 22 native policy cases, three initialization cases and 87 protocol checks. Whole-host coverage and legacy-wrapper migration limits remain explicit in the projection record. User/problem: changing the command to a wrapper can change a client's allow/deny decision. MVP: read one supported, versioned policy source set and compare current/proposed launches before writes. Report exact reason and uncertainty; preserve native restrictions.
Acceptance: allow, deny, empty/unset rules, expanded variables, managed
exceptions, unreadable policy and wrapper argv have fixtures; pinned native tests
prove denied commands remain undispatched and allowed flows remain usable.
Unsupported policy planes are unknown and never silently permitted. Dependencies:
#155 and target-version semantics. Non-goals: editing managed controls,
weakening restrictions or a cross-vendor enterprise engine. Effort: 3–6 days
plus access/native-test delays. Risk: policy definitions are client-specific;
reproduce the current matching behavior before selecting the fix.
Native command matching,
versioned VS Code policy scope.
Status: bounded archive-only command shipped in v0.51.0, through Sol implementation and Astra independent review/fixes. The actual npm archive passed authentication, clean-install smoke, 87 protocol checks and both real consumer comparisons with exact runtime/input/member bindings. Both consumer reports correctly returned incomplete coverage; the maintainer retained reviewed Ponytail 5.3.3 source using the receipt plus manual review. No global update, native activation or safety approval occurred. Further expansion retains the consumer/value stop rule. See the profile and candidate history.
User/problem: a developer reviewing an update needs to understand changed instructions and executable components across scope/cache layers. MVP: compare two explicitly supplied local snapshots of Agent Skills and one Claude plugin dialect. The implemented input is two explicit uncompressed USTAR00 archives; directory inputs are refused before child reads, and archive member paths never reach the filesystem. Reuse existing inspection primitives and native validators where useful; identify source, exact changed files, declared components, referenced scripts and interpretation limits.
Acceptance: root containment, symlinks, missing resources, alternate/inline
components, duplicate names, unknown versions and incomplete manifests have
fixtures. Bind findings and hashes to the same bytes read; changes during the
scan produce an incomplete result, not a clean snapshot. Distinguish
configured/cached/loaded/unknown; do not guess runtime
activation or fully infer commands from prose. No network, install, scripts,
permission grants, credential-store reads or automatic native-validator execution.
Reports omit credential values; withheld sensitive inputs remain coverage gaps,
and hashing is not described as secret redaction. The one-consumer acceptance
gate is met for the bounded experiment: the receipt bound actual source-snapshot
bytes/modes to declarations, references and coverage gaps before the maintainer's
concrete retain/rollback decision. Both real reports exited 1 with incomplete
coverage; manual semantic review remained necessary. This does not demonstrate
general demand, time savings, superiority over native/Git/APM workflows, safety
or activation. Further expansion retains the consumer/value stop rule.
Dependencies: #141; a review workflow/consumer. Non-goals: marketplace,
generic scanner, installer, universal safety score or host enforcement.
Effort: original estimate 2–4 days for the experiment. Risk: native tools
already cover much of this; repeat use and wider value remain unproven.
Format,
native plugin lifecycle.
Status: deferred/unbuilt after the 2026-11-07 consumer-gate evaluation against mcpm's own development/release workflow. The maintainer is a concrete consumer of existing CodeQL/Scorecard, SBOM/provenance and release evidence. An actual Scorecard SARIF was inspected; ingestion has no demonstrated incremental labeled findings/false-positive review-cost benefit yet, and its source binding, coverage, redaction and retention contract is incomplete. No runtime code or release follows this decision. E6/E10a are existing roadmap proposals, not shipped reports. User/problem: users combining tools need findings tied to the exact analyzed artifact and analysis coverage. MVP: accept one already-produced local report from one pinned scanner; preserve original tool/version, digest, severity, mode and gaps.
Acceptance: wrong/stale digest, unknown format/version, malformed/truncated results, skipped resources, unavailable analyzers and provider-dependent phases cannot become clean. Retain original evidence locally and reject unsupported contracts. Measure incremental findings and false-positive review cost on a labeled fixture set. Dependencies: a concrete multi-tool use case, schema, redaction and retention policy. Non-goals: auto-running scanners, silent uploads/LLM calls, native trust-floor credit, a generic adapter framework or an aggregate safety score. Effort: 2–4 days for one adapter. Risk: unstable vendor contracts and hidden egress. Snyk contract caution, SkillSpector scope.
Status: existing, partially shipped: metadata inspection is in v0.48.1.
The bounded fixture MVP merged in PR #333 (58d6727) after all nine CI checks; no npm release was needed.
The retained-fixture MVP extends the actual
release-harness consumer beyond its original single-file consistency assertions.
It checks retained origin/URI identity, every declared resource's raw bytes,
held/refreshed state and explicit incomplete coverage against pinned Beta
fixtures. Both actual SDK/direct/guarded archive matrices passed 139 comparisons;
independent replay/readback and maintainer acceptance cover the expected nonclean
outcomes as well as complete declared-set cases. This is the fixture-scoped MVP;
no new public CLI or
production guard manifest-enforcement claim is required or implemented.
Manifest/byte/identity and loading boundaries remain separate. MVP: only with
a concrete consumer, validate retained static manifests and raw-byte digest/size
relationships in pinned beta fixtures, keyed by origin plus URI.
Acceptance: missing/rotated/added files, dynamic or incomplete manifests, cross-origin identity confusion and digest changes cannot inherit a clean result; unknowns remain explicit. Re-run both protocol eras. Non-goals: trusting a server hash as publisher identity, fetching unbounded archives, approval grants or claiming host-side loading enforcement. Effort: 3–5 days after the fixture contract. Risk: Beta revisions/host support change. Authoritative repository.
Validated bounded MVP: the Claude inline-hook experiment passed eight source-bound native observations (three clean processes, zero API requests/turns/cost) and 75 native self-checks. Independent final raw/image/source/config bindings passed and the maintainer accepted the scoped evidence. Implementation and limits below retain the measured fixture scope.
Status: the bounded fixture MVP merged in PR #334 (117966d) after all nine
CI checks, without an npm release or companion repin. The original conditional
follow-up to #156 is distinct from MCP doctor tests.
User/problem: installed/cached plugin bytes can differ from running-session
state. MVP: one pinned host, synthetic plugin/skill, disposable profile and
deterministic component marker; observe update/reload/disable/restart identity.
Acceptance: receipts name exact loaded versions and scoped components; no
host credentials/profiles/shared folders. Unobserved text-skill activation remains
unknown if proving it requires model access. One component's marker cannot certify
all bundled artifacts. Dependencies: demonstrated #156 need, host access;
separate explicit provider spend if required. Non-goals: live profile changes,
universal host claims or default-consent bypass. Effort: 3–6 days plus setup.
Risk: lifecycle differs by component/version. Loading reference.
Status: the current-workflow consumer gate was evaluated; the offline ACP spike remains deferred and unbuilt. A real permission/cancellation review consumer exists, but its inspected streams are MCP and Claude native/SDK. Reopen for a concrete ACP trace review, including a one-off need, with the supplied trace and retention scope below. User/problem: a concrete ACP consumer may need to explain permission and cancellation handling across captured traces. MVP: one supplied, value-redacted ACP v1 trace and fixture set; check correlation, denied/cancelled outcomes and missing evidence without connecting to an agent.
Acceptance: malformed/unknown revisions, missing replies and partial traces remain incomplete; client/agent asserted identities are not security credentials. Stop if no consumer needs this beyond existing logs. Dependencies: explicit trace scope and retention limits. Non-goals: v2 Draft implementation, live proxy, agent sandbox, A2A bridge or delegation broker. Effort: 1–3 days for a spike. Risk: semantic drift and privacy in traces. ACP v1 security.
Existing conditional experiment, not a new benchmark or production runtime. Status: the bounded experiment measured mcpm's own development/release command fixtures on macOS 27.3 with a separate strict policy. All five unconfined cases worked; strict syntax/test/pack worked, while both CLI inspect cases failed during user-info startup. All selected sensitive effects were denied with positive controls, but the detached grandchild continued work after group cancellation before its separate bounded self-exit. Independent raw/input replay supports NO-GO for integrating this candidate. The experiment is complete; a production strict-hook backend remains unbuilt. Original scope and stop rule remain: Select a small authorized command-hook cohort, compare useful benign work against sensitive-read, egress, out-of-root-write, child escape and cancellation fixtures in a disposable environment. Separate command hooks from HTTP/MCP/prompt/agent handlers. Record real breakage and deny behavior before deciding to build or integrate a backend; stop if useful policy must be broadened until it is ineffective. Effort: 3–5 days for measurement; productionization unestimated. No live secrets or universal containment claim. Hook kinds and lifecycle.
#131/#149: the bounded CLI-onlyaudit --report-jsonslice shipped in v0.53.0, with fixed mcpm-store inventory, latest metadata, explicit check states and separate empty/incomplete outcomes; see contract. Legacy audit JSON/SARIF/MCP remain unchanged. This does not close broad audit, native/client discovery, installed-byte or project-ownership coverage.#150: project ownership remains; #308 fixes only named slices. Import/export warnings are not a machine-readable completeness contract or transactional writes.#112/#124/#125/#126/#127: prior policy/concurrency, EPIPE/EOF, pin-property and confinement hypotheses remain open; reproduce each before assigning scope.#142: watch protocol/extension stages and pin revisions; current Skills is Beta. Conflicting Server Card sources remain unresolved, not Stable.- E7: remote OAuth metadata diagnostics only after a real support case, with opt-in destination, DNS/redirect/size/time boundaries and no credentials/login.
- Usage-skill behavioral eval: use existing native eval facilities for one concrete task; authorize any provider spend separately. No new eval platform or claims of accuracy/token savings from deterministic transport tests.
- A2A, browser/delegation enforcement, HTTP guard, new installer/marketplace, hosted control plane, rebranding and paid decision-provider integration remain deferred. Existing vendor capabilities and user demand must be checked before promoting any of them.