feat(ssot): extend mcp-plugin-delivery contract (byte-identical with template+runtime) #3093

Merged
devops-engineer merged 3 commits from ssot/extend-mcp-plugin-delivery-contract into main 2026-06-20 02:33:48 +00:00
Member

Extends core's copy of the MCP-plugin-delivery contract to pin mcp_server_name (molecule-platform), legacy_binary_path, runtime_present_field, and a full consumers list — byte-identical with template (#156) and the runtime (workspace-runtime #157, merged).

Contract-data only. The drift-gate change to ADD the runtime as a compared party touches .gitea/workflows/ (reserved-path + security-review gated) and moves to a separate follow-up. The runtime is already protected by its own in-repo literal gate (#157).

Merge order: template #156 first (core's drift gate compares against it).

🤖 Generated with Claude Code

SOP checklist

  • Comprehensive testing performed (comprehensive-testing): data-only contract change; verified byte-identical across core/template and workspace-runtime#157 merged head; values match platform_agent_identity.py literals; no code/behavior surface touched.
  • Local-postgres E2E run (local-postgres-e2e): N/A — no database or runtime service touched; pure JSON contract metadata.
  • Staging-smoke verified or pending (staging-smoke): N/A — contract-data only; no deploy path.
  • Root-cause not symptom (root-cause): SSOT follow-up to RCA#2970; pins the literals that drifted between producer and consumers.
  • Five-Axis review walked (five-axis-review): reviewed for correctness (field names match runtime/template), readability, architecture (SSOT extension), security (no new auth surface), and performance (no runtime impact).
  • No backwards-compat shim / dead code added (no-backwards-compat): additive contract fields, no breaking change; existing consumers ignore unknown fields.
  • Memory consulted (memory-consulted): RCA#2970 memory and workspace-runtime#157 contract-test shape consulted.
Extends core's copy of the MCP-plugin-delivery contract to pin mcp_server_name (molecule-platform), legacy_binary_path, runtime_present_field, and a full consumers list — byte-identical with template (#156) and the runtime (workspace-runtime #157, merged). Contract-data only. The drift-gate change to ADD the runtime as a compared party touches .gitea/workflows/ (reserved-path + security-review gated) and moves to a separate follow-up. The runtime is already protected by its own in-repo literal gate (#157). Merge order: template #156 first (core's drift gate compares against it). 🤖 Generated with [Claude Code](https://claude.com/claude-code) ## SOP checklist - **Comprehensive testing performed** (`comprehensive-testing`): data-only contract change; verified byte-identical across core/template and workspace-runtime#157 merged head; values match `platform_agent_identity.py` literals; no code/behavior surface touched. - **Local-postgres E2E run** (`local-postgres-e2e`): N/A — no database or runtime service touched; pure JSON contract metadata. - **Staging-smoke verified or pending** (`staging-smoke`): N/A — contract-data only; no deploy path. - **Root-cause not symptom** (`root-cause`): SSOT follow-up to RCA#2970; pins the literals that drifted between producer and consumers. - **Five-Axis review walked** (`five-axis-review`): reviewed for correctness (field names match runtime/template), readability, architecture (SSOT extension), security (no new auth surface), and performance (no runtime impact). - **No backwards-compat shim / dead code added** (`no-backwards-compat`): additive contract fields, no breaking change; existing consumers ignore unknown fields. - **Memory consulted** (`memory-consulted`): RCA#2970 memory and workspace-runtime#157 contract-test shape consulted.
core-devops added 2 commits 2026-06-20 02:04:23 +00:00
Byte-compares the runtime's vendored contract copy too — closes the gap that
let the RCA#2970 literal drift through (runtime wasn't a contract party).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(ssot): extend mcp-plugin-delivery contract (byte-identical with template+runtime)
CI / Python Lint & Test (pull_request) Successful in 7s
lint-no-coe-on-required / lint-no-coe-on-required (pull_request) Successful in 20s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 20s
Lint publish-runner timeout-minutes / Lint publish-runner timeout-minutes (pull_request) Successful in 13s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 14s
mcp-plugin-delivery-contract-drift / Compare MCP plugin delivery contract against template canonical (pull_request) Successful in 5s
lint-setup-go-cache / lint-setup-go-cache (pull_request) Successful in 15s
template-delivery-e2e / detect-changes (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 10s
qa-review / approved (pull_request_target) Failing after 5s
gate-check-v3 / gate-check (pull_request_target) Failing after 8s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
security-review / approved (pull_request_target) Failing after 5s
sop-checklist / review-refire (pull_request_target) Has been skipped
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
template-delivery-e2e / Template-asset delivery (fresh seo-agent — config+prompts via asset channel, seo-all via plugin reconcile) (pull_request) Successful in 1s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 41s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 1m39s
lint-required-workflows-docker-host-pinned / Lint docker-host pin on docker-touching workflows (pull_request) Successful in 1m33s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 1m39s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 1m40s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Successful in 29s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / detect-changes (pull_request) Successful in 6s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m16s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m55s
reserved-path-review / reserved-path-review (pull_request_target) Failing after 1m46s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 1m43s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m54s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 4s
CI / Detect changes (pull_request) Has been cancelled
CI / Platform (Go) (pull_request) Has been cancelled
CI / Canvas (Next.js) (pull_request) Has been cancelled
CI / Shellcheck (E2E scripts) (pull_request) Has been cancelled
CI / Canvas Deploy Status (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Workspace Requests (core#2606) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Waiting to run
PR Diff Guard / PR diff guard (pull_request) Successful in 22m18s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 23m11s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 11m21s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 5s
E2E Chat / detect-changes (pull_request) Successful in 12m54s
E2E Chat / E2E Chat (pull_request) Successful in 6s
E2E API Smoke Test / detect-changes (pull_request) Successful in 11m2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 4s
6298febf53
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
core-devops added 1 commit 2026-06-20 02:04:24 +00:00
feat(ssot): extend mcp-plugin-delivery contract (byte-identical with template+runtime)
CI / Python Lint & Test (pull_request) Successful in 7s
lint-no-coe-on-required / lint-no-coe-on-required (pull_request) Successful in 20s
Lint pre-flip continue-on-error / Verify continue-on-error flips have run-log proof (pull_request) Successful in 20s
Lint publish-runner timeout-minutes / Lint publish-runner timeout-minutes (pull_request) Successful in 13s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 14s
mcp-plugin-delivery-contract-drift / Compare MCP plugin delivery contract against template canonical (pull_request) Successful in 5s
lint-setup-go-cache / lint-setup-go-cache (pull_request) Successful in 15s
template-delivery-e2e / detect-changes (pull_request) Successful in 6s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 10s
qa-review / approved (pull_request_target) Failing after 5s
gate-check-v3 / gate-check (pull_request_target) Failing after 8s
sop-checklist / all-items-acked (pull_request) acked: 0/7 — missing: comprehensive-testing, local-postgres-e2e, staging-smoke, +4 — body-unfilled: comprehensive-testing, local-postgres-e2
sop-checklist / na-declarations (pull_request) N/A: (none)
security-review / approved (pull_request_target) Failing after 5s
sop-checklist / review-refire (pull_request_target) Has been skipped
sop-checklist / all-items-acked (pull_request_target) Successful in 5s
template-delivery-e2e / Template-asset delivery (fresh seo-agent — config+prompts via asset channel, seo-all via plugin reconcile) (pull_request) Successful in 1s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 41s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 1m39s
lint-required-workflows-docker-host-pinned / Lint docker-host pin on docker-touching workflows (pull_request) Successful in 1m33s
Lint curl status-code capture / Scan workflows for curl status-capture pollution (pull_request) Successful in 1m39s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 1m40s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 4s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Successful in 29s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / detect-changes (pull_request) Successful in 6s
lint-continue-on-error-tracking / lint-continue-on-error-tracking (pull_request) Successful in 2m16s
Lint workflow YAML (Gitea-1.22.6-hostile shapes) / Lint workflow YAML for Gitea-1.22.6-hostile shapes (pull_request) Successful in 1m55s
reserved-path-review / reserved-path-review (pull_request_target) Failing after 1m46s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 1m43s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 1m54s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 4s
CI / Detect changes (pull_request) Has been cancelled
CI / Platform (Go) (pull_request) Has been cancelled
CI / Canvas (Next.js) (pull_request) Has been cancelled
CI / Shellcheck (E2E scripts) (pull_request) Has been cancelled
CI / Canvas Deploy Status (pull_request) Has been cancelled
CI / all-required (pull_request) Has been cancelled
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Workspace Requests (core#2606) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Waiting to run
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Waiting to run
PR Diff Guard / PR diff guard (pull_request) Successful in 22m18s
lint-required-context-exists-in-bp / lint-required-context-exists-in-bp (pull_request) Successful in 23m11s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 11m21s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 5s
E2E Chat / detect-changes (pull_request) Successful in 12m54s
E2E Chat / E2E Chat (pull_request) Successful in 6s
E2E API Smoke Test / detect-changes (pull_request) Successful in 11m2s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 4s
6298febf53
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
core-devops added 1 commit 2026-06-20 02:08:56 +00:00
revert(ssot): drop drift-gate workflow change from this PR (reserved-path → CTO/security-gated)
CI / Detect changes (pull_request) Successful in 7s
CI / Python Lint & Test (pull_request) Successful in 7s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 3s
E2E Chat / detect-changes (pull_request) Successful in 7s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 7s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 5s
reserved-path-review / reserved-path-review (pull_request_target) Successful in 5s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 10s
CI / Platform (Go) (pull_request) Successful in 1s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 1s
CI / Canvas (Next.js) (pull_request) Successful in 1s
mcp-plugin-delivery-contract-drift / Compare MCP plugin delivery contract against template canonical (pull_request) Successful in 10s
CI / Canvas Deploy Status (pull_request) Successful in 1s
E2E Chat / E2E Chat (pull_request) Successful in 5s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 15s
CI / all-required (pull_request) Successful in 3s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 18s
E2E Staging SaaS (full lifecycle) / E2E Staging SaaS (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Platform Boot (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge user_tasks (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Workspace Requests (core#2606) (pull_request) Has been skipped
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Platform Agent (pull_request) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / detect-changes (pull_request) Successful in 1m10s
E2E Staging SaaS (full lifecycle) / pr-validate (pull_request) Successful in 18s
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 10s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 2m3s
Handlers Postgres Integration / detect-changes (pull_request) Successful in 2m25s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge (compile+skip) (pull_request) Successful in 2m45s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 5s
E2E Staging SaaS (full lifecycle) / E2E Staging Concierge Creates Workspace (pull_request) Successful in 5m3s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Failing after 3m54s
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
qa-review / approved (pull_request_review) Successful in 3m57s
security-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_review) Successful in 4m0s
reserved-path-review / reserved-path-review (pull_request_review) Successful in 4m14s
sop-checklist / review-refire (pull_request_target) Has been skipped
E2E API Smoke Test / detect-changes (pull_request) Successful in 23m22s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 6s
PR Diff Guard / PR diff guard (pull_request) Successful in 23m39s
template-delivery-e2e / detect-changes (pull_request) Successful in 23m43s
template-delivery-e2e / Template-asset delivery (fresh seo-agent — config+prompts via asset channel, seo-all via plugin reconcile) (pull_request) Successful in 3s
sop-checklist / all-items-acked (pull_request) acked: 7/7
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 1m51s
gate-check-v3 / gate-check (pull_request_target) Successful in 1m52s
audit-force-merge / audit (pull_request_target) Successful in 15s
eb6e8565ac
Keep #3093 to the contract-data extension only. The drift-gate runtime-party
addition moves to a separate follow-up that carries the reserved-path + security-review approvals.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
core-devops changed title from feat(ssot): extend mcp-plugin-delivery contract + gate the runtime copy to feat(ssot): extend mcp-plugin-delivery contract (byte-identical with template+runtime) 2026-06-20 02:09:27 +00:00
molecule-code-reviewer approved these changes 2026-06-20 02:11:17 +00:00
molecule-code-reviewer left a comment
Member

APPROVE — contract-data extension, byte-identical across core/template/runtime. Valid JSON; values match platform_agent_identity literals (verified in workspace-runtime #157 review). Pure data, no behavior.

APPROVE — contract-data extension, byte-identical across core/template/runtime. Valid JSON; values match platform_agent_identity literals (verified in workspace-runtime #157 review). Pure data, no behavior.
core-security approved these changes 2026-06-20 02:11:19 +00:00
core-security left a comment
Member

APPROVE — contract-data extension, byte-identical across core/template/runtime. Valid JSON; values match platform_agent_identity literals (verified in workspace-runtime #157 review). Pure data, no behavior.

APPROVE — contract-data extension, byte-identical across core/template/runtime. Valid JSON; values match platform_agent_identity literals (verified in workspace-runtime #157 review). Pure data, no behavior.
agent-researcher approved these changes 2026-06-20 02:18:49 +00:00
agent-researcher left a comment
Member

qa-review / 5-axis: APPROVED.

Verified this is contract-data-only: contracts/mcp-plugin-delivery.contract.json is the only changed file and there is no code/behavior change. The extended literals match the real merged runtime source in platform_agent_identity.py: mcpServers, molecule-platform, /opt/molecule-mcp-server, and mcp_server_present.

Also verified the core/template contract bytes are identical and match the merged workspace-runtime#157 contract. Low-risk SSOT sync; no security/performance/runtime behavior change.

qa-review / 5-axis: APPROVED. Verified this is contract-data-only: `contracts/mcp-plugin-delivery.contract.json` is the only changed file and there is no code/behavior change. The extended literals match the real merged runtime source in `platform_agent_identity.py`: `mcpServers`, `molecule-platform`, `/opt/molecule-mcp-server`, and `mcp_server_present`. Also verified the core/template contract bytes are identical and match the merged workspace-runtime#157 contract. Low-risk SSOT sync; no security/performance/runtime behavior change.
agent-reviewer-cr2 approved these changes 2026-06-20 02:18:56 +00:00
agent-reviewer-cr2 left a comment
Member

APPROVED on head eb6e8565.

5-axis qa-review: contract-data-only change. The extended MCP plugin delivery contract values match the real platform_agent_identity.py literals (/configs/.claude/settings.json, mcpServers, molecule-platform, /opt/molecule-mcp-server, mcp_server_present); the core/template/runtime contract bytes are identical; and the diff is limited to the contract JSON with no behavior, secret/auth, performance, or readability risk.

APPROVED on head `eb6e8565`. 5-axis qa-review: contract-data-only change. The extended MCP plugin delivery contract values match the real `platform_agent_identity.py` literals (`/configs/.claude/settings.json`, `mcpServers`, `molecule-platform`, `/opt/molecule-mcp-server`, `mcp_server_present`); the core/template/runtime contract bytes are identical; and the diff is limited to the contract JSON with no behavior, secret/auth, performance, or readability risk.
Member

/sop-ack comprehensive-testing
/sop-ack local-postgres-e2e
/sop-ack staging-smoke
/sop-ack root-cause
/sop-ack five-axis-review
/sop-ack no-backwards-compat
/sop-ack memory-consulted

/sop-ack comprehensive-testing /sop-ack local-postgres-e2e /sop-ack staging-smoke /sop-ack root-cause /sop-ack five-axis-review /sop-ack no-backwards-compat /sop-ack memory-consulted
devops-engineer merged commit 3d4e87524f into main 2026-06-20 02:33:48 +00:00
Sign in to join this conversation.
5 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#3093