Skip to content

feat(claude): record agents-component parity evidence under G5 gate - #346

Merged
ScriptedAlchemy merged 1 commit into
mainfrom
feat/187-s4-agents-evidence
Sep 3, 2026
Merged

feat(claude): record agents-component parity evidence under G5 gate#346
ScriptedAlchemy merged 1 commit into
mainfrom
feat/187-s4-agents-evidence

Conversation

@ScriptedAlchemy

Copy link
Copy Markdown
Owner

Summary

Slice 4 of the #187 Claude parity pass: agents-component parity evidence under the G5 gate.

The plugin agents/ component stays deliberately deferred per the #100 stage-2 G5 narrowing (PR #220, #107 revision 3) — re-admitting agents needs its own evidence-backed increment. This PR delivers the parity evidence the gate permits, with no new emission surface:

  • 15 new agents capability rows in capabilities/claude-2.1.250.json, all unavailable with reasons citing the G5 deferral and dated doc evidence: the component itself, every documented frontmatter field (name, description, model, effort, maxTurns, tools, disallowedTools, skills, memory, background, isolation: worktree), and the plugin-agent security contract (hooks, mcpServers, permissionMode are documented as ignored for plugin-shipped agents).
  • Rows surfaced as agents / agents.<field> capability keys on the Claude adapter and intersected through the unified plugin adapter.
  • Native proof (Claude Code 2.1.257, isolated config dir): claude plugin validate --strict accepts a plugin agent exercising every documented field, and also accepts a negative fixture declaring hooks, mcpServers, and permissionMode: bypassPermissions without warning — strict validation does not enforce the loader-side ignore contract. Recorded in the capability evidence and a new agentsComponentNotes PROVENANCE entry.
  • The existing dangling-agent diagnostic for settings.agent is unchanged and remains the only compiler touchpoint.

Revisions

  • adapterRevision: claude 1.17.01.18.0, unified plugin 1.15.01.16.0; capability-table sha re-pinned.

Test plan

  • Scoped suites incl. native proofs (AGENT_BUNDLE_NATIVE_HOST_CONTRACTS=1): 407 tests, 0 failed, 0 skipped
  • pnpm -w typecheck
  • pnpm -w lint

Part of #187.

@changeset-bot

changeset-bot Bot commented Sep 3, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: c90a2fb

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
agent-bundle Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 3, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-03T00:49:48.513336Z c90a2fb PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@ScriptedAlchemy
ScriptedAlchemy merged commit d84b0aa into main Sep 3, 2026
4 checks passed

@chatgpt-codex-connector chatgpt-codex-connector Bot 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: c90a2fb234

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

},
"observedCliVersion": "2.1.250",
"plugin": {
"agents": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Reconcile the added agent row with existing provenance

Adding plugin.agents makes the capability table internally contradictory: the pre-existing provenance entry at claude-2.1.250.json:553 still states that no agents capability row will be published until the component is admitted, while this change publishes fifteen such rows without admitting it. Consumers auditing the pinned evidence cannot determine whether the gate prohibits only emission or also capability rows, so update that provenance statement to reflect the new unavailable-row policy.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed on main in #364 (merge 305161a).

Comment on lines +207 to +208
if (target === 'claude') {
expect(sha256Hex(capability)).toBe('4db46064cce1e3f74bceb9e36a4c6da860acf183c1c1ccbb65f692d22d4e17d6');

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge Remove the repository-owned capability-table hash pin

This exact-content assertion means every future Claude capability evidence edit fails the metadata suite until an unrelated digest literal is re-pinned. That is the churn the documented hashing policy explicitly prohibits in packages/agent-bundle/README.md:550-553, where repository-owned capability tables are intentionally versioned by Git and adapterRevision rather than hashes; keep hashing the external schema snapshots, but do not add a byte hash for this capability JSON.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Fixed on main in #364 (merge 305161a).

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.

1 participant