diff --git a/docs/marketing/blog/2026-04-23-partner-api-keys.md b/docs/marketing/blog/2026-04-23-partner-api-keys.md
deleted file mode 100644
index d42ba86b..00000000
--- a/docs/marketing/blog/2026-04-23-partner-api-keys.md
+++ /dev/null
@@ -1,141 +0,0 @@
----
-title: "Ship Partner Integrations Faster with Programmatic Org Management"
-date: 2026-04-23
-slug: partner-api-keys
-description: "Partner API Keys let marketplace resellers, CI/CD pipelines, and automation tools create and manage Molecule AI orgs via API — no browser session required."
-og_title: "Ship Partner Integrations Faster with Programmatic Org Management"
-og_description: "Partner API Keys: scoped, rate-limited, revocable API keys for programmatic org management. Built for marketplaces, CI/CD, and automation platforms."
-og_image: /docs/assets/blog/2026-04-23-partner-api-keys-og.png
-tags: [partner-api-keys, marketplace, ci-cd, automation, api, enterprise, provisioning]
-keywords: [partner API keys, programmatic org management, marketplace integration, CI/CD automation, Molecule AI API, reseller integration, org provisioning API]
-canonical: https://docs.molecule.ai/blog/partner-api-keys
----
-
-
-
-# Ship Partner Integrations Faster with Programmatic Org Management
-
-When your platform needs to create an org — for a new customer, a CI environment, or a marketplace resale — the last thing you want is to hand that flow over to a human with a browser. Neither does your partner.
-
-Phase 34 is designed to solve exactly this problem. **Partner API Keys** give marketplace resellers, CI/CD pipelines, and automation platforms a programmatic way to create and manage Molecule AI orgs — no browser session, no admin dashboard, just an API call.
-
-## What Partner API Keys Do
-
-A Partner API Key is a scoped, rate-limited, revocable bearer token — prefixed `mol_pk_` — that lives at the `/cp/` control plane boundary. It authenticates to a set of partner-facing endpoints that let you provision an org, poll its status, and revoke the integration when it's no longer needed.
-
-Unlike org-scoped API keys (which operate *within* an org), Partner API Keys operate *at the org level*: they create orgs, list your own keys, and revoke themselves. The scope system lets you grant exactly the capabilities a partner needs — nothing more.
-
-```bash
-POST /cp/admin/partner-keys
-Authorization: Bearer
-{
- "name": "acme-ci-pipeline",
- "scopes": ["orgs:create", "orgs:list"],
- "org_id": null
-}
-
-# Response
-{
- "id": "pak_01HXKM4...",
- "key": "mol_pk_1a2b3c4d5e...", # shown ONCE
- "name": "acme-ci-pipeline",
- "scopes": ["orgs:create", "orgs:list"],
- "created_at": "2026-04-23T08:00:00Z"
-}
-```
-
-Your CI pipeline saves `mol_pk_1a2b3c4d5e...` as a secret and uses it to call the partner endpoints.
-
-## The Partner API Surface
-
-Once you have a Partner API Key, the integration flow looks like this:
-
-```bash
-# 1. Create an org
-POST /cp/orgs
-Authorization: Bearer mol_pk_1a2b3c4d5e...
-{
- "name": "acme-corp",
- "slug": "acme-corp",
- "plan": "standard"
-}
-
-# Response
-{
- "id": "org_01HXKM4...",
- "slug": "acme-corp",
- "status": "provisioning",
- "created_at": "2026-04-23T08:00:00Z"
-}
-
-# 2. Poll until ready
-GET /cp/orgs/org_01HXKM4.../status
-Authorization: Bearer mol_pk_1a2b3c4d5e...
-
-# 3. Redirect the customer
-# → https://app.moleculesai.app/login?org=acme-corp
-
-# 4. Revoke when done
-DELETE /cp/admin/partner-keys/pak_01HXKM4...
-Authorization: Bearer mol_pk_1a2b3c4d5e...
-```
-
-Every call is audited: the audit log records which Partner API Key was used, when, and what it did — so you can trace a provisioning event back to the integration that triggered it.
-
-## Scopes and Rate Limits
-
-Partner API Keys are granted specific scopes at creation time. A CI pipeline might get `orgs:create` + `orgs:list`. A marketplace reseller might also need `workspaces:create`. A monitoring tool might only need `orgs:list`.
-
-```
-Available scopes:
- orgs:create — provision new orgs
- orgs:list — list partner-managed orgs
- orgs:delete — deprovision orgs
- workspaces:create — create workspaces within an org
- billing:read — read subscription status
-```
-
-Rate limits are enforced per key, independently of the session rate limit. A misbehaving integration hits its own ceiling without affecting other partners or organic traffic.
-
-## The Marketplace Reseller Use Case
-
-Marketplace resellers need to provision a Molecule AI org on behalf of every end customer — automatically, at scale, without a human in the loop. They also need to:
-
-- **Scope the integration** to only the capabilities that partner needs
-- **Revoke cleanly** when the reseller-customer relationship ends
-- **Audit everything** for compliance reporting
-
-Partner API Keys handle all three. A reseller creates one key per integration tier (e.g. one key for the standard tier, one for enterprise), each scoped to exactly what that tier allows. When a customer churns, the reseller revokes their key — the org stays but the automation path is closed.
-
-## CI/CD: Ephemeral Test Orgs
-
-CI/CD pipelines benefit from the same pattern. A test suite that needs to validate the Molecule AI integration flow can:
-
-1. Create a temporary org via Partner API Key (`orgs:create`)
-2. Run the integration tests against it
-3. Delete the org when done (`orgs:delete`)
-4. Revoke the key
-
-Each run gets a clean environment. No shared state, no test pollution, no manual cleanup.
-
-## Get Started
-
-Partner API Keys are available on **Partner and Enterprise plans**. To get started:
-
-- Contact your account team to request Partner API Key issuance
-- Review the partner integration guide (coming soon)
-- Example flows: create org → poll status → redirect to tenant; CI/CD test org lifecycle
-
----
-
-*Molecule AI is open source. Partner API Keys shipped in Phase 34 (2026-04-23). Available on Partner and Enterprise plans.*
diff --git a/docs/marketing/blog/2026-04-23-platform-instructions-governance.md b/docs/marketing/blog/2026-04-23-platform-instructions-governance.md
deleted file mode 100644
index 821c78b8..00000000
--- a/docs/marketing/blog/2026-04-23-platform-instructions-governance.md
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: "Govern Your Entire AI Fleet at the System Prompt Level"
-date: 2026-04-23
-slug: govern-ai-fleet-system-prompt-level
-description: "Platform Instructions lets enterprise IT enforce org-wide and workspace-scoped policy rules at the system prompt level — before the first agent turn executes."
-og_title: "Govern Your Entire AI Fleet at the System Prompt Level"
-og_description: "Global rules. Workspace rules. Prepended to the system prompt at startup. Governance before the first turn, not after."
-og_image: /docs/assets/blog/2026-04-23-platform-instructions-governance-og.png
-tags: [governance, platform-instructions, enterprise, security, it-governance, system-prompt, policy, a2a]
-keywords: [AI fleet governance, enterprise AI policy, system prompt governance, AI agent compliance, platform instructions, workspace policy enforcement, enterprise AI security]
-canonical: https://docs.molecule.ai/blog/govern-ai-fleet-system-prompt-level
----
-
-
-
-# Govern Your Entire AI Fleet at the System Prompt Level
-
-The moment an AI agent goes into production, the governance question stops being theoretical. Which tools can it call? What data can it write to? Are there constraints that apply to every turn, not just the ones where someone remembered to add a guardrail?
-
-Most platforms answer with post-hoc filtering — a rule that checks outputs after the agent has already decided what to do. Platform Instructions takes a different approach: governance at the source, before the first token is generated. Rules are prepended to the system prompt at workspace startup, shaping what the agent is instructed to do from the very first turn. The agent doesn't receive them as a filter. It receives them as context.
-
-## Global and Workspace Scopes
-
-Platform Instructions supports two scoping levels:
-
-- **Global** — applied to every workspace in your organization. One rule, enforced everywhere across your entire AI fleet.
-- **Workspace** — applied to a specific workspace only. Fine-grained control without global impact.
-
-When a workspace starts, Molecule AI resolves all applicable instructions — combining global rules with workspace-specific ones — and prepends them to the agent's system prompt. The distinction matters: a filter can be worked around; a system prompt instruction shapes the agent's reasoning from the ground up.
-
-## The API
-
-Platform Instructions are managed via a REST API:
-
-```bash
-# Create a global instruction (org-admin token required)
-POST /instructions
-Authorization: Bearer
-Content-Type: application/json
-
-{
- "scope": "global",
- "content": "Before invoking any tool that writes to external storage, confirm the target path is within the org-approved sandbox directory. Reject and report if not."
-}
-
-# Create a workspace-scoped instruction
-POST /instructions
-Authorization: Bearer
-Content-Type: application/json
-
-{
- "scope": "workspace",
- "workspace_id": "ws_01HXKM3T8PRQN4ZW7XYVD2EJ5A",
- "content": "This workspace handles customer PII. Redact all PII fields in tool outputs before writing to external systems."
-}
-
-# Retrieve resolved instructions for a workspace
-# (wsAuth-gated — workspace can only read its own)
-GET /workspaces/ws_01HXKM3T8PRQN4ZW7XYVD2EJ5A/instructions/resolve
-Authorization: Bearer
-```
-
-The resolve endpoint is gated by wsAuth — the calling workspace's own token. Workspaces cannot enumerate or retrieve instructions from other workspaces. There is no cross-workspace read-back. Each instruction is capped at 8KB of content. Resolved instruction sets are fetched once at startup and cached, so governance is enforced without adding latency to individual agent turns.
-
-## Enforcement Before Execution
-
-The architectural difference from post-hoc policy is timing. A post-hoc filter evaluates after the agent decides what to do. Platform Instructions are in the system prompt before the agent decides anything.
-
-For regulated environments where the requirement is "prevent bad behavior" not "flag bad behavior," that distinction is everything. A compliance team that requires PII redaction doesn't want the agent to write raw PII and redact it on the way out — they want the agent to reason about redaction as part of its core task framing. Platform Instructions makes that possible.
-
-## Enterprise Security: ACLs That Match the Requirement
-
-Platform Instructions are enterprise-only because enterprise governance requires enterprise-grade access control:
-
-- **Global instructions** are managed by org admins — not workspace owners
-- **Workspace instructions** are managed by workspace admins within their own scope only
-- **Resolve endpoint** requires wsAuth — a workspace cannot retrieve another workspace's instructions
-- **No cross-workspace enumeration** — the API returns nothing to callers outside the owning scope
-
-For IT governance teams, this is the access control surface the compliance review demands: policy lives at the org level, is enforced at the workspace level, and cannot be read or modified by the agents it governs.
-
-## Get Started
-
-Platform Instructions are available on **Enterprise plans**. To get started:
-
-- Contact your account team or visit your workspace settings
-- Define your first global instruction via POST /instructions
-- Assign workspace-scoped instructions to specific workspaces
-- Verify resolved instructions via GET /workspaces/{id}/instructions/resolve
-
-For a complete governance picture, combine Platform Instructions with Tool Trace — see exactly which tools were called and what inputs were passed, alongside the policy that governed them.
-
----
-
-*Molecule AI is open source. Platform Instructions shipped in Phase 34 (2026-04-23). Enterprise plans include org-scoped governance, wsAuth-gated resolve endpoints, and full instruction audit logs.*
diff --git a/docs/marketing/blog/2026-04-30-phase34-launch/index.md b/docs/marketing/blog/2026-04-30-phase34-launch/index.md
deleted file mode 100644
index a45cde20..00000000
--- a/docs/marketing/blog/2026-04-30-phase34-launch/index.md
+++ /dev/null
@@ -1,218 +0,0 @@
----
-title: "Phase 34: Partner API Keys, SaaS Federation v2, Tool Trace, and Platform Instructions"
-date: 2026-04-30
-slug: phase-34-launch
-description: "Phase 34 ships four production features: Partner API Keys for programmatic org management, SaaS Federation v2 for multi-org collaboration, Tool Trace for full observability, and Platform Instructions for governance at the system prompt level."
-og_title: "Phase 34: Four Production Features for AI Agent Platforms"
-og_description: "Partner API Keys. SaaS Federation v2. Tool Trace. Platform Instructions. Phase 34 ships April 30 — the biggest platform release yet."
-og_image: /docs/assets/blog/2026-04-30-phase34-launch-og.png
-tags: [phase-34, partner-api, federation, observability, governance, enterprise, tool-trace, platform-instructions, a2a]
-keywords: [AI agent platform, Partner API Keys, SaaS Federation, enterprise AI, AI agent observability, agent governance, A2A protocol, production AI]
-canonical: https://docs.molecule.ai/blog/phase-34-launch
----
-
-
-
-# Phase 34: Partner API Keys, SaaS Federation v2, Tool Trace, and Platform Instructions
-
-**April 30, 2026 — GA**
-
-Phase 34 is Molecule AI's biggest platform release yet. Four production features ship today: **Partner API Keys** for programmatic org lifecycle management, **SaaS Federation v2** for cross-org collaboration at scale, **Tool Trace** for complete observability into every agent execution, and **Platform Instructions** for governance enforced at the system prompt level.
-
-These aren't add-ons. They're the infrastructure layer that moves AI agent platforms from "it ran" to "it's under control."
-
----
-
-## Partner API Keys: Programmatic Org Management for Platforms and Resellers
-
-The headline feature of Phase 34 is one that most end users won't see directly — but every platform builder will feel immediately.
-
-When your product needs to create a Molecule AI org on behalf of a customer — a new tenant, a CI environment, a marketplace resale — you shouldn't need a human with a browser. Partner API Keys give marketplace resellers, automation platforms, and CI/CD tooling a scoped, rate-limited, revocable API key — prefixed `mol_pk_` — that authenticates to the partner-facing control plane. No dashboard. No session token. One API call.
-
-```bash
-# Mint a Partner API Key (admin-master-key required)
-POST /cp/admin/partner-keys
-{
- "name": "acme-ci-pipeline",
- "scopes": ["orgs:create", "orgs:list", "workspaces:create"]
-}
-
-# Response — key shown ONCE
-{
- "id": "pak_01HXKM4...",
- "key": "mol_pk_1a2b3c4d5e6f...",
- "name": "acme-ci-pipeline",
- "scopes": ["orgs:create", "orgs:list", "workspaces:create"],
- "created_at": "2026-04-30T00:00:00Z"
-}
-```
-
-With the key in hand, a partner automation pipeline drives the full customer onboarding lifecycle programmatically:
-
-```bash
-# 1. Create the org
-POST /cp/orgs
-Authorization: Bearer mol_pk_1a2b3c4d5e6f...
-{
- "name": "acme-corp",
- "slug": "acme-corp",
- "plan": "standard"
-}
-
-# 2. Poll until the org is provisioned
-GET /cp/orgs/org_01HXKM4.../status
-
-# 3. Ship the customer their login link
-# → https://app.moleculeai.ai/login?org=acme-corp
-
-# 4. Revoke when the integration ends
-DELETE /cp/admin/partner-keys/pak_01HXKM4...
-```
-
-Available scopes: `orgs:create`, `orgs:list`, `orgs:delete`, `workspaces:create`, `billing:read`. Each key has independent rate limits — a misbehaving integration hits its own ceiling without affecting other partners or organic traffic. Every call is audited: the log records which key was used, when, and what it did.
-
-**Pricing tiers and rate limits are [coming soon](https://molecule.ai/pricing).** Contact your Molecule AI account team to request key issuance for your integration.
-
-Partner API Keys are available on Partner and Enterprise plans.
-
----
-
-## SaaS Federation v2: Cross-Org Collaboration Without Credential Sharing
-
-Phase 33 shipped org-scoped API keys — credentials that live at the organization level and reach every workspace in your org. SaaS Federation v2 builds on that foundation to let organizations collaborate across org boundaries, without sharing credentials, without workarounds, and without a separate "enterprise bridge" service to maintain.
-
-Federation v2 introduces a structured trust model between orgs. An org admin grants a named federation trust to a partner org — specifying exactly which workspaces are reachable and which operations are permitted. The trust is scoped, revocable, and auditable. No shared secrets. No bilateral token exchange. No custom middleware.
-
-```bash
-# Org A: establish a trust relationship with Org B
-POST /orgs/:org_a/federation/trusts
-{
- "target_org_id": "org_01HXKM4B...",
- "target_org_name": "Acme Corp",
- "workspace_ids": ["ws_abc123", "ws_def456"],
- "allowed_operations": ["workspaces:read", "channels:read"],
- "expires_at": "2027-04-30T00:00:00Z"
-}
-```
-
-Once established, agents in Org A can route tasks to Org B's workspaces using Molecule AI's existing A2A protocol — with federation claims embedded in the request metadata so the receiving org can verify the caller's org identity without receiving their org token.
-
-**Why this matters:** In Phase 33, cross-org collaboration either required credential sharing (bad) or manual operator handoff (slow). Federation v2 makes it a first-class, auditable, revocable protocol operation. Your AI fleet can hand off work to a partner's fleet — and you can see exactly what was handed off, when, and whether it was permitted.
-
-SaaS Federation v2 is available on Enterprise plans. Contact your account team to enable federation trusts for your orgs.
-
----
-
-## Tool Trace: Full Observability Into Every Agent Execution
-
-When your AI agent produces a wrong answer in production, the question isn't "what did the agent say?" — it's "which tool did it call, with what inputs, and what did it get back?"
-
-Most platforms answer the first question. Tool Trace answers all three — for every call, in every response.
-
-Every A2A response from Molecule AI now includes a structured `tool_trace` array in `Message.metadata`. For each tool invocation:
-
-- **`tool`** — the tool name (`Bash`, `Write`, `Read`, `HTTPRequest`, etc.)
-- **`input`** — the exact parameters passed
-- **`output_preview`** — first ~200 characters of the result
-- **`run_id`** — groups concurrent calls so parallel executions don't collapse into a scrambled sequence
-
-```json
-{
- "metadata": {
- "tool_trace": [
- {
- "tool": "Bash",
- "input": { "command": "go build ./... && go test ./..." },
- "output_preview": "ok auth 0.314s\nok config 0.201s\n--- PASS: TestIntegration (12.3s)",
- "run_id": "01HXKM3T8PRQN4ZW7XYVD2EJ5A"
- },
- {
- "tool": "Read",
- "input": { "file_path": "/workspace/coverage/report.json" },
- "output_preview": "Read 2.1 KB from /workspace/coverage/report.json",
- "run_id": "01HXKM3T8PRQN4ZW7XYVD2EJ5A"
- }
- ],
- "run_id": "01HXKM3T8PRQN4ZW7XYVD2EJ5A"
- }
-}
-```
-
-Instead of "the agent ran the migration and it failed," you get: `tool_call[2] — Bash — kubectl apply -f migration.sql — returned error 1062: Duplicate entry — 0 rows affected — 23ms.` The diagnosis takes minutes, not hours.
-
-Tool Trace is available on all Molecule AI plans. No sampling, no sidecar service. It's in the A2A response metadata.
-
----
-
-## Platform Instructions: Governance at the System Prompt Level
-
-Most governance platforms filter outputs *after* an agent decides what to do. Platform Instructions takes a different approach: governance at the source, before the first token is generated.
-
-Platform Instructions are policy rules prepended to the agent's system prompt at workspace startup. The agent doesn't receive them as a filter. It receives them as part of its task framing from the very first turn — which means the policy shapes the agent's reasoning, not just its output.
-
-### Two Scopes, One Model
-
-- **Global** — applied to every workspace in your organization. One rule, enforced everywhere across your AI fleet.
-- **Workspace** — applied to a specific workspace only. Fine-grained control without global impact.
-
-When a workspace starts, Molecule AI resolves all applicable instructions and prepends them to the system prompt. The distinction matters: a post-hoc filter can be worked around; a system prompt instruction shapes the agent's reasoning from the ground up.
-
-```bash
-# Create a global instruction (org-admin token)
-POST /instructions
-{
- "scope": "global",
- "content": "Before invoking any tool that writes to external storage, confirm the target path is within the org-approved sandbox directory. Reject and report if not."
-}
-
-# Create a workspace-scoped instruction
-POST /instructions
-{
- "scope": "workspace",
- "workspace_id": "ws_01HXKM3T8PRQN4ZW7XYVD2EJ5A",
- "content": "This workspace handles customer PII. Redact all PII fields in tool outputs before writing to external systems."
-}
-```
-
-The resolve endpoint is gated by `wsAuth` — a workspace can only read its own instructions. Each instruction is capped at 8KB. Resolved instruction sets are fetched once at startup and cached, so governance doesn't add per-turn latency.
-
-**For regulated environments, this is the architecture compliance reviews demand:** policy lives at the org level, is enforced at the workspace level, and cannot be read or modified by the agents it governs. Combine with Tool Trace to see exactly which tools were called alongside the policy that governed them.
-
-Platform Instructions are available on Enterprise plans.
-
----
-
-## What This Means for Developers
-
-Phase 34 is an infrastructure release. It doesn't change how agents run — it changes what you can do *after*.
-
-**If you're building a platform on Molecule AI:** Partner API Keys let your marketplace, CI pipeline, or automation tool manage orgs programmatically. Create, provision, audit, revoke — no human in the loop.
-
-**If you're collaborating across orgs:** SaaS Federation v2 makes cross-org agent handoffs a first-class, auditable protocol operation — not a credential-sharing workaround.
-
-**If you're debugging in production:** Tool Trace turns opaque failures into structured traces. You know which tool failed, what it received, what it returned, and how long it took.
-
-**If you're in a regulated industry:** Platform Instructions means governance is in the system prompt before the agent decides anything. Not a filter. Not a separate service. It's part of the workspace contract.
-
----
-
-## Get Started
-
-- **Partner API Keys** — available on Partner and Enterprise plans. Contact your account team to request key issuance. Pricing tiers [coming soon](https://molecule.ai/pricing).
-- **SaaS Federation v2** — available on Enterprise plans. Contact your account team to enable federation trusts.
-- **Tool Trace** — available on all plans. See the [A2A Protocol Reference](/docs/api-protocol/a2a-protocol) for the full `Message.metadata` schema.
-- **Platform Instructions** — available on Enterprise plans. Configure them in your workspace settings or via the REST API.
-
-[Molecule AI](https://molecule.ai) is open source. Phase 34 ships April 30, 2026.
-
-*Phase 34 ships in PRs #1807 (Tool Trace), #XXXX (SaaS Federation v2), and across the platform control plane.*
diff --git a/docs/marketing/campaigns/cloudflare-artifacts-launch/social-copy.md b/docs/marketing/campaigns/cloudflare-artifacts-launch/social-copy.md
deleted file mode 100644
index be0661ec..00000000
--- a/docs/marketing/campaigns/cloudflare-artifacts-launch/social-copy.md
+++ /dev/null
@@ -1,110 +0,0 @@
-# Cloudflare Artifacts — Social Copy
-Campaign: cloudflare-artifacts-launch | Blog: `docs/blog/2026-04-21-cloudflare-artifacts/index.md`
-Publish day: 2026-04-21 (blog live on staging)
-Status: Copy ready — pending Marketing Lead approval
-
----
-
-## X (Twitter) — Primary thread (5 posts)
-
-### Post 1 — Hook (keyword: `AI agent version control`)
-Your AI agent just finished a 3-hour refactor.
-
-What changed? Do you know?
-
-Agents that don't maintain version history leave you reviewing final outputs blind. Cloudflare Artifacts makes the agent's working state a first-class Git repository — with branches, commits, and rollbacks built in.
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
----
-
-### Post 2 — Git-native (keyword: `Git for AI agents`)
-Cloudflare Artifacts speaks Git natively.
-
-Agents use standard `git clone` and `git fetch`. Any Git client works. No new tooling, no custom client library, no proprietary format.
-
-Molecule AI connects every workspace to an Artifacts repo — the platform handles the credential lifecycle so you don't have to.
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
----
-
-### Post 3 — Credential model (keyword: `short-lived Git credentials`)
-The credential model is the part that makes this production-safe:
-
-→ Tokens scoped to a single repo
-→ Short-lived by default (1 hour, capped at 7 days)
-→ Revocable without touching the repo
-
-No long-lived credentials sitting in environment variables. No credential sprawl across your agent fleet.
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
----
-
-### Post 4 — Use cases (keyword: `AI agent audit trail`)
-Real things you can do once your agent's working state is versioned:
-
-• Review every commit the agent made — not just the final output
-• Fork a workspace before a risky operation, roll back if it goes wrong
-• Roll a session back to a known-good state if an agent corrupts a config
-• Build an auditable record of agent decisions without any custom instrumentation
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
----
-
-### Post 5 — CTA
-Cloudflare Artifacts integration ships today with Molecule AI.
-
-Your agents don't just produce outputs — they maintain a versioned working state you can inspect, branch, and roll back.
-
-Configure a workspace → your full version history.
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
-#GitForAgents #AIAgents #AgenticAI #MoleculeAI #Cloudflare
-
----
-
-## LinkedIn — Single post
-
-**Title:** We gave our AI agents a Git history. Here's what that changes.
-
-**Body:**
-
-Most AI agent platforms treat the workspace as a black box — you get a final output, the session ends, and the working state is gone.
-
-We just shipped a Cloudflare Artifacts integration for Molecule AI. It changes the model.
-
-Here's what it means in practice:
-
-**Agents work in a Git repository.** Every workspace is linked to a Cloudflare Artifacts repo. The agent uses standard `git clone` and `git push` — no proprietary client, no custom tooling. Any Git client works.
-
-**Short-lived, repo-scoped credentials.** Tokens are scoped to a single repo, short-lived by default, and revocable immediately. No long-lived credentials in environment variables. The platform handles the credential lifecycle.
-
-**You can review the work, not just the output.** Instead of reading a final result, you `git log` the workspace and see every commit the agent made — with the context of what the agent was working on when it ran.
-
-**Fork before you let it run.** Fork a workspace's repo before a risky operation. If the outcome is bad, you have the original state. If it's good, you merge.
-
-**Roll back a session.** Because Artifacts is fully versioned, a workspace's state at any previous commit is accessible via Git. An agent that corrupts a config file can have its workspace reset to a known-good state by pointing it at an earlier commit.
-
-**Security: API keys don't enter the Git history.** Before any working state is committed, `snapshot_scrub.py` runs over it. API keys, bearer tokens, and sandbox tool output are redacted or excluded before the snapshot enters the git history.
-
-The integration is live now for all Molecule AI workspaces with Cloudflare Artifacts access.
-
-→ https://docs.molecule.ai/blog/cloudflare-artifacts
-
-#AIAgents #AgenticAI #MoleculeAI #Cloudflare #GitOps
-
----
-
-## Campaign notes
-
-**Audience:** Developer / DevOps (X), Platform engineers (LinkedIn)
-**Tone:** Practical, production-first. Lead with the version control story, not the feature list.
-**Differentiation:** Git-native — agents use standard Git, not a proprietary format. Short-lived credentials. Snapshot scrubbing for security.
-**Use case pairing:** X → version history + review workflow (developer angle), LinkedIn → operational safety + audit trail (platform engineering angle)
-**Assets:** Screencast videos at `docs/marketing/devrel/demos/cloudflare-artifacts/` (16:9 + 1:1 + captioned variants)
-**Coordination:** This blog is live — social can go out same day. Coordinate with Social Media Brand queue.
-**Hashtags:** #GitForAgents #AIAgents #AgenticAI #MoleculeAI #Cloudflare
\ No newline at end of file
diff --git a/docs/marketing/campaigns/phase34-launch/phase34-launch-tts-script.txt b/docs/marketing/campaigns/phase34-launch/phase34-launch-tts-script.txt
deleted file mode 100644
index 0b070ca1..00000000
--- a/docs/marketing/campaigns/phase34-launch/phase34-launch-tts-script.txt
+++ /dev/null
@@ -1,13 +0,0 @@
-Phase 34 ships today. Four production features that change what running AI agents at scale actually means.
-
-Feature one: Partner API Keys. Marketplace resellers, CI/CD pipelines, and automation platforms can now provision and manage Molecule AI organizations programmatically. No browser. No admin dashboard. Scoped, rate-limited, revocable API keys with full audit attribution. The mol_pk underscore key model.
-
-Feature two: Tool Trace. Full observability into every agent execution. Tool Trace records every tool call an agent makes — the input, the result, the latency, and the call chain. You see what the agent actually did, not just what it said it did. Built in. Not an add-on.
-
-Feature three: Platform Instructions. Governance enforced at the system prompt level. Set rules like, quote, always tag every outbound message with the org ID, end quote. Or, quote, never output raw API keys, end quote. Or, quote, route sensitive operations through an approval gate, end quote. The rule applies to every agent on your platform. You set it once.
-
-Feature four: SaaS Federation version two. Cross-organization collaboration at scale. Organizations can now establish trust relationships and delegate tasks across org boundaries. With org-scoped API keys, every cross-org call is attributable and auditable. A2A protocol plus Federation version two equals agents that collaborate across organizational boundaries without breaking your audit trail.
-
-Phase 34 is available today. Four production features, not experiments, not betas. Available now on Molecule AI.
-
-docs.molecule.ai slash blog slash phase dash 34 dash launch.
diff --git a/docs/marketing/campaigns/phase34-launch/social-copy.md b/docs/marketing/campaigns/phase34-launch/social-copy.md
deleted file mode 100644
index 88a3ec53..00000000
--- a/docs/marketing/campaigns/phase34-launch/social-copy.md
+++ /dev/null
@@ -1,125 +0,0 @@
-# Phase 34 — Launch Social Copy
-Campaign: phase-34-launch | Blog: `docs/marketing/blog/2026-04-30-phase34-launch/index.md`
-Slug: phase-34-launch
-Publish day: 2026-04-30 (GA day)
-Assets: OG image at `docs/assets/blog/2026-04-30-phase34-launch-og.png`
-Hashtags: #AgenticAI #MoleculeAI #PlatformEngineering #EnterpriseAI #AIobservability #AgentGovernance #A2A
-UTM: `?utm_source=twitter&utm_medium=social&utm_campaign=phase-34-launch`
-
----
-## X Thread — 5 posts
-
-### Post 1 — Hook (the four features)
-Phase 34 ships today.
-
-4 production features that change what "running AI agents at scale" actually means:
-
-→ Partner API Keys — programmatic org lifecycle management
-→ Tool Trace — full observability into every agent execution
-→ Platform Instructions — governance at the system prompt level
-→ SaaS Federation v2 — cross-org collaboration
-
-The biggest Molecule AI release yet.
-→ https://docs.molecule.ai/blog/phase-34-launch
-
----
-
-### Post 2 — Tool Trace (observability)
-Most agent platforms give you: a final output.
-
-Molecule AI Phase 34 gives you: the full trace.
-
-Tool Trace records every tool call an agent makes — the input, the result, the latency, and the call chain. You see what the agent actually did, not just what it said it did.
-
-Built-in. Not an add-on. Not an enterprise tier.
-
-→ https://docs.molecule.ai/blog/phase-34-launch
-
----
-
-### Post 3 — Platform Instructions (governance)
-Platform Instructions let you inject governance rules into every agent's system prompt — without touching your agents' tasks.
-
-Set rules like:
-→ "Always tag every outbound message with the org ID"
-→ "Never output raw API keys"
-→ "Route sensitive operations through approval gate"
-
-The rule applies to every agent that runs on your platform. You set it once.
-
-→ https://docs.molecule.ai/blog/phase-34-launch
-
----
-
-### Post 4 — SaaS Federation v2 (cross-org)
-Phase 33: your agents can talk to each other.
-
-Phase 34: your organizations can talk to each other.
-
-SaaS Federation v2 lets orgs establish trust relationships — delegating tasks, sharing context, and routing work across org boundaries. With org-scoped API keys, every cross-org call is attributable and auditable.
-
-A2A protocol + Federation v2 = agents that collaborate across organizational boundaries without breaking your audit trail.
-
-→ https://docs.molecule.ai/blog/phase-34-launch
-
----
-
-### Post 5 — CTA (the bottom line)
-Phase 34 isn't a feature drop.
-
-It's the layer that makes AI agent platforms production-ready:
-→ You can see what agents did (Tool Trace)
-→ You can govern what agents can do (Platform Instructions)
-→ You can manage orgs at scale (Partner API Keys)
-→ You can collaborate across orgs (SaaS Federation v2)
-
-→ https://docs.molecule.ai/blog/phase-34-launch
-
-#AgenticAI #MoleculeAI #PlatformEngineering #EnterpriseAI #AIobservability
-
----
-
-## LinkedIn — Single Post
-
-**Title:** Phase 34: four production features that move AI agent platforms from "it ran" to "it's under control"
-
-**Body:**
-
-Phase 34 ships today. Four production features — not experiments, not betas, not enterprise-only add-ons. Everything in GA.
-
-Here's what shipped:
-
-**Tool Trace — full observability into every agent execution.**
-Most agent platforms give you a final output. Tool Trace gives you the execution chain: every tool call, its input, result, and latency — in order. You see what the agent actually did. You can replay it, audit it, and debug it.
-
-**Platform Instructions — governance enforced at the system prompt level.**
-Platform Instructions let you inject rules into every agent's system prompt — without touching the agent's task. "Always tag outbound messages with org ID." "Never output raw API keys." "Route sensitive operations through an approval gate." You set it once; it applies to every agent on your platform.
-
-**Partner API Keys — programmatic org lifecycle management.**
-Marketplace resellers, CI/CD pipelines, and automation platforms can now provision and manage Molecule AI orgs via API — no browser, no admin dashboard. Scoped, rate-limited, revocable keys with full audit attribution. The `mol_pk_*` key model.
-
-**SaaS Federation v2 — cross-org collaboration at scale.**
-Org-to-org trust relationships let agents delegate tasks and share context across organizational boundaries. Combined with org-scoped API keys, every cross-org call is attributable and auditable. A2A protocol + Federation v2 = real multi-org workflows.
-
-What's common across all four features: they're all infrastructure-layer. They don't change what your agents do — they change what you can control, see, and scale.
-
-Phase 34 is available today for all Molecule AI plans.
-
-→ [Read the full launch post](https://docs.molecule.ai/blog/phase-34-launch)
-→ [Tool Trace documentation](https://docs.molecule.ai/blog/phase-34-launch#tool-trace)
-→ [Platform Instructions documentation](https://docs.molecule.ai/blog/phase-34-launch#platform-instructions)
-
-**Hashtags:** #AgenticAI #MoleculeAI #PlatformEngineering #EnterpriseAI #AIobservability #AgentGovernance
-**CTA:** Share with the platform engineer on your team who needs to explain to their CTO why AI agent governance matters.
-
----
-
-## Campaign notes
-
-**Audience:** Platform engineers / DevOps / CTOs (X), Enterprise platform teams / DevRel / AI infra leads (LinkedIn)
-**Tone:** Authoritative, infrastructure-layer. Not a features list — a "this changes what production-ready means" narrative.
-**Differentiation:** Tool Trace is built-in (not add-on). Platform Instructions apply at the system prompt level (not prompt engineering). Partner API Keys are API-first (not dashboard-first). Federation v2 + A2A = cross-org with audit trail.
-**Coordination:** Publish 2026-04-30 (GA day). Partner API Keys have a dedicated Apr 28 thread already in queue. This thread covers the umbrella Phase 34 story — complementary, not redundant.
-**Assets:** OG image at `docs/assets/blog/2026-04-30-phase34-launch-og.png`
-**Self-review applied:** No benchmarks, no competitor comparisons, no person names, no pricing tier claims.
-**Status:** Draft — pending Marketing Lead approval
diff --git a/docs/marketing/community/phase34-community-faq.md b/docs/marketing/community/phase34-community-faq.md
deleted file mode 100644
index 09d41e0b..00000000
--- a/docs/marketing/community/phase34-community-faq.md
+++ /dev/null
@@ -1,159 +0,0 @@
-# Phase 34 Community FAQ
-
-*Top-10 anticipated questions from the Molecule community, Phase 34 launch (April 30, 2026).*
-*Prepared for DevRel + Support pre-brief. PM partner name TBD — swap "Acme Corp" placeholder when confirmed.*
-
----
-
-## Q1: What exactly is Tool Trace and when did it exist before?
-
-Tool Trace surfaces per-call reasoning in `Message.metadata.tool_trace`. Before Phase 34, you could infer tool calls from logs, but there was no structured record of *why* the agent chose a particular tool or what reasoning drove the decision. Tool Trace adds a structured array:
-
-```python
-message = await session.send("Deploy my workspace to staging")
-for entry in message.metadata.tool_trace:
- print(entry["tool"], "→", entry["reasoning"])
-# workspace_deploy → User said 'deploy to staging'. Checking env var for target.
-# notify_slack → Deploy succeeded. Sending confirmation to #eng-alerts.
-```
-
-**When it doesn't appear:** Tool Trace is model-dependent. Not all models produce consistent reasoning chains. Claude Sonnet 4 does it reliably. Smaller models may emit partial or no traces. This is documented as alpha.
-
----
-
-## Q2: Is Tool Trace a security boundary?
-
-**No.** Tool Trace is observability, not enforcement. The `reasoning` field is the model's own description of its decision — it's not parsed or acted upon by the runtime. If you need to *prevent* an agent from calling a specific tool, use Platform Instructions or WorkspaceAuth.
-
-Use Tool Trace for: debugging, auditing, building dashboards, evaluating model quality.
-Do not use it for: access control, security enforcement, compliance certification.
-
----
-
-## Q3: What are Platform Instructions and how do they differ from system prompts?
-
-System prompts are per-session, managed by the developer. Platform Instructions are org-wide rules pushed by an admin that agents inherit at session start — they travel with the org, not the session.
-
-```json
-{
- "type": "instruction",
- "instruction": "Always tag resources with cost_center before provisioning.",
- "priority": "required"
-}
-```
-
-Priority levels:
-- `required`: agent cannot override. The runtime enforces it.
-- `preferred`: agent may override with justification. The runtime logs the deviation.
-
-Platform Instructions are stored server-side and applied to every new session in the org. They don't require redeploying or patching prompts.
-
-**Difference from system prompts:**
-
-| | System Prompt | Platform Instruction |
-|---|---|---|
-| Scope | Per session | Org-wide |
-| Management | Developer | Org admin |
-| Override | Full control | `required` = no; `preferred` = with reason |
-| Storage | Application code | Server-side, org config |
-
----
-
-## Q4: How do Partner API Keys work? Can I restrict them to specific workspaces?
-
-Yes. Partner API Keys (`mol_pk_*`) are scoped tokens issued at the org level for programmatic provisioning. Each key has a capability scope:
-
-- `provision:write` — create/read/delete workspaces under the org
-- `read:only` — read-only access to org resources
-- Custom: define a scope per key
-
-Keys are org-level, not user-level. You can issue multiple keys for different integrations — revoke one without affecting others.
-
-```bash
-# Example: provision a workspace with a scoped key
-curl -X POST https://api.molecule.ai/v1/workspaces \
- -H "Authorization: Bearer mol_pk_provision_only_xxxxx" \
- -d '{"name": "acme-corp-build", "template": "standard"}'
-```
-
-Rate limits are tiered by flat-rate plan ($9 / $29 / $99 USD/month). Details are on the pricing page.
-
----
-
-## Q5: What's the difference between Partner API Keys and regular API keys?
-
-Regular API keys are user-level credentials tied to a specific user account. Partner API Keys are org-level scoped tokens designed for product integrations — they allow a partner (like Acme Corp) to build on top of Molecule's API without exposing a human user's credentials.
-
-| | Regular API Key | Partner API Key |
-|---|---|---|
-| Scope | User-level | Org-level |
-| Use case | Developer auth | Product integrations |
-| Provisioning | No | Yes |
-| Revocation | Per user | Per key (granular) |
-
----
-
-## Q6: What is SaaS Federation v2 and when would I use it?
-
-SaaS Federation v2 enables cross-org agent identity and delegation. Org A can define a trust policy allowing Org B's agents to act within a defined scope — without sharing credentials.
-
-**Use cases:**
-- **Partner integrations:** Your product is used by multiple enterprise customers. Federation lets agents in each customer's org act within their own org under their own identity.
-- **Multi-tenant SaaS:** You run a platform where end-user agents need to delegate to your backend agents — Federation provides the trust mesh without pairwise key sharing.
-- **Compliance isolation:** Each org's agents operate under their org's policy, not a shared policy.
-
-The trust model is policy-driven. You define what Org B's agents can do within Org A, and the runtime enforces it. The [docs](https://docs.molecule.ai) cover the full trust model with examples.
-
----
-
-## Q7: How does Platform Instructions interact with SaaS Federation v2?
-
-Platform Instructions are org-scoped — they apply within a single org. Federation v2 is about cross-org delegation. When an agent in Org A delegates to an agent in Org B:
-
-1. Org A's Platform Instructions apply to the delegating session.
-2. Org B's Platform Instructions apply to the receiving session.
-3. The trust policy (defined during Federation setup) determines what the delegated agent can do in Org A's context.
-
-If Org A trusts Org B, the receiving agent operates under Org A's instructions *within the scope defined by the trust policy*. Instructions outside that scope are not automatically granted.
-
----
-
-## Q8: Is Phase 34 production-ready? What's alpha vs beta?
-
-| Feature | Status | Notes |
-|---|---|---|
-| Tool Trace | Alpha | Model-dependent. Large models (Claude Sonnet 4) reliable; smaller models vary. |
-| Platform Instructions | Beta | Functional. `required`/`preferred` priority implemented. |
-| Partner API Keys | Beta | Production-ready for org provisioning. Rate limits apply. |
-| SaaS Federation v2 | Alpha | Trust model documented. Production hardening ongoing. |
-
-Tool Trace and SaaS Fed v2 are marked alpha because the underlying behavior depends on model quality (Tool Trace) and production hardening under real multi-org trust policies (Fed v2). Platform Instructions and Partner API Keys are beta — stable APIs, documented behavior.
-
----
-
-## Q9: How do I migrate from Phase 33 to Phase 34? Are there breaking changes?
-
-No breaking changes in Phase 34. The new fields (`Message.metadata.tool_trace`, Platform Instructions, Partner API Keys) are additive — existing integrations continue to work without modification.
-
-**Migration steps:**
-1. Update your SDK to the Phase 34 client version.
-2. Tool Trace: read `message.metadata.tool_trace` if present; fall back gracefully if absent.
-3. Platform Instructions: set up org-level instructions in the admin console (docs have the walkthrough).
-4. Partner API Keys: generate new keys in the org settings; existing keys remain valid.
-5. SaaS Fed v2: Federation setup is opt-in — existing orgs are unaffected until explicitly configured.
-
----
-
-## Q10: Where do I report bugs or get help with Phase 34 features?
-
-- **Bugs:** Open an issue on [github.com/Molecule-AI/molecule](https://github.com/Molecule-AI/molecule) with the Phase 34 label. Include: SDK version, model used, and a minimal repro if possible.
-- **Questions:** [GitHub Discussions](https://github.com/Molecule-AI/molecule/discussions) — monitored by the team. For urgent production issues, use the support channel in your org's Slack/Discord.
-- **Documentation:** [docs.molecule.ai/changelog](https://docs.molecule.ai/changelog) for full feature docs.
-- **Feature requests:** GitHub Discussions — use the "feature request" category.
-
-For Platform Instructions and Partner API Keys specifically: the docs include runnable examples. Tool Trace examples are in the [agent observability guide](https://docs.molecule.ai).
-
----
-
-*Partner name placeholder "Acme Corp" — swap with confirmed partner name before cross-posting.*
-*Document version: 1.0 — Phase 34 GA, April 30, 2026.*
diff --git a/docs/marketing/community/phase34-discord-announcement.md b/docs/marketing/community/phase34-discord-announcement.md
deleted file mode 100644
index ffe04e5d..00000000
--- a/docs/marketing/community/phase34-discord-announcement.md
+++ /dev/null
@@ -1,33 +0,0 @@
-# Phase 34 Launch — Discord Community Announcement
-
-**Suggested announcement:**
-
----
-
-👋 **Phase 34 is live — here's what's new**
-
-Hey @devs — Phase 34 just shipped. Four features dropping today, April 30, 2026.
-
-**🔍 Tool Trace** *(the one you'll use first)*
-Every tool call now logs its reasoning in `Message.metadata.tool_trace`. Debug your agent's decisions, audit call chains, build observability on top of it. The data's there — it's on you to use it.
-
-```python
-trace = message.metadata.tool_trace
-# [{tool, reasoning, input, output}, ...]
-```
-
-**🏛️ Platform Instructions** *(for org admins)*
-Set org-wide governance rules that every agent in your org inherits at session start. Think: "tag resources with cost_center", "always confirm before prod deploys". Rules travel with the org.
-
-**🔑 Partner API Keys** *(for builders)*
-Scoped `mol_pk_*` tokens for programmatic org provisioning. Provision workspaces under your org with a token scoped to exactly what it needs — nothing more.
-
-**🌐 SaaS Federation v2** *(for multi-tenant setups)*
-Cross-org agent identity and delegation. Define trust policies that let agents in partner orgs act within explicit scopes.
-
-**What to try first**
-Tool Trace. Spin up a session, run a task, inspect `metadata.tool_trace`. You'll immediately see where your agent's reasoning matches — and where it surprises you.
-
-Links: [Docs](https://docs.molecule.ai) · [Changelog](https://docs.molecule.ai/changelog) · [GitHub](https://github.com/Molecule-AI/molecule)
-
-Questions? Drop them here — someone from the team will answer. 🙏
diff --git a/docs/marketing/community/phase34-hn-post.md b/docs/marketing/community/phase34-hn-post.md
deleted file mode 100644
index 43d721e3..00000000
--- a/docs/marketing/community/phase34-hn-post.md
+++ /dev/null
@@ -1,67 +0,0 @@
-# Phase 34 Launch — Hacker News Show HN Post
-
-**Title:** `Molecule Phase 34: Tool Trace, Platform Instructions, Partner API Keys, SaaS Federation v2`
-
-**HN post body (2-3 sentences + link):**
-
-> Show HN: Phase 34 of [Molecule](https://github.com/Molecule-AI/molecule) (open-source agentic framework) is now live. Highlights: Tool Trace surfaces per-call reasoning in Message.metadata, Platform Instructions lets orgs push governance rules to every agent, and Partner API Keys enable scoped programmatic provisioning. Link to full docs in comment.
-
----
-
-**First-reply comment (technical "more context"):**
-
----
-
-Here's what each feature actually does, with enough detail to evaluate whether it's relevant to your work.
-
-**Tool Trace (`Message.metadata.tool_trace`)**
-
-This is the most immediately useful feature for anyone debugging or auditing agent behavior. Every tool call now emits a structured record:
-
-```json
-{
- "tool": "workspace_deploy",
- "reasoning": "User said 'deploy to staging'. Checking env var for target.",
- "input": {"env": "staging"},
- "output": {"status": "ok", "deployment_id": "dep_8xf92"}
-}
-```
-
-`reasoning` is the model's own explanation for why it chose that tool — not post-hoc rationalization. Currently depends on model quality (Claude Sonnet 4 does it consistently; smaller models vary). Works in both single-agent and multi-agent delegation flows.
-
-**Platform Instructions**
-
-Org-level governance rules that agents inherit at session start:
-
-```json
-{
- "type": "instruction",
- "instruction": "Tag all provisioned resources with cost_center tag.",
- "priority": "required"
-}
-```
-
-`priority: "required"` agents cannot override; `priority: "preferred"` they can. This is for multi-tenant deployments where you need to enforce compliance without patching prompts per release. The instructions are stored server-side — they travel with the org, not the session.
-
-**Partner API Keys (`mol_pk_*`)**
-
-Scoped tokens for programmatic org provisioning. Key capabilities:
-- Provision workspaces under your org without admin credentials
-- Token-scoped: `provision:write`, `read:only`, or custom per key
-- Tiered rate limits by flat-rate tier (docs cover the specifics)
-- Keys are org-level, not user-level — useful for product integrations
-
-**SaaS Federation v2**
-
-Cross-org agent identity and delegation. Org A can define a trust policy allowing Org B's agents to act within a defined scope. This is the most architecturally novel piece — the trust model is policy-driven, not pairwise-keyed. The [docs](https://docs.molecule.ai) explain it better than I can in a comment.
-
-**What we're honest about**
-
-- Tool Trace quality depends on the model. Not all models produce consistent reasoning chains.
-- Platform Instructions is a governance tool, not a sandbox. It enforces organizational policy, not security boundaries.
-- SaaS Fed v2 is new — the trust model is documented, but production hardening is ongoing.
-
-Repo: [github.com/Molecule-AI/molecule](https://github.com/Molecule-AI/molecule)
-Docs: [docs.molecule.ai](https://docs.molecule.ai)
-
-Happy to answer questions about specific use cases.
diff --git a/docs/marketing/community/phase34-reddit-post.md b/docs/marketing/community/phase34-reddit-post.md
deleted file mode 100644
index 70b005af..00000000
--- a/docs/marketing/community/phase34-reddit-post.md
+++ /dev/null
@@ -1,68 +0,0 @@
-# Phase 34 Launch — Reddit r/MachineLearning Post
-
-**Suggested title:** `Tool Trace is the feature I didn't know I needed until I used it`
-
-**Self-post body:**
-
----
-
-I've been building with [Molecule](https://github.com/Molecule-AI/molecule) for the past few months, and Phase 34 just shipped — wanted to share what's actually useful rather than what's marketable.
-
-**The feature I'm writing about: Tool Trace**
-
-When an agent decides to call a tool in Molecule, the reasoning behind that call is now surfaced in `Message.metadata.tool_trace[]`. It's not a dashboard. It's not a UI. It's a structured array of `{tool, reasoning, input, output}` objects you can log, inspect, and build on.
-
-Here's what the output looks like in practice:
-
-```python
-message = await session.send("Deploy my workspace to staging")
-print(message.metadata.tool_trace)
-# [
-# {
-# "tool": "workspace_deploy",
-# "reasoning": "User said 'deploy to staging'. Checking env var for target.",
-# "input": {"env": "staging"},
-# "output": {"status": "ok", "deployment_id": "dep_8xf92"}
-# },
-# {
-# "tool": "notify_slack",
-# "reasoning": "Deploy succeeded. Sending confirmation to #eng-alerts.",
-# "input": {"channel": "#eng-alerts", "msg": "staging deploy done"},
-# "output": {"ts": "1776960000"}
-# }
-# ]
-```
-
-This is alpha — `tool_trace` is present when the model emits it, which means quality depends on the model. Larger models like Claude Sonnet 4 do it consistently. Smaller models may be inconsistent. That's honest.
-
-**What Platform Instructions does (the governance layer)**
-
-If you're running a multi-tenant deployment, Platform Instructions lets you push org-wide defaults to every agent in your org:
-
-```json
-{
- "type": "instruction",
- "instruction": "Always tag resources with cost_center before provisioning.",
- "priority": "required"
-}
-```
-
-Agents inherit these at session start. It's not magic — it's a structured override that lets you enforce guardrails without patching agent prompts every release.
-
-**Partner API Keys (mol_pk_*)**
-
-Scoped tokens for programmatic org provisioning. If you're building a product on top of Molecule's API, you can now provision workspaces under your org with a token scoped to `provision:write` only — no admin access needed. The keys support tiered rate limits (9/29/99 USD flat-rate tiers, details on the pricing page).
-
-**SaaS Federation v2**
-
-Multi-tenant control plane. You can now issue agent identities that cross org boundaries — think of it as a trust mesh between partner orgs where agents can delegate to each other under explicit policy. This one's genuinely new and the docs are the best place to understand the trust model.
-
-**What to try first**
-
-If you're evaluating Molecule for agentic workflows, I'd start with the Tool Trace — it's the most immediately actionable. Log a session, look at the trace, and ask yourself whether the reasoning chain matches what you'd expect a good developer to think. If it does, the rest of the stack probably works well for you.
-
-Links: [Docs](https://docs.molecule.ai) · [GitHub](https://github.com/Molecule-AI/molecule) · [Changelog](https://docs.molecule.ai/changelog)
-
----
-
-*Self-post — no affiliate links, no spam. Posting because this is the kind of detail I wish had been available when I was evaluating agent frameworks.*
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-1x1.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-1x1.mp4
deleted file mode 100644
index 60dd3652..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-1x1.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-9x16.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-9x16.mp4
deleted file mode 100644
index 8abedd37..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-9x16.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-1x1.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-1x1.mp4
deleted file mode 100644
index 1326ecfd..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-1x1.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-9x16.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-9x16.mp4
deleted file mode 100644
index 541cd950..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned-9x16.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned.mp4
deleted file mode 100644
index e427d1ed..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast-captioned.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast.mp4 b/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast.mp4
deleted file mode 100644
index 73b96352..00000000
Binary files a/docs/marketing/devrel/demos/cloudflare-artifacts/cloudflare-artifacts-screencast.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-1x1.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-1x1.mp4
deleted file mode 100644
index 371f5bea..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-1x1.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-9x16.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-9x16.mp4
deleted file mode 100644
index 182c8013..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-9x16.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-1x1.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-1x1.mp4
deleted file mode 100644
index a4132044..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-1x1.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-9x16.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-9x16.mp4
deleted file mode 100644
index db614344..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned-9x16.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned.mp4
deleted file mode 100644
index 7a3743c9..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast-captioned.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast.mp4 b/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast.mp4
deleted file mode 100644
index 65c99a7e..00000000
Binary files a/docs/marketing/devrel/demos/memory-inspector-panel/memory-inspector-panel-screencast.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9-captioned.mp4 b/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9-captioned.mp4
deleted file mode 100644
index 3066e969..00000000
Binary files a/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9-captioned.mp4 and /dev/null differ
diff --git a/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9.mp4 b/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9.mp4
deleted file mode 100644
index 46415b88..00000000
Binary files a/docs/marketing/devrel/demos/phase30-hero-video/phase30-hero-video-16x9.mp4 and /dev/null differ
diff --git a/docs/marketing/launches/phase-34-community-announcement.md b/docs/marketing/launches/phase-34-community-announcement.md
deleted file mode 100644
index 7ca85e2e..00000000
--- a/docs/marketing/launches/phase-34-community-announcement.md
+++ /dev/null
@@ -1,137 +0,0 @@
-# Phase 34 Community Announcement
-**Campaign:** Phase 34 GA (April 30, 2026)
-**Owner:** Community Manager
-**Issue:** [Molecule-AI/molecule-core#1836](https://github.com/Molecule-AI/molecule-core/issues/1836)
-**Status:** ✅ Draft complete — ready for April 30 publish
-
----
-
-```
-🚀 Phase 34 shipped!
-
-If you've been running agents in production and wondering what they actually
-did under the hood — today we shipped the visibility to answer that.
-Four platform-level features, no SDK required.
-
-━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
-What's new
-
-🔍 Tool Trace — finally, see what your agents are doing
-──────────────────────────────────────────────
-Every A2A response now carries a tool_trace[] array in Message.metadata.
-For every tool call: the tool name, the input you sent, and a snippet
-of the output — in the order they happened, with run_id pairing so
-parallel calls are traced correctly.
-
-If you've ever spent time reverse-engineering agent behavior from final
-outputs alone, Tool Trace is for you.
-
-Capped at 200 entries per task (prevents runaway loops). Stored in
-activity_logs. Zero extra infrastructure — it's in the response
-envelope your agent already produces.
-
-Docs: docs.moleculesai.app/blog/ai-agent-observability-without-overhead
-PR: #1686 (merged 2026-04-23)
-
-
-📋 Platform Instructions — system prompt for your whole org
-──────────────────────────────────────────────
-Org admins can now configure workspace-level instructions via:
-PUT /cp/platform-instructions
-
-Think of it as a system prompt that applies to every agent in your org —
-no need to update config files per workspace. Set it once, it applies
-to every agent at startup.
-
-Example rules:
- "Never commit directly to main — always open a PR first."
- "Tag all security-sensitive operations with a audit tag."
- "Confirm before running destructive commands in production."
-
-Rules prepend to each agent's effective system prompt, before the
-agent reads its own config. Governance happens before execution,
-not after an incident.
-
-Docs: docs.moleculesai.app/blog/platform-instructions-governance
-
-
-🔑 Partner API Keys (GA April 30) — first agent platform with a
-first-class partner provisioning API
-──────────────────────────────────────────────
-Marketplaces, CI/CD pipelines, and platform builders: you can now
-provision and manage Molecule AI orgs entirely via API, using scoped
-revocable tokens with the mol_pk_* prefix.
-
-Ephemeral test orgs per PR:
- PUT /cp/orgs → run your test suite → DELETE → billing stops.
-
-Tokens are scoped to the orgs they're authorized for, rate-limited
-(60 req/min default, configurable per key), and fully audit-logged.
-Revocation is immediate — no grace period.
-
-GA: April 30, 2026. Docs and early access requests:
-docs.moleculesai.app/blog/partner-api-keys
-
-
-☁️ SaaS Federation v2 — improved multi-org federation
-──────────────────────────────────────────────
-Better cross-tenant isolation, cleaner org lifecycle management, and
-tighter alignment with the Partner API Keys infrastructure. If you're
-operating multiple orgs — for partners, internal teams, or separate
-products — the federation improvements make multi-org setups more
-robust at scale.
-
-Docs: docs.moleculesai.app/guides/external-workspace-quickstart
-
-
-━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
-Quick start
-
-Tool Trace: live now. Inspect message.metadata.tool_trace[] in any
-A2A response — no SDK, no activation step needed.
-Walkthrough: docs.moleculesai.app/blog/ai-agent-observability-without-overhead
-
-Platform Instructions: PUT /cp/platform-instructions (org admin only)
-Walkthrough: docs.moleculesai.app/blog/platform-instructions-governance
-
-Partner API Keys: GA April 30.
-Docs: docs.moleculesai.app/blog/partner-api-keys
-
-SaaS Fed v2: docs.moleculesai.app/guides/external-workspace-quickstart
-
-
-━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
-Try it & tell us what you think
-
-Questions on any of these? Reply here — DevRel and the platform team
-are watching.
-
-Tool Trace feedback especially welcome — we want to know what you'd
-use the trace data for. Drop it in GitHub Discussions:
-github.com/Molecule-AI/molecule-core/discussions
-
-Full Phase 34 blog coverage on staging:
- docs.moleculesai.app/blog/tool-trace-platform-instructions (overview)
- docs.moleculesai.app/blog/ai-agent-observability-without-overhead (Tool Trace)
- docs.moleculesai.app/blog/platform-instructions-governance (Platform Instructions)
- docs.moleculesai.app/blog/partner-api-keys (Partner API Keys)
- docs.moleculesai.app/guides/external-workspace-quickstart (SaaS Fed v2)
-
-━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
-
-*Phase 34 — production-grade AI agents. Nothing to bolt on.*
-```
-
----
-
-## Publishing checklist
-
-- [ ] Discord `#announcements` + `#general` — April 30, ~09:00 PT
-- [ ] Slack `#announcements` — same time
-- [ ] Blog must be live before announcement post goes out
-- [ ] Partner API Keys: do not claim it's live before April 30
-- [ ] Do NOT name design partners in community copy
-- [ ] Monitor threads for 2 hours after posting; route DevRel questions accordingly
\ No newline at end of file
diff --git a/docs/marketing/manual-posting-package.md b/docs/marketing/manual-posting-package.md
deleted file mode 100644
index 7de08f7f..00000000
--- a/docs/marketing/manual-posting-package.md
+++ /dev/null
@@ -1,403 +0,0 @@
-# Manual Social Posting Package
-**Generated by:** Content Marketer (A2A outage fallback)
-**Date:** 2026-04-21
-**Status:** Ready for human execution — no API credentials needed, just paste
-
----
-
-## CAMPAIGN 1: Chrome DevTools MCP (Day 1)
-
-**Blog:** https://docs.molecule.ai/blog/chrome-devtools-mcp
-**Campaign doc:** `docs/marketing/campaigns/chrome-devtools-mcp-seo/social-copy.md`
-**Image assets:** `marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/`
-**CTA link finalized:** ✅ Yes
-
-### X (Twitter) — Exact tweet text (5 posts)
-
-**Post 1:**
-Your AI agent just made a purchase on your behalf.
-What did it buy? From where? With which account?
-Most agents operate in a black box. Browser DevTools MCP makes the browser a first-class tool — with org-level audit attribution on every action.
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Post 2:**
-Browser automation for AI agents usually means: give the agent your credentials, hope it doesn't go somewhere unexpected, and check the logs after.
-That's not a governance model. That's a trust fall.
-Molecule AI's MCP governance layer for Chrome DevTools MCP gives you:
-→ Which agent accessed which session
-→ What it did (navigate, fill, screenshot, submit)
-→ Audit trail with org API key attribution
-One org API key prefix per integration. Instant revocation.
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Post 3:**
-Real things teams use Chrome DevTools MCP for in production:
-• Automated Lighthouse audits on every PR — agent runs the audit, reports the score, flags regressions
-• Visual regression detection — agent screenshots key pages, diffs against baseline, opens tickets on drift
-• Auth scraping — agent reads the authenticated state from an existing browser session
-The governance layer means your security team can see all three in the audit trail.
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Post 4:**
-The MCP protocol lets you connect any compatible tool to any compatible agent.
-What's been missing: visibility into what the agent actually did with that access.
-Molecule AI's MCP governance layer adds:
-• Per-action audit logging with org API key attribution
-• Token-scoped Chrome sessions — no credential sharing across agents
-• Instant revocation without redeployment
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Post 5:**
-Chrome DevTools MCP ships today with Molecule AI Phase 30.
-If you're running AI agents that interact with web UIs — there's a governance story you need to have ready before your security team asks.
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Suggested image:** `marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png`
-**Image alt-text:** "AI agent browser session with MCP protocol governance layer showing org API key attribution and audit trail"
-
----
-
-### LinkedIn — Exact post text
-
-**Title:** Why your AI agent's browser access needs a governance layer
-
-**Body:**
-
-Your AI agent can use a browser. That's useful. But "useful" isn't a security posture.
-
-When an agent operates inside a browser — filling forms, reading session state, navigating authenticated flows — most platforms give you two options: trust it completely, or don't let it near the browser at all.
-
-Molecule AI's Chrome DevTools MCP integration adds a third option: visibility with control.
-
-Here's what "governance layer" actually means in this context:
-
-→ Every browser action is logged with the org API key prefix that made the call. You know which agent touched what session, every time.
-
-→ Chrome sessions are token-scoped. Agent A's session is not Agent B's session. No credential cross-contamination.
-
-→ Revocation is instant. One API call, the key stops working, the session closes. No redeploy.
-
-→ Audit trails are exportable. Your security team can review them without a custom logging pipeline.
-
-This is the difference between "the agent can use a browser" and "the agent's browser access is auditable, attributable, and revocable."
-
-Chrome DevTools MCP is available now on all Molecule AI deployments.
-
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
----
----
-
-## CAMPAIGN 2: Discord Adapter Launch
-
-**Blog:** [BLOG_URL — insert after publish, then update social copy]
-**Campaign doc:** `docs/marketing/campaigns/discord-adapter-launch/social-copy.md`
-**Image assets:** `marketing/devrel/campaigns/discord-adapter-launch/assets/`
-**CTA link:** BLOCKED — pending blog URL. Do NOT post until `[BLOG_URL]` is filled in social-copy.md.
-
-### X (Twitter) — Exact tweet text (5 posts) — DO NOT POST YET
-
-**Post 1:**
-Your team is already in Discord.
-Your AI agent is in Molecule AI.
-Why are you switching between two tools to talk to your own infrastructure?
-Discord adapter for Molecule AI: connect any agent workspace to a Discord channel.
-Slash commands in. Agent responses out.
-
-**Post 2:**
-Most Discord bot integrations require:
-→ Create a bot in the Developer Portal
-→ Set up OAuth2
-→ Handle the Gateway
-→ Manage intents and permissions
-Molecule AI's Discord adapter requires:
-→ One webhook URL
-That's it. The webhook encodes the channel and bot credentials. You paste it in Canvas. You're done.
-
-**Post 3:**
-The Discord adapter uses two standard Discord features:
-→ Incoming Webhooks for outbound messages (agent → Discord)
-→ Discord Interactions for inbound slash commands (Discord → agent)
-No polling. No Gateway. No message-reading permissions.
-Users type `/ask what's our deployment status?` — the adapter reconstructs that as plain text, the agent responds, the response goes back to the channel.
-
-**Post 4:**
-In Molecule AI, a Community Manager agent receives the slash command, delegates to the right sub-agent, and returns the answer to Discord.
-The routing is invisible to the Discord user.
-Discord → Community Manager → (Security Auditor | QA Engineer | PM) → Discord
-Your whole agent team, accessible from a Discord server your team already lives in.
-
-**Post 5:**
-Discord adapter for Molecule AI is live.
-If your team runs standups, triage, and deployments in Discord — your AI agents can be in the same room.
-Connect a workspace in two minutes. Start with a slash command.
-
-**Suggested image:** `marketing/devrel/campaigns/discord-adapter-launch/assets/discord-adapter-social-card.png`
-**Image alt-text:** "Molecule AI Discord adapter showing slash command flow from Discord to agent hierarchy and back"
-
----
-
-### LinkedIn — Exact post text — DO NOT POST YET
-
-**Title:** We put our AI agents in Discord — here's why that's a bigger deal than it sounds
-
-**Body:**
-
-Every AI agent platform eventually gets asked the same question: "can we talk to it from where our team already communicates?"
-
-For a lot of teams, that place is Discord. Not as a notification sink — as a working interface.
-
-We just shipped a Discord adapter for Molecule AI. Here's what made it interesting to build:
-
-The naive approach is a Discord bot with message reading permissions, OAuth flows, Gateway connections, and rate limit handling. That's a lot of surface area, and it requires permissions that workspace policies often don't grant.
-
-The Molecule AI approach is two standard Discord primitives:
-
-→ Incoming Webhooks for outbound messages. You give us a webhook URL. That's the only credential. It encodes the channel and bot credentials. You paste it in Canvas. Done.
-
-→ Discord Interactions for inbound slash commands. Users type `/ask what's our deployment status?`. We parse the command and options from the signed JSON payload. The agent receives it as plain text. The response goes back to the channel.
-
-No polling. No Gateway. No special permissions.
-
-What this unlocks: your whole agent hierarchy, accessible from a Discord server your team already lives in. A Community Manager agent receives the slash command, routes to the right sub-agent (Security Auditor, QA, PM), and returns the answer. The routing is invisible to the Discord user.
-
-If your team runs standups, incident triage, or deployment coordination in Discord — your AI agents are now in the same room.
-
-Discord adapter is live now. [INSERT BLOG URL HERE — DO NOT POST WITHOUT THIS]
-
----
----
-
-## CAMPAIGN 3: Org-Scoped API Keys
-
-**Blog:** https://docs.molecule.ai/blog/org-scoped-api-keys
-**Campaign doc:** `docs/marketing/campaigns/fly-deploy-anywhere/social-copy.md`
-**CTA link:** ✅ Yes (same blog URL as fly-deploy-anywhere)
-
-### X (Twitter) — Exact tweet text (5 posts)
-
-**Post 1:**
-You have 20 agents running in production.
-One of them is making calls you can't trace.
-That's not a hypothetical. That's what happens when you scale past "one ADMIN_TOKEN works fine" — and it usually happens the week before a compliance review.
-Molecule AI org-scoped API keys: named, revocable, audit-attributable credentials for every integration.
-
-**Post 2:**
-The ADMIN_TOKEN problem:
-→ One token, ten agents, impossible to rotate without downtime
-→ No attribution — you can't tell which agent made which call
-→ One compromised token compromises everything
-Org-scoped keys give each integration its own credential with its own identity. Rotate without downtime. Revoke without collateral damage.
-
-**Post 3:**
-Org API keys in the audit log:
-org-token:mole_a1b2 POST /workspaces/ws_abc123/channels 200 12ms
-org-token:mole_a1b2 GET /workspaces/ws_abc123/secrets 200 3ms
-That's the difference between "something called our API" and "ci-deploy-bot called /channels with our DevOps key, at 2:47am, successfully."
-
-**Post 4:**
-Key rotation without downtime:
-1. Mint a new org API key
-2. Update your integration
-3. Revoke the old key
-Both keys are valid simultaneously during the window when you're updating the integration. Zero downtime. Full audit trail.
-
-**Post 5:**
-Org-scoped API keys: now in Molecule AI Canvas → Settings → Org API Keys.
-Named. Revocable. Audit-attributable. Replace shared ADMIN_TOKEN with credentials your compliance team can actually sign off on.
-
----
----
-
-## CAMPAIGN 4: A2A Enterprise (NEW — just created)
-
-**Blog:** https://docs.molecule.ai/blog/a2a-communication-enterprise
-**Campaign doc:** `docs/marketing/campaigns/a2a-enterprise-launch/social-copy.md`
-**CTA link:** ✅ Yes
-**Hero image:** TBD — coordinate with Social Media Brand once workspace recovers
-
-### X (Twitter) — Exact tweet text (5 posts)
-
-**Post 1:**
-Your agents can talk to each other.
-Now prove it.
-"Connect agents" is the easy part. The hard part is knowing which agent called which, what it did, and whether you can revoke access without a redeploy.
-A2A protocol with org-level governance is the difference between "agents connected" and "audit trail exists."
-→ https://docs.molecule.ai/blog/a2a-communication-enterprise
-
-**Post 2:**
-Two agents. Same VPC. Talking directly. That's solved.
-Two agents. Different cloud providers. Across a VPN. A2A still works.
-That's the harder problem — and the one that matters for teams actually running AI at scale across infrastructure boundaries.
-Molecule AI's A2A registry handles cross-infrastructure discovery. Your agents don't care where the other agent lives.
-→ https://docs.molecule.ai/blog/a2a-communication-enterprise
-
-**Post 3:**
-"Which agent accessed which workspace, and what did it do with the data?"
-If your A2A implementation can't answer that question, it's not an enterprise-ready feature. It's a developer preview.
-Molecule AI A2A: org API key attribution on every cross-agent call. Audit trail exportable for compliance review. Revocation in one API call — no redeploy.
-→ https://docs.molecule.ai/blog/a2a-communication-enterprise
-
-**Post 4:**
-Not every agent should be able to reach every other agent.
-Flat agent-to-agent mesh = lateral movement risk at scale.
-Molecule AI's CanCommunicate() hierarchy: same workspace ✓ | siblings ✓ | parent↔child ✓ | everything else ✗ by default.
-Enterprise A2A means scoped communication rights, same as every other access control.
-→ https://docs.molecule.ai/blog/a2a-communication-enterprise
-
-**Post 5:**
-A2A protocol is shipping in Molecule AI Phase 30.
-Every workspace is an A2A server. Every cross-agent call is audit-attributed. Cross-infrastructure discovery is built in.
-If you're running multi-agent systems and can't answer "which agent did what," your A2A story isn't done.
-→ https://docs.molecule.ai/blog/a2a-communication-enterprise
-
-**Suggested image:** [TBD — needs Social Media Brand to generate hero]
-**Image alt-text:** "Two AI agents communicating across different cloud infrastructure via A2A protocol, with org-level API key attribution visible in the audit trail"
-
----
-
-### LinkedIn — Exact post text
-
-**Title:** A2A protocol is solved. A2A governance is not.
-
-**Body:**
-
-Every major AI agent platform is adding A2A support this quarter. "Agents can talk to each other" is no longer a differentiator — it's table stakes.
-
-What's still differentiating: whether your A2A implementation includes a governance layer.
-
-Specifically: when your compliance team asks "which agent accessed which workspace, and what did it do with the data?", can you answer?
-
-Most implementations cannot. They connect agents without logging the calls. They support JSON-RPC 2.0 and SSE streaming but skip the audit trail. They work great in demos and fall apart in enterprise review.
-
-The A2A governance gap looks like this:
-- Connect agents? ✅ (most platforms)
-- Audit trail on every call? ❌ (most platforms)
-- Attribution per call? ❌ (most platforms)
-- Instant revocation? ❌ (most platforms)
-- Cross-infrastructure discovery? ❌ (many platforms)
-- Compliance-ready? ✅ (only platforms with a real governance layer)
-
-LangGraph shipped A2A client (inbound + outbound) in PRs #6645 and #7113. The implementation is technically solid. There's no audit trail, no org-level attribution, and no revocation model.
-
-Molecule AI's A2A implementation includes org API key attribution on every cross-agent call. The audit log shows which key prefix made which request, when, and with what result. Revocation is one API call — the key stops working immediately, and the trail shows exactly what it did before revocation.
-
-The difference between "agents connected" and "agents accountable."
-
-A2A protocol ships in Phase 30. Cross-infrastructure discovery and org API key attribution are available on all production deployments.
-
-→ [Read the full breakdown](https://docs.molecule.ai/blog/a2a-communication-enterprise)
-→ [A2A Protocol Reference](https://docs.molecule.ai/docs/api-protocol/a2a-protocol)
-→ [Org API Keys: Audit Attribution Setup](https://docs.molecule.ai/blog/org-scoped-api-keys)
-
----
----
-
-## EXECUTION NOTES
-
-**Campaigns ready to post immediately:**
-1. Chrome DevTools MCP ✅ (all links finalized)
-2. Org-Scoped API Keys ✅ (all links finalized)
-3. A2A Enterprise ✅ (all links finalized, hero pending Social Media Brand recovery)
-
-**Campaigns BLOCKED until blog URL is confirmed:**
-4. Discord Adapter Launch ❌ (blog not yet published — do NOT post without blog URL in Post 5)
-
-**Image alt-text guide for social posts:**
-- Chrome DevTools MCP: "AI agent browser session with MCP protocol governance layer showing org API key attribution and audit trail"
-- A2A Enterprise: "Two AI agents communicating across different cloud infrastructure via A2A protocol, with org-level API key attribution visible in the audit trail"
-- Discord Adapter: "Molecule AI Discord adapter showing slash command flow from Discord to agent hierarchy and back"
-
-**Suggested posting order:**
-1. Chrome DevTools MCP (Day 1 of launch week)
-2. A2A Enterprise (Day 1 or 2 — coordinate with Marketing Lead on timing)
-3. Org-Scoped API Keys (Day 3-5 — avoid same day as Fly Deploy Anywhere)
-4. Discord Adapter (Day TBD — publish after blog goes live)
-
-**Hashtags (append to all posts):**
-X: #MCP #AIAgents #AgenticAI #MoleculeAI #PlatformEngineering
-LinkedIn: #A2A #AIAgents #AgenticAI #MoleculeAI #EnterpriseAI #PlatformEngineering
-
----
----
-
-## CAMPAIGN 1 ADDENDUM: Chrome DevTools MCP — Day 2 (2026-04-22)
-
-**Status:** ✅ COPY READY — manual execution required (API credentials blocked)
-**Executed by:** Human — copy below is canonical
-**Image:** `marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png`
-**Image alt-text:** "AI agent browser session with MCP protocol governance layer showing org API key attribution and audit trail"
-
-### X Post C — Governance framing | POST AT 09:00 PT
-
-```
-Chrome DevTools MCP: browser automation as a first-class MCP tool.
-
-For prototypes: great. For production: you need something between no browser and full admin. That's the gap Molecule AI's MCP governance fills.
-
-#MCP #AIAgents #MoleculeAI
-```
-
-**Attach image:** `chrome-devtools-mcp-social-card.png`
-**No image alt-text needed for this post**
-
----
-
-### LinkedIn — Governance / enterprise audience | POST AT 10:00 PT window
-
-**Title:** Why your AI agent's browser access needs a governance layer
-
-**Body:**
-
-Your AI agent can use a browser. That's useful. But "useful" isn't a security posture.
-
-When an agent operates inside a browser — filling forms, reading session state, navigating authenticated flows — most platforms give you two options: trust it completely, or don't let it near the browser at all.
-
-Molecule AI's Chrome DevTools MCP integration adds a third option: visibility with control.
-
-Here's what "governance layer" actually means in this context:
-
-→ Every browser action is logged with the org API key prefix that made the call. You know which agent touched what session, every time.
-
-→ Chrome sessions are token-scoped. Agent A's session is not Agent B's session. No credential cross-contamination.
-
-→ Revocation is instant. One API call, the key stops working, the session closes. No redeploy.
-
-→ Audit trails are exportable. Your security team can review them without a custom logging pipeline.
-
-This is the difference between "the agent can use a browser" and "the agent's browser access is auditable, attributable, and revocable."
-
-Chrome DevTools MCP is available now on all Molecule AI deployments.
-
-→ https://docs.molecule.ai/blog/chrome-devtools-mcp
-
-**Attach image:** `chrome-devtools-mcp-social-card.png`
-**Image alt-text:** "AI agent browser session with MCP protocol governance layer showing org API key attribution and audit trail"
-
----
-
-### X Post B (repeat / Lighthouse framing) | POST AT 12:00 PT
-
-```
-Three things you couldn't automate before Chrome DevTools MCP + Molecule AI governance:
-
-1. Lighthouse CI/CD audits — agent opens Chrome, runs Lighthouse, posts score to PR
-2. Visual regression testing — screenshot diffs across agent workflow runs
-3. Authenticated session scraping — agent behind a login with managed cookies
-
-All with org API key audit trail.
-
-#MCP #BrowserAutomation #AIAgents #MoleculeAI #CI
-```
-
----
-
-## API CREDENTIAL STATUS (as of 2026-04-22 08:00 PT)
-
-| Platform | Credentials Present | Working | Action Required |
-|---|---|---|---|
-| X (Twitter) | `X_ACCESS_TOKEN` + `X_ACCESS_TOKEN_SECRET` | ❌ 401 Unauthorized | Manual paste-only today |
-| LinkedIn | `LINKEDIN_CLIENT_ID` + `LINKEDIN_CLIENT_SECRET` | ❌ No access token | Manual paste-only today |
-| Social Media Brand workspace | — | ❌ Unreachable (A2A_ERROR) | Escalate when peer recovers |
-
-**Verdict:** All three Day 2 posts are copy-ready for manual execution. No social API is reachable from any agent workspace today.
\ No newline at end of file
diff --git a/docs/marketing/social/2026-04-26.md b/docs/marketing/social/2026-04-26.md
deleted file mode 100644
index d078c0f3..00000000
--- a/docs/marketing/social/2026-04-26.md
+++ /dev/null
@@ -1,128 +0,0 @@
-# Social Queue — 2026-04-26
-
-**Status:** DRAFT — gap-fill, Phase 34 feature post
-**Source:** `docs/blog/2026-04-23-tool-trace-observability/index.md`
-**Slug:** `ai-agent-observability-without-overhead`
-**Publish day:** 2026-04-26 (Day 6, Phase 34)
-**Assets:** None required — code/output-first posts
-**Hashtags:** #A2A #MCP #AIAgents #AgenticAI #MoleculeAI #Observability
-**UTM:** `?utm_source=twitter&utm_medium=social&utm_campaign=tool-trace-observability`
-
----
-
-## X Thread — 5 posts
-
-### Post 1 — Hook (observability gap)
-Your AI agent just spent 3 hours running.
-It finished. The output looks wrong.
-Which tool call caused it?
-If you don't have a trace, you're debugging blind.
-
-Tool Trace: every tool call, every input, every output — in the A2A response.
-
-→ https://docs.molecule.ai/blog/ai-agent-observability-without-overhead
-
----
-
-### Post 2 — What you actually get
-Most agent platforms give you a result.
-
-Molecule AI A2A with Tool Trace gives you this in the response body:
-
-```
-tool_trace: [
- {
- call_id: "call_01hx...",
- tool: "bash",
- input: { command: "kubectl get pods" },
- output_preview: "NAME READY STATUS ...",
- started_at: "2026-04-23T10:00:01Z",
- duration_ms: 340
- },
- ...
-]
-```
-
-Parallel calls are grouped by run_id. You see the full picture.
-
-→ https://docs.molecule.ai/blog/ai-agent-observability-without-overhead
-
----
-
-### Post 3 — What goes wrong without it
-No trace:
-
-"the agent ran the migration and something broke"
-
-With trace:
-
-"tool_calls[2]: bash — kubectl apply -f migration.sql — returned error 1062: Duplicate entry 'usr_01hx' — 0 rows affected"
-
-Tool Trace turns "something broke" into "this tool, these inputs, this error."
-
-→ https://docs.molecule.ai/blog/ai-agent-observability-without-overhead
-
----
-
-### Post 4 — Parallel traces handled correctly
-Parallel tool calls are the hardest case for agent observability.
-
-Most platforms flatten them. Molecule AI groups parallel calls by run_id:
-
-```
-run_id: "run_01hx..."
- ├── call_01: bash (kubectl get pods) — 340ms
- └── call_02: bash (kubectl get svc) — 180ms
-run_id: "run_01hx...B"
- └── call_03: http_request (status check) — 2100ms
-```
-
-Each run is independent. Each trace is complete.
-
-→ https://docs.molecule.ai/blog/ai-agent-observability-without-overhead
-
----
-
-### Post 5 — CTA
-Tool Trace is now available on all Molecule AI plans.
-
-Every A2A response can carry the full tool call record — no sampling, no sidecar, no guesswork.
-
-Debug with the same fidelity you'd expect from a real distributed system trace.
-
-→ https://docs.molecule.ai/blog/ai-agent-observability-without-overhead
-
----
-
-## LinkedIn — Single Post
-
-**Title:** Most AI agent platforms give you a result. This one gives you a trace.
-
-**Body:**
-
-When an AI agent produces a wrong answer, the question isn't "what did the agent say?" — it's "which tool did the agent call, with what inputs, and what did it get back?"
-
-Most agent platforms answer the first question. Few answer the second.
-
-Molecule AI's Tool Trace feature adds a structured tool call record to every A2A response. For each tool invocation:
-
-→ The call ID and run ID (for grouping parallel calls)
-→ The input parameters
-→ An output preview (first 512 chars)
-→ Timing metadata (started_at, duration_ms)
-
-What this changes in practice:
-
-**Debugging**: Instead of "the agent ran the migration and it failed," you get "tool_call[2] — bash — kubectl apply -f migration.sql — returned error 1062: Duplicate entry." The diagnosis takes minutes, not hours.
-
-**Audit trails**: Every tool call that touched production infrastructure is in the response. No custom instrumentation required.
-
-**Parallel call clarity**: When an agent fires multiple tool calls at once, Molecule AI groups them by run_id — so you see the concurrent calls as a structured tree, not a flattened list.
-
-Tool Trace is available on all plans. No sampling. No sidecar service. It's in the A2A response.
-
-→ [Read the full breakdown](https://docs.molecule.ai/blog/ai-agent-observability-without-overhead)
-→ [A2A Protocol Reference](https://docs.molecule.ai/docs/api-protocol/a2a-protocol)
-
-**Hashtags:** #A2A #AIAgents #AgenticAI #MoleculeAI #PlatformEngineering #AIInfrastructure #Observability
-**CTA:** Bookmark for when your agent does something unexpected — Tool Trace is how you find out why.
diff --git a/docs/marketing/social/2026-04-27.md b/docs/marketing/social/2026-04-27.md
deleted file mode 100644
index 77b4c03a..00000000
--- a/docs/marketing/social/2026-04-27.md
+++ /dev/null
@@ -1,132 +0,0 @@
-# Social Queue — 2026-04-27
-
-**Status:** DRAFT — A2A Enterprise second wave
-**Source:** `docs/marketing/campaigns/a2a-enterprise-launch/social-copy.md` (canonical copy)
-**Blog:** `docs/blog/2026-04-22-a2a-v1-agent-platform/`
-**Slug:** `a2a-enterprise-any-agent-any-infrastructure`
-**Publish day:** 2026-04-27 (Day 7, Phase 34 — A2A Enterprise second wave)
-**Assets:** OG image at `docs/assets/blog/2026-04-22-a2a-enterprise-og.png` (1200x630, 22KB)
-**Hashtags:** #A2A #AIAgents #AgenticAI #MoleculeAI #EnterpriseAI #PlatformEngineering
-**UTM:** `?utm_source=twitter&utm_medium=social&utm_campaign=a2a-enterprise-launch`
-
----
-
-## X Thread — 5 posts
-
-### Post 1 — Hook (A2A governance gap)
-Your agents can talk to each other.
-
-Now prove it.
-
-"Connect agents" is the easy part. The hard part is knowing which agent called which,
-what it did, and whether you can revoke access without a redeploy.
-
-A2A protocol with org-level governance is the difference between "agents connected"
-and "audit trail exists."
-
-→ https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure
-
----
-
-### Post 2 — Infrastructure agnostic
-Two agents. Same VPC. Talking directly. That's solved.
-
-Two agents. Different cloud providers. Across a VPN. A2A still works.
-
-That's the harder problem — and the one that matters for teams actually running
-AI at scale across infrastructure boundaries.
-
-Molecule AI's A2A registry handles cross-infrastructure discovery. Your agents
-don't care where the other agent lives.
-
-→ https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure
-
----
-
-### Post 3 — The compliance question
-"Which agent accessed which workspace, and what did it do with the data?"
-
-If your A2A implementation can't answer that question, it's not an enterprise-ready
-feature. It's a developer preview.
-
-Molecule AI A2A: org API key attribution on every cross-agent call. Audit trail
-exportable for compliance review. Revocation in one API call — no redeploy.
-
-→ https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure
-
----
-
-### Post 4 — Hierarchy model
-Not every agent should be able to reach every other agent.
-
-Flat agent-to-agent mesh = lateral movement risk at scale.
-
-Molecule AI's CanCommunicate() hierarchy: same workspace ✓ | siblings ✓ | parent↔child ✓ |
-everything else ✗ by default.
-
-Enterprise A2A means scoped communication rights, same as every other access control.
-
-→ https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure
-
----
-
-### Post 5 — CTA
-A2A protocol ships in Molecule AI Phase 30.
-
-Every workspace is an A2A server. Every cross-agent call is audit-attributed.
-Cross-infrastructure discovery is built in.
-
-If you're running multi-agent systems and can't answer "which agent did what,"
-your A2A story isn't done.
-
-→ https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure
-
----
-
-## LinkedIn — Single Post
-
-**Title:** A2A protocol is solved. A2A governance is not.
-
-**Body:**
-
-Every major AI agent platform is adding A2A support this quarter. "Agents can talk to each other" is no longer a differentiator — it's table stakes.
-
-What's still differentiating: whether your A2A implementation includes a governance layer.
-
-Specifically: when your compliance team asks "which agent accessed which workspace, and what did it do with the data?", can you answer?
-
-Most implementations cannot. They connect agents without logging the calls. They support JSON-RPC 2.0 and SSE streaming but skip the audit trail. They work great in demos and fall apart in enterprise review.
-
-The A2A governance gap looks like this:
-- Connect agents? ✅ (most platforms)
-- Audit trail on every call? ❌ (most platforms)
-- Attribution per call? ❌ (most platforms)
-- Instant revocation? ❌ (most platforms)
-- Cross-infrastructure discovery? ❌ (many platforms)
-- Compliance-ready? ✅ (only platforms with a real governance layer)
-
-LangGraph shipped A2A client (inbound + outbound) in PRs #6645 and #7113. The implementation is technically solid. There's no audit trail, no org-level attribution, and no revocation model.
-
-Molecule AI's A2A implementation includes org API key attribution on every cross-agent call. The audit log shows which key prefix made which request, when, and with what result. Revocation is one API call — the key stops working immediately, and the trail shows exactly what it did before revocation.
-
-The difference between "agents connected" and "agents accountable."
-
-A2A protocol ships in Phase 30. Cross-infrastructure discovery and org API key attribution are available on all production deployments.
-
-→ [Read the full breakdown](https://docs.molecule.ai/blog/a2a-enterprise-any-agent-any-infrastructure)
-→ [A2A Protocol Reference](https://docs.molecule.ai/docs/api-protocol/a2a-protocol)
-→ [Org API Keys: Audit Attribution Setup](https://docs.molecule.ai/blog/org-scoped-api-keys)
-
-**Hashtags:** #A2A #AIAgents #AgenticAI #MoleculeAI #EnterpriseAI #PlatformEngineering
-**CTA:** Bookmark for when you're evaluating agent frameworks — the protocol explainer covers what the spec doesn't.
-
----
-
-## Campaign notes
-
-**Audience:** Platform engineers (X), Enterprise AI leads / CTOs (LinkedIn)
-**Tone:** Direct, confident. Don't over-explain the protocol — lead with the governance gap.
-**Differentiation:** "A2A is solved. A2A governance is not." is the frame. LangGraph comparison is factual (PRs cited) and not disparaging — they're a legitimate competitor doing a solid thing incompletely.
-**Suggested image:** Cross-infrastructure diagram showing two agent nodes in different cloud environments communicating via the A2A protocol with org API key attribution in the audit log.
-**Coordination:** Publish after blog goes live. A2A v1 Deep-Dive social went Apr 22 — this is the enterprise/governance second wave.
-**Status:** Canonical copy from `a2a-enterprise-launch/social-copy.md` — ready for Social Media Brand execution.
diff --git a/docs/marketing/social/2026-04-28-partner-api-keys/social-copy.md b/docs/marketing/social/2026-04-28-partner-api-keys/social-copy.md
deleted file mode 100644
index 79f2983b..00000000
--- a/docs/marketing/social/2026-04-28-partner-api-keys/social-copy.md
+++ /dev/null
@@ -1,138 +0,0 @@
-# Phase 34 — Partner API Keys Social Copy
-Campaign: partner-api-keys | Blog: `docs/marketing/blog/2026-04-23-partner-api-keys/index.md`
-Slug: partner-api-keys
-Publish day: 2026-04-28 (Day 8, Phase 34)
-Assets: OG image at `docs/assets/blog/2026-04-23-partner-api-keys-og.png`
-Hashtags: #AgenticAI #MoleculeAI #PlatformEngineering #Marketplace #CI/CD #API
-UTM: `?utm_source=twitter&utm_medium=social&utm_campaign=partner-api-keys`
-
----
-## X Thread — 5 posts
-
-### Post 1 — Hook (programmatic org management gap)
-Your marketplace needs to provision a new customer org.
-Your CI pipeline needs a clean test environment.
-Your partner portal needs to spin up agent infrastructure.
-
-None of them should need a human with a browser.
-
-Partner API Keys: programmatic org management via `mol_pk_*`.
-→ https://docs.molecule.ai/blog/partner-api-keys
-
----
-
-### Post 2 — What it actually does (the API surface)
-`mol_pk_*` keys let you:
-
-→ `POST /cp/orgs` — provision an org
-→ `GET /cp/orgs/:id/status` — poll until ready
-→ `DELETE /cp/admin/partner-keys/:id` — revoke cleanly
-
-No browser. No admin dashboard. Just the API.
-
-Scoped to exactly what each integration needs.
-
-→ https://docs.molecule.ai/blog/partner-api-keys
-
----
-
-### Post 3 — CI/CD use case
-Your test suite needs a clean Molecule AI org per run.
-
-Old flow: spin up a test environment → pray nothing's shared → manual cleanup.
-
-New flow:
-1. `POST /cp/orgs` (via `mol_pk_*` key)
-2. Run integration tests
-3. `DELETE /cp/admin/partner-keys/:id`
-4. Org is gone. Run is clean.
-
-No shared state. No test pollution. No manual cleanup.
-
-→ https://docs.molecule.ai/blog/partner-api-keys
-
----
-
-### Post 4 — Marketplace reseller angle
-You run a marketplace. You resell AI agent infrastructure to your customers.
-
-Your customer signs up on your platform.
-You call `POST /cp/orgs` with their details.
-They're redirected to their Molecule AI tenant.
-
-The reseller controls the billing relationship.
-Molecule AI handles the infrastructure.
-
-You never hand a credential to a human.
-
-→ https://docs.molecule.ai/blog/partner-api-keys
-
----
-
-### Post 5 — Scoping + revocation story
-A partner key is only as powerful as you make it.
-
-`orgs:create` → can create orgs, nothing else
-`orgs:list` → can read org status, nothing else
-`billing:read` → can see subscription, nothing else
-
-Revoke a key → the integration stops working immediately.
-The org stays. The path closes.
-
-That's the security model.
-
-→ https://docs.molecule.ai/blog/partner-api-keys
-
----
-
-## LinkedIn — Single Post
-
-**Title:** The difference between "agents can talk to each other" and "your platform can own the agent infrastructure your customers use"
-
-**Body:**
-
-When you're building on top of an AI agent platform, the last thing you want is for every customer onboarding to go through a human with an admin dashboard.
-
-That's the problem Partner API Keys solve.
-
-`mol_pk_*` keys let marketplace resellers, CI/CD pipelines, and automation platforms create and manage Molecule AI orgs programmatically — no browser, no admin session, just an API call.
-
-Here's what a customer onboarding flow looks like:
-
-1. Customer signs up on your marketplace
-2. You call `POST /cp/orgs` with their details
-3. You poll `GET /cp/orgs/:id/status` until provisioning completes
-4. You redirect the customer to their Molecule AI tenant
-
-Your customer gets their agent infrastructure. You control the billing relationship. Molecule AI handles the platform.
-
-The same pattern works for CI/CD: create a temporary org per test run, run integration tests, delete the org and revoke the key. Each run is fully isolated. No shared state. No manual cleanup.
-
-What makes this production-ready versus a prototype:
-
-→ **Scoped by default** — a CI pipeline key gets `orgs:create` + `orgs:list`. A marketplace key gets `orgs:create` + `orgs:delete` + `workspaces:create`. Each key does exactly what its integration needs.
-
-→ **Immediate revocation** — `DELETE /cp/admin/partner-keys/:id` closes the integration path instantly. The org stays; the automation is dead.
-
-→ **Full audit trail** — every API call attributed to the key that made it. You can trace a provisioning event back to the integration that triggered it.
-
-→ **Rate-limited per key** — a misbehaving integration hits its own ceiling without affecting other partners or organic traffic.
-
-Partner API Keys are available on Partner and Enterprise plans. Programmatic org management — not a browser dependency in sight.
-
-→ [Read the integration guide](https://docs.molecule.ai/blog/partner-api-keys)
-→ [Phase 34 Plan](https://docs.molecule.ai/blog/molecule-ai-build-plan) — all eight steps shipped
-
-**Hashtags:** #AgenticAI #MoleculeAI #PlatformEngineering #Marketplace #CICDPipeline #API
-**CTA:** Bookmark for your next platform integration build. Programmatic org management is live.
-
----
-
-## Campaign notes
-
-**Audience:** Platform engineers / API-first builders (X), Marketplace operators / CI/CD teams / enterprise DevOps (LinkedIn)
-**Tone:** Concrete and API-first. Show the flow, not the concept. The CI/CD ephemeral org use case is the most visceral example — use it.
-**Differentiation:** No browser dependency is the core differentiator vs. every other org management flow in the market today.
-**Coordination:** Publish Day 8 (2026-04-28). No same-day conflicts identified in the current queue.
-**Status:** Draft — pending PM confirmation of pricing tier language (Partner/Enterprise plans vs. open beta)
-**Self-review applied:** No timeline claims, no person names, no benchmarks. Pricing tier language flagged above.
\ No newline at end of file
diff --git a/marketing/demos/memory-inspector-panel/narration.mp3 b/marketing/demos/memory-inspector-panel/narration.mp3
deleted file mode 100644
index 9b3f1728..00000000
Binary files a/marketing/demos/memory-inspector-panel/narration.mp3 and /dev/null differ
diff --git a/marketing/demos/memory-inspector-panel/storyboard.md b/marketing/demos/memory-inspector-panel/storyboard.md
deleted file mode 100644
index e515bf97..00000000
--- a/marketing/demos/memory-inspector-panel/storyboard.md
+++ /dev/null
@@ -1,232 +0,0 @@
-# Screencast Storyboard — MemoryInspectorPanel
-
-> **Feature:** `canvas/src/components/MemoryInspectorPanel.tsx` | **Duration:** 60 seconds
-> **Format:** Canvas-led with API/terminal overlay cuts
-
----
-
-## Pre-roll (0:00–0:04)
-
-**Canvas — full screen**
-Single workspace card in Canvas: `data-agent [ONLINE]`. Active tab: `Memory`.
-
-Memory panel visible in right sidebar with an empty state: `◇ No memory entries yet`.
-
-Narration (0:00–0:04):
-> "This agent has been running for an hour. It's stored task results, intermediate findings, and context across its sessions. Now there's a way to inspect it."
-
-**Camera:** Static Canvas frame. 4-second hold. No cursor.
-
----
-
-## Moment 1 — Agent writes memory entries (0:04–0:18)
-
-**Cut to:** Terminal window, dark theme.
-
-Prompt: `agent@data-agent:~$`
-
-```bash
-# Agent writes to its KV memory store
-curl -s -X POST \
- "https://acme.moleculesai.app/workspaces/ws-data-agent-001/memory" \
- -H "Authorization: Bearer ws-token-xxx" \
- -H "Content-Type: application/json" \
- -d '{
- "key": "pipeline/Q1-revenue-findings",
- "value": {
- "region": "APAC",
- "delta": -0.073,
- "contributors": ["enterprise-churn", "demo-loss"],
- "confidence": 0.91
- }
- }' | jq
-```
-
-**Terminal output:**
-
-```json
-{
- "status": "ok",
- "key": "pipeline/Q1-revenue-findings",
- "version": 1
-}
-```
-
-**Camera:** Brief type-in. Cursor moves. JSON response hold on `version: 1` — 1.5s.
-
-Narration (0:06–0:14):
-> "One API call writes a memory entry. Structured data — a key, a value, a version counter. The agent stores what it learns, not just what it's told."
-
-**Second entry:**
-
-```bash
-curl -s -X POST \
- "https://acme.moleculesai.app/workspaces/ws-data-agent-001/memory" \
- -H "Authorization: Bearer ws-token-xxx" \
- -H "Content-Type: application/json" \
- -d '{
- "key": "pipeline/anomalies-detected",
- "value": ["deals-84-day-stale", "renewal-risk-enterprise-3"]
- }' | jq
-```
-
-```json
-{
- "status": "ok",
- "key": "pipeline/anomalies-detected",
- "version": 1
-}
-```
-
-**Camera:** Quick follow. Clean output. Clean finish.
-
-Narration (0:14–0:18):
-> "Version one. Each write is tracked. The agent has a memory — observable, queryable, inspectable."
-
----
-
-## Moment 2 — Canvas Memory panel shows the entries (0:18–0:32)
-
-**Cut to:** Canvas — data-agent workspace, Memory tab active.
-
-Two entry rows visible:
-
-- `pipeline/Q1-revenue-findings` — `v1` — `2m ago` — right chevron
-- `pipeline/anomalies-detected` — `v1` — `1m ago` — right chevron
-
-Entry count badge: `2 entries` in toolbar.
-
-**Camera:** Slow scroll through the two entries. Hold on first row. Highlight `v1` badge and `2m ago` timestamp.
-
-Narration (0:20–0:28):
-> "Back in Canvas. The Memory tab shows every entry — key, version, how long ago it was written. Click any row to see the full value."
-
-**Expand first entry:**
-
-Click on `pipeline/Q1-revenue-findings` row.
-
-Row expands: JSON body shows `delta: -0.073`, `confidence: 0.91`, `contributors: [...]`.
-
-Below JSON: `Updated: Apr 21, 12:34 PM` — `Edit` button — `Delete` button.
-
-**Camera:** Full expand animation. Hold on JSON body. Press Edit.
-
-Narration (0:28–0:32):
-> "One click expands the entry. JSON in view. Edit inline. Version conflict detection built in. That's the Memory Inspector — read, write, version-tracked."
-
----
-
-## Moment 3 — Semantic search with similarity scores (0:32–0:46)
-
-**Canvas continues:** memory panel still open.
-
-Search bar focused. Type: `revenue trends`
-
-**Camera:** Cursor to search bar. Type animation (playback speed 2x). 300ms debounce, then request fires.
-
-**Terminal overlay (brief):**
-
-```bash
-# Semantic query — pgvector backend
-curl -s "https://acme.moleculesai.app/workspaces/ws-data-agent-001/memory?q=revenue%20trends" \
- -H "Authorization: Bearer ws-token-xxx" | jq '.'
-```
-
-**Canvas updates:** entries re-sort. Similarity badges appear:
-
-- `pipeline/Q1-revenue-findings` — `v2` — `91%` — blue badge
-- `pipeline/anomalies-detected` — `v1` — `~34%` — italic dim badge
-
-Top result highlighted with blue ring for 1.5s.
-
-**Camera:** Smooth re-sort. Badge fade-in. Hold on `91%` badge. Brief highlight pulse.
-
-Narration (0:34–0:44):
-> "Type a semantic query — 'revenue trends'. The pgvector backend ranks entries by similarity. 91% match on top. Clearest result surfaces first."
-
-**Callout text (bottom-left):**
-`Vector search — find related entries without exact key matches.`
-
-**Camera:** Clear search — click × button. Entries return to default order. Similarity badges disappear.
-
-Narration (0:44–0:46):
-> "Clear the search — entries return to recency order. Every query, every ranking, visible."
-
----
-
-## Moment 4 — Edit and version bump (0:46–0:54)
-
-**Canvas:** `pipeline/Q1-revenue-findings` entry expanded.
-
-Click `Edit`. JSON textarea appears in expanded body.
-
-Update `delta` from `-0.073` to `-0.068` — slightly revise the finding.
-
-Click `Save`.
-
-**Terminal overlay:**
-
-```bash
-# Edit with optimistic locking
-curl -s -X POST \
- "https://acme.moleculesai.app/workspaces/ws-data-agent-001/memory" \
- -H "Authorization: Bearer ws-token-xxx" \
- -H "Content-Type: application/json" \
- -d '{
- "key": "pipeline/Q1-revenue-findings",
- "value": {
- "region": "APAC",
- "delta": -0.068,
- "contributors": ["enterprise-churn", "demo-loss"],
- "confidence": 0.91
- },
- "if_match_version": 2
- }' | jq
-```
-
-**Terminal output:**
-
-```json
-{
- "status": "ok",
- "key": "pipeline/Q1-revenue-findings",
- "version": 3
-}
-```
-
-**Canvas:** Entry version badge updates: `v3` (yellow pulse on number change).
-
-Narration (0:47–0:52):
-> "Save with `if_match_version: 2`. The entry bumps to version 3. If another agent updated it in the meantime, you'd see a conflict — not a silent overwrite. That's optimistic locking on every write."
-
----
-
-## Close (0:54–1:00)
-
-**Canvas — full frame.** Memory panel open. Entries visible. Clean state.
-
-Narration (0:54–0:58):
-> "Every agent has memory. Every memory entry is versioned, searchable, editable. The Memory Inspector — in Canvas, built into every workspace."
-
-**End card:**
-
-```
-MemoryInspectorPanel
-canvas/src/components/MemoryInspectorPanel.tsx — molecule-core
-```
-
-**Fade to black.**
-
----
-
-## Production Notes
-
-- **Canvas cutaways (pre-roll + moments 2–4):** Use dev canvas with one workspace in active state and at least 2 pre-populated memory entries. Pre-record before the session. When recording Moment 4, seed `pipeline/Q1-revenue-findings` with version 2 so the edit goes to version 3.
-- **Semantic search (Moment 3):** Requires pgvector backend deployed (issue #776). If pgvector is not available in the demo environment, show the empty-state search result ("No memories match your search") and narrate it as: "Without pgvector deployed, semantic search shows a clean empty state — the UI degrades gracefully without errors."
-- **Terminal theme:** Same as AGENTS.md + CF Artifacts storyboards — dark zinc, JetBrains Mono 14pt.
-- **Camera:** Screenflow / Camtasia. 1440×900 record → 1080p export.
-- **Callout text:** Amber ring `#E8A000`, 1s fade-in/out, bottom-left at 90% opacity.
-- **Version badge highlight:** On Moment 4 version bump, briefly pulse `v3` badge with blue ring `#3B82F6` — 1s hold.
-- **Similarity badges:** Blue `#3B82F6` for ≥80%, gray for 50–79%, italic gray for <50%. 1px rounded pill shape.
-- **VO recording:** Consistent pacing with other Phase 30 screencasts. Match voice talent.
-- **Music:** No music. Consider a subtle single-tone click at 0:04 (first memory write) and 0:54 (end card).
\ No newline at end of file
diff --git a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-hero.png b/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-hero.png
deleted file mode 100644
index 21edbdbd..00000000
Binary files a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-hero.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png b/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png
deleted file mode 100644
index 9d916fcb..00000000
Binary files a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/chrome-devtools-mcp-tts.mp3 b/marketing/devrel/campaigns/chrome-devtools-mcp-seo/chrome-devtools-mcp-tts.mp3
deleted file mode 100644
index 60c04c81..00000000
Binary files a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/chrome-devtools-mcp-tts.mp3 and /dev/null differ
diff --git a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/queue-ready-to-post.md b/marketing/devrel/campaigns/chrome-devtools-mcp-seo/queue-ready-to-post.md
deleted file mode 100644
index 55a5e615..00000000
--- a/marketing/devrel/campaigns/chrome-devtools-mcp-seo/queue-ready-to-post.md
+++ /dev/null
@@ -1,202 +0,0 @@
-# Chrome DevTools MCP — Day 1 Campaign Queue
-**Created by:** Content Marketer (2026-04-21, 15:15 UTC)
-**Status:** READY TO POST — no social API credentials found in codebase
-**Platforms:** X (Twitter) + LinkedIn
-**CTA link:** https://docs.molecule.ai/blog/chrome-devtools-mcp
-**Assets:** `/workspace/repo/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/`
-
----
-
-## X — 5-Post Thread (Primary, PMM-approved)
-
-### Post 1 of 5 — Hook
-```
-Your AI agent just made a purchase on your behalf.
-
-What did it buy? From where? With which account?
-
-Most agents operate in a black box. Browser DevTools MCP makes the browser a first-class
-tool — with org-level audit attribution on every action.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Post 2 of 5 — Problem framing
-```
-Browser automation for AI agents usually means: give the agent your credentials, hope it
-doesn't go somewhere unexpected, and check the logs after.
-
-That's not a governance model. That's a trust fall.
-
-Molecule AI's MCP governance layer for Chrome DevTools MCP gives you:
-→ Which agent accessed which session
-→ What it did (navigate, fill, screenshot, submit)
-→ Audit trail with org API key attribution
-
-One org API key prefix per integration. Instant revocation.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Post 3 of 5 — Use case, concrete
-```
-Real things teams use Chrome DevTools MCP for in production:
-
-• Automated Lighthouse audits on every PR — agent runs the audit, reports the score, flags regressions
-• Visual regression detection — agent screenshots key pages, diffs against baseline, opens tickets on drift
-• Auth scraping — agent reads the authenticated state from an existing browser session
-
-The governance layer means your security team can see all three in the audit trail.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Post 4 of 5 — Competitive / positioning
-```
-The MCP protocol lets you connect any compatible tool to any compatible agent.
-
-What's been missing: visibility into what the agent actually *did* with that access.
-
-Molecule AI's MCP governance layer adds:
-• Per-action audit logging with org API key attribution
-• Token-scoped Chrome sessions — no credential sharing across agents
-• Instant revocation without redeployment
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Post 5 of 5 — CTA
-```
-Chrome DevTools MCP ships today with Molecule AI Phase 30.
-
-If you're running AI agents that interact with web UIs — there's a governance story
-you need to have ready before your security team asks.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
----
-
-## LinkedIn — Single post
-
-**Title:** Why your AI agent's browser access needs a governance layer
-
-**Body:**
-```
-Your AI agent can use a browser. That's useful. But "useful" isn't a security posture.
-
-When an agent operates inside a browser — filling forms, reading session state, navigating
-authenticated flows — most platforms give you two options: trust it completely, or don't
-let it near the browser at all.
-
-Molecule AI's Chrome DevTools MCP integration adds a third option: visibility with control.
-
-Here's what "governance layer" actually means in this context:
-
-→ Every browser action is logged with the org API key prefix that made the call. You know
-which agent touched what session, every time.
-
-→ Chrome sessions are token-scoped. Agent A's session is not Agent B's session. No credential
-cross-contamination.
-
-→ Revocation is instant. One API call, the key stops working, the session closes. No redeploy.
-
-→ Audit trails are exportable. Your security team can review them without a custom logging pipeline.
-
-This is the difference between "the agent can use a browser" and "the agent's browser access
-is auditable, attributable, and revocable."
-
-Chrome DevTools MCP is available now on all Molecule AI deployments.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
----
-
-## A/B/C Secondary X Copy Variants
-
-*(Source: `/workspace/repo/marketing/devrel/chrome-devtools-mcp-social-copy.md` — file not found in repo.
-If variants A/B/C exist elsewhere, use these as thread fillers or Day 2 repeats)*
-
-### Variant A (Technical / developer)
-```
-Chrome DevTools MCP gives your AI agents a 23-tool browser surface.
-23 actions. Every one logged. Every one attributable to an org API key.
-
-This is what "MCP governance layer" means in practice.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Variant B (Audit / compliance)
-```
-Your security team just asked: "Which agent accessed which browser session, and when?"
-
-With Molecule AI's Chrome DevTools MCP governance layer, you have the answer.
-Not a custom pipeline. Not a custom log. Just the audit trail.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
-### Variant C (Hook variant)
-```
-"AI agent, go buy me something."
-
-Before you run that — do you know which session it'll use? Which credentials?
-What it'll do if the checkout flow changes?
-
-Chrome DevTools MCP + Molecule AI: the browser is a first-class, auditable tool.
-
-→ docs.molecule.ai/blog/chrome-devtools-mcp
-
-#MCP #AIAgents #AgenticAI #MoleculeAI
-```
-
----
-
-## Assets on Disk
-
-```
-/workspace/repo/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-hero.png
-/workspace/repo/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-social-card.png
-/workspace/repo/marketing/devrel/campaigns/chrome-devtools-mcp-seo/assets/chrome-devtools-mcp-tts.mp3
-```
-
-Social card image: `chrome-devtools-mcp-social-card.png`
-Hero image: `chrome-devtools-mcp-hero.png`
-
----
-
-## Campaign Notes (from PMM brief)
-
-- **X audience:** Developer / DevOps — lead with Lighthouse / visual regression use case
-- **LinkedIn audience:** Enterprise platform engineers — lead with governance / compliance
-- **Differentiation claim:** Org API key audit attribution — competitors can't match
-- **Spacing:** Do NOT post same day as fly-deploy-anywhere (suggested: Day 3-5 for Fly)
-- **Campaign source doc:** `/workspace/repo/docs/marketing/campaigns/chrome-devtools-mcp-seo/social-copy.md`
-
----
-
-## Posting Instructions
-
-1. Post X thread in sequence (Posts 1–5), ~15–30 min apart
-2. Post LinkedIn as standalone after thread
-3. Attach `chrome-devtools-mcp-social-card.png` to Posts 1 and LinkedIn
-4. A/B/C variants: use as thread additions (post 1.5, 2.5 etc.) or Day 2 reposts
-5. Tag nothing extra — hashtags already in copy
diff --git a/marketing/devrel/campaigns/discord-adapter-launch/assets/discord-adapter-social-card.png b/marketing/devrel/campaigns/discord-adapter-launch/assets/discord-adapter-social-card.png
deleted file mode 100644
index 5a5a2f93..00000000
Binary files a/marketing/devrel/campaigns/discord-adapter-launch/assets/discord-adapter-social-card.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-hero.png b/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-hero.png
deleted file mode 100644
index 435fc821..00000000
Binary files a/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-hero.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-social-card.png b/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-social-card.png
deleted file mode 100644
index 42c35674..00000000
Binary files a/marketing/devrel/campaigns/fly-deploy-anywhere/assets/fly-deploy-anywhere-social-card.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-audit-log.png b/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-audit-log.png
deleted file mode 100644
index a26cc239..00000000
Binary files a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-audit-log.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-before-after.png b/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-before-after.png
deleted file mode 100644
index a6c691c8..00000000
Binary files a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-before-after.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-canvas-ui.png b/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-canvas-ui.png
deleted file mode 100644
index f3ab1915..00000000
Binary files a/marketing/devrel/campaigns/org-api-keys-launch/org-api-keys-canvas-ui.png and /dev/null differ
diff --git a/marketing/devrel/campaigns/org-api-keys-launch/social-copy.md b/marketing/devrel/campaigns/org-api-keys-launch/social-copy.md
deleted file mode 100644
index b1018cd4..00000000
--- a/marketing/devrel/campaigns/org-api-keys-launch/social-copy.md
+++ /dev/null
@@ -1,115 +0,0 @@
-# Org-Scoped API Keys — Social Copy
-Campaign: org-api-keys | Blog PR: docs#51 | Issue: molecule-ai/internal#6
-Publish day: TBD — post Phase 30 blog launch (do not same-day as chrome-devtools-mcp-seo)
-Status: Ready for scheduling — post Chrome DevTools MCP launch (Day 2 slot)
-
----
-
-## X (Twitter) — Primary thread (5 posts)
-
-### Post 1 — Hook
-
-Your CI pipeline calls your agent API.
-Your Zapier integration calls your agent API.
-Your monitoring tool calls your agent API.
-
-They all use the same token.
-That's a problem — before you even ship.
-
-Molecule AI org-scoped API keys: one credential per integration. Named, revocable, audit-attributable.
-
----
-
-### Post 2 — Problem framing
-
-ADMIN_TOKEN works great — until it doesn't.
-
-→ Can't rotate without downtime (10 agents use it simultaneously)
-→ Can't attribute which integration made a call (no prefix in logs)
-→ Can't revoke just one (one compromised token compromises everything)
-
-Org-scoped API keys fix all three.
-
----
-
-### Post 3 — How it works (the product)
-
-Molecule AI org API keys:
-
-→ Mint via Canvas UI or POST /org/tokens
-→ sha256 hash stored server-side, plaintext shown once
-→ 8-character prefix visible in every audit log line
-→ Immediate revocation — next request, key is dead
-→ Works across all workspaces AND workspace sub-routes
-
-Rotate without downtime. Attribute every call. Revoke instantly.
-
----
-
-### Post 4 — Compliance angle
-
-"We need to know which integration called that API endpoint."
-
-Org-scoped API keys: every call tagged with the key's 8-char prefix in the audit log.
-Full provenance in `created_by` — which admin minted the key, when, what it's been calling.
-
-That's the answer your compliance team needs.
-
----
-
-### Post 5 — CTA
-
-Org-scoped API keys ship today on all Molecule AI deployments.
-
-If you're running multi-agent infrastructure and you have a single ADMIN_TOKEN —
-today is a good day to fix that.
-
-→ https://docs.moleculeai.ai/blog/org-scoped-api-keys
-→ https://canvas.moleculeai.ai (Settings → Org API Keys)
-
----
-
-## LinkedIn — Single post
-
-**Title:** One ADMIN_TOKEN across your whole agent fleet is a compliance risk, not a convenience
-
-**Body:**
-
-At two agents, one ADMIN_TOKEN feels fine.
-
-At twenty agents, it's a single point of failure that you can't rotate, can't audit,
-and can't compartmentalize.
-
-Molecule AI's org-scoped API keys change the model:
-
-→ One credential per integration — "ci-deploy-bot", "devops-rev-proxy", not "the ADMIN_TOKEN"
-→ Every API call tagged with the key's prefix in your audit logs
-→ Instant revocation — one key compromised, one key revoked, zero downtime for other integrations
-→ `created_by` provenance on every key — which admin created it, when, and what it can reach
-
-The keys work across every workspace in your org — including workspace sub-routes,
-not just admin endpoints.
-
-This is the credential model that makes multi-agent infrastructure defensible at scale.
-
-Org-scoped API keys are available now on all Molecule AI deployments.
-
-→ https://docs.moleculeai.ai/blog/org-scoped-api-keys
-
----
-
-## Campaign notes
-
-**Audience:** Platform engineers / DevOps (X), Security / compliance / engineering leadership (LinkedIn)
-**Tone:** Direct problem-solution. No fluff. Platform engineers respond to specificity.
-**Differentiation:** The rotation-without-downtime story is the primary hook — it's the most visceral ADMIN_TOKEN pain.
-**Use case pairings:** X → rotation + attribution (DevOps pain), LinkedIn → compliance + provenance (security team concern)
-**Hashtags:** #AgenticAI #MoleculeAI #DevOps #PlatformEngineering #Security
-**Coordination:** Do NOT post on same day as chrome-devtools-mcp-seo. Suggested spacing: Chrome DevTools MCP Day 1, Org API Keys Day 2, Fly Day 3–5.
-**CTA links (confirmed 2026-04-21):**
-- Docs: https://docs.moleculeai.ai/blog/org-scoped-api-keys
-- Canvas → Org API Keys: https://canvas.moleculeai.ai (Settings → Org API Keys)
-**Visual assets (✅ generated 2026-04-21):**
-- `org-api-keys-canvas-ui.png` — Canvas Org API Keys UI mockup
-- `org-api-keys-before-after.png` — Before/after credential model
-- `org-api-keys-audit-log.png` — Audit log terminal output
diff --git a/marketing/devrel/demos/screencasts/phase30-screencast-05-agents-md-auto-generation.mp4 b/marketing/devrel/demos/screencasts/phase30-screencast-05-agents-md-auto-generation.mp4
deleted file mode 100644
index 18a268d5..00000000
Binary files a/marketing/devrel/demos/screencasts/phase30-screencast-05-agents-md-auto-generation.mp4 and /dev/null differ
diff --git a/marketing/devrel/demos/screencasts/phase30-screencast-06-cloudflare-artifacts.mp4 b/marketing/devrel/demos/screencasts/phase30-screencast-06-cloudflare-artifacts.mp4
deleted file mode 100644
index 8d1d5782..00000000
Binary files a/marketing/devrel/demos/screencasts/phase30-screencast-06-cloudflare-artifacts.mp4 and /dev/null differ