bigpowers 2.10.0 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.pi/package.json +2 -2
- package/.pi/prompts/deploy.md +164 -0
- package/.pi/skills/deploy/SKILL.md +166 -0
- package/CHANGELOG.md +7 -0
- package/CONVENTIONS.md +1 -0
- package/SKILL-INDEX.md +45 -44
- package/deploy/SKILL.md +165 -0
- package/package.json +1 -1
- package/scripts/generate-skill-index.sh +1 -0
- package/skills-lock.json +5 -0
package/.pi/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bigpowers",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.11.0",
|
|
4
|
+
"description": "65 skills — 61 agent skills for spec-driven, test-first software development by solo developers",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi-package"
|
|
7
7
|
],
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: "Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production."
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
# Deploy
|
|
7
|
+
|
|
8
|
+
> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.
|
|
9
|
+
>
|
|
10
|
+
> **HARD GATE** — Use this skill from a CI/CD pipeline or post-merge on `main`/`master`. Never deploy from a feature branch.
|
|
11
|
+
>
|
|
12
|
+
> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.
|
|
13
|
+
|
|
14
|
+
Orchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.
|
|
15
|
+
|
|
16
|
+
## Pipeline Stages
|
|
17
|
+
|
|
18
|
+
```
|
|
19
|
+
build → verify artifact → deploy → wait/retry → smoke
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
| Stage | Description | Failure mode |
|
|
23
|
+
|-------|-------------|-------------|
|
|
24
|
+
| Build | Execute the project's build command | Non-zero exit: report build error |
|
|
25
|
+
| Verify | Check artifact exists and is non-empty | Missing/empty: report artifact path |
|
|
26
|
+
| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |
|
|
27
|
+
| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |
|
|
28
|
+
| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |
|
|
29
|
+
|
|
30
|
+
## Process
|
|
31
|
+
|
|
32
|
+
### 1. Detect build command
|
|
33
|
+
|
|
34
|
+
Read project manifest files in order to determine the build command:
|
|
35
|
+
|
|
36
|
+
| Manifest | Build command |
|
|
37
|
+
|----------|--------------|
|
|
38
|
+
| `package.json` | `npm run build` (or `scripts.build` value) |
|
|
39
|
+
| `Cargo.toml` | `cargo build --release` |
|
|
40
|
+
| `pyproject.toml` / `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |
|
|
41
|
+
| `Makefile` | `make build` or first target named `build` |
|
|
42
|
+
| `AGENTS.md` / `CLAUDE.md` | Look for `build:` in project commands section |
|
|
43
|
+
|
|
44
|
+
If no manifest is found, prompt the user with: "No detected build command. Pass `--build 'npm run build'` or specify the command."
|
|
45
|
+
|
|
46
|
+
### 2. Build the artifact
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npm run build
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Or the detected command from step 1. If the build fails, exit non-zero and report the build output.
|
|
53
|
+
|
|
54
|
+
### 3. Verify the artifact
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ARTIFACT_DIR="${ARTIFACT_DIR:-dist}"
|
|
58
|
+
if [ ! -d "$ARTIFACT_DIR" ] || [ -z "$(ls -A "$ARTIFACT_DIR" 2>/dev/null)" ]; then
|
|
59
|
+
echo "FAIL: build artifact not found at $ARTIFACT_DIR"
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
Configurable via `$ARTIFACT_DIR` environment variable (default: `dist/`).
|
|
65
|
+
|
|
66
|
+
### 4. Deploy to platform
|
|
67
|
+
|
|
68
|
+
Platform-agnostic — supports multiple deployment targets via environment variables:
|
|
69
|
+
|
|
70
|
+
| Platform | Env var | Example |
|
|
71
|
+
|----------|---------|---------|
|
|
72
|
+
| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |
|
|
73
|
+
| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |
|
|
74
|
+
| BigBase MCP | MCP tool call | `mcp deploy` via BigBase server |
|
|
75
|
+
| rsync/SSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR/ $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |
|
|
76
|
+
| Custom | `DEPLOY_COMMAND` | Run any deploy command string |
|
|
77
|
+
|
|
78
|
+
The deploy tool is selected by which environment variables are set. If none are configured:
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
echo "No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool."
|
|
82
|
+
exit 1
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 5. Wait and poll status
|
|
86
|
+
|
|
87
|
+
After invoking the deploy command, poll for completion:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
DEPLOY_TIMEOUT="${DEPLOY_TIMEOUT:-300}" # seconds (default 5 minutes)
|
|
91
|
+
DEPLOY_POLL_INTERVAL="${DEPLOY_POLL_INTERVAL:-30}" # seconds
|
|
92
|
+
|
|
93
|
+
start_time=$(date +%s)
|
|
94
|
+
while true; do
|
|
95
|
+
elapsed=$(( $(date +%s) - start_time ))
|
|
96
|
+
if [ "$elapsed" -ge "$DEPLOY_TIMEOUT" ]; then
|
|
97
|
+
echo "FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s"
|
|
98
|
+
exit 1
|
|
99
|
+
fi
|
|
100
|
+
|
|
101
|
+
status=$(get_deploy_status) # platform-specific status check
|
|
102
|
+
if [ "$status" = "ready" ] || [ "$status" = "done" ]; then
|
|
103
|
+
echo "Deploy completed in ${elapsed}s"
|
|
104
|
+
break
|
|
105
|
+
fi
|
|
106
|
+
|
|
107
|
+
sleep "$DEPLOY_POLL_INTERVAL"
|
|
108
|
+
done
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Use exponential backoff for retries on transient failures:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
RETRY_MAX="${RETRY_MAX:-3}"
|
|
115
|
+
base_delay=2
|
|
116
|
+
for attempt in $(seq 1 "$RETRY_MAX"); do
|
|
117
|
+
if deploy_command; then
|
|
118
|
+
break
|
|
119
|
+
fi
|
|
120
|
+
if [ "$attempt" -eq "$RETRY_MAX" ]; then
|
|
121
|
+
echo "FAIL: deploy failed after ${RETRY_MAX} attempts"
|
|
122
|
+
exit 1
|
|
123
|
+
fi
|
|
124
|
+
sleep $(( base_delay * 2 ** (attempt - 1) ))
|
|
125
|
+
done
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### 6. Baseline smoke test
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
DEPLOY_URL="${DEPLOY_URL:?DEPLOY_URL must be set}"
|
|
132
|
+
if curl -sSf "$DEPLOY_URL" > /dev/null 2>&1; then
|
|
133
|
+
echo "OK: $DEPLOY_URL responds with HTTP 200"
|
|
134
|
+
else
|
|
135
|
+
echo "FAIL: $DEPLOY_URL is not responding with HTTP 200"
|
|
136
|
+
exit 1
|
|
137
|
+
fi
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
For comprehensive health-checking, chain to the `smoke-test` skill:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
# After deploy success
|
|
144
|
+
bash scripts/run-smoke.sh "$DEPLOY_URL"
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Configuration
|
|
148
|
+
|
|
149
|
+
| Variable | Default | Description |
|
|
150
|
+
|----------|---------|-------------|
|
|
151
|
+
| `ARTIFACT_DIR` | `dist` | Build output directory |
|
|
152
|
+
| `DEPLOY_URL` | *(required)* | Live URL for smoke test |
|
|
153
|
+
| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |
|
|
154
|
+
| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |
|
|
155
|
+
| `RETRY_MAX` | `3` | Max deploy retry attempts |
|
|
156
|
+
| `BUILD_COMMAND` | *(auto-detect)* | Override build command |
|
|
157
|
+
|
|
158
|
+
## Verification
|
|
159
|
+
|
|
160
|
+
→ verify: `test -f deploy/SKILL.md && grep -q 'name: deploy' deploy/SKILL.md && echo OK`
|
|
161
|
+
→ verify: `grep -qi 'build\|artifact\|deploy\|smoke' deploy/SKILL.md && echo OK`
|
|
162
|
+
→ verify: `grep -ci 'package.json\|Cargo.toml\|Makefile\|manifest' deploy/SKILL.md | awk '{if($1>=1) print "OK"; else print "FAIL"}'`
|
|
163
|
+
→ verify: `grep -ci 'timeout\|poll\|status\|retry\|backoff' deploy/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
|
|
164
|
+
→ verify: `grep -q 'curl.*DEPLOY_URL\|smoke\|health' deploy/SKILL.md && echo OK`
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: "\"Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production.\""
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
# Deploy
|
|
9
|
+
|
|
10
|
+
> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.
|
|
11
|
+
>
|
|
12
|
+
> **HARD GATE** — Use this skill from a CI/CD pipeline or post-merge on `main`/`master`. Never deploy from a feature branch.
|
|
13
|
+
>
|
|
14
|
+
> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.
|
|
15
|
+
|
|
16
|
+
Orchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.
|
|
17
|
+
|
|
18
|
+
## Pipeline Stages
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
build → verify artifact → deploy → wait/retry → smoke
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
| Stage | Description | Failure mode |
|
|
25
|
+
|-------|-------------|-------------|
|
|
26
|
+
| Build | Execute the project's build command | Non-zero exit: report build error |
|
|
27
|
+
| Verify | Check artifact exists and is non-empty | Missing/empty: report artifact path |
|
|
28
|
+
| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |
|
|
29
|
+
| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |
|
|
30
|
+
| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |
|
|
31
|
+
|
|
32
|
+
## Process
|
|
33
|
+
|
|
34
|
+
### 1. Detect build command
|
|
35
|
+
|
|
36
|
+
Read project manifest files in order to determine the build command:
|
|
37
|
+
|
|
38
|
+
| Manifest | Build command |
|
|
39
|
+
|----------|--------------|
|
|
40
|
+
| `package.json` | `npm run build` (or `scripts.build` value) |
|
|
41
|
+
| `Cargo.toml` | `cargo build --release` |
|
|
42
|
+
| `pyproject.toml` / `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |
|
|
43
|
+
| `Makefile` | `make build` or first target named `build` |
|
|
44
|
+
| `AGENTS.md` / `CLAUDE.md` | Look for `build:` in project commands section |
|
|
45
|
+
|
|
46
|
+
If no manifest is found, prompt the user with: "No detected build command. Pass `--build 'npm run build'` or specify the command."
|
|
47
|
+
|
|
48
|
+
### 2. Build the artifact
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
npm run build
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Or the detected command from step 1. If the build fails, exit non-zero and report the build output.
|
|
55
|
+
|
|
56
|
+
### 3. Verify the artifact
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
ARTIFACT_DIR="${ARTIFACT_DIR:-dist}"
|
|
60
|
+
if [ ! -d "$ARTIFACT_DIR" ] || [ -z "$(ls -A "$ARTIFACT_DIR" 2>/dev/null)" ]; then
|
|
61
|
+
echo "FAIL: build artifact not found at $ARTIFACT_DIR"
|
|
62
|
+
exit 1
|
|
63
|
+
fi
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Configurable via `$ARTIFACT_DIR` environment variable (default: `dist/`).
|
|
67
|
+
|
|
68
|
+
### 4. Deploy to platform
|
|
69
|
+
|
|
70
|
+
Platform-agnostic — supports multiple deployment targets via environment variables:
|
|
71
|
+
|
|
72
|
+
| Platform | Env var | Example |
|
|
73
|
+
|----------|---------|---------|
|
|
74
|
+
| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |
|
|
75
|
+
| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |
|
|
76
|
+
| BigBase MCP | MCP tool call | `mcp deploy` via BigBase server |
|
|
77
|
+
| rsync/SSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR/ $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |
|
|
78
|
+
| Custom | `DEPLOY_COMMAND` | Run any deploy command string |
|
|
79
|
+
|
|
80
|
+
The deploy tool is selected by which environment variables are set. If none are configured:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
echo "No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool."
|
|
84
|
+
exit 1
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 5. Wait and poll status
|
|
88
|
+
|
|
89
|
+
After invoking the deploy command, poll for completion:
|
|
90
|
+
|
|
91
|
+
```bash
|
|
92
|
+
DEPLOY_TIMEOUT="${DEPLOY_TIMEOUT:-300}" # seconds (default 5 minutes)
|
|
93
|
+
DEPLOY_POLL_INTERVAL="${DEPLOY_POLL_INTERVAL:-30}" # seconds
|
|
94
|
+
|
|
95
|
+
start_time=$(date +%s)
|
|
96
|
+
while true; do
|
|
97
|
+
elapsed=$(( $(date +%s) - start_time ))
|
|
98
|
+
if [ "$elapsed" -ge "$DEPLOY_TIMEOUT" ]; then
|
|
99
|
+
echo "FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s"
|
|
100
|
+
exit 1
|
|
101
|
+
fi
|
|
102
|
+
|
|
103
|
+
status=$(get_deploy_status) # platform-specific status check
|
|
104
|
+
if [ "$status" = "ready" ] || [ "$status" = "done" ]; then
|
|
105
|
+
echo "Deploy completed in ${elapsed}s"
|
|
106
|
+
break
|
|
107
|
+
fi
|
|
108
|
+
|
|
109
|
+
sleep "$DEPLOY_POLL_INTERVAL"
|
|
110
|
+
done
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
Use exponential backoff for retries on transient failures:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
RETRY_MAX="${RETRY_MAX:-3}"
|
|
117
|
+
base_delay=2
|
|
118
|
+
for attempt in $(seq 1 "$RETRY_MAX"); do
|
|
119
|
+
if deploy_command; then
|
|
120
|
+
break
|
|
121
|
+
fi
|
|
122
|
+
if [ "$attempt" -eq "$RETRY_MAX" ]; then
|
|
123
|
+
echo "FAIL: deploy failed after ${RETRY_MAX} attempts"
|
|
124
|
+
exit 1
|
|
125
|
+
fi
|
|
126
|
+
sleep $(( base_delay * 2 ** (attempt - 1) ))
|
|
127
|
+
done
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
### 6. Baseline smoke test
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
DEPLOY_URL="${DEPLOY_URL:?DEPLOY_URL must be set}"
|
|
134
|
+
if curl -sSf "$DEPLOY_URL" > /dev/null 2>&1; then
|
|
135
|
+
echo "OK: $DEPLOY_URL responds with HTTP 200"
|
|
136
|
+
else
|
|
137
|
+
echo "FAIL: $DEPLOY_URL is not responding with HTTP 200"
|
|
138
|
+
exit 1
|
|
139
|
+
fi
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
For comprehensive health-checking, chain to the `smoke-test` skill:
|
|
143
|
+
|
|
144
|
+
```bash
|
|
145
|
+
# After deploy success
|
|
146
|
+
bash scripts/run-smoke.sh "$DEPLOY_URL"
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
## Configuration
|
|
150
|
+
|
|
151
|
+
| Variable | Default | Description |
|
|
152
|
+
|----------|---------|-------------|
|
|
153
|
+
| `ARTIFACT_DIR` | `dist` | Build output directory |
|
|
154
|
+
| `DEPLOY_URL` | *(required)* | Live URL for smoke test |
|
|
155
|
+
| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |
|
|
156
|
+
| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |
|
|
157
|
+
| `RETRY_MAX` | `3` | Max deploy retry attempts |
|
|
158
|
+
| `BUILD_COMMAND` | *(auto-detect)* | Override build command |
|
|
159
|
+
|
|
160
|
+
## Verification
|
|
161
|
+
|
|
162
|
+
→ verify: `test -f deploy/SKILL.md && grep -q 'name: deploy' deploy/SKILL.md && echo OK`
|
|
163
|
+
→ verify: `grep -qi 'build\|artifact\|deploy\|smoke' deploy/SKILL.md && echo OK`
|
|
164
|
+
→ verify: `grep -ci 'package.json\|Cargo.toml\|Makefile\|manifest' deploy/SKILL.md | awk '{if($1>=1) print "OK"; else print "FAIL"}'`
|
|
165
|
+
→ verify: `grep -ci 'timeout\|poll\|status\|retry\|backoff' deploy/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
|
|
166
|
+
→ verify: `grep -q 'curl.*DEPLOY_URL\|smoke\|health' deploy/SKILL.md && echo OK`
|
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [2.11.0](https://github.com/danielvm-git/bigpowers/compare/v2.10.0...v2.11.0) (2026-06-20)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **skills:** add deploy pipeline — build, verify, deploy, wait, smoke ([35a8530](https://github.com/danielvm-git/bigpowers/commit/35a85309c7ded6faffbf7aad52838b1b9140087f))
|
|
7
|
+
|
|
1
8
|
# [2.10.0](https://github.com/danielvm-git/bigpowers/compare/v2.9.0...v2.10.0) (2026-06-20)
|
|
2
9
|
|
|
3
10
|
|
package/CONVENTIONS.md
CHANGED
|
@@ -205,5 +205,6 @@ name must return < 5 results across the repo.
|
|
|
205
205
|
|-------|----------------------|-----------|
|
|
206
206
|
| `terse-mode` | adjective-noun | `enable-terse` implies a toggle; `terse-mode` names a mode state |
|
|
207
207
|
| `visual-dashboard` | adjective-noun | `view-dashboard` implies read-only; `show-dashboard` collides with `show` verbs |
|
|
208
|
+
| `deploy` | single verb | Well-known DevOps single-word concept; renames like `deploy-app` or `deploy-service` are redundant since deploy always targets an application |
|
|
208
209
|
|
|
209
210
|
Any new exception requires an entry in this table before the skill is published.
|
package/SKILL-INDEX.md
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
> **DO NOT EDIT** — This file is auto-generated by `scripts/generate-skill-index.sh`.
|
|
4
4
|
> Edit `SKILL.md` source files or `skills-lock.json` instead. Run `bash scripts/sync-skills.sh` to regenerate.
|
|
5
5
|
|
|
6
|
-
**Generated:** 2026-06-20T21:
|
|
7
|
-
**Skills:**
|
|
6
|
+
**Generated:** 2026-06-20T21:48:09Z
|
|
7
|
+
**Skills:** 65
|
|
8
8
|
|
|
9
9
|
---
|
|
10
10
|
|
|
@@ -15,11 +15,11 @@
|
|
|
15
15
|
| Discover | 6 | `elaborate-spec, map-codebase, research-first, search-skills, survey-context, using-bigpowers` |
|
|
16
16
|
| Design | 7 | `deepen-architecture, define-language, define-success, design-interface, grill-me, grill-with-docs, model-domain` |
|
|
17
17
|
| Plan | 9 | `assess-impact, change-request, plan-refactor, plan-release, plan-work, run-planning, scope-work, seed-conventions, slice-tasks` |
|
|
18
|
-
| Build |
|
|
18
|
+
| Build | 15 | `align-grid, build-epic, craft-skill, deploy, develop-tdd, execute-plan, guard-git, hook-commits, kickoff-branch, orchestrate-project, publish-package, setup-environment, spike-prototype, wire-ci, wire-observability` |
|
|
19
19
|
| Verify | 12 | `audit-code, diagnose-root, enforce-first, fix-bug, inspect-quality, investigate-bug, request-review, respond-review, run-evals, trace-requirement, validate-fix, verify-work` |
|
|
20
20
|
| Release | 2 | `commit-message, release-branch` |
|
|
21
21
|
| Sustain | 13 | `compose-workflow, delegate-task, dispatch-agents, edit-document, evolve-skill, migrate-spec, organize-workspace, reset-baseline, session-state, simulate-agents, stocktake-skills, terse-mode, write-document` |
|
|
22
|
-
| **TOTAL** | **
|
|
22
|
+
| **TOTAL** | **64** | |
|
|
23
23
|
|
|
24
24
|
---
|
|
25
25
|
|
|
@@ -52,46 +52,47 @@
|
|
|
52
52
|
| 23 | Build | `align-grid` | "Build editorial/magazine/report webpages on a GENUINE Müller-Brockmann modular | ✅ Active |
|
|
53
53
|
| 24 | Build | `build-epic` | Eight-step epic build cycle — reads state.yaml, execution-status.yaml, and one | ✅ Active |
|
|
54
54
|
| 25 | Build | `craft-skill` | Create new bigpowers skills with proper structure, progressive disclosure, and b | ✅ Active |
|
|
55
|
-
| 26 | Build | `
|
|
56
|
-
| 27 | Build | `
|
|
57
|
-
| 28 | Build | `
|
|
58
|
-
| 29 | Build | `
|
|
59
|
-
| 30 | Build | `
|
|
60
|
-
| 31 | Build | `
|
|
61
|
-
| 32 | Build | `
|
|
62
|
-
| 33 | Build | `
|
|
63
|
-
| 34 | Build | `
|
|
64
|
-
| 35 | Build | `
|
|
65
|
-
| 36 | Build | `wire-
|
|
66
|
-
| 37 |
|
|
67
|
-
| 38 | Verify | `
|
|
68
|
-
| 39 | Verify | `
|
|
69
|
-
| 40 | Verify | `
|
|
70
|
-
| 41 | Verify | `
|
|
71
|
-
| 42 | Verify | `
|
|
72
|
-
| 43 | Verify | `
|
|
73
|
-
| 44 | Verify | `
|
|
74
|
-
| 45 | Verify | `
|
|
75
|
-
| 46 | Verify | `
|
|
76
|
-
| 47 | Verify | `
|
|
77
|
-
| 48 | Verify | `
|
|
78
|
-
| 49 |
|
|
79
|
-
| 50 | Release | `
|
|
80
|
-
| 51 |
|
|
81
|
-
| 52 | Sustain | `
|
|
82
|
-
| 53 | Sustain | `
|
|
83
|
-
| 54 | Sustain | `
|
|
84
|
-
| 55 | Sustain | `
|
|
85
|
-
| 56 | Sustain | `
|
|
86
|
-
| 57 | Sustain | `
|
|
87
|
-
| 58 | Sustain | `
|
|
88
|
-
| 59 | Sustain | `
|
|
89
|
-
| 60 | Sustain | `
|
|
90
|
-
| 61 | Sustain | `
|
|
91
|
-
| 62 | Sustain | `
|
|
92
|
-
| 63 | Sustain | `
|
|
93
|
-
|
|
94
|
-
|
|
55
|
+
| 26 | Build | `deploy` | "Build → verify artifact → deploy → wait → smoke deployment pipeline. Pl | ✅ Active |
|
|
56
|
+
| 27 | Build | `develop-tdd` | Test-driven development with red-green-refactor loop using vertical slices. Use | ✅ Active |
|
|
57
|
+
| 28 | Build | `execute-plan` | Batch-execute tasks from the active epic capsule sequentially, with a human chec | ✅ Active |
|
|
58
|
+
| 29 | Build | `guard-git` | Block dangerous git commands (push, force push, reset --hard, clean, branch -D, | ✅ Active |
|
|
59
|
+
| 30 | Build | `hook-commits` | Set up pre-commit hooks with lint-staged (Prettier), type checking, and tests in | ✅ Active |
|
|
60
|
+
| 31 | Build | `kickoff-branch` | Create a git worktree and feature branch, then verify a clean test baseline befo | ✅ Active |
|
|
61
|
+
| 32 | Build | `orchestrate-project` | Meta-skill that enforces the 6-phase core loop (discover → elaborate → plan | ✅ Active |
|
|
62
|
+
| 33 | Build | `publish-package` | "Package registry publishing for npm, crates.io, PyPI, and Homebrew. Verifies pr | ✅ Active |
|
|
63
|
+
| 34 | Build | `setup-environment` | Pre-install dependencies and configure tools before development work begins. Use | ✅ Active |
|
|
64
|
+
| 35 | Build | `spike-prototype` | Throw-away prototype for unknown problem spaces. Output is learning notes in spe | ✅ Active |
|
|
65
|
+
| 36 | Build | `wire-ci` | "CI pipeline setup with pre-built templates and local validation. Generates GitH | ✅ Active |
|
|
66
|
+
| 37 | Build | `wire-observability` | Add structured JSON logging, observability commands, and idempotent setup script | ✅ Active |
|
|
67
|
+
| 38 | Verify | `audit-code` | Self-review checklist for the coding agent to run before dispatching a reviewer. | ✅ Active |
|
|
68
|
+
| 39 | Verify | `diagnose-root` | Run 4-phase root cause analysis — reproduce, isolate, hypothesize, verify. Use | ✅ Active |
|
|
69
|
+
| 40 | Verify | `enforce-first` | Apply the F.I.R.S.T test quality rubric (Fast, Independent, Repeatable, Self-Val | ✅ Active |
|
|
70
|
+
| 41 | Verify | `fix-bug` | Bug fix orchestrator — active_flow fix_bug; reads specs/bugs/BUG-*.md; chains | ✅ Active |
|
|
71
|
+
| 42 | Verify | `inspect-quality` | Interactive QA session where user reports bugs or issues conversationally, and t | ✅ Active |
|
|
72
|
+
| 43 | Verify | `investigate-bug` | Investigate a bug or issue by exploring the codebase to find root cause, then wr | ✅ Active |
|
|
73
|
+
| 44 | Verify | `request-review` | Dispatch a fresh reviewer agent with a clean context to critique the code after | ✅ Active |
|
|
74
|
+
| 45 | Verify | `respond-review` | Act on a reviewer agent's feedback systematically — categorize findings, apply | ✅ Active |
|
|
75
|
+
| 46 | Verify | `run-evals` | Eval-Driven Development — define capability and regression evals before buildi | ✅ Active |
|
|
76
|
+
| 47 | Verify | `trace-requirement` | Link story IDs from specs/release-plan.yaml + epic capsule directories to the im | ✅ Active |
|
|
77
|
+
| 48 | Verify | `validate-fix` | Prove a fix works before declaring done — re-run the failing test, run the ful | ✅ Active |
|
|
78
|
+
| 49 | Verify | `verify-work` | Multi-phase UAT gate — cold-start smoke, build, typecheck, lint, tests, step-b | ✅ Active |
|
|
79
|
+
| 50 | Release | `commit-message` | Reviews working-tree changes, then drafts a Conventional Commits title/body and | ✅ Active |
|
|
80
|
+
| 51 | Release | `release-branch` | Make the merge/PR/keep/discard decision for a feature branch, verify coverage ga | ✅ Active |
|
|
81
|
+
| 52 | Sustain | `compose-workflow` | Chain multiple bigpowers skills into a custom workflow recipe saved in specs/. U | ✅ Active |
|
|
82
|
+
| 53 | Sustain | `delegate-task` | Delegate one complex task to a single subagent, review its work in two stages be | ✅ Active |
|
|
83
|
+
| 54 | Sustain | `dispatch-agents` | Dispatch multiple subagents in parallel on independent tasks. No waiting between | ✅ Active |
|
|
84
|
+
| 55 | Sustain | `edit-document` | Edit and improve documents by restructuring sections, improving clarity, and tig | ✅ Active |
|
|
85
|
+
| 56 | Sustain | `evolve-skill` | Benchmark-gated skill evolution — consume bigpowers-benchmark report, propose | ✅ Active |
|
|
86
|
+
| 57 | Sustain | `migrate-spec` | Detect GSD, spec-kit, or BMAD spec artifacts and transform them into bigpowers Y | ✅ Active |
|
|
87
|
+
| 58 | Sustain | `organize-workspace` | Scans the active workspace for disposable artifacts—logs, caches, stale build | ✅ Active |
|
|
88
|
+
| 59 | Sustain | `reset-baseline` | Restore the project to a known clean state between agent runs or experiments. Us | ✅ Active |
|
|
89
|
+
| 60 | Sustain | `session-state` | Track implementation decisions and progress in specs/state.yaml to prevent conte | ✅ Active |
|
|
90
|
+
| 61 | Sustain | `simulate-agents` | Run Mock User and Auditor agents against a feature in fresh contexts before huma | ✅ Active |
|
|
91
|
+
| 62 | Sustain | `stocktake-skills` | Sequential subagent batch audit of the bigpowers skill catalog — Quick Scan (c | ✅ Active |
|
|
92
|
+
| 63 | Sustain | `terse-mode` | Fallback ultra-compressed communication mode. Cuts token usage ~75% by dropping | ✅ Active |
|
|
93
|
+
| 64 | Sustain | `write-document` | Write, organize, and sync high-integrity technical documents using the BMAD meth | ✅ Active |
|
|
94
|
+
|
|
95
|
+
**Total: 64 active skills.**
|
|
95
96
|
|
|
96
97
|
---
|
|
97
98
|
|
package/deploy/SKILL.md
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: deploy
|
|
3
|
+
description: "Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production."
|
|
4
|
+
model: sonnet
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Deploy
|
|
8
|
+
|
|
9
|
+
> **HARD GATE** — Do not deploy without running tests first. Run `test` or your CI suite before this skill.
|
|
10
|
+
>
|
|
11
|
+
> **HARD GATE** — Use this skill from a CI/CD pipeline or post-merge on `main`/`master`. Never deploy from a feature branch.
|
|
12
|
+
>
|
|
13
|
+
> **HARD GATE** — The deploy skill orchestrates deployment; the `smoke-test` skill validates post-deploy health. Chain them: `deploy → smoke-test`.
|
|
14
|
+
|
|
15
|
+
Orchestrate a full build-to-deployment pipeline: build the artifact, verify it exists and is non-empty, invoke a platform deploy tool (MCP or CLI), poll until the deploy completes or times out, then run a baseline smoke test against the live URL.
|
|
16
|
+
|
|
17
|
+
## Pipeline Stages
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
build → verify artifact → deploy → wait/retry → smoke
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
| Stage | Description | Failure mode |
|
|
24
|
+
|-------|-------------|-------------|
|
|
25
|
+
| Build | Execute the project's build command | Non-zero exit: report build error |
|
|
26
|
+
| Verify | Check artifact exists and is non-empty | Missing/empty: report artifact path |
|
|
27
|
+
| Deploy | Invoke platform deploy tool (MCP, Vercel CLI, rsync, etc.) | Non-zero exit: report deploy error |
|
|
28
|
+
| Wait | Poll deploy status every 30s up to `DEPLOY_TIMEOUT` (default 5 min) | Timeout: report exceeded |
|
|
29
|
+
| Smoke | `curl -sSf $DEPLOY_URL` as baseline health check | Non-200: report failure |
|
|
30
|
+
|
|
31
|
+
## Process
|
|
32
|
+
|
|
33
|
+
### 1. Detect build command
|
|
34
|
+
|
|
35
|
+
Read project manifest files in order to determine the build command:
|
|
36
|
+
|
|
37
|
+
| Manifest | Build command |
|
|
38
|
+
|----------|--------------|
|
|
39
|
+
| `package.json` | `npm run build` (or `scripts.build` value) |
|
|
40
|
+
| `Cargo.toml` | `cargo build --release` |
|
|
41
|
+
| `pyproject.toml` / `setup.py` | Depends on build backend (`poetry build`, `pip install -e .`, etc.) |
|
|
42
|
+
| `Makefile` | `make build` or first target named `build` |
|
|
43
|
+
| `AGENTS.md` / `CLAUDE.md` | Look for `build:` in project commands section |
|
|
44
|
+
|
|
45
|
+
If no manifest is found, prompt the user with: "No detected build command. Pass `--build 'npm run build'` or specify the command."
|
|
46
|
+
|
|
47
|
+
### 2. Build the artifact
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npm run build
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Or the detected command from step 1. If the build fails, exit non-zero and report the build output.
|
|
54
|
+
|
|
55
|
+
### 3. Verify the artifact
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
ARTIFACT_DIR="${ARTIFACT_DIR:-dist}"
|
|
59
|
+
if [ ! -d "$ARTIFACT_DIR" ] || [ -z "$(ls -A "$ARTIFACT_DIR" 2>/dev/null)" ]; then
|
|
60
|
+
echo "FAIL: build artifact not found at $ARTIFACT_DIR"
|
|
61
|
+
exit 1
|
|
62
|
+
fi
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Configurable via `$ARTIFACT_DIR` environment variable (default: `dist/`).
|
|
66
|
+
|
|
67
|
+
### 4. Deploy to platform
|
|
68
|
+
|
|
69
|
+
Platform-agnostic — supports multiple deployment targets via environment variables:
|
|
70
|
+
|
|
71
|
+
| Platform | Env var | Example |
|
|
72
|
+
|----------|---------|---------|
|
|
73
|
+
| Vercel | `VERCEL_TOKEN`, `VERCEL_PROJECT_ID` | `vercel deploy --prod --token $VERCEL_TOKEN` |
|
|
74
|
+
| Netlify | `NETLIFY_AUTH_TOKEN`, `NETLIFY_SITE_ID` | `netlify deploy --prod --auth $NETLIFY_AUTH_TOKEN --dir $ARTIFACT_DIR` |
|
|
75
|
+
| BigBase MCP | MCP tool call | `mcp deploy` via BigBase server |
|
|
76
|
+
| rsync/SSH | `DEPLOY_SSH_USER`, `DEPLOY_SSH_HOST`, `DEPLOY_SSH_PATH` | `rsync -avz $ARTIFACT_DIR/ $DEPLOY_SSH_USER@$DEPLOY_SSH_HOST:$DEPLOY_SSH_PATH` |
|
|
77
|
+
| Custom | `DEPLOY_COMMAND` | Run any deploy command string |
|
|
78
|
+
|
|
79
|
+
The deploy tool is selected by which environment variables are set. If none are configured:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
echo "No deploy target configured. Set one of: VERCEL_TOKEN, NETLIFY_AUTH_TOKEN, DEPLOY_SSH_USER+DEPLOY_SSH_HOST, DEPLOY_COMMAND, or MCP deploy tool."
|
|
83
|
+
exit 1
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 5. Wait and poll status
|
|
87
|
+
|
|
88
|
+
After invoking the deploy command, poll for completion:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
DEPLOY_TIMEOUT="${DEPLOY_TIMEOUT:-300}" # seconds (default 5 minutes)
|
|
92
|
+
DEPLOY_POLL_INTERVAL="${DEPLOY_POLL_INTERVAL:-30}" # seconds
|
|
93
|
+
|
|
94
|
+
start_time=$(date +%s)
|
|
95
|
+
while true; do
|
|
96
|
+
elapsed=$(( $(date +%s) - start_time ))
|
|
97
|
+
if [ "$elapsed" -ge "$DEPLOY_TIMEOUT" ]; then
|
|
98
|
+
echo "FAIL: deploy status polling timed out after ${DEPLOY_TIMEOUT}s"
|
|
99
|
+
exit 1
|
|
100
|
+
fi
|
|
101
|
+
|
|
102
|
+
status=$(get_deploy_status) # platform-specific status check
|
|
103
|
+
if [ "$status" = "ready" ] || [ "$status" = "done" ]; then
|
|
104
|
+
echo "Deploy completed in ${elapsed}s"
|
|
105
|
+
break
|
|
106
|
+
fi
|
|
107
|
+
|
|
108
|
+
sleep "$DEPLOY_POLL_INTERVAL"
|
|
109
|
+
done
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Use exponential backoff for retries on transient failures:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
RETRY_MAX="${RETRY_MAX:-3}"
|
|
116
|
+
base_delay=2
|
|
117
|
+
for attempt in $(seq 1 "$RETRY_MAX"); do
|
|
118
|
+
if deploy_command; then
|
|
119
|
+
break
|
|
120
|
+
fi
|
|
121
|
+
if [ "$attempt" -eq "$RETRY_MAX" ]; then
|
|
122
|
+
echo "FAIL: deploy failed after ${RETRY_MAX} attempts"
|
|
123
|
+
exit 1
|
|
124
|
+
fi
|
|
125
|
+
sleep $(( base_delay * 2 ** (attempt - 1) ))
|
|
126
|
+
done
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 6. Baseline smoke test
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
DEPLOY_URL="${DEPLOY_URL:?DEPLOY_URL must be set}"
|
|
133
|
+
if curl -sSf "$DEPLOY_URL" > /dev/null 2>&1; then
|
|
134
|
+
echo "OK: $DEPLOY_URL responds with HTTP 200"
|
|
135
|
+
else
|
|
136
|
+
echo "FAIL: $DEPLOY_URL is not responding with HTTP 200"
|
|
137
|
+
exit 1
|
|
138
|
+
fi
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
For comprehensive health-checking, chain to the `smoke-test` skill:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# After deploy success
|
|
145
|
+
bash scripts/run-smoke.sh "$DEPLOY_URL"
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Configuration
|
|
149
|
+
|
|
150
|
+
| Variable | Default | Description |
|
|
151
|
+
|----------|---------|-------------|
|
|
152
|
+
| `ARTIFACT_DIR` | `dist` | Build output directory |
|
|
153
|
+
| `DEPLOY_URL` | *(required)* | Live URL for smoke test |
|
|
154
|
+
| `DEPLOY_TIMEOUT` | `300` | Max wait for deploy completion (seconds) |
|
|
155
|
+
| `DEPLOY_POLL_INTERVAL` | `30` | Polling interval (seconds) |
|
|
156
|
+
| `RETRY_MAX` | `3` | Max deploy retry attempts |
|
|
157
|
+
| `BUILD_COMMAND` | *(auto-detect)* | Override build command |
|
|
158
|
+
|
|
159
|
+
## Verification
|
|
160
|
+
|
|
161
|
+
→ verify: `test -f deploy/SKILL.md && grep -q 'name: deploy' deploy/SKILL.md && echo OK`
|
|
162
|
+
→ verify: `grep -qi 'build\|artifact\|deploy\|smoke' deploy/SKILL.md && echo OK`
|
|
163
|
+
→ verify: `grep -ci 'package.json\|Cargo.toml\|Makefile\|manifest' deploy/SKILL.md | awk '{if($1>=1) print "OK"; else print "FAIL"}'`
|
|
164
|
+
→ verify: `grep -ci 'timeout\|poll\|status\|retry\|backoff' deploy/SKILL.md | awk '{if($1>=2) print "OK"; else print "FAIL"}'`
|
|
165
|
+
→ verify: `grep -q 'curl.*DEPLOY_URL\|smoke\|health' deploy/SKILL.md && echo OK`
|
package/package.json
CHANGED
package/skills-lock.json
CHANGED
|
@@ -61,6 +61,11 @@
|
|
|
61
61
|
"sha256": "9e3b8bd7274def42",
|
|
62
62
|
"path": "delegate-task/SKILL.md"
|
|
63
63
|
},
|
|
64
|
+
"deploy": {
|
|
65
|
+
"description": "\"Build → verify artifact → deploy → wait → smoke deployment pipeline. Platform-agnostic (MCP or CLI), with configurable timeout, retry with exponential backoff, and integrated health-check. The deploy half of CI/CD: run after build to push to production.\"",
|
|
66
|
+
"sha256": "260894aa4f869093",
|
|
67
|
+
"path": "deploy/SKILL.md"
|
|
68
|
+
},
|
|
64
69
|
"design-interface": {
|
|
65
70
|
"description": "Generate multiple radically different interface designs for a module using parallel sub-agents, then compare trade-offs. Based on \"Design It Twice\" from A Philosophy of Software Design. Use when user wants to design an API, explore interface options, compare module shapes, or mentions \"design it twice\".",
|
|
66
71
|
"sha256": "c93e3fe065857cb8",
|