Skip to content

fix(agent-plugin): sync into Claude without manifest warnings (0.11.1) - #328

Merged
mbeacom merged 1 commit into
mainfrom
fix/plugin-manifest-claude-sync
Oct 25, 2026
Merged

mbeacom merged 1 commit into
mainfrom
fix/plugin-manifest-claude-sync

Conversation

@mbeacom

@mbeacom mbeacom commented Oct 25, 2026

Copy link
Copy Markdown
Owner

What and why

Claude's plugin sync of this marketplace (at d94698c) reported two warnings for adrkit:

  • Plugin 'adrkit' has unrecognized key in plugin.json: '$schema' (stripped — the SDK ignores unknown top-level fields)
  • Plugin description must be at most 500 characters.

The over-long description was the marketplace entry's copy (550 characters), not plugin.json's (330). I shortened it to 434 characters. It now names both Copilot canvases, where before it named only decision-review. I also removed $schema from .claude-plugin/plugin.json. No host reads that key, and removing it also clears APM's Unrecognized plugin manifest $schema warning. Copilot uses $schema only to select an Agent Plugins 1.0 manifest, and the value here was the schemastore Claude URL, not that one.

The plugin moves to 0.11.1 on every version-bearing surface, because Claude Code keys its plugin cache on version. Merging this ships it.

Checklist

  • Commits are DCO signed off (git commit -s).
  • No recorded decision changes.
  • No schema change.
  • Neither packages/ci/src nor @adrkit/core changed.
  • Two new tests in packages/adapters/agent-plugin/test/manifest.test.ts, observed failing against the 0.11.0 manifests before the fix: no $schema in either manifest, and every description at most 500 characters.
  • bun run typecheck && bun run build && bun test && bun run lint pass (4544 pass, 2 skip, 0 fail); check:changelog, check:stale-refs, and check:doc-pins pass.

Notes for reviewers

Host validators, per docs/RELEASING.md:

  • claude plugin validate packages/adapters/agent-plugin and claude plugin validate .claude-plugin/marketplace.json both pass. The plugin-directory checks add an ICON_MISSING warning. That comes from the directory's submission checks, not the sync. I left it alone: whichever icon is added first becomes the directory listing's icon and can't be changed later.
  • apm install --target claude|copilot|opencode on APM 0.35.0 gives no $schema warning; main still prints it. The bin/ executables skipped note shows up on both, so this change didn't cause it.

I haven't re-run Claude's sync itself, because it reads main. It should clear once this merges. The measurements are recorded in docs/reference-verification-agent-plugin.md. RELEASING.md now says to expect no APM warning.

Copilot AI balanced review requested due to automatic review settings October 25, 2026 15:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The narrowly scoped metadata, regression-test, and documentation changes are consistent, with no unresolved blocking defects identified.

No open issues 🎉

What changed in this PR

This PR prepares agent-plugin 0.11.1 to address Claude plugin-sync warnings without changing runtime behavior.

Changes:

  • Removes the plugin manifest’s $schema key and shortens the marketplace description.
  • Synchronizes plugin versions and adds regression checks for manifest keys and description lengths.
  • Updates release guidance and records host-validation results, with a fresh Claude sync still pending.

Decision compliance was not independently verified because the adrkit MCP server was unavailable.

File Description
packages/​adapters/​agent-plugin/​test/​manifest.test.ts Adds manifest-key and description-length checks.
packages/​adapters/​agent-plugin/​skills/​decision-memory/​SKILL.md Bumps skill metadata to 0.11.1.
packages/​adapters/​agent-plugin/​skills/​decision-backfill/​SKILL.md Bumps skill metadata to 0.11.1.
packages/​adapters/​agent-plugin/​README.md Documents the patch and updated APM behavior.
packages/​adapters/​agent-plugin/​package.json Bumps the plugin package version.
packages/​adapters/​agent-plugin/​apm.yml Aligns the APM version.
packages/​adapters/​agent-plugin/​.claude-plugin/​plugin.json Removes $schema and bumps the version.
docs/​RELEASING.md Updates expected APM validation output.
docs/​reference-verification-agent-plugin.md Records validation evidence and remaining sync verification.
CHANGELOG.md Describes the manifest compatibility fix.
bun.lock Aligns the plugin workspace version.
AGENTS.md Documents manifest constraints and the current plugin version.
.claude-plugin/​marketplace.json Shortens the description and aligns both versions.

Review effort: Balanced

@github-actions

github-actions Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

Decisions governing this change

12 accepted decisions govern this change · 4 active proposals

Show all 12 governing decisions and why each applies
  • 0007 — Isolate integrations as optional adapters and build only against public surfaces
    • via path: packages/adapters/**
  • 0016 — Require every check to be observed failing before it counts as coverage
    • via path: packages/adapters/*/test/**
  • 0028 — Ship decision memory as a portable agent plugin, and omit the MCP wiring hosts cannot honor
    • via path: .claude-plugin/**
    • via path: packages/adapters/agent-plugin/**
  • 0030 — Keep extension surfaces that carry a dependency tree outside this repository
    • via path: packages/adapters/**
  • 0031 — Publish a narrow consumer SDK as the contract, and document the CLI JSON as its sibling
    • via path: docs/RELEASING.md
  • 0032 — Publish one lockstep OCI image after the coordinated release succeeds
    • via path: docs/RELEASING.md
  • 0034 — Extend the portable agent plugin with decision backfill
    • via path: .claude-plugin/**
    • via path: docs/reference-verification-agent-plugin.md
    • via path: packages/adapters/agent-plugin/**
  • 0036 — Expose the governing-decisions Action through one root Marketplace entry point
    • via path: docs/RELEASING.md
  • 0038 — Offer the bootstrap decision record as an offer rather than a backfill candidate
    • via path: docs/reference-verification-agent-plugin.md
    • via path: packages/adapters/agent-plugin/**
  • 0040 — Keep derived surfaces in lockstep with three mechanisms matched to three classes of drift
    • via path: AGENTS.md
  • 0045 — Ship an advisory adr-review dynamic workflow in the portable agent plugin
    • via path: docs/reference-verification-agent-plugin.md
  • 0046 — Ship a read-only decision-review canvas for the GitHub Copilot app in the portable agent plugin
    • via path: docs/reference-verification-agent-plugin.md
Active proposals touching this change (4)

These are not yet ratified and do not bind this change:

  • 0047 — Show provenance, review cost, and a read-only proposal queue in the decision-review canvas (proposed)
    • via path: docs/reference-verification-agent-plugin.md
  • 0048 — Supply read-only adrkit tools to GitHub Copilot through the plugin extension instead of MCP wiring (proposed)
    • via path: docs/reference-verification-agent-plugin.md
  • 0049 — Add advisory session hooks that never block to the portable agent plugin (proposed)
    • via path: docs/reference-verification-agent-plugin.md
  • 0050 — Ship a read-only decision-board canvas that maps the corpus from adr graph and adr queue (proposed)
    • via path: docs/reference-verification-agent-plugin.md

Links point at 2150ecc, this run's GITHUB_SHA. Run adr explain <path> locally to see why a file is governed.

@mbeacom mbeacom self-assigned this Oct 25, 2026
mbeacom added a commit that referenced this pull request Oct 25, 2026
…h advisories (#329)

The required `audit` check now fails on every pull request, including
#328, because of two advisories published after main's last green run:

- GHSA-mrhx-c7xc-m3w5 (zod < 4.6.6, high): validating oversized
  constrained collections can exhaust memory.
- GHSA-xjj6-f33q-929c (undici >= 6.23.0 < 6.29.1, high): an unhandled
  error on excessive content-encodings is a denial of service. undici
  reaches this repository through @actions/github and
  @actions/http-client (^6.23.0), which are bundled into all three
  Actions.

As in #251, this edits only those two bun.lock entries: zod 4.6.5 ->
4.6.7 (inside ^4.6.5, published 2026-10-12) and undici 6.29.0 -> 6.29.1
(inside ^6.23.0, published 2026-10-15). Both clear the 3-day
minimumReleaseAge, and both integrity hashes match the npm registry.
Re-resolving the lockfile would have moved unrelated packages.
`bun install --frozen-lockfile` accepts the edit, and `audit:gate` now
reports no advisories at any severity.

I regenerated packages/ci/dist under linux/amd64 oven/bun:1.4.2. The
diff is zod's and undici's own code. `schema:emit` leaves
schema/adr.schema.json byte-identical. typecheck, build, lint, and the
full suite (4544 pass, 2 skip) pass, and each bundle run under Node with
no event prints the same result as main's.

Signed-off-by: Mark Beacom <m@beacom.dev>
Claude's plugin sync reported two warnings for adrkit at d94698c: it
stripped the unrecognized `$schema` key from plugin.json, and it rejected
a plugin description over 500 characters. The over-long copy was the
marketplace entry's (550 characters), not plugin.json's (330).

I removed `$schema` from .claude-plugin/plugin.json, which also clears
APM's "Unrecognized plugin manifest $schema" warning, and shortened the
marketplace description to 434 characters. It now names both Copilot
canvases instead of only decision-review.

Two manifest tests keep `$schema` out of both manifests and hold every
description to 500 characters. Both fail against the 0.11.0 manifests.
The plugin moves to 0.11.1 on every version-bearing surface, because
Claude Code keys its plugin cache on the version.

Signed-off-by: Mark Beacom <m@beacom.dev>
@mbeacom
mbeacom force-pushed the fix/plugin-manifest-claude-sync branch from 80fcbae to df32c11 Compare October 25, 2026 15:47
@mbeacom
mbeacom requested a balanced review from Copilot October 25, 2026 16:24

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The narrowly scoped metadata, regression-test, and documentation changes are consistent, with no identified blocking defects.

No open issues 🎉

Review effort: Balanced

@mbeacom
mbeacom merged commit 63574c8 into main Oct 25, 2026
16 checks passed
@mbeacom
mbeacom deleted the fix/plugin-manifest-claude-sync branch October 25, 2026 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants