Skip to content

Add Agent Plugins Conformance — Core - #1

Merged
jonathanhefner merged 9 commits into
mainfrom
agent/initial-conformance-suite
Sep 18, 2026
Merged

jonathanhefner merged 9 commits into
mainfrom
agent/initial-conformance-suite

Conversation

@jonathanhefner

@jonathanhefner jonathanhefner commented Sep 15, 2026 •

Copy link
Copy Markdown
Member

Add Agent Plugins Conformance — Core, an installable plugin at plugins/agent-plugins-conformance-core, for selected Agent Plugins 1.0.0 client checks.

The user asks the agent to run the conformance-guide skill and save a JSON report to an absolute path. The guide collects skill markers and MCP launch observations, and its reporting script evaluates the evidence and writes the report directly to that destination.

Behavior

  • Cases cover skill discovery, MCP tool availability, working directories, argument preservation, configured environment values, and selected placeholder expansion rules.
  • Each run initializes its report, creating parent directories as needed. Sequential recording updates preserve the latest complete observation for each component and replace the file atomically.
  • Results include hierarchical case IDs, labels, diagnostics, specification references, and preserved observations. Insufficient evidence yields not_verified; consumers choose the results they require.
  • A separate summarizer displays saved outcomes. The README includes a prompt example, an evaluator-verified JSON excerpt, complete acceptance queries, and instructions usable from an installed or extracted plugin directory.
  • The plugin requires Node.js 22 or newer and agent command execution. Its MCP bundle includes runtime dependencies. Software uses Apache-2.0; documentation and other non-software materials use CC-BY-4.0.

Validation

  • All 40 tests pass, covering schema validation, packaged MCP tools, recording and file errors, evidence evaluation, and summary output. Build checks reproduce committed distributables and notices.
  • The JSON example matches evaluator output, and all four documented jq queries were executed against it.
  • Independent review covered the implementation, tests, documentation, and examples.
  • CI passes on Linux and Windows with Node 22 and 24.

Native client exercise

GitHub Copilot CLI 1.0.83 loaded an unchanged copy of commit 3601a9e through native --plugin-dir support on 2026-09-17. The plugin tree is 2c43d53ac8d6d73074a2b7b62c341ebd99e96862. The run used an isolated workspace and client configuration, with the prompt supplying the skill request and report destination.

All three skills loaded and all four MCP tools returned observations. Initialization used exactly {"action":"start"}, followed by six successful sequential recording calls. The agent recorded the two probe skills and four MCP observations, but omitted the guide observation. The saved evidence matched the submitted observations, and the report matched deterministic evaluation. All 18 plugin files remained unchanged. Separate summarization preserved the report bytes.

The report contained 11 pass, 2 fail, 1 not verified. Skill discovery remained not_verified because the guide observation was missing. The two failures were:

Case Observed behavior
mcp.stdio.args.preservation-and-expansion $APC_VALUE expanded in an argument although it is not a specified placeholder.
mcp.stdio.env.expansion ${PLUGIN_DATA} remained literal inside a configured environment value.

The client batched the four independent observation calls before recording them sequentially. Its final prose incorrectly claimed that every expected observation had been recorded; the JSON accurately preserved the missing guide evidence. This run verifies report delivery and evaluation, while also recording incomplete execution of the collection procedure. Every report write completed before the next began. The reporter requires sequential writes to a destination.

The PR remains draft. Coverage is limited to the documented fixtures, and skill discovery relies on the collecting agent's account of how the client exposed each skill.

@jonathanhefner
jonathanhefner force-pushed the agent/initial-conformance-suite branch 2 times, most recently from e702282 to 342188f Compare September 15, 2026 22:40
@jonathanhefner
jonathanhefner force-pushed the agent/initial-conformance-suite branch from 342188f to 9edcda3 Compare September 15, 2026 23:17
Organize installable packages under plugins/ so additional fixtures can
be introduced without relocating the initial plugin. Keep development
tooling at the repository root and verify MCP and CLI reporting from an
isolated installed copy.

Exercise skill discovery and stdio MCP launch behavior through
observable fixtures. Derive stable pass, fail, and not_verified outcomes
from collected evidence, keep developer expectations separate, and
preserve evidence and specification references in JSON.

Bundle the official MCP SDK to avoid dependency installation at runtime.
Apply the site licensing policy and include license notices inside the
installable package.
@jonathanhefner
jonathanhefner force-pushed the agent/initial-conformance-suite branch from 9edcda3 to 7582916 Compare September 15, 2026 23:22
@jonathanhefner jonathanhefner changed the title Add guided Agent Plugins 1.0.0 conformance probes Add a self-contained core conformance plugin Sep 15, 2026
consumers

Group human results by capability and missing observations, and show
expected and observed values for failures. Preserve flat JSON results
with explicit categories and readable labels so consumers can evaluate
complete capability groups or individual cases.

Remove expectedPasses and unmetExpectations from the report contract.
Successful report generation exits zero regardless of case outcomes;
consumers enforce their own acceptance policy with the documented jq
queries.
Record the unchanged plugin revision, isolated loading setup, native
skill and MCP sequence, and independently checked report transfer. The
observed failures exercise path and placeholder requirements without
treating selected coverage as a whole-client verdict.

Keep the deterministic reporter output distinct from the collecting
model summary, which reversed one failure explanation. Clarify that the
earlier adapted Codex run does not establish the behavior of its native
plugin loader.
Remove collection metadata and duplicate result categories. Scope stdio
MCP checks under mcp.stdio and name their working-directory scenarios so
consumers can select behavior groups directly by ID prefix.

Place the run identifier below the client and omit the evidence-source
and scope footer. Preserve observation payloads and case outcomes while
updating the guide, jq examples, and missing-evidence rendering tests.
Use `mcp-stdio` to select the subprocess evidence schema directly.
Evaluate the three immediate child skill observations as one discovery
result while retaining individual evidence and missing or incorrect
marker diagnostics. An incorrect supplied marker fails the aggregate
even when another skill is missing.
Comment thread docs/verification.md Outdated
Comment thread plugins/core/README.md Outdated
Keep the collection procedure in the guiding skill and document
installation, report interpretation, and consumer queries in the README.
Preserve a brief automated-test boundary in the development
instructions; keep historical native-run evidence with the PR validation
records.
@jonathanhefner
jonathanhefner force-pushed the agent/initial-conformance-suite branch from d9e0ac4 to 4187f6a Compare September 16, 2026 16:12
Comment thread plugins/core/README.md Outdated
Let the guiding skill initialize an explicit output path and update it
after each observation. Starting a run clears prior evidence; later
submissions replace the complete observation for that component. Keep
collection state in the report itself, create missing parent
directories, and replace the file atomically so rejected writes preserve
prior evidence.

Keep collection output terse and move human presentation to a read-only
summarizer of saved verdicts. Remove the unused run ID contract,
reporting MCP tool, and batch CLI so programmatic consumers can read the
requested artifact without extracting agent output.

Cover resets, replacement, validation and write failures, copied-plugin
execution, and saved-report rendering. All 41 tests and
syntax/distributable checks pass.
Comment thread plugins/core/skills/conformance-guide/scripts/report.mjs Outdated
Comment thread plugins/core/README.md Outdated
Comment thread plugins/core/README.md Outdated
Comment thread plugins/core/README.md Outdated
Comment thread plugins/core/README.md Outdated
Comment thread plugins/core/README.md Outdated
Comment thread plugins/core/README.md Outdated
Comment thread test/schemas/LICENSE.txt
Comment thread test/schemas/mcp.schema.json
Comment thread test/schemas/plugin.schema.json
Keep validation tied to observation structure and identity so the
evaluator can assess client evidence independently of its size. Exercise
the current reporting contract in tests.

Align the plugin directory and manifest as
agent-plugins-conformance-core. Document the prompt, report shape,
status meanings, complete acceptance queries, and plugin-relative
summarizer invocation. Associate coverage limits with the behaviors the
fixtures exercise.

Classify the upstream schemas and license as vendored and generated for
GitHub review. Verified all 40 tests, the committed distributable, the
JSON example, and all documented jq queries.
@jonathanhefner jonathanhefner changed the title Add a self-contained core conformance plugin Add Agent Plugins Conformance — Core Sep 17, 2026
Comment thread plugins/agent-plugins-conformance-core/README.md Outdated
Comment thread plugins/agent-plugins-conformance-core/README.md Outdated
Comment thread plugins/agent-plugins-conformance-core/README.md Outdated
Comment thread plugins/agent-plugins-conformance-core/README.md Outdated
Require only the report destination to initialize collection. Client
identity is not reliably available to the collecting agent and does not
affect evaluation; keep the saved report and summary focused on the
recorded evidence and outcomes.

Introduce the report through an abbreviated JSON example before
explaining its fields and statuses. Keep coverage prose tied to the
behaviors exercised by the fixtures.

All 40 tests and syntax/distributable checks pass. Verified the JSON
example against evaluator output and executed all four documented jq
queries.
@jonathanhefner
jonathanhefner marked this pull request as ready for review September 18, 2026 00:06
@jonathanhefner
jonathanhefner merged commit b251355 into main Sep 18, 2026
4 checks passed
@jonathanhefner jonathanhefner linked an issue Sep 20, 2026 that may be closed by this pull request
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.

Exercise the core suite through native Agent Plugins loading

1 participant