rust-cli Publish
Use this stage when the package has reached its final lifecycle phase after
validation and the next job is report-only closure, dry-run review, rehearsal,
or the supported real publication path.
When To Use This Stage
- Validation has succeeded and the workflow needs final closure.
- The user wants release readiness without running release commands.
- The user wants a local dry run, exact-mirror rehearsal, destination-config
review, or the supported real publication workflow.
Stage Goal
Complete the requested release activity with the correct level of certainty:
- report-first no-publish closure
- repository-owned packaging review that consumes generated package inputs
- local dry-run review
- exact-mirror rehearsal
- or the documented real GitHub Actions release path
Do not collapse those into a single meaning.
Generated skills may contribute package-local packaging-ready metadata or
support fixtures, but repository-owned CI workflows and release scripts remain
outside generated skill packages.
Canonical References
Read the runbook first, then use the workflow, release config, and package
scripts as the implementation-specific release surfaces.
Required Inputs
- the intended release mode:
report_only
dry_run
rehearsal
live_release
- the current validation status for the latest substantive change
- the generated package inputs and any package-local support assets that the
selected packaging path expects
- destination repository configuration strategy:
tracked config, environment override, or workflow dispatch override
- credentials appropriate to the chosen mode
Prerequisites
- The release branch should be ready and follow the commit policy documented in
the runbook.
- Real release flow expects
main as the source release branch.
- Local review uses the documented Node.js and npm baseline.
- Dry runs need a valid
GITHUB_TOKEN or GH_TOKEN that can authenticate the
source repository.
- Real cross-repository publication needs
DESTINATION_REPOSITORY_TOKEN.
Workflow
- Read
../../docs/release/skill-release-runbook.md
and confirm which release mode the user wants.
- Confirm the release prerequisites that match that mode:
- validation is current for the latest meaningful change
- the generated package boundary is satisfied and any package-local support
assets required by the chosen path are present
- destination configuration is available through tracked config, env var, or
workflow dispatch override
- required credentials are present for the chosen path
- If no explicit release action was requested, default to
report_only:
- summarize release readiness, blockers, and next actions
- point to
dry_run, rehearsal, and live_release as explicit follow-up
modes
- do not run release commands
- Verify the formatting baseline with
npm run format:check before any mode
that executes release tooling.
- For local dry-run review:
- run
GITHUB_TOKEN=<valid token> npm run release:dry-run
- inspect whether semantic-release reports a real release or a no-release
outcome
- review the prepared release behavior without claiming a destination
publish occurred
- For exact-mirror rehearsal:
- run the documented
scripts/release/publish-skill-to-target-repo.mjs rehearsal command with
a non-placeholder destination slug or local target
- inspect
.work/release/publish/,
.work/release/last-publication-receipt.json, and
.release-manifest.json
- confirm the exact-mirror tree contains the expected published files
- distinguish repository-owned packaging evidence from final distributable
outputs so the rehearsal is not mistaken for a generated skill package
- For the real release path:
- follow the GitHub Actions workflow in
../../.github/workflows/release.yml
- the supported path is push or dispatch into the workflow, not pretending a
local dry run completed the production publish
- expect the workflow to run
npm ci, npm run format:check,
node scripts/release/verify-release-config.mjs, npm run release:ci,
destination commit message preparation, and the peaceiris publish step
- If release blockers appear, use the runbook's failure recovery guidance for
missing credentials, placeholder destination config, missing runtime
destination config, or no-release outcomes.
Guardrails
- Do not describe local dry-run or rehearsal as if it created the production
release.
- Do not imply that repository-owned CI workflows or release scripts are copied
into generated skill packages.
report_only is the default mode when the user did not explicitly request a
release action.
- Do not skip validation when the latest substantive change has not been
checked yet.
- Use the documented destination resolution order instead of inventing a custom
configuration path.
- Do not claim the destination repository receives a matching tag or GitHub
Release; the runbook explicitly says it does not.
Done Condition
This stage is complete only when the requested release activity has been
performed or reviewed and the user has a clear outcome:
report_only readiness summary
- dry-run result
- rehearsal evidence
- or the supported real release path plus any remaining workflow follow-up
Next Step
- Stop after dry-run or rehearsal if the user asked only for release
preparation.
- Stop after
report_only if the user needed only final closure and readiness
guidance.
- After a real release trigger, monitor or verify the resulting publication
evidence using the workflow outputs and prepared publication artifacts.
1---2name: rust-cli-publish3description: Publish stage for the rust-cli skill family: close the workflow with repository-owned packaging and release actions, including report-only summaries, dry runs, exact-mirror rehearsals, destination configuration checks, and the supported GitHub Actions publication path.4---56# rust-cli Publish78Use this stage when the package has reached its final lifecycle phase after9validation and the next job is report-only closure, dry-run review, rehearsal,10or the supported real publication path.1112## When To Use This Stage1314- Validation has succeeded and the workflow needs final closure.15- The user wants release readiness without running release commands.16- The user wants a local dry run, exact-mirror rehearsal, destination-config17 review, or the supported real publication workflow.1819## Stage Goal2021Complete the requested release activity with the correct level of certainty:2223- report-first no-publish closure24- repository-owned packaging review that consumes generated package inputs25- local dry-run review26- exact-mirror rehearsal27- or the documented real GitHub Actions release path2829Do not collapse those into a single meaning.30Generated skills may contribute package-local packaging-ready metadata or31support fixtures, but repository-owned CI workflows and release scripts remain32outside generated skill packages.3334## Canonical References3536- [`../../docs/release/skill-release-runbook.md`](../../docs/release/skill-release-runbook.md)37- [`../../.github/workflows/release.yml`](../../.github/workflows/release.yml)38- [`../../release/skill-release.config.json`](../../release/skill-release.config.json)39- [`../../package.json`](../../package.json)4041Read the runbook first, then use the workflow, release config, and package42scripts as the implementation-specific release surfaces.4344## Required Inputs4546- the intended release mode:47 - `report_only`48 - `dry_run`49 - `rehearsal`50 - `live_release`51- the current validation status for the latest substantive change52- the generated package inputs and any package-local support assets that the53 selected packaging path expects54- destination repository configuration strategy:55 tracked config, environment override, or workflow dispatch override56- credentials appropriate to the chosen mode5758## Prerequisites5960- The release branch should be ready and follow the commit policy documented in61 the runbook.62- Real release flow expects `main` as the source release branch.63- Local review uses the documented Node.js and npm baseline.64- Dry runs need a valid `GITHUB_TOKEN` or `GH_TOKEN` that can authenticate the65 source repository.66- Real cross-repository publication needs `DESTINATION_REPOSITORY_TOKEN`.6768## Workflow69701. Read71 [`../../docs/release/skill-release-runbook.md`](../../docs/release/skill-release-runbook.md)72 and confirm which release mode the user wants.732. Confirm the release prerequisites that match that mode:74 - validation is current for the latest meaningful change75 - the generated package boundary is satisfied and any package-local support76 assets required by the chosen path are present77 - destination configuration is available through tracked config, env var, or78 workflow dispatch override79 - required credentials are present for the chosen path803. If no explicit release action was requested, default to `report_only`:81 - summarize release readiness, blockers, and next actions82 - point to `dry_run`, `rehearsal`, and `live_release` as explicit follow-up83 modes84 - do not run release commands854. Verify the formatting baseline with `npm run format:check` before any mode86 that executes release tooling.875. For local dry-run review:88 - run `GITHUB_TOKEN=<valid token> npm run release:dry-run`89 - inspect whether semantic-release reports a real release or a no-release90 outcome91 - review the prepared release behavior without claiming a destination92 publish occurred936. For exact-mirror rehearsal:94 - run the documented95 `scripts/release/publish-skill-to-target-repo.mjs` rehearsal command with96 a non-placeholder destination slug or local target97 - inspect `.work/release/publish/`,98 `.work/release/last-publication-receipt.json`, and99 `.release-manifest.json`100 - confirm the exact-mirror tree contains the expected published files101 - distinguish repository-owned packaging evidence from final distributable102 outputs so the rehearsal is not mistaken for a generated skill package1037. For the real release path:104 - follow the GitHub Actions workflow in105 [`../../.github/workflows/release.yml`](../../.github/workflows/release.yml)106 - the supported path is push or dispatch into the workflow, not pretending a107 local dry run completed the production publish108 - expect the workflow to run `npm ci`, `npm run format:check`,109 `node scripts/release/verify-release-config.mjs`, `npm run release:ci`,110 destination commit message preparation, and the `peaceiris` publish step1118. If release blockers appear, use the runbook's failure recovery guidance for112 missing credentials, placeholder destination config, missing runtime113 destination config, or no-release outcomes.114115## Guardrails116117- Do not describe local dry-run or rehearsal as if it created the production118 release.119- Do not imply that repository-owned CI workflows or release scripts are copied120 into generated skill packages.121- `report_only` is the default mode when the user did not explicitly request a122 release action.123- Do not skip validation when the latest substantive change has not been124 checked yet.125- Use the documented destination resolution order instead of inventing a custom126 configuration path.127- Do not claim the destination repository receives a matching tag or GitHub128 Release; the runbook explicitly says it does not.129130## Done Condition131132This stage is complete only when the requested release activity has been133performed or reviewed and the user has a clear outcome:134135- `report_only` readiness summary136- dry-run result137- rehearsal evidence138- or the supported real release path plus any remaining workflow follow-up139140## Next Step141142- Stop after dry-run or rehearsal if the user asked only for release143 preparation.144- Stop after `report_only` if the user needed only final closure and readiness145 guidance.146- After a real release trigger, monitor or verify the resulting publication147 evidence using the workflow outputs and prepared publication artifacts.