Skip to content

feat(wyre-site-editor): conversational wyre.ai content editing for non-technical users - #140

Merged
asachs01 merged 1 commit into
mainfrom
feat/wyre-site-editor
Jul 14, 2026
Merged

feat(wyre-site-editor): conversational wyre.ai content editing for non-technical users#140
asachs01 merged 1 commit into
mainfrom
feat/wyre-site-editor

Conversation

@asachs01

Copy link
Copy Markdown
Collaborator

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

  • 4 skills: site-editing (NL request → contract-conform edit + PR), site-preview (extract <hash>.wyre-ai-6m3.pages.dev from the deploy run log), site-publish (the ONLY merge path — 3 mandatory gates), setup (one-time guided machine setup)
  • 3 commands: /edit-site, /preview-site, /publish-site
  • No .mcp.json — not a gateway vendor; v1 has zero local-MCP dependencies (URL-first preview, no headless browser on a non-technical machine)
  • Marketplace 1.15.0; adds marketing category (2-line VALID_CATEGORIES extension) + WYRE vendor mapping; docs data regenerated

Contract

Builds against wyre-ai/docs/decap-content-contract.md v1 (pearl, 392cfdc; label-infra delta 3277b8a). 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)
  • Docs npm run generate + npm run build green; plugin renders with vendor WYRE, category marketing
  • E2E dry-run performed against wyre-ai (PR brand: adopt WYRE MCP Gateway as canonical product name #87, closed unmerged, zero prod impact): edit → branch/title/label convention → PR-triggered deploy → preview URL extracted with the skill's exact command (https://b74b2f2b.wyre-ai-6m3.pages.dev, HTTP 200, change visible) → closed. One infra finding (missing angela-content label) 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.

…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.
@asachs01

Copy link
Copy Markdown
Collaborator Author

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 .mcp.json by design and correctly no MCP claims anywhere (marketplace description included).

2. Enforcement-text precision (the review target — full top-to-bottom read of the publish path):

  • The three gates are unambiguous imperatives; gate 3's exclusion list ('Silence, enthusiasm about the preview, or the original edit request itself is NOT confirmation') kills the two most likely misfire readings.
  • The publish command closes the loophole I went hunting for before I found it: 'Never skip a gate, even if the user pre-confirms in the command invocation itself' — pre-confirmation-in-args is the classic bypass and it's explicitly denied.
  • Single-merge-path is declared on BOTH sides (publish: 'the ONLY path that publishes'; editing: 'Never merge from this skill').
  • One tightening candidate (non-blocking, you asked for exactly this class): gate-2's 'the user has responded to it, that counts' is the one phrase a fresh reader could stretch — responding ≠ having looked. Gate 3 backstops it, but suggested tightening: count only a response that shows they saw the content (comments on specifics), else always fall through to the direct question.
  • Bot-credential term: carried semantically exact ('a bot credential — neither relaxes it'), phrasing not literally verbatim vs the contract's 'relaxes nothing' — binding is identical, noting only for the record.

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)

@asachs01
asachs01 merged commit e12e8c0 into main Jul 14, 2026
2 checks passed
@asachs01
asachs01 deleted the feat/wyre-site-editor branch July 14, 2026 13:04
@github-project-automation github-project-automation Bot moved this from Todo to Done in MSP Claude Plugins Jul 14, 2026
asachs01 added a commit that referenced this pull request Jul 14, 2026
)

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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant