docs/plans/2026-05-05-docs-pages-decoupling.md
For Claude: REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task.
Goal: Split human docs from GitHub Pages output without changing the public Sparkle feed URL.
Architecture: The repository keeps source files only. docs/ becomes the documentation tree, release/ owns Sparkle public source files, and website/out/ is produced during local builds or GitHub Actions runs. A GitHub Pages workflow uploads the generated artifact instead of committing static export output.
Tech Stack: Bash, Next.js static export, GitHub Actions Pages deployment, Sparkle appcast XML.
Files:
docs/readme/ to assets/readme/docs/appcast.xml to release/appcast.xmldocs/release-notes/ to release/release-notes/Steps:
assets/ and release/ if needed.git mv when tracked.docs/plans/ and docs/superpowers/ in place.Files:
docs/, including _next/, index.html, 404.html, app-icons/, generated metadata files, .nojekyll, and CNAME.Steps:
git rm only for generated output files.Files:
website/scripts/publish-docs.shwebsite/package.jsonSteps:
website/out exists.website/CNAME into website/out/.website/out/.nojekyll.release/appcast.xml and release/release-notes/ into website/out/.Files:
.github/workflows/pages.ymlSteps:
master for website, release, and workflow changes.npm ci and npm run build in website/.website/out with actions/upload-pages-artifact.actions/deploy-pages.Files:
docs/readme/.agents/skills/release-preparation/SKILL.mdscripts/release/update_appcast.sh.agents/INDEX.mdSteps:
assets/readme/.release/appcast.xml.build/appcast.xml for local release work.Commands:
rg -n "docs/readme|docs/appcast|docs/release-notes|publish-docs" README*.md .agents website .githubcd website && npm run buildgit status --shortExpected: README references point to assets/readme/; release references point to release/; website build creates website/out and prepares appcast.xml plus release-notes/ there.