Extend docs-publisher to publish to GitLab Pages and Cloudflare Pages alongside GitHub Pages — one docs-init run detects the git host and drops in the right deploy pipeline, while the host-agnostic build scripts stay completely untouched.
Read and implement all steps in the plan at docs/plans/add-multi-host-deploy-targets.md — Add Multi-Host Deploy Targets to docs-publisher. Verify against the plan's Tests, Verification, and Acceptance Criteria before reporting done. If everything passed, mark completion in docs/plans/add-multi-host-deploy-targets.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: Add Multi-Host Deploy Targets to docs-publisher. The plan at docs/plans/add-multi-host-deploy-targets.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/add-multi-host-deploy-targets.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/add-multi-host-deploy-targets.md — Add Multi-Host Deploy Targets to docs-publisher. Brief subagents with the plan file at docs/plans/add-multi-host-deploy-targets.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/add-multi-host-deploy-targets.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.
add-multi-host-deploy-targets.html
docs/plans/add-multi-host-deploy-targets.html
docs/plans/add-multi-host-deploy-targets.md
Context
The story behind this plan — what prompted the work and why it matters now.
The docs-publisher plugin (planned in docs/plans/create-docs-publishing-skills.html , still status: todo ) packages the agentics docs pipeline as installable skills: a docs-init command scaffolds docs/ , copies build scripts into the user's project, and drops a GitHub Actions deploy workflow into .github/workflows/ . Today that deploy stage is GitHub-only.
This plan is the verbatim "GitLab Pages and Cloudflare Pages support" Wish List item from that parent plan, promoted to a real feature. It adds two more deploy targets without touching the build scripts — those already emit static HTML into docs/ and are host-agnostic. Only the deploy wrapper changes per host: GitHub Pages uploads a docs/ artifact via Actions, GitLab Pages publishes a public/ artifact from a pages CI job, and Cloudflare Pages either connects the repo through the dashboard or runs wrangler pages deploy in CI.
Dependency: this plan layers onto the docs-publisher plugin skeleton, docs-init , and docs-publish . If the parent plan has not been implemented yet, implement it first — the steps below modify files that parent plan creates.
Resolved decisions: (1) Cloudflare ships both mechanisms — a wrangler.toml for dashboard Git-integration and an optional deploy-cloudflare.yml CI workflow — and docs-init asks the user which to use. (2) docs-publish becomes host-aware so it reports the correct published URL ( github.io / gitlab.io / pages.dev ) per target.
Files that change
Every file this plan touches, and what happens to each one.
- kit/plugins/docs-publisher/reference/
.gitlab-ci.ymlnew GitLab Pages deploy jobdeploy-cloudflare.ymlnew Cloudflare CI deploy workflowwrangler.tomlnew Cloudflare Pages config
- kit/plugins/docs-publisher/commands/
docs-init.mdmodified host detection + template copydocs-publish.mdmodified host-aware published URL
- kit/plugins/docs-publisher/
README.mdmodified document three deploy targetsCHANGELOG.mdmodified multi-host feature entry
kit/plugins/docs-publisher/scripts/detect-host.shnew shared git-host classifier.claude-plugin/marketplace.jsonmodified minor version bump- tests/pages/
deploy-templates.test.shnew template validity smoke testdetect-host.test.shnew host-detection unit testdocs-init-host-copy.test.shnew copy-mapping integration test
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/pages/deploy-templates.test.sh and bash tests/pages/detect-host.test.sh — both exit 0. Then create three throwaway git repos and set their origin remotes to a github.com , a gitlab.com , and a self-hosted URL respectively; run the docs-init copy logic (via tests/pages/docs-init-host-copy.test.sh ) and confirm each repo receives only its host's template in the right place, that the Cloudflare prompt branches correctly between the CI and dashboard file sets, and that a second run leaves an edited deploy file untouched. Finally, run docs-publish --dry-run in each repo and confirm the reported published URL matches the host ( github.io / gitlab.io / pages.dev ). Confirm python3 -m json.tool .claude-plugin/marketplace.json succeeds and the docs-publisher version is higher than on main .
Wrapping up
Three gates that must all pass before this plan is marked completed.
Completion Report
No items to report — all requirements met.