@biffo/cli 0.298.9 → 0.298.11

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.
@@ -85,6 +85,25 @@ jobs:
85
85
  # measure.
86
86
  - name: Error-branch coverage
87
87
  run: uv run python scripts/error_branch_coverage.py --check --coverage coverage.json
88
+ - name: Routing smoke test — self-test
89
+ if: ${{ !cancelled() }}
90
+ # scripts/routing-smoke-test.sh is distributed here too, verbatim,
91
+ # via shared-files.json's `files` — but a plugin repo has no
92
+ # deploy.yml and no CDN of its own to smoke-test the way the sibling
93
+ # skeleton's deploy.yml does post-deploy. Until #1710, that meant
94
+ # this file had NO caller anywhere in this skeleton's CI, despite
95
+ # shipping 8 real scenarios (good deploy, CDN no-op, prefix
96
+ # mismatch, bare-path-broken, unreachable/fail-closed, unset-prefix
97
+ # fail-closed, unset-base-url fail-closed, root-sibling unproven) —
98
+ # exactly the #1413 zero-caller shape, invisible to
99
+ # scripts/guard-self-test-wiring.sh because that audit only reaches
100
+ # this template repo's own root-level scripts/, never
101
+ # _skeletons/**. This is that caller, same reasoning as the
102
+ # Core-revision preflight self-test below: it proves the script
103
+ # itself still catches the three recorded CDN routing failures and
104
+ # fails CLOSED when it cannot tell, against a stubbed curl, even
105
+ # though nothing in this repo ever runs it for a REAL deployment.
106
+ run: sh scripts/routing-smoke-test.test.sh
88
107
  - name: Core-revision preflight — self-test
89
108
  if: ${{ !cancelled() }}
90
109
  # scripts/core-revision-preflight.sh (biffo-template#1604) is
@@ -100,6 +119,53 @@ jobs:
100
119
  # py-dependency-audit.sh already carry as inert-but-verified copies
101
120
  # in a Python-only or JS-only sibling.
102
121
  run: sh scripts/core-revision-preflight.test.sh
122
+ - name: Guard self-test wiring — this repo's own scripts/*.test.sh
123
+ if: ${{ !cancelled() }}
124
+ # Level-3 self-audit (biffo-template#1710): the template repo's own
125
+ # scripts/guard-self-test-wiring.sh globs its OWN root-level
126
+ # scripts/*.test.sh with `find -maxdepth 1`, so it structurally
127
+ # cannot reach a skeleton's copy of that discipline — which is
128
+ # exactly how routing-smoke-test.test.sh sat in this file with zero
129
+ # callers, undetected, until #1710. Rather than teach that script to
130
+ # walk into _skeletons/** (which would require editing it, and would
131
+ # still only cover the TEMPLATE repo, never a repo already
132
+ # scaffolded from this skeleton), this repo checks ITSELF, so a
133
+ # plugin generated from this skeleton fails closed from birth if a
134
+ # future *.test.sh guard is added here with no run: line anywhere.
135
+ # Residual: this step protects repos generated FROM this skeleton
136
+ # going forward; it does not give biffo-template's own CI a way to
137
+ # verify a skeleton's wiring before it is ever scaffolded out — that
138
+ # remains scripts/guard-self-test-wiring.sh's gap, tracked as the
139
+ # named residual on #1710.
140
+ run: |
141
+ set -eu
142
+ guards=$(find scripts -maxdepth 1 -type f -name '*.test.sh' | sort)
143
+ if [ -z "$guards" ]; then
144
+ echo "FAIL: found 0 scripts/*.test.sh — an empty discovery is not a vacuous pass." >&2
145
+ exit 1
146
+ fi
147
+ missing=0
148
+ for g in $guards; do
149
+ name=$(basename "$g")
150
+ found=0
151
+ for wf in .github/workflows/*.yml .github/workflows/*.yaml; do
152
+ [ -f "$wf" ] || continue
153
+ if grep -v '^[[:space:]]*#' "$wf" | grep -q "$name"; then
154
+ found=1
155
+ fi
156
+ done
157
+ if [ "$found" -eq 1 ]; then
158
+ echo "OK: $name has a caller in .github/workflows/"
159
+ else
160
+ echo "MISSING CALLER: $name has no run: line anywhere in .github/workflows/" >&2
161
+ missing=1
162
+ fi
163
+ done
164
+ if [ "$missing" -ne 0 ]; then
165
+ echo "FAIL: at least one scripts/*.test.sh guard has zero callers." >&2
166
+ exit 1
167
+ fi
168
+ echo "PASS: every scripts/*.test.sh guard in this repo has a caller."
103
169
  - uses: codecov/codecov-action@v5
104
170
  if: always()
105
171
  with:
@@ -259,6 +259,59 @@ jobs:
259
259
  # is missing, against a stubbed curl. Without this caller the script
260
260
  # is the #1413 zero-caller class the instant it lands.
261
261
  run: sh ../../scripts/core-revision-preflight.test.sh
262
+ - name: Guard self-test wiring — this repo's own scripts/*.test.sh
263
+ if: ${{ !cancelled() }}
264
+ working-directory: .
265
+ # Level-3 self-audit (biffo-template#1710): the template repo's own
266
+ # scripts/guard-self-test-wiring.sh globs its OWN root-level
267
+ # scripts/*.test.sh with `find -maxdepth 1`, so it structurally
268
+ # cannot reach a skeleton's copy of that discipline — which is
269
+ # exactly how the plugin skeleton's routing-smoke-test.test.sh sat
270
+ # unwired, undetected, until #1710 (this skeleton's own copy IS
271
+ # correctly wired above; this step is what keeps the NEXT one from
272
+ # repeating that). Explicit `working-directory: .` overrides this
273
+ # job's `defaults.run.working-directory: services/api`, because the
274
+ # scripts and workflows being audited live at the repo root, not
275
+ # under services/api. Rather than teach the template's script to
276
+ # walk into _skeletons/** (which would still only cover the
277
+ # TEMPLATE repo, never a repo already scaffolded from this
278
+ # skeleton), this repo checks ITSELF, so a sibling generated from
279
+ # this skeleton fails closed from birth if a future *.test.sh guard
280
+ # is added with no run: line anywhere. Residual: this step protects
281
+ # repos generated FROM this skeleton going forward; it does not
282
+ # give biffo-template's own CI a way to verify a skeleton's wiring
283
+ # before it is ever scaffolded out — that remains
284
+ # scripts/guard-self-test-wiring.sh's gap, tracked as the named
285
+ # residual on #1710.
286
+ run: |
287
+ set -eu
288
+ guards=$(find scripts -maxdepth 1 -type f -name '*.test.sh' | sort)
289
+ if [ -z "$guards" ]; then
290
+ echo "FAIL: found 0 scripts/*.test.sh — an empty discovery is not a vacuous pass." >&2
291
+ exit 1
292
+ fi
293
+ missing=0
294
+ for g in $guards; do
295
+ name=$(basename "$g")
296
+ found=0
297
+ for wf in .github/workflows/*.yml .github/workflows/*.yaml; do
298
+ [ -f "$wf" ] || continue
299
+ if grep -v '^[[:space:]]*#' "$wf" | grep -q "$name"; then
300
+ found=1
301
+ fi
302
+ done
303
+ if [ "$found" -eq 1 ]; then
304
+ echo "OK: $name has a caller in .github/workflows/"
305
+ else
306
+ echo "MISSING CALLER: $name has no run: line anywhere in .github/workflows/" >&2
307
+ missing=1
308
+ fi
309
+ done
310
+ if [ "$missing" -ne 0 ]; then
311
+ echo "FAIL: at least one scripts/*.test.sh guard has zero callers." >&2
312
+ exit 1
313
+ fi
314
+ echo "PASS: every scripts/*.test.sh guard in this repo has a caller."
262
315
 
263
316
  security-secrets:
264
317
  name: Secret Scan
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@biffo/cli",
3
- "version": "0.298.9",
3
+ "version": "0.298.11",
4
4
  "description": "Biffo project scaffolding CLI",
5
5
  "license": "MIT",
6
6
  "type": "module",