bigpowers 2.84.0 → 2.84.1
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/.agents/skills/audit-code/SKILL.md +4 -7
- package/.agents/skills/grill-me/SKILL.md +12 -0
- package/.agents/skills/grill-with-docs/SKILL.md +12 -0
- package/.agents/skills/request-review/SKILL.md +1 -0
- package/.agents/skills/wire-ci/SKILL.md +164 -181
- package/.codebuddy/skills/audit-code/SKILL.md +4 -7
- package/.codebuddy/skills/grill-me/SKILL.md +12 -0
- package/.codebuddy/skills/grill-with-docs/SKILL.md +12 -0
- package/.codebuddy/skills/request-review/SKILL.md +1 -0
- package/.codebuddy/skills/wire-ci/SKILL.md +164 -181
- package/.codex/skills/audit-code/SKILL.md +4 -7
- package/.codex/skills/grill-me/SKILL.md +12 -0
- package/.codex/skills/grill-with-docs/SKILL.md +12 -0
- package/.codex/skills/request-review/SKILL.md +1 -0
- package/.codex/skills/wire-ci/SKILL.md +164 -181
- package/.hermes/skills/audit-code/SKILL.md +4 -7
- package/.hermes/skills/grill-me/SKILL.md +12 -0
- package/.hermes/skills/grill-with-docs/SKILL.md +12 -0
- package/.hermes/skills/request-review/SKILL.md +1 -0
- package/.hermes/skills/wire-ci/SKILL.md +164 -181
- package/.kilocode/rules/audit-code.md +4 -7
- package/.kilocode/rules/grill-me.md +12 -0
- package/.kilocode/rules/grill-with-docs.md +12 -0
- package/.kilocode/rules/request-review.md +1 -0
- package/.kilocode/rules/wire-ci.md +164 -181
- package/.mimocode/skills/audit-code/SKILL.md +4 -7
- package/.mimocode/skills/grill-me/SKILL.md +12 -0
- package/.mimocode/skills/grill-with-docs/SKILL.md +12 -0
- package/.mimocode/skills/request-review/SKILL.md +1 -0
- package/.mimocode/skills/wire-ci/SKILL.md +164 -181
- package/.pi/package.json +1 -1
- package/.pi/prompts/audit-code.md +4 -7
- package/.pi/prompts/grill-me.md +12 -0
- package/.pi/prompts/grill-with-docs.md +12 -0
- package/.pi/prompts/request-review.md +1 -0
- package/.pi/prompts/wire-ci.md +164 -181
- package/.pi/skills/audit-code/SKILL.md +4 -7
- package/.pi/skills/grill-me/SKILL.md +12 -0
- package/.pi/skills/grill-with-docs/SKILL.md +12 -0
- package/.pi/skills/request-review/SKILL.md +1 -0
- package/.pi/skills/wire-ci/SKILL.md +164 -181
- package/.trae/skills/audit-code/SKILL.md +4 -7
- package/.trae/skills/grill-me/SKILL.md +12 -0
- package/.trae/skills/grill-with-docs/SKILL.md +12 -0
- package/.trae/skills/request-review/SKILL.md +1 -0
- package/.trae/skills/wire-ci/SKILL.md +164 -181
- package/.windsurf/rules/audit-code.md +4 -7
- package/.windsurf/rules/grill-me.md +12 -0
- package/.windsurf/rules/grill-with-docs.md +12 -0
- package/.windsurf/rules/request-review.md +1 -0
- package/.windsurf/rules/wire-ci.md +164 -181
- package/.zcode/skills/audit-code/SKILL.md +4 -7
- package/.zcode/skills/grill-me/SKILL.md +12 -0
- package/.zcode/skills/grill-with-docs/SKILL.md +12 -0
- package/.zcode/skills/request-review/SKILL.md +1 -0
- package/.zcode/skills/wire-ci/SKILL.md +164 -181
- package/CHANGELOG.md +7 -0
- package/README.md +14 -1
- package/SKILL-INDEX.md +84 -76
- package/package.json +1 -1
- package/scripts/generate-skill-index.sh +20 -4
- package/scripts/golden-g04-selftest.sh +19 -0
- package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
- package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
- package/skills/audit-code/SKILL.md +4 -7
- package/skills/grill-me/SKILL.md +12 -0
- package/skills/grill-with-docs/SKILL.md +12 -0
- package/skills/request-review/SKILL.md +1 -0
- package/skills/visual-dashboard/scripts/frame-template.html +1 -39
- package/skills/wire-ci/REFERENCE.md +137 -152
- package/skills/wire-ci/SKILL.md +28 -30
- package/skills-lock.json +5 -5
|
@@ -13,26 +13,24 @@
|
|
|
13
13
|
|
|
14
14
|
## Examples
|
|
15
15
|
|
|
16
|
-
### Create CI for a
|
|
16
|
+
### Create CI for a Go project (TBR + optional deploy)
|
|
17
17
|
|
|
18
18
|
```bash
|
|
19
|
-
#
|
|
20
|
-
|
|
19
|
+
# Copy org templates
|
|
20
|
+
cp ~/Developer/.github/workflow-templates/test-build-release-go.yml .github/workflows/test-build-release.yml
|
|
21
|
+
cp ~/Developer/.github/workflow-templates/deploy-go.yml .github/workflows/deploy.yml
|
|
21
22
|
|
|
22
|
-
# Validate generated workflows
|
|
23
23
|
wire-ci --validate
|
|
24
|
-
|
|
25
|
-
# Run locally with act
|
|
26
24
|
wire-ci --dry-run
|
|
27
25
|
```
|
|
28
26
|
|
|
29
|
-
### Create CI for a
|
|
27
|
+
### Create CI for a CLI tool (TBR only, no deploy)
|
|
30
28
|
|
|
31
29
|
```bash
|
|
32
|
-
|
|
30
|
+
cp ~/Developer/.github/workflow-templates/test-build-release-go.yml .github/workflows/test-build-release.yml
|
|
31
|
+
# Edit release job to download build artifact — see big-release dogfood
|
|
32
|
+
|
|
33
33
|
wire-ci --validate
|
|
34
|
-
# Expect warning: "npm publish step found but no NPM_TOKEN in secrets"
|
|
35
|
-
# Fix: add NPM_TOKEN to repo secrets
|
|
36
34
|
```
|
|
37
35
|
|
|
38
36
|
### Validate existing workflows (no generation)
|
|
@@ -41,7 +39,6 @@ wire-ci --validate
|
|
|
41
39
|
wire-ci --validate --check-only
|
|
42
40
|
```
|
|
43
41
|
|
|
44
|
-
|
|
45
42
|
---
|
|
46
43
|
|
|
47
44
|
## Options
|
|
@@ -53,8 +50,7 @@ wire-ci --validate --check-only
|
|
|
53
50
|
| `--check-only` | Only validate, do not generate new files |
|
|
54
51
|
| `--type <type>` | Force project type (skip auto-detection) |
|
|
55
52
|
| `--force` | Overwrite existing workflow files |
|
|
56
|
-
| `--no-
|
|
57
|
-
|
|
53
|
+
| `--no-deploy` | Skip deploy.yml even for hosted stacks |
|
|
58
54
|
|
|
59
55
|
---
|
|
60
56
|
|
|
@@ -67,202 +63,191 @@ When `wire-ci` is used as part of `build-epic`:
|
|
|
67
63
|
|
|
68
64
|
---
|
|
69
65
|
|
|
70
|
-
## Reference block 1
|
|
66
|
+
## Reference block 1 — test-build-release.yml (Go, excerpt)
|
|
71
67
|
|
|
72
68
|
```yaml
|
|
73
|
-
name:
|
|
74
|
-
on:
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
- uses: actions/checkout@v4
|
|
80
|
-
- uses: actions-rust/toolchain@v1
|
|
81
|
-
with:
|
|
82
|
-
toolchain: stable
|
|
83
|
-
components: clippy, rustfmt
|
|
84
|
-
- run: cargo fmt --all -- --check
|
|
85
|
-
- run: cargo clippy -- -D warnings
|
|
86
|
-
- run: cargo test
|
|
87
|
-
- run: cargo build --release
|
|
88
|
-
```
|
|
69
|
+
name: Test Build Release
|
|
70
|
+
on:
|
|
71
|
+
push:
|
|
72
|
+
branches: [main]
|
|
73
|
+
pull_request:
|
|
74
|
+
branches: [main]
|
|
89
75
|
|
|
90
|
-
|
|
76
|
+
permissions:
|
|
77
|
+
contents: read
|
|
91
78
|
|
|
92
|
-
|
|
79
|
+
concurrency:
|
|
80
|
+
group: pipeline-${{ github.workflow }}-${{ github.ref }}
|
|
81
|
+
cancel-in-progress: true
|
|
93
82
|
|
|
94
|
-
```yaml
|
|
95
|
-
name: CI
|
|
96
|
-
on: [push, pull_request]
|
|
97
83
|
jobs:
|
|
98
|
-
|
|
99
|
-
runs-on: ubuntu-
|
|
84
|
+
lint:
|
|
85
|
+
runs-on: ubuntu-22.04
|
|
86
|
+
timeout-minutes: 10
|
|
100
87
|
steps:
|
|
101
|
-
- uses: actions/checkout@
|
|
102
|
-
- uses: actions/setup-
|
|
88
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
89
|
+
- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
|
|
103
90
|
with:
|
|
104
|
-
|
|
105
|
-
cache:
|
|
106
|
-
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
- run: npm run typecheck 2>/dev/null || true
|
|
110
|
-
- run: npm run build 2>/dev/null || true
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
---
|
|
114
|
-
|
|
115
|
-
## Reference block 3
|
|
91
|
+
go-version: '1.22'
|
|
92
|
+
cache: true
|
|
93
|
+
- uses: golangci/golangci-lint-action@55c2c1448f86e01eaae002a5a3a9624417608d84 # v6.5.2
|
|
94
|
+
with:
|
|
95
|
+
version: v1.64.8
|
|
116
96
|
|
|
117
|
-
```yaml
|
|
118
|
-
name: CI
|
|
119
|
-
on: [push, pull_request]
|
|
120
|
-
jobs:
|
|
121
97
|
test:
|
|
122
|
-
|
|
98
|
+
needs: [lint]
|
|
99
|
+
runs-on: ubuntu-22.04
|
|
123
100
|
steps:
|
|
124
|
-
- uses: actions/checkout@
|
|
125
|
-
- uses: actions/setup-
|
|
101
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
102
|
+
- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
|
|
126
103
|
with:
|
|
127
|
-
|
|
128
|
-
cache:
|
|
129
|
-
- run:
|
|
130
|
-
- run:
|
|
131
|
-
- run: ruff check .
|
|
132
|
-
- run: mypy . 2>/dev/null || true
|
|
133
|
-
- run: pytest
|
|
134
|
-
```
|
|
135
|
-
|
|
136
|
-
---
|
|
137
|
-
|
|
138
|
-
## Reference block 4
|
|
104
|
+
go-version: '1.22'
|
|
105
|
+
cache: true
|
|
106
|
+
- run: go vet ./...
|
|
107
|
+
- run: go test ./... -count=1
|
|
139
108
|
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
on:
|
|
143
|
-
jobs:
|
|
144
|
-
test:
|
|
145
|
-
runs-on: ubuntu-latest
|
|
109
|
+
build:
|
|
110
|
+
needs: [test]
|
|
111
|
+
runs-on: ubuntu-22.04
|
|
146
112
|
steps:
|
|
147
|
-
- uses: actions/checkout@
|
|
148
|
-
- uses: actions/setup-go@
|
|
113
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
114
|
+
- uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
|
|
149
115
|
with:
|
|
150
|
-
go-version:
|
|
116
|
+
go-version: '1.22'
|
|
151
117
|
cache: true
|
|
152
|
-
- run: go vet ./...
|
|
153
|
-
- run: go test ./...
|
|
154
118
|
- run: go build ./...
|
|
119
|
+
- run: jq -n --arg sha "${{ github.sha }}" '{sha: $sha}' > deploy-meta.json
|
|
120
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
121
|
+
with:
|
|
122
|
+
name: deploy-meta
|
|
123
|
+
path: deploy-meta.json
|
|
124
|
+
|
|
125
|
+
release:
|
|
126
|
+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
127
|
+
needs: [build]
|
|
128
|
+
permissions:
|
|
129
|
+
contents: write
|
|
130
|
+
steps:
|
|
131
|
+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
|
|
132
|
+
with:
|
|
133
|
+
fetch-depth: 0
|
|
134
|
+
- run: npx semantic-release
|
|
135
|
+
env:
|
|
136
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
155
137
|
```
|
|
156
138
|
|
|
157
139
|
---
|
|
158
140
|
|
|
159
|
-
## Reference block
|
|
141
|
+
## Reference block 2 — deploy.yml (BigBase, excerpt)
|
|
160
142
|
|
|
161
143
|
```yaml
|
|
162
|
-
name:
|
|
163
|
-
on:
|
|
144
|
+
name: Deploy
|
|
145
|
+
on:
|
|
146
|
+
workflow_run:
|
|
147
|
+
workflows: ["Test Build Release"]
|
|
148
|
+
types: [completed]
|
|
149
|
+
|
|
150
|
+
permissions:
|
|
151
|
+
contents: read
|
|
152
|
+
actions: read
|
|
153
|
+
|
|
154
|
+
concurrency:
|
|
155
|
+
group: deploy-production
|
|
156
|
+
cancel-in-progress: false
|
|
157
|
+
|
|
158
|
+
env:
|
|
159
|
+
SITE_URL: "https://CHANGE-ME.bigbase.click"
|
|
160
|
+
|
|
164
161
|
jobs:
|
|
165
|
-
|
|
166
|
-
|
|
162
|
+
deploy:
|
|
163
|
+
if: >
|
|
164
|
+
github.event.workflow_run.conclusion == 'success' &&
|
|
165
|
+
github.event.workflow_run.head_branch == 'main'
|
|
166
|
+
runs-on: ubuntu-22.04
|
|
167
|
+
environment: production
|
|
167
168
|
steps:
|
|
168
|
-
- uses: actions/
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
169
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
170
|
+
with:
|
|
171
|
+
name: deploy-meta
|
|
172
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
173
|
+
run-id: ${{ github.event.workflow_run.id }}
|
|
174
|
+
path: deploy-meta
|
|
175
|
+
- uses: danielvm-git/.github/actions/bigbase-deploy@9c56ac10c629f3baa110ddb19136579e3c90d690 # v1
|
|
176
|
+
with:
|
|
177
|
+
site_id: ${{ secrets.BIGBASE_SITE_ID }}
|
|
178
|
+
app_type: go
|
|
179
|
+
site_url: ${{ env.SITE_URL }}
|
|
180
|
+
deploy_token: ${{ secrets.BIGBASE_DEPLOY_TOKEN }}
|
|
181
|
+
ref: ${{ steps.meta.outputs.ref }}
|
|
182
|
+
skip_health_check: true
|
|
183
|
+
- name: Health check
|
|
184
|
+
run: |
|
|
185
|
+
curl -sf "${{ env.SITE_URL }}" || exit 1
|
|
172
186
|
```
|
|
173
187
|
|
|
174
188
|
---
|
|
175
189
|
|
|
176
|
-
## Reference block
|
|
190
|
+
## Reference block 3 — CLI dogfood (big-release pattern)
|
|
177
191
|
|
|
178
192
|
```yaml
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
push:
|
|
182
|
-
branches: [main]
|
|
183
|
-
jobs:
|
|
184
|
-
release:
|
|
185
|
-
runs-on: ubuntu-latest
|
|
186
|
-
permissions:
|
|
187
|
-
contents: write
|
|
188
|
-
issues: write
|
|
189
|
-
pull-requests: write
|
|
190
|
-
id-token: write
|
|
193
|
+
build:
|
|
194
|
+
needs: [test]
|
|
191
195
|
steps:
|
|
192
|
-
-
|
|
196
|
+
- run: make build
|
|
197
|
+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
|
|
193
198
|
with:
|
|
194
|
-
|
|
195
|
-
|
|
199
|
+
name: big-release-${{ github.sha }}
|
|
200
|
+
path: bin/big-release
|
|
201
|
+
|
|
202
|
+
release:
|
|
203
|
+
needs: [build]
|
|
204
|
+
if: github.ref == 'refs/heads/main' && github.event_name == 'push'
|
|
205
|
+
steps:
|
|
206
|
+
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
|
|
196
207
|
with:
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
- run:
|
|
200
|
-
- run:
|
|
201
|
-
- run: npx semantic-release
|
|
202
|
-
env:
|
|
203
|
-
GITHUB_TOKEN: \${{ secrets.GITHUB_TOKEN }}
|
|
204
|
-
NPM_TOKEN: \${{ secrets.NPM_TOKEN }}
|
|
208
|
+
name: big-release-${{ github.sha }}
|
|
209
|
+
path: bin
|
|
210
|
+
- run: make release # cross-compile assets only; host binary from artifact
|
|
211
|
+
- run: big-release release --verbose
|
|
205
212
|
```
|
|
206
213
|
|
|
214
|
+
No `deploy.yml` — CLI publishes via the release job.
|
|
215
|
+
|
|
207
216
|
---
|
|
208
217
|
|
|
209
|
-
## Reference block
|
|
218
|
+
## Reference block 4 — validate script
|
|
210
219
|
|
|
211
220
|
```bash
|
|
212
|
-
|
|
213
|
-
|
|
221
|
+
for f in .github/workflows/*.yml .github/workflows/*.yaml; do
|
|
222
|
+
[ -f "$f" ] || continue
|
|
214
223
|
python3 -c "import yaml; yaml.safe_load(open('$f'))" || echo "FAIL: $f has YAML syntax errors"
|
|
215
224
|
done
|
|
216
225
|
|
|
217
|
-
|
|
218
|
-
for f in .github/workflows/*.yaml; do
|
|
226
|
+
for f in .github/workflows/test-build-release.yml; do
|
|
219
227
|
if grep -q "permissions:" "$f"; then
|
|
220
228
|
echo "OK: $f has permissions block"
|
|
221
229
|
else
|
|
222
|
-
echo "WARNING: $f missing permissions block
|
|
230
|
+
echo "WARNING: $f missing permissions block"
|
|
223
231
|
fi
|
|
224
232
|
done
|
|
225
233
|
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
if ! grep -q "NPM_TOKEN" "$f"; then
|
|
230
|
-
echo "WARNING: $f has npm publish/semantic-release but no NPM_TOKEN secret"
|
|
231
|
-
fi
|
|
234
|
+
if grep -q 'workflows: \["Test Build Release"\]' .github/workflows/deploy.yml 2>/dev/null; then
|
|
235
|
+
if ! grep -q 'name: Test Build Release' .github/workflows/test-build-release.yml; then
|
|
236
|
+
echo "WARNING: deploy.yml listens for Test Build Release but TBR name may differ"
|
|
232
237
|
fi
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
# Check for hardcoded Node versions
|
|
236
|
-
for f in .github/workflows/*.yaml; do
|
|
237
|
-
if grep -q "node-version: [0-9]" "$f" && grep -qv "node-version-file\|\.nvmrc" "$f"; then
|
|
238
|
-
echo "NOTE: $f has hardcoded Node version — consider using .nvmrc instead"
|
|
239
|
-
fi
|
|
240
|
-
done
|
|
241
|
-
|
|
242
|
-
# Check for common secrets reference errors
|
|
243
|
-
for f in .github/workflows/*.yaml; do
|
|
244
|
-
# Secrets referencing something that doesn't exist in the workflow
|
|
245
|
-
grep -oP 'secrets\.\w+' "$f" | sort -u | while read -r secret; do
|
|
246
|
-
echo "REF: $f references $secret"
|
|
247
|
-
done
|
|
248
|
-
done
|
|
238
|
+
fi
|
|
249
239
|
```
|
|
250
240
|
|
|
251
241
|
---
|
|
252
242
|
|
|
253
|
-
## Reference block
|
|
243
|
+
## Reference block 5 — dry-run
|
|
254
244
|
|
|
255
245
|
```bash
|
|
256
|
-
# Option A: Use act (recommended)
|
|
257
246
|
if command -v act &>/dev/null; then
|
|
258
|
-
act push --dry-run
|
|
259
|
-
echo "OK: act dry-run completed"
|
|
247
|
+
act push --dry-run -W .github/workflows/test-build-release.yml
|
|
260
248
|
elif command -v gh &>/dev/null; then
|
|
261
|
-
|
|
262
|
-
gh workflow run ci.yaml --ref "$(git branch --show-current)"
|
|
263
|
-
echo "OK: CI workflow dispatched. Check status: gh run list"
|
|
249
|
+
gh workflow run test-build-release.yml --ref "$(git branch --show-current)"
|
|
264
250
|
else
|
|
265
|
-
echo "
|
|
266
|
-
echo " Install gh CLI for remote dry-run"
|
|
251
|
+
echo "Install act or gh for dry-run"
|
|
267
252
|
fi
|
|
268
|
-
```
|
|
253
|
+
```
|
package/skills/wire-ci/SKILL.md
CHANGED
|
@@ -11,12 +11,12 @@ effort: standard
|
|
|
11
11
|
>
|
|
12
12
|
> **HARD GATE** — CI that is untestable locally will break every cycle. Always run `--validate` after generating workflows and `--dry-run` before pushing.
|
|
13
13
|
|
|
14
|
-
Generate, validate, and test CI workflows. Detects your project type,
|
|
14
|
+
Generate, validate, and test CI workflows. Detects your project type, copies org templates from `danielvm-git/.github/workflow-templates/`, and provides local verification to catch auth, permissions, and syntax issues before they reach CI.
|
|
15
15
|
|
|
16
16
|
## What this sets up
|
|
17
17
|
|
|
18
|
-
1. **
|
|
19
|
-
2. **
|
|
18
|
+
1. **Test Build Release workflow** — `.github/workflows/test-build-release.yml` with lint → test → build → release (single pipeline, `needs:` chain)
|
|
19
|
+
2. **Deploy workflow** — `.github/workflows/deploy.yml` triggered via `workflow_run` (BigBase/Pages stacks only; CLI/library repos omit this)
|
|
20
20
|
3. **`--validate` mode** — checks YAML syntax, workflow permissions, required secrets, and common pitfalls
|
|
21
21
|
4. **`--dry-run` mode** — runs workflows locally via `act` or `gh workflow run` to prove correctness before push
|
|
22
22
|
5. **Failure pattern documentation** — common CI failure categories and their fixes
|
|
@@ -25,45 +25,41 @@ Generate, validate, and test CI workflows. Detects your project type, produces p
|
|
|
25
25
|
|
|
26
26
|
### 1. Detect project type
|
|
27
27
|
|
|
28
|
-
Read the project root for manifest files to determine which template to
|
|
28
|
+
Read the project root for manifest files to determine which template pair to copy:
|
|
29
29
|
|
|
30
|
-
| Manifest | Type | Template |
|
|
31
|
-
|
|
32
|
-
| `Cargo.toml` | Rust |
|
|
33
|
-
| `package.json` | Node |
|
|
34
|
-
| `setup.py` / `pyproject.toml` | Python |
|
|
35
|
-
| `go.mod` | Go |
|
|
36
|
-
|
|
|
37
|
-
|
|
|
30
|
+
| Manifest | Type | Template pair (from `.github` repo) |
|
|
31
|
+
|----------|------|-------------------------------------|
|
|
32
|
+
| `Cargo.toml` | Rust | `test-build-release-monorepo.yml` + `deploy-monorepo.yml` (or monorepo subset) |
|
|
33
|
+
| `package.json` | Node | `test-build-release-node.yml` + `deploy-node.yml` |
|
|
34
|
+
| `setup.py` / `pyproject.toml` | Python | `test-build-release-python.yml` + `deploy-python.yml` |
|
|
35
|
+
| `go.mod` | Go | `test-build-release-go.yml` + `deploy-go.yml` |
|
|
36
|
+
| Static site (no server) | Static | `test-build-release-static.yml` + `deploy-static.yml` |
|
|
37
|
+
| `Package.swift` | Swift | `test-build-release-swift.yml` only (no deploy yet) |
|
|
38
|
+
| Multiple detected | Polyglot | `test-build-release-monorepo.yml` + `deploy-monorepo.yml` |
|
|
38
39
|
|
|
39
|
-
|
|
40
|
+
**CLI/library repos** (no hosted target): copy only `test-build-release-<stack>.yml` → `test-build-release.yml`. The `release` job is terminal; skip `deploy.yml`. See `docs/how-to/migrate-ci-cd/migration-plan.md` § CLI and library repos.
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
If no manifest is found, prompt the user to specify the type or pass `--type <rust|node|python|go|static|swift>`.
|
|
42
43
|
|
|
43
|
-
|
|
44
|
+
### 2. Copy test-build-release template
|
|
44
45
|
|
|
45
|
-
|
|
46
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
46
|
+
Copy the matching template from `~/Developer/.github/workflow-templates/` to `.github/workflows/test-build-release.yml`. **Do not rename the workflow `name:` field** — deploy listens for `"Test Build Release"`.
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
48
|
+
Edit placeholders: `APP_TYPE`, `SITE_URL`, language versions.
|
|
50
49
|
|
|
51
|
-
|
|
52
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
50
|
+
See [REFERENCE.md](REFERENCE.md) for stack-specific job shapes.
|
|
53
51
|
|
|
54
|
-
|
|
55
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
52
|
+
### 3. Copy deploy template (hosted stacks only)
|
|
56
53
|
|
|
57
|
-
|
|
58
|
-
See [REFERENCE.md](REFERENCE.md)
|
|
59
|
-
|
|
60
|
-
### 3. Generate release workflow (if semantic-release detected)
|
|
54
|
+
If the project deploys to BigBase or GitHub Pages:
|
|
61
55
|
|
|
62
|
-
|
|
56
|
+
```bash
|
|
57
|
+
cp ~/Developer/.github/workflow-templates/deploy-${STACK}.yml .github/workflows/deploy.yml
|
|
58
|
+
```
|
|
63
59
|
|
|
64
|
-
|
|
60
|
+
Configure `BIGBASE_SITE_ID`, `BIGBASE_DEPLOY_TOKEN`, and matching `SITE_URL`. Deploy runs via `workflow_run` after TBR succeeds on `main` with `cancel-in-progress: false`.
|
|
65
61
|
|
|
66
|
-
|
|
62
|
+
Skip this step for CLI/library repos.
|
|
67
63
|
|
|
68
64
|
### 4. Validate workflows (`--validate`)
|
|
69
65
|
|
|
@@ -98,6 +94,8 @@ Add the following to the project's documentation or CLAUDE.md after setup:
|
|
|
98
94
|
| `cargo clippy` errors | New lints in Rust nightly | `cargo clippy --fix` or allow specific lints |
|
|
99
95
|
| `act` not found | Docker not running or act not installed | `brew install act` / `docker ps` to verify Docker |
|
|
100
96
|
| Hardcoded Node version stale | `.nvmrc` exists but workflow uses hardcoded version | Use `node-version-file: .nvmrc` instead |
|
|
97
|
+
| Deploy never runs | TBR workflow renamed | Keep `name: Test Build Release` in test-build-release.yml |
|
|
98
|
+
| Release rebuilds binary | Artifact not downloaded | `release` job must `download-artifact` from `build` |
|
|
101
99
|
|
|
102
100
|
## Verify
|
|
103
101
|
|
package/skills-lock.json
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
},
|
|
14
14
|
"audit-code": {
|
|
15
15
|
"description": "Self-review checklist for the coding agent to run before dispatching a reviewer. Checks CONVENTIONS.md compliance, Boy Scout Rule, test coverage, types, and SOLID. Produces a pass/fail checklist. Use before request-review, before committing, or when user asks for a code quality check.",
|
|
16
|
-
"sha256": "
|
|
16
|
+
"sha256": "431377cef4a845a9",
|
|
17
17
|
"path": "skills/audit-codeSKILL.md"
|
|
18
18
|
},
|
|
19
19
|
"audit-plan": {
|
|
@@ -153,12 +153,12 @@
|
|
|
153
153
|
},
|
|
154
154
|
"grill-me": {
|
|
155
155
|
"description": "Interactive assumption-surfacing Q&A that stress-tests a plan through relentless questioning until every decision is resolved. Use when user wants to challenge a plan, validate decisions from conversation/context, or mentions \"grill me\". For doc-grounded variant, use grill-with-docs.",
|
|
156
|
-
"sha256": "
|
|
156
|
+
"sha256": "fd2bf0223ed3d067",
|
|
157
157
|
"path": "skills/grill-meSKILL.md"
|
|
158
158
|
},
|
|
159
159
|
"grill-with-docs": {
|
|
160
160
|
"description": "Doc-grounded variant of grill-me — stress-tests plan assumptions by fetching and citing real library or API documentation. Every challenge must cite a real URL. Use when the plan depends on a specific library or external API.",
|
|
161
|
-
"sha256": "
|
|
161
|
+
"sha256": "b8e085ecf44a7711",
|
|
162
162
|
"path": "skills/grill-with-docsSKILL.md"
|
|
163
163
|
},
|
|
164
164
|
"guard-git": {
|
|
@@ -258,7 +258,7 @@
|
|
|
258
258
|
},
|
|
259
259
|
"request-review": {
|
|
260
260
|
"description": "Dispatch a fresh reviewer agent with a clean context to critique the code after audit-code passes. The reviewer has no shared state with the coding agent and gives a genuine second opinion. Use after audit-code passes, before committing, or when user wants an independent code review.",
|
|
261
|
-
"sha256": "
|
|
261
|
+
"sha256": "d52a30509e54f7c8",
|
|
262
262
|
"path": "skills/request-reviewSKILL.md"
|
|
263
263
|
},
|
|
264
264
|
"research-first": {
|
|
@@ -388,7 +388,7 @@
|
|
|
388
388
|
},
|
|
389
389
|
"wire-ci": {
|
|
390
390
|
"description": "\"CI pipeline setup with pre-built templates and local validation. Generates GitHub Actions workflows, validates YAML syntax and permissions, supports dry-run via act/gh. The CI equivalent of wire-observability.\"",
|
|
391
|
-
"sha256": "
|
|
391
|
+
"sha256": "f87372acb009f582",
|
|
392
392
|
"path": "skills/wire-ciSKILL.md"
|
|
393
393
|
},
|
|
394
394
|
"wire-observability": {
|