| name | rust-cli |
|---|---|
| description | Umbrella guide for the rust-cli skill family: route Rust CLI Skill work through intake, description, scaffolding, feature extension, validation, and publish/release while preserving the constitution, package layout contract, and packaging boundaries. |
Use this umbrella skill when you need one entrypoint for the full rust-cli development workflow and want to resume from the current stage instead of re-reading every operation document from scratch.
This file is the router and shared contract for the rust-cli skill family. The
phase-specific skills under stages/ hold the stage instructions. Treat
constitution.md, instructions/*.md, and the release runbook assets as the
canonical detailed references.
| Phase skill | Use it when | Canonical references | Primary outcome |
|---|---|---|---|
rust-cli-intake |
You need to classify the work as scaffold, extend, validate, or publish; confirm required inputs; and load the shared rules before changing a project. | constitution.md, instructions/new.md, instructions/add-feature.md, instructions/validate.md |
The next stage is selected with the required inputs assembled. |
rust-cli-description |
The workflow needs one authoritative description contract before scaffold, extend, validate, or publish surfaces change. | instructions/new.md, instructions/add-feature.md, constitution.md |
The approved purpose summary, positioning statement, and downstream description surfaces are aligned. |
rust-cli-scaffold |
You are creating a new Rust CLI Skill project from this package and already have an approved description contract from the earlier description stage. |
instructions/new.md, constitution.md |
A new scaffolded project exists, reuses the approved description contract, and is ready for validation. |
rust-cli-extend |
You are adding stream or repl support to an existing scaffolded project. |
instructions/add-feature.md, constitution.md |
The requested feature is added without breaking the shared runtime contract. |
rust-cli-validate |
You need to audit an existing project, or you have just scaffolded or extended one and need a compliance report. | instructions/validate.md, constitution.md |
A validation report states whether the project is compliant, usable with warnings, or blocked by errors. |
rust-cli-publish |
You are closing the workflow after validation, preparing a release, rehearsing the destination mirror, checking destination configuration, or following the supported real publication path. | docs/release/skill-release-runbook.md, .github/workflows/release.yml, release/skill-release.config.json, package.json |
The package ends in report_only, dry-run review, rehearsal, or the supported GitHub Actions release path with the right destination configuration. |
- Treat
constitution.mdas the top-level ruleset whenever an instruction file leaves room for interpretation. - Reuse
instructions/new.md,instructions/add-feature.md, andinstructions/validate.mdas the source of truth for detailed step lists, exact checks, and file-level expectations. - Preserve the shared runtime contract in every generated or modified project:
plain-text
--help, structuredhelp, stable structured errors, user-scoped runtime directories, and the Active Context surface. - Keep one approved description contract across Cargo metadata,
SKILL.md, README, help text, and publish-facing summaries. Thedescriptionstage owns that contract. - Keep the generated package layout explicit: generated skills may include package-local packaging-ready metadata or support fixtures when a supported capability requires them, but repository-owned CI workflows, release scripts, and release automation remain outside generated skill outputs.
- Do not invent workflows beyond the package's supported capability boundary:
create a new project, extend it with
streamorrepl, validate it, or publish it through the documented release assets. - When resuming work, return to the earliest incomplete stage instead of stacking new work on top of a broken scaffold.
- After scaffolding or extending a project, finish with validation before reporting the work as complete.
- Treat local
release:dry-run, exact-mirror rehearsal, and the real GitHub Actions release workflow as different stages of confidence. Do not describe a local dry run or rehearsal as if it performed the production publish.
Choose the phase skill using the user request plus the current project state:
- Use
intakewhen the request is ambiguous, when inputs are incomplete, or when you need to decide whether the work isnew,extend,validate, orpublish. - Use
descriptionafterintakewhenever the work creates a new generated skill or changes the generated skill's user-facing contract. - Use
scaffoldwhen the user wants a brand-new Rust CLI Skill project and no valid project directory exists yet for that work, after thedescriptionstage has approved the description contract. - Use
extendwhen a scaffolded project already exists and the user wants to addstreamorrepl, or when description-impacting work must continue into feature changes after thedescriptionstage. - Use
validatewhen the user explicitly asks for compliance checking, or after scaffold/extend work to verify the result. - Use
publishwhen validation has succeeded and the workflow needs its final closure, or when the user explicitly wants a release, a release dry run, a destination-config check, or an exact-mirror rehearsal.
If more than one phase seems plausible, inspect the target directory and route to the earliest stage that is not clearly complete.
Successful validation still routes into publish by default. When the user did
not ask for release side effects, publish becomes a report-first closure
stage instead of stopping at validate.
- If the target project directory does not exist yet, resume at
scaffold. - If the directory exists but is missing the core scaffolded files required by
instructions/add-feature.md, do not force feature work through; return toscaffoldor treat the project as not ready for extension. - If the directory exists and the request is to add
streamorrepl, resume atextend. - If the project was just scaffolded or extended, always continue into
validate. - If the user wants a release but the latest substantive change has not been
validated yet, return to
validatebefore enteringpublish. - If validation is current and no explicit release action was requested, still
continue into
publishso the workflow ends withreport_onlyreadiness or no-publish closure. - If validation is already current and the work is about
release:dry-run, destination configuration, rehearsal, or the documented release path, resume atpublish. - If validation exposes structural issues that prevent later work from being trustworthy, step back to the phase that owns the failing surface and fix it there before re-running validation.
- New project request: route
intake->description->scaffold->validate->publishwhen no project directory exists yet. - Feature extension request: route
intake->extend->validate->publishwhen the target project exists and the requested feature isstreamorrepl, unless the request also changes the public description contract. - Description-impacting update request: route
intake->description->extend->validate->publishwhen an existing generated skill changes purpose, positioning, or user-facing contract. - Validation-oriented request: route
intake->validate->publishwhen the user wants an audit or a post-change compliance pass. - Publish-oriented request: route
intake->publishonly when validation is current; otherwise send the workflow back throughvalidatefirst. - Ambiguous mixed request: choose the earliest incomplete stage instead of skipping ahead to a later phase mentioned in the same prompt.
Typical development flows are:
- New project:
intake->description->scaffold->validate->publish - Add feature:
intake->extend->validate->publish - Description-impacting update:
intake->description->extend->validate->publish - Release preparation:
intake->validate->publish - Validation-only audit:
intake->validate->publish
Move across phases without pausing unless the current phase needs missing user inputs or hits a blocking precondition that cannot be resolved from the repo.
Carry these references across phases:
constitution.mdinstructions/new.mdinstructions/add-feature.mdinstructions/validate.mddocs/release/skill-release-runbook.md.github/workflows/release.ymlrelease/skill-release.config.jsonpackage.json- the target project path, if one exists
- the selected optional feature, if the work is an extension
- the validation report from the latest pass
Each phase may recover missing state from the filesystem, but it should prefer already known paths and user-confirmed intent when available.