release-deploy
Prepare a project for release, then deploy it to the target the project
actually uses. Run the pre-release checks first. Never commit, tag, push,
publish, or deploy without explicit user intent for that specific action.
Activate when
- The project is at a release or submission boundary
- A verified build needs to be shipped to a deployment target
- A package needs to be published to a registry
Do not activate when
- Code is still being written or fixed -> use
implement-minimal or
test-and-debug
- The change only needs a review, not a release -> use
public-code-review
- The repository does not exist yet -> use
oss-bootstrap
Required inputs
- Confirmation that this is a release boundary
- The intended deployment target, if known
- Explicit intent for any commit, tag, push, publish, or deploy action
Low-resource policy
Read the first of these that exists, then follow it. Full validation runs only
at this boundary:
${CLAUDE_PROJECT_DIR}/.claude/shared/LOW_RESOURCE.md
$HOME/.claude/shared/LOW_RESOURCE.md
If neither exists, apply this fallback: run one expensive command at a time,
prefer the narrowest validation first, disable watch mode, reuse existing
environments, and run full validation only at this milestone. Do not scan the
whole filesystem to locate the policy.
Context-efficiency policy
Read the first of these that exists, then follow it:
${CLAUDE_PROJECT_DIR}/.claude/shared/CONTEXT_EFFICIENCY.md
$HOME/.claude/shared/CONTEXT_EFFICIENCY.md
If neither exists, apply this fallback: select files before reading; use
targeted searches and bounded ranges; do not preload references; do not reread
unchanged files; finish one atomic increment and stop; create a compact handoff
before context is exhausted.
Facts that must not be assumed
- The deployment target; detect it, do not guess
- The build, test, and publish commands
- That credentials for a target are present and valid
- That the user wants any push, publish, or deploy performed now
Preflight
git status --short and git log --oneline -5 for current state
- Confirm the working tree is clean, or report what is uncommitted
- Detect the deployment target ->
references/target-detection.md
- Read the low-resource policy; plan expensive checks sequentially
Workflow
- Run the pre-release checklist and record each item's result ->
templates/deployment-checklist.md
- Run expensive checks one at a time: full tests, lint, typecheck, build
- If any blocking check fails, stop and report; do not deploy
- Detect the deployment target ->
references/target-detection.md
- Follow the target-specific reference for its steps and gates
- For every commit, tag, push, publish, or deploy, require explicit intent
for that action before running it
- Record what was performed and what was intentionally not performed
- Produce the report using
templates/release-report.md
- Stop
Pre-release checklist
Verify where applicable; record each as passed, failed, skipped, or requires
human review ->
templates/deployment-checklist.md
- Clean-clone setup instructions
- README accuracy
- LICENSE present and correct
.gitignore covers generated and secret files
.env.example present and free of real secrets
- No secret exposure
- No personal or proprietary data exposure
- Targeted tests for changed areas
- Full test suite
- Lint
- Type checking
- Production build
- Demo or mock mode behaves as documented
- No broken documentation links
- Dependency licenses compatible and attribution complete
- Known limitations documented
- No unsupported production claims
- No accidental generated files or binaries
Deployment targets
Detect the target, then follow its reference. Each reference states its
prerequisites, steps, validation, and the explicit-intent gate before any
irreversible action.
- GitHub repository ->
references/github-repository.md
- Static site or GitHub Pages ->
references/static-and-pages.md
- Docker image or container ->
references/docker.md
- Node service ->
references/node-service.md
- Python service ->
references/python-service.md
- Archestra app ->
references/archestra-app.md
- MCP server ->
references/mcp-server.md
- Package registry (npm, PyPI, crates) ->
references/package-release.md
Low-resource execution
- Run expensive checks sequentially, never in parallel
- Begin with targeted checks, then the full suite once
- Never run watchers or duplicate builds
- Never start unrelated services
- Record checks that could not be run; do not treat a skip as a pass
Decision branches
- The target cannot be detected -> stop and ask; do not guess a target
- A blocking check fails -> stop and report; do not deploy
- Credentials for the target are absent -> stop; do not prompt for or store them
- The user has not confirmed intent for a push, publish, or deploy -> prepare
the action and stop before executing it
Stop conditions
- Any blocking pre-release check fails
- The deployment target requires credentials that are not present
- The user has not given explicit intent for the irreversible action
- The target cannot be determined from the repository
Human review boundaries
- Any publish, tag, push, or deploy to a public destination
- Any action using deployment or registry credentials
- Any change to production configuration or DNS
- Version-number selection for a release
Final report
Produce the report in the exact section order of
templates/release-report.md, listing checks as
passed, failed, skipped, or requires human review, and clearly separating
actions performed from actions intentionally not performed. Then stop.
1---2name: release-deploy3description: Prepare a public open-source project for release and deploy it to a detected target. Use at a release or submission boundary to verify setup, docs, secrets, tests, lint, build, and licenses, then follow the target-specific deployment path. Runs expensive checks sequentially. Never publishes, tags, commits, pushes, or deploys without explicit user intent.4---56# release-deploy78Prepare a project for release, then deploy it to the target the project9actually uses. Run the pre-release checks first. Never commit, tag, push,10publish, or deploy without explicit user intent for that specific action.1112## Activate when1314- The project is at a release or submission boundary15- A verified build needs to be shipped to a deployment target16- A package needs to be published to a registry1718## Do not activate when1920- Code is still being written or fixed -> use `implement-minimal` or21 `test-and-debug`22- The change only needs a review, not a release -> use `public-code-review`23- The repository does not exist yet -> use `oss-bootstrap`2425## Required inputs2627- Confirmation that this is a release boundary28- The intended deployment target, if known29- Explicit intent for any commit, tag, push, publish, or deploy action3031## Low-resource policy3233Read the first of these that exists, then follow it. Full validation runs only34at this boundary:3536- `${CLAUDE_PROJECT_DIR}/.claude/shared/LOW_RESOURCE.md`37- `$HOME/.claude/shared/LOW_RESOURCE.md`3839If neither exists, apply this fallback: run one expensive command at a time,40prefer the narrowest validation first, disable watch mode, reuse existing41environments, and run full validation only at this milestone. Do not scan the42whole filesystem to locate the policy.4344## Context-efficiency policy4546Read the first of these that exists, then follow it:4748- `${CLAUDE_PROJECT_DIR}/.claude/shared/CONTEXT_EFFICIENCY.md`49- `$HOME/.claude/shared/CONTEXT_EFFICIENCY.md`5051If neither exists, apply this fallback: select files before reading; use52targeted searches and bounded ranges; do not preload references; do not reread53unchanged files; finish one atomic increment and stop; create a compact handoff54before context is exhausted.5556## Facts that must not be assumed5758- The deployment target; detect it, do not guess59- The build, test, and publish commands60- That credentials for a target are present and valid61- That the user wants any push, publish, or deploy performed now6263## Preflight64651. `git status --short` and `git log --oneline -5` for current state662. Confirm the working tree is clean, or report what is uncommitted673. Detect the deployment target ->68 [references/target-detection.md](references/target-detection.md)694. Read the low-resource policy; plan expensive checks sequentially7071## Workflow72731. Run the pre-release checklist and record each item's result ->74 [templates/deployment-checklist.md](templates/deployment-checklist.md)752. Run expensive checks one at a time: full tests, lint, typecheck, build763. If any blocking check fails, stop and report; do not deploy774. Detect the deployment target ->78 [references/target-detection.md](references/target-detection.md)795. Follow the target-specific reference for its steps and gates806. For every commit, tag, push, publish, or deploy, require explicit intent81 for that action before running it827. Record what was performed and what was intentionally not performed838. Produce the report using84 [templates/release-report.md](templates/release-report.md)859. Stop8687## Pre-release checklist8889Verify where applicable; record each as passed, failed, skipped, or requires90human review ->91[templates/deployment-checklist.md](templates/deployment-checklist.md)9293- Clean-clone setup instructions94- README accuracy95- LICENSE present and correct96- `.gitignore` covers generated and secret files97- `.env.example` present and free of real secrets98- No secret exposure99- No personal or proprietary data exposure100- Targeted tests for changed areas101- Full test suite102- Lint103- Type checking104- Production build105- Demo or mock mode behaves as documented106- No broken documentation links107- Dependency licenses compatible and attribution complete108- Known limitations documented109- No unsupported production claims110- No accidental generated files or binaries111112## Deployment targets113114Detect the target, then follow its reference. Each reference states its115prerequisites, steps, validation, and the explicit-intent gate before any116irreversible action.117118- GitHub repository ->119 [references/github-repository.md](references/github-repository.md)120- Static site or GitHub Pages ->121 [references/static-and-pages.md](references/static-and-pages.md)122- Docker image or container ->123 [references/docker.md](references/docker.md)124- Node service ->125 [references/node-service.md](references/node-service.md)126- Python service ->127 [references/python-service.md](references/python-service.md)128- Archestra app ->129 [references/archestra-app.md](references/archestra-app.md)130- MCP server ->131 [references/mcp-server.md](references/mcp-server.md)132- Package registry (npm, PyPI, crates) ->133 [references/package-release.md](references/package-release.md)134135## Low-resource execution136137- Run expensive checks sequentially, never in parallel138- Begin with targeted checks, then the full suite once139- Never run watchers or duplicate builds140- Never start unrelated services141- Record checks that could not be run; do not treat a skip as a pass142143## Decision branches144145- The target cannot be detected -> stop and ask; do not guess a target146- A blocking check fails -> stop and report; do not deploy147- Credentials for the target are absent -> stop; do not prompt for or store them148- The user has not confirmed intent for a push, publish, or deploy -> prepare149 the action and stop before executing it150151## Stop conditions152153- Any blocking pre-release check fails154- The deployment target requires credentials that are not present155- The user has not given explicit intent for the irreversible action156- The target cannot be determined from the repository157158## Human review boundaries159160- Any publish, tag, push, or deploy to a public destination161- Any action using deployment or registry credentials162- Any change to production configuration or DNS163- Version-number selection for a release164165## Final report166167Produce the report in the exact section order of168[templates/release-report.md](templates/release-report.md), listing checks as169passed, failed, skipped, or requires human review, and clearly separating170actions performed from actions intentionally not performed. Then stop.