bigpowers 2.84.0 → 2.85.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.
Files changed (112) hide show
  1. package/.agents/skills/audit-code/SKILL.md +4 -7
  2. package/.agents/skills/craft-skill/SKILL.md +21 -4
  3. package/.agents/skills/grill-me/SKILL.md +12 -0
  4. package/.agents/skills/grill-with-docs/SKILL.md +12 -0
  5. package/.agents/skills/request-review/SKILL.md +1 -0
  6. package/.agents/skills/seed-conventions/SKILL.md +21 -4
  7. package/.agents/skills/stocktake-skills/SKILL.md +2 -0
  8. package/.agents/skills/wire-ci/SKILL.md +164 -181
  9. package/.codebuddy/skills/audit-code/SKILL.md +4 -7
  10. package/.codebuddy/skills/craft-skill/SKILL.md +21 -4
  11. package/.codebuddy/skills/grill-me/SKILL.md +12 -0
  12. package/.codebuddy/skills/grill-with-docs/SKILL.md +12 -0
  13. package/.codebuddy/skills/request-review/SKILL.md +1 -0
  14. package/.codebuddy/skills/seed-conventions/SKILL.md +21 -4
  15. package/.codebuddy/skills/stocktake-skills/SKILL.md +2 -0
  16. package/.codebuddy/skills/wire-ci/SKILL.md +164 -181
  17. package/.codex/skills/audit-code/SKILL.md +4 -7
  18. package/.codex/skills/craft-skill/SKILL.md +21 -4
  19. package/.codex/skills/grill-me/SKILL.md +12 -0
  20. package/.codex/skills/grill-with-docs/SKILL.md +12 -0
  21. package/.codex/skills/request-review/SKILL.md +1 -0
  22. package/.codex/skills/seed-conventions/SKILL.md +21 -4
  23. package/.codex/skills/stocktake-skills/SKILL.md +2 -0
  24. package/.codex/skills/wire-ci/SKILL.md +164 -181
  25. package/.hermes/skills/audit-code/SKILL.md +4 -7
  26. package/.hermes/skills/craft-skill/SKILL.md +21 -4
  27. package/.hermes/skills/grill-me/SKILL.md +12 -0
  28. package/.hermes/skills/grill-with-docs/SKILL.md +12 -0
  29. package/.hermes/skills/request-review/SKILL.md +1 -0
  30. package/.hermes/skills/seed-conventions/SKILL.md +21 -4
  31. package/.hermes/skills/stocktake-skills/SKILL.md +2 -0
  32. package/.hermes/skills/wire-ci/SKILL.md +164 -181
  33. package/.kilocode/rules/audit-code.md +4 -7
  34. package/.kilocode/rules/craft-skill.md +21 -4
  35. package/.kilocode/rules/grill-me.md +12 -0
  36. package/.kilocode/rules/grill-with-docs.md +12 -0
  37. package/.kilocode/rules/request-review.md +1 -0
  38. package/.kilocode/rules/seed-conventions.md +21 -4
  39. package/.kilocode/rules/stocktake-skills.md +2 -0
  40. package/.kilocode/rules/wire-ci.md +164 -181
  41. package/.mimocode/skills/audit-code/SKILL.md +4 -7
  42. package/.mimocode/skills/craft-skill/SKILL.md +21 -4
  43. package/.mimocode/skills/grill-me/SKILL.md +12 -0
  44. package/.mimocode/skills/grill-with-docs/SKILL.md +12 -0
  45. package/.mimocode/skills/request-review/SKILL.md +1 -0
  46. package/.mimocode/skills/seed-conventions/SKILL.md +21 -4
  47. package/.mimocode/skills/stocktake-skills/SKILL.md +2 -0
  48. package/.mimocode/skills/wire-ci/SKILL.md +164 -181
  49. package/.pi/package.json +1 -1
  50. package/.pi/prompts/audit-code.md +4 -7
  51. package/.pi/prompts/craft-skill.md +21 -4
  52. package/.pi/prompts/grill-me.md +12 -0
  53. package/.pi/prompts/grill-with-docs.md +12 -0
  54. package/.pi/prompts/request-review.md +1 -0
  55. package/.pi/prompts/seed-conventions.md +21 -4
  56. package/.pi/prompts/stocktake-skills.md +2 -0
  57. package/.pi/prompts/wire-ci.md +164 -181
  58. package/.pi/skills/audit-code/SKILL.md +4 -7
  59. package/.pi/skills/craft-skill/SKILL.md +21 -4
  60. package/.pi/skills/grill-me/SKILL.md +12 -0
  61. package/.pi/skills/grill-with-docs/SKILL.md +12 -0
  62. package/.pi/skills/request-review/SKILL.md +1 -0
  63. package/.pi/skills/seed-conventions/SKILL.md +21 -4
  64. package/.pi/skills/stocktake-skills/SKILL.md +2 -0
  65. package/.pi/skills/wire-ci/SKILL.md +164 -181
  66. package/.trae/skills/audit-code/SKILL.md +4 -7
  67. package/.trae/skills/craft-skill/SKILL.md +21 -4
  68. package/.trae/skills/grill-me/SKILL.md +12 -0
  69. package/.trae/skills/grill-with-docs/SKILL.md +12 -0
  70. package/.trae/skills/request-review/SKILL.md +1 -0
  71. package/.trae/skills/seed-conventions/SKILL.md +21 -4
  72. package/.trae/skills/stocktake-skills/SKILL.md +2 -0
  73. package/.trae/skills/wire-ci/SKILL.md +164 -181
  74. package/.windsurf/rules/audit-code.md +4 -7
  75. package/.windsurf/rules/craft-skill.md +21 -4
  76. package/.windsurf/rules/grill-me.md +12 -0
  77. package/.windsurf/rules/grill-with-docs.md +12 -0
  78. package/.windsurf/rules/request-review.md +1 -0
  79. package/.windsurf/rules/seed-conventions.md +21 -4
  80. package/.windsurf/rules/stocktake-skills.md +2 -0
  81. package/.windsurf/rules/wire-ci.md +164 -181
  82. package/.zcode/skills/audit-code/SKILL.md +4 -7
  83. package/.zcode/skills/craft-skill/SKILL.md +21 -4
  84. package/.zcode/skills/grill-me/SKILL.md +12 -0
  85. package/.zcode/skills/grill-with-docs/SKILL.md +12 -0
  86. package/.zcode/skills/request-review/SKILL.md +1 -0
  87. package/.zcode/skills/seed-conventions/SKILL.md +21 -4
  88. package/.zcode/skills/stocktake-skills/SKILL.md +2 -0
  89. package/.zcode/skills/wire-ci/SKILL.md +164 -181
  90. package/CHANGELOG.md +19 -0
  91. package/README.md +14 -1
  92. package/SKILL-INDEX.md +84 -76
  93. package/package.json +1 -1
  94. package/scripts/generate-skill-index.sh +20 -4
  95. package/scripts/golden-g04-selftest.sh +19 -0
  96. package/scripts/land-branch.sh +22 -9
  97. package/scripts/lib/__pycache__/link_utils.cpython-312.pyc +0 -0
  98. package/scripts/lib/__pycache__/srp_engine_links.cpython-312.pyc +0 -0
  99. package/scripts/lib/land-branch-push.sh +106 -0
  100. package/scripts/validate-agentic-ste.sh +229 -0
  101. package/skills/audit-code/SKILL.md +4 -7
  102. package/skills/craft-skill/SKILL.md +22 -4
  103. package/skills/grill-me/SKILL.md +12 -0
  104. package/skills/grill-with-docs/SKILL.md +12 -0
  105. package/skills/request-review/SKILL.md +1 -0
  106. package/skills/seed-conventions/SKILL.md +21 -4
  107. package/skills/stocktake-skills/SKILL.md +2 -0
  108. package/skills/visual-dashboard/scripts/frame-template.html +1 -39
  109. package/skills/wire-ci/REFERENCE.md +137 -152
  110. package/skills/wire-ci/SKILL.md +28 -30
  111. package/skills-lock.json +8 -8
  112. package/tests/test-land-branch-protected.sh +222 -0
@@ -13,26 +13,24 @@
13
13
 
14
14
  ## Examples
15
15
 
16
- ### Create CI for a Rust project
16
+ ### Create CI for a Go project (TBR + optional deploy)
17
17
 
18
18
  ```bash
19
- # Detect from Cargo.toml, generate workflows
20
- wire-ci
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 Node project with semantic-release
27
+ ### Create CI for a CLI tool (TBR only, no deploy)
30
28
 
31
29
  ```bash
32
- wire-ci
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-release` | Skip release workflow generation even if semantic-release detected |
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: CI
74
- on: [push, pull_request]
75
- jobs:
76
- test:
77
- runs-on: ubuntu-latest
78
- steps:
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
- ## Reference block 2
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
- test:
99
- runs-on: ubuntu-latest
84
+ lint:
85
+ runs-on: ubuntu-22.04
86
+ timeout-minutes: 10
100
87
  steps:
101
- - uses: actions/checkout@v4
102
- - uses: actions/setup-node@v4
88
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
89
+ - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
103
90
  with:
104
- node-version: 20
105
- cache: npm
106
- - run: npm ci
107
- - run: npm test
108
- - run: npm run lint 2>/dev/null || true
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
- runs-on: ubuntu-latest
98
+ needs: [lint]
99
+ runs-on: ubuntu-22.04
123
100
  steps:
124
- - uses: actions/checkout@v4
125
- - uses: actions/setup-python@v5
101
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
102
+ - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
126
103
  with:
127
- python-version: "3.12"
128
- cache: pip
129
- - run: pip install -e ".[dev]" || pip install -e .
130
- - run: pip install pytest ruff mypy
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
- ```yaml
141
- name: CI
142
- on: [push, pull_request]
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@v4
148
- - uses: actions/setup-go@v5
113
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
114
+ - uses: actions/setup-go@924ae3a1cded613372ab5595356fb5720e22ba16 # v6.5.0
149
115
  with:
150
- go-version: stable
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 5
141
+ ## Reference block 2 — deploy.yml (BigBase, excerpt)
160
142
 
161
143
  ```yaml
162
- name: CI
163
- on: [push, pull_request]
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
- test:
166
- runs-on: ubuntu-latest
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/checkout@v4
169
- - run: cmake -B build
170
- - run: cmake --build build
171
- - run: ctest --test-dir build
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 6
190
+ ## Reference block 3 — CLI dogfood (big-release pattern)
177
191
 
178
192
  ```yaml
179
- name: Release
180
- on:
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
- - uses: actions/checkout@v4
196
+ - run: make build
197
+ - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
193
198
  with:
194
- fetch-depth: 0
195
- - uses: actions/setup-node@v4
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
- node-version: 20
198
- cache: npm
199
- - run: npm ci
200
- - run: npm run build 2>/dev/null || true
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 7
218
+ ## Reference block 4 — validate script
210
219
 
211
220
  ```bash
212
- # Validate YAML syntax
213
- for f in .github/workflows/*.yaml; do
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
- # Check permissions block presence
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 — add one for security"
230
+ echo "WARNING: $f missing permissions block"
223
231
  fi
224
232
  done
225
233
 
226
- # Check for npm publish without NPM_TOKEN
227
- for f in .github/workflows/*.yaml; do
228
- if grep -q "npm publish\|npx semantic-release" "$f"; then
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
- done
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 8
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
- # Option B: Use gh workflow run (remote test, no local docker)
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 "NOTE: Install act (https://github.com/nektos/act) for full local dry-run"
266
- echo " Install gh CLI for remote dry-run"
251
+ echo "Install act or gh for dry-run"
267
252
  fi
268
- ```
253
+ ```
@@ -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, produces platform-appropriate GitHub Actions configurations, and provides local verification to catch auth, permissions, and syntax issues before they reach CI.
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. **CI workflow** — `.github/workflows/ci.yaml` with test, lint, typecheck, build steps
19
- 2. **Release workflow** — `.github/workflows/release.yaml` with semantic-release (if applicable)
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 use:
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 | Rust CI: test, clippy, fmt, build |
33
- | `package.json` | Node | Node CI: test, lint, typecheck, build |
34
- | `setup.py` / `pyproject.toml` | Python | Python CI: pytest, ruff/mypy/flake8, build |
35
- | `go.mod` | Go | Go CI: test, vet, staticcheck, build |
36
- | `CMakeLists.txt` | C/C++ | C/C++ CI: cmake build, ctest |
37
- | Multiple detected | Polyglot | Combined workflows or error if ambiguous |
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
- If no manifest is found, prompt the user to specify the type or pass `--type <rust|node|python|go|cpp>`.
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
- ### 2. Generate CI workflow
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
- Create `.github/workflows/ci.yaml` with standard steps derived from the project type and its manifest:
44
+ ### 2. Copy test-build-release template
44
45
 
45
- **Rust template (`Cargo.toml`):**
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
- **Node template (`package.json`):**
49
- See [REFERENCE.md](REFERENCE.md)
48
+ Edit placeholders: `APP_TYPE`, `SITE_URL`, language versions.
50
49
 
51
- **Python template (`setup.py` / `pyproject.toml`):**
52
- See [REFERENCE.md](REFERENCE.md)
50
+ See [REFERENCE.md](REFERENCE.md) for stack-specific job shapes.
53
51
 
54
- **Go template (`go.mod`):**
55
- See [REFERENCE.md](REFERENCE.md)
52
+ ### 3. Copy deploy template (hosted stacks only)
56
53
 
57
- **C/C++ template (`CMakeLists.txt`):**
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
- If the project has semantic-release configured (in `package.json`, `.releaserc`, or `release.config.js`), also generate `.github/workflows/release.yaml`:
56
+ ```bash
57
+ cp ~/Developer/.github/workflow-templates/deploy-${STACK}.yml .github/workflows/deploy.yml
58
+ ```
63
59
 
64
- See [REFERENCE.md](REFERENCE.md)
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
- > **NPM_TOKEN is required** for publishing to npm. Without it, semantic-release will fail at the publish step. See `--validate` to check this.
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": "0636f1d9d6c591a3",
16
+ "sha256": "431377cef4a845a9",
17
17
  "path": "skills/audit-codeSKILL.md"
18
18
  },
19
19
  "audit-plan": {
@@ -48,7 +48,7 @@
48
48
  },
49
49
  "craft-skill": {
50
50
  "description": "Create new bigpowers skills with proper structure, progressive disclosure, and bundled resources. Use when user wants to create, write, or build a new skill for the bigpowers lifecycle.",
51
- "sha256": "2caa9d8ae9298b4b",
51
+ "sha256": "07d1cc8eddca50c5",
52
52
  "path": "skills/craft-skillSKILL.md"
53
53
  },
54
54
  "deepen-architecture": {
@@ -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": "8ef90da0f127f2fd",
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": "bd4267952e492f9c",
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": "5a845fc8c2ba7acb",
261
+ "sha256": "d52a30509e54f7c8",
262
262
  "path": "skills/request-reviewSKILL.md"
263
263
  },
264
264
  "research-first": {
@@ -308,7 +308,7 @@
308
308
  },
309
309
  "seed-conventions": {
310
310
  "description": "Generate CLAUDE.md and CONVENTIONS.md for a brand-new project through a brief interview, and create the specs/ directory with evolved bigpowers structure (product/, tech-architecture/, verifications/, epics/archive/). Entry point for greenfield projects. Use when starting a new project from scratch, when user asks to set up AI agent conventions, or when there is no CLAUDE.md yet.",
311
- "sha256": "35c335385c4ad48b",
311
+ "sha256": "6cb91bf0b5cdd9b3",
312
312
  "path": "skills/seed-conventionsSKILL.md"
313
313
  },
314
314
  "session-state": {
@@ -343,7 +343,7 @@
343
343
  },
344
344
  "stocktake-skills": {
345
345
  "description": "Sequential subagent batch audit of the bigpowers skill catalog — Quick Scan (changed only) or Full (all skills). Use during sustain phase, before a major release, or when catalog drift is suspected.",
346
- "sha256": "6833c900df48a98a",
346
+ "sha256": "9595b954341217d7",
347
347
  "path": "skills/stocktake-skillsSKILL.md"
348
348
  },
349
349
  "survey-context": {
@@ -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": "732ab59251710ea1",
391
+ "sha256": "f87372acb009f582",
392
392
  "path": "skills/wire-ciSKILL.md"
393
393
  },
394
394
  "wire-observability": {