Make setup-sites a multi-host publisher — keep the proven GitHub Pages path and add runtime-selectable Netlify, Vercel, and Cloudflare Pages targets that deploy docs/ via each host's CLI. The Vercel target also publishes a Next.js static export ( output: 'export' → next build → upload out/ ) as the one build-requiring variant, still served as prebuilt static files with no host-side build.
Read and implement all steps in the plan at docs/plans/extend-setup-sites-multi-host-publishing.md — Extend setup-sites to publish to Netlify, Vercel, and Cloudflare. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/extend-setup-sites-multi-host-publishing.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
More ways to run this plan — goal & workflow prompts, file path
Achieve this goal: Extend setup-sites to publish to Netlify, Vercel, and Cloudflare. The plan at docs/plans/extend-setup-sites-multi-host-publishing.md describes one approach — use it as reference, but optimize for the outcome. Fan out across parallel subagents where that serves the outcome. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/extend-setup-sites-multi-host-publishing.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
Run a workflow to implement the plan at docs/plans/extend-setup-sites-multi-host-publishing.md — Extend setup-sites to publish to Netlify, Vercel, and Cloudflare. Brief subagents with the plan file at docs/plans/extend-setup-sites-multi-host-publishing.md. Reserve a final verification phase for the lead agent, not a subagent. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/extend-setup-sites-multi-host-publishing.md — tick each step's [x] marker and each criterion's - [x], set status: completed — and re-render the HTML from the spec. If any check failed, leave status: in-progress and say which.
extend-setup-sites-multi-host-publishing.html
docs/plans/extend-setup-sites-multi-host-publishing.html
docs/plans/extend-setup-sites-multi-host-publishing.md
Context
The story behind this plan — what prompted the work and why it matters now.
The setup-sites skill currently scaffolds only GitHub Pages : an Actions workflow, a .nojekyll marker, the one-time Settings → Pages → Source step, and project-site path-prefix URL math. Its name is already host-agnostic, and three of its four artifacts — the landing hub docs/index.html , the scripts/serve-docs.sh preview, and the docs/ layout — work for any static host. Only the workflow, the .nojekyll marker, and the path-prefix URL are GitHub-specific.
Extending the skill to Netlify, Vercel, and Cloudflare Pages lets the same one-command setup publish wherever a project hosts its docs. The design was settled in the clarify + interview rounds: progressive disclosure via per-host reference files; CLI-based deploys ( netlify / vercel / wrangler ); a runtime host picker defaulting to GitHub Pages; straight-to-production after one explicit confirmation; detect-guide-stop on a missing or unauthenticated CLI (never auto-install); and project names that default to the repo basename with override. Straight-to-production was a deliberate choice over preview-first; the compensating safeguards are showing the exact command and resolved project name before the confirmation, documenting how to unpublish in each reference, and noting each host's dashboard rollback.
Files that change
Every file this plan touches, and what happens to each one.
.claude-plugin/marketplace.jsonmodified bump plan-agent to 2.9.0, description, tagsdocs/guides/publish-docs-to-github-pages.mdmodified add "other hosts" cross-reference- kit/plugins/plan-agent/
CHANGELOG.mdmodified 2.9.0 entryREADME.mdmodified table row, section, structure tree
kit/plugins/plan-agent/.claude-plugin/plugin.jsonmodified description names new hostskit/plugins/plan-agent/skills/setup-sites/SKILL.mdmodified host picker + common/host split- kit/plugins/plan-agent/skills/setup-sites/references/
cloudflare-pages.mdnew Wrangler Pages deploynetlify.mdnew Netlify CLI deployvercel.mdnew Vercel CLI deploy
kit/plugins/plan-agent/templates/pages/serve-docs.shmodified generalize the GitHub-Pages-only commenttests/plugins/test-setup-sites.shmodified multi-host smoke assertions
Steps
The step-by-step work, in order — each step says what to do, why it matters, and how to check it worked.
Tests
The tests that prove the change does what it promises.
Definition of done
The plan counts as done when every statement below is true — check each one off as you verify it.
Final check
One last pass to confirm the whole change works end to end.
Run bash tests/plugins/test-setup-sites.sh and confirm it exits 0. Then trace the skill once per host without deploying : github runs the inline workflow / .nojekyll / Pages path; netlify , vercel , and cloudflare each Read the matching references/<host>.md and stop at the confirmation gate before any deploy. Diff SKILL.md to confirm the GitHub-specific blocks are byte-for-byte unchanged where kept inline. Confirm marketplace.json parses and plan-agent 's version is above the value on origin/main . Optionally run /validate-plugin plan-agent .
Wrapping up
Three gates that must all pass before this plan is marked completed.
Completion Report
No items to report — all requirements met.