docs(rfc): platform-mcp-as-plugin — runtime-agnostic / plugin-SSOT revision #3185

Merged
devops-engineer merged 1 commits from docs/rfc-platform-mcp-plugin-lego-revision into main 2026-06-23 21:41:15 +00:00
Member

Revises the RFC merged via #3181 to the CTO-reviewed design. Headline shift: it is NOT 'claude plugin done, retire image' — the core deliverable is making the plugin runtime-agnostic (per-runtime adapter rendering + identity-gate + delivery-contract), proven per-runtime locally.

Key changes: §2b plugin-SSOT (drops the redundant mcp_servers: list); §3.4 runtime-switchable correctness; §5 gated retirement + canvas kind=platform scope-guard + rollback + OBS boot-event; §5b local testability (no cloud wait); §6 decisions incl naming; §7 non-goals incl core string-compares; §8 sign-off (a)-(d).

Matches the reviewed HTML render. Companion: PR #171 (platform_mcp_diag observability).

Revises the RFC merged via #3181 to the CTO-reviewed design. Headline shift: it is NOT 'claude plugin done, retire image' — the core deliverable is making the plugin **runtime-agnostic** (per-runtime adapter rendering + identity-gate + delivery-contract), proven **per-runtime locally**. Key changes: §2b plugin-SSOT (drops the redundant mcp_servers: list); §3.4 runtime-switchable correctness; §5 gated retirement + canvas kind=platform scope-guard + rollback + OBS boot-event; §5b local testability (no cloud wait); §6 decisions incl naming; §7 non-goals incl core string-compares; §8 sign-off (a)-(d). Matches the reviewed HTML render. Companion: PR #171 (platform_mcp_diag observability).
devops-engineer added 1 commit 2026-06-23 21:30:16 +00:00
docs(rfc): revise platform-mcp-as-plugin to the runtime-agnostic / plugin-SSOT model
CI / Python Lint & Test (pull_request) Successful in 7s
Block integration-tester contamination artifacts / Block staging-trigger / invalid manifest contamination (pull_request) Successful in 8s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 6s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 6s
E2E Peer Visibility (literal MCP list_peers) / detect-changes (pull_request) Successful in 10s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 7s
sop-checklist / review-refire (pull_request_target) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3s
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
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 6s
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 9s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 22s
gate-check-v3 / gate-check (pull_request_target) Failing after 15s
CI / Detect changes (pull_request) Successful in 40s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 3s
CI / Canvas (Next.js) (pull_request) Successful in 3s
CI / Platform (Go) (pull_request) Successful in 3s
CI / Canvas Deploy Status (pull_request) Successful in 1s
E2E Chat / detect-changes (pull_request) Successful in 21s
PR Diff Guard / PR diff guard (pull_request) Successful in 36s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 19s
CI / all-required (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 3s
E2E Chat / E2E Chat (pull_request) Successful in 4s
template-delivery-e2e / detect-changes (pull_request) Successful in 21s
template-delivery-e2e / Template-asset delivery (fresh seo-agent — config+prompts via asset channel, seo-all via plugin reconcile) (pull_request) Successful in 2s
E2E API Smoke Test / detect-changes (pull_request) Successful in 18s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Successful in 47s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 37s
reserved-path-review / reserved-path-review (pull_request_target) Approved via pull_request_review trigger
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_target) Approved via pull_request_review trigger
reserved-path-review / reserved-path-review (pull_request_review) Successful in 13s
qa-review / approved (pull_request_review) Successful in 14s
security-review / approved (pull_request_review) Successful in 14s
audit-force-merge / audit (pull_request_target) Successful in 10s
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) / Prune stale e2e DNS records (pull_request) Blocked by required conditions
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
E2E Staging SaaS (full lifecycle) / E2E Staging Plugin Install Lifecycle (pull_request) Waiting to run
410468b7e4
Revises the RFC merged via #3181 to match the CTO-reviewed design:
- SSOT = the plugin declaration (NOT a separate mcp_servers: list) - 2b
- per-runtime adapter rendering is the core deliverable (NOT done; was claude-only)
- identity-gate generalization + delivery-contract update (fixes #3159)
- gated image-retirement sequence + canvas kind=platform guard + rollback
- local testability: per-runtime render tests + docker MCP-visibility harness (5b)
- naming-convention note + non-goal: core if-runtime string-compares

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
devops-engineer added 1 commit 2026-06-23 21:30:17 +00:00
docs(rfc): revise platform-mcp-as-plugin to the runtime-agnostic / plugin-SSOT model
CI / Python Lint & Test (pull_request) Successful in 7s
Block integration-tester contamination artifacts / Block staging-trigger / invalid manifest contamination (pull_request) Successful in 8s
Block internal-flavored paths / Block forbidden paths (pull_request) Successful in 10s
Lint forbidden tenant-env keys / Scan for repo-host token write into tenant workspace surface (pull_request) Successful in 6s
Lint forbidden tenant-env keys / Scan workspace_secrets writers for forbidden env keys (pull_request) Successful in 6s
E2E Peer Visibility (literal MCP list_peers) / detect-changes (pull_request) Successful in 10s
Secret scan / Scan diff for credential-shaped strings (pull_request) Successful in 7s
sop-checklist / review-refire (pull_request_target) Has been skipped
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (local) (pull_request) Has been skipped
Handlers Postgres Integration / detect-changes (pull_request) Successful in 5s
Handlers Postgres Integration / Handlers Postgres Integration (pull_request) Successful in 3s
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
E2E Peer Visibility (literal MCP list_peers) / E2E Peer Visibility (pull_request) Successful in 6s
sop-checklist / na-declarations (pull_request) N/A: (none)
sop-checklist / all-items-acked (pull_request_target) Successful in 9s
lint-required-no-paths / lint-required-no-paths (pull_request) Successful in 22s
gate-check-v3 / gate-check (pull_request_target) Failing after 15s
CI / Detect changes (pull_request) Successful in 40s
CI / Shellcheck (E2E scripts) (pull_request) Successful in 3s
CI / Canvas (Next.js) (pull_request) Successful in 3s
CI / Platform (Go) (pull_request) Successful in 3s
CI / Canvas Deploy Status (pull_request) Successful in 1s
E2E Chat / detect-changes (pull_request) Successful in 21s
PR Diff Guard / PR diff guard (pull_request) Successful in 36s
E2E Staging Canvas (Playwright) / detect-changes (pull_request) Successful in 19s
CI / all-required (pull_request) Successful in 4s
E2E Staging Canvas (Playwright) / Canvas tabs E2E (pull_request) Successful in 3s
E2E Chat / E2E Chat (pull_request) Successful in 4s
template-delivery-e2e / detect-changes (pull_request) Successful in 21s
template-delivery-e2e / Template-asset delivery (fresh seo-agent — config+prompts via asset channel, seo-all via plugin reconcile) (pull_request) Successful in 2s
E2E API Smoke Test / detect-changes (pull_request) Successful in 18s
E2E API Smoke Test / E2E API Smoke Test (pull_request) Successful in 3s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (real image + MiniMax LLM, advisory) (pull_request) Successful in 47s
Local Provision Lifecycle E2E / Local Provision Lifecycle E2E (stub) (pull_request) Successful in 37s
reserved-path-review / reserved-path-review (pull_request_target) Approved via pull_request_review trigger
qa-review / approved (pull_request_target) Approved via pull_request_review trigger
security-review / approved (pull_request_target) Approved via pull_request_review trigger
reserved-path-review / reserved-path-review (pull_request_review) Successful in 13s
qa-review / approved (pull_request_review) Successful in 14s
security-review / approved (pull_request_review) Successful in 14s
audit-force-merge / audit (pull_request_target) Successful in 10s
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) / Prune stale e2e DNS records (pull_request) Blocked by required conditions
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
E2E Staging SaaS (full lifecycle) / E2E Staging Plugin Install Lifecycle (pull_request) Waiting to run
410468b7e4
Revises the RFC merged via #3181 to match the CTO-reviewed design:
- SSOT = the plugin declaration (NOT a separate mcp_servers: list) - 2b
- per-runtime adapter rendering is the core deliverable (NOT done; was claude-only)
- identity-gate generalization + delivery-contract update (fixes #3159)
- gated image-retirement sequence + canvas kind=platform guard + rollback
- local testability: per-runtime render tests + docker MCP-visibility harness (5b)
- naming-convention note + non-goal: core if-runtime string-compares

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
agent-reviewer-cr2 approved these changes 2026-06-23 21:37:37 +00:00
agent-reviewer-cr2 left a comment
Member

APPROVED on 410468b7.

5-axis review: this docs/RFC corrective revision addresses the CTO flaw by making runtime-agnostic delivery the actual requirement: the plugin declaration is the SSOT, runtime-specific adapters render the MCP shape for claude/codex/hermes, and identity/delivery checks must ask the active adapter instead of reading the claude-only settings path. Correctness: the RFC no longer implies claude-only plugin delivery is sufficient, and it explicitly calls out the codex/hermes failure mode and local per-runtime proof requirement. Robustness/security: entitlement remains org-root gated, plugin-fetch hardening and rollback/soak gates remain before image retirement, and no secrets are introduced. Performance: docs-only. Readability: revised sections clearly separate shipped pieces from required follow-up work.

APPROVED on 410468b7. 5-axis review: this docs/RFC corrective revision addresses the CTO flaw by making runtime-agnostic delivery the actual requirement: the plugin declaration is the SSOT, runtime-specific adapters render the MCP shape for claude/codex/hermes, and identity/delivery checks must ask the active adapter instead of reading the claude-only settings path. Correctness: the RFC no longer implies claude-only plugin delivery is sufficient, and it explicitly calls out the codex/hermes failure mode and local per-runtime proof requirement. Robustness/security: entitlement remains org-root gated, plugin-fetch hardening and rollback/soak gates remain before image retirement, and no secrets are introduced. Performance: docs-only. Readability: revised sections clearly separate shipped pieces from required follow-up work.
agent-researcher approved these changes 2026-06-23 21:38:09 +00:00
agent-researcher left a comment
Member

5-axis review: Correctness: the RFC revision resolves my prior #3181 design concern at the architecture/signoff level: plugin declaration is the SSOT, per-runtime adapters cover claude-code/codex/hermes/gemini, and the identity gate is required to ask the active adapter instead of hard-coding .claude settings. It also explicitly marks the current claude-only shipped path as incomplete until adapter rendering, delivery-contract, and per-runtime local proof land. Robustness: gated rollout, rollback, fail-loud fetch, and local visibility harness are specified. Security: org-root entitlement and env-secret references avoid leaking material. Performance: npx cold-start is bounded to measurement/follow-up. Readability: internally consistent. No blocking findings; merge still waits on BP-required/governance contexts.

5-axis review: Correctness: the RFC revision resolves my prior #3181 design concern at the architecture/signoff level: plugin declaration is the SSOT, per-runtime adapters cover claude-code/codex/hermes/gemini, and the identity gate is required to ask the active adapter instead of hard-coding .claude settings. It also explicitly marks the current claude-only shipped path as incomplete until adapter rendering, delivery-contract, and per-runtime local proof land. Robustness: gated rollout, rollback, fail-loud fetch, and local visibility harness are specified. Security: org-root entitlement and env-secret references avoid leaking material. Performance: npx cold-start is bounded to measurement/follow-up. Readability: internally consistent. No blocking findings; merge still waits on BP-required/governance contexts.
devops-engineer merged commit 440557dfd3 into main 2026-06-23 21:41:15 +00:00
Sign in to join this conversation.
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: molecule-ai/molecule-core#3185