- title
- manual-only-deploy
- name
- manual-only-deploy
- description
- Deploy the application to production. Only invoke this manually when you are ready to deploy.
- disable-model-invocation
- true
- allowed-tools
- Bash(npm run build) Bash(npm test) Bash(git push *) Bash(git tag *) Bash(git status) Bash(cat *)
## Deploy workflow
This skill deploys the application. It runs a series of checks before touching anything remote. If any step fails, it stops immediately and reports the failure. It does not retry automatically.
### Step 1: Confirm no uncommitted changes
Run:
```
git status
```
If the output shows modified or untracked files, stop here. Report: "Deploy aborted: there are uncommitted changes. Commit or stash them before deploying." Do not proceed.
### Step 2: Run the test suite
Run:
```
npm test
```
If any test fails, stop here. Report which tests failed and do not proceed.
### Step 3: Build the project
Run:
```
npm run build
```
If the build fails, stop here. Report the error output and do not proceed.
### Step 4: Create a version tag
Read the current version from `package.json`:
```
cat package.json
```
Extract the `version` field. Create a git tag in the format `v<version>-<YYYYMMDD>`:
```
git tag v<version>-<YYYYMMDD>
```
For example, if the version is `2.3.1` and today is 2026-05-13, the tag is `v2.3.1-20260513`.
If a tag with that name already exists, append a counter: `v2.3.1-20260513-2`.
### Step 5: Push the tag
Run:
```
git push origin <tag-name>
```
If the push fails, report the error. Do not retry.
### Step 6: Report completion
Print a summary:
- Tag name
- Commit SHA the tag points to (`git rev-parse HEAD`)
- Timestamp
Example output:
```
Deploy complete.
Tag: v2.3.1-20260513
Commit: a1b2c3d4e5f6
Time: 2026-05-13 14:32:07 UTC
```
在 GitHub 查看