feat(wyre-site-editor): conversational wyre.ai content editing for non-technical users - #140
Conversation
…n-technical users 4 skills (site-editing / site-preview / site-publish / setup) + 3 commands. No .mcp.json — not a gateway vendor; v1 has zero local-MCP dependencies. Contract: wyre-ai docs/decap-content-contract.md (pearl, v1 @ 392cfdc). Guardrails: JSON allowlist only, dollar amounts never writable, publish gated on green checks + explicit post-preview confirm (identity-independent). Marketplace 1.15.0; adds 'marketing' category + WYRE vendor mapping.
Analyst 5-area review — READY (one non-blocking tightening offered; merge is boss's call)1. Scope/shape — matches dispatch: 4 skills + 3 commands, no 2. Enforcement-text precision (the review target — full top-to-bottom read of the publish path):
3. Contract fidelity (decap-content-contract v1) — all three terms structurally present: positive 2-file allowlist ('and nothing else') with planned additions LOCKED-gated; dollar-values-never-writable with the generated-file explanation AND a redirect behavior; squash-only in workflow + Never list. 4. Mechanics — marketplace 1.15.0; 'marketing' category added consistently across validator set + type union + entry (three surfaces, no drift); CI 'Marketplace + plugin validation' green = the drift chain verified by its own gate. 5. PENDING identity — visibly blockquote-marked, absorbs both decision branches, and explicitly re-binds every publishing gate under a managed credential. Non-blocking as claimed. Verdict: READY. — Walter (analyst) |
) wyre-site-editor is Angela's internal wyre.ai editorial-workflow plugin, not an MSP-vendor integration for this public catalog. It shipped here by mistake in #140 (~13:04Z 2026-07-14). No secrets or credentials were exposed (docs/workflow content + internal-process names only — see the exposure review in the PR description). Migrated intact to the new private WYRE-AI/wyre-ai-plugins marketplace. Removes the plugin directory and its marketplace.json entry; bumps marketplace version 1.19.0 -> 1.20.0. Aaron-directed removal (relayed via boss), task_1784065550382. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
What
New plugin
wyre-site-editor— lets a non-technical teammate (Angela, WYRE marketing) edit wyre.ai content by talking: plain-language request → allowlisted JSON edit → PR → live Cloudflare preview URL → publish only on green checks + her explicit post-preview confirm. Aaron-dispatched (boss task task_1784028735636); design reviewed + approved by boss pre-build.Shape
site-editing(NL request → contract-conform edit + PR),site-preview(extract<hash>.wyre-ai-6m3.pages.devfrom the deploy run log),site-publish(the ONLY merge path — 3 mandatory gates),setup(one-time guided machine setup)/edit-site,/preview-site,/publish-site.mcp.json— not a gateway vendor; v1 has zero local-MCP dependencies (URL-first preview, no headless browser on a non-technical machine)1.15.0; addsmarketingcategory (2-lineVALID_CATEGORIESextension) +WYREvendor mapping; docs data regeneratedContract
Builds against
wyre-ai/docs/decap-content-contract.mdv1 (pearl,392cfdc; label-infra delta3277b8a). Guardrails baked into skill text: editable-file allowlist only; pricing dollar values never writable (structural, per contract); Zod shims/config/layout off-limits; one change-set per PR; squash-only; no gate relaxes under a bot credential (contract term, verbatim).Verification
claude plugin validate— root ✔ + per-plugin ✔ (local)check-marketplace-drift.mjs --base origin/main✔ (64 entries)npm run generate+npm run buildgreen; plugin renders with vendor WYRE, category marketinghttps://b74b2f2b.wyre-ai-6m3.pages.dev, HTTP 200, change visible) → closed. One infra finding (missingangela-contentlabel) fixed + contract-doc'd.Open (non-blocking)
Identity on Angela's machine (her own GH account [recommended] vs bot PAT) is with Aaron; the setup skill ships with (a) as primary and a clearly-marked
[PENDING — identity decision]section that absorbs his answer without rework.Review
Requesting Walter 5-area. Merge: boss's call.