Package Ebook Release
Core Workflow
Use this skill to prepare a versioned ebook release package. Prefer project scripts over manual packaging.
- Determine the version:
- Use the user-provided version if present.
- Otherwise inspect
tools/package-release.ps1,PROJECT_STATUS.md,README.md,CHANGELOG.md, or latestdist/v*. - Do not silently reuse an old tag if new changes exist.
- Update release metadata when requested:
- README command examples
- PROJECT_STATUS
- CHANGELOG
- package script default version
- timeless manuscript examples should use generic placeholders, not hardcoded old versions.
- Run packaging:
- Use
tools/package-release.ps1if present. - Confirm it rebuilds EPUB, cover, preview, checksums, manifest, and release docs.
- Use
- Validate release artifacts:
- Check EPUBCheck output.
- Check
dist/v<version>/contains expected files. - Check SHA256/manifest coverage.
- Inspect EPUB resources and metadata if needed.
- Git handling:
- Commit local source changes when appropriate.
- Create a local annotated tag only when the release version is finalized.
- Do not push unless the user explicitly asks.
Common PowerShell Commands
Package a release:
powershell -ExecutionPolicy Bypass -File .\tools\package-release.ps1 -Version <version>
Inspect release files:
Get-ChildItem -LiteralPath .\dist\v<version> | Select-Object Name,Length
Read checksums:
Get-Content -LiteralPath .\dist\v<version>\SHA256SUMS.txt
Check Git:
git status --short --branch --ignored
git log --oneline --decorate --max-count=5
Reporting
Report:
- Release version and folder.
- EPUB, cover, and preview filenames.
- EPUBCheck result.
- Release audit/checksum result.
- Commit hash and tag if created.
- Any ignored output files or untracked artifacts that might matter.
Do not delete old release folders, push to GitHub, or overwrite a finalized release without explicit user confirmation.