Bundle: ci-pipeline-cleanup, Phase 13. Bundle complete. Final shape: - Status checks per push: 19 → 7 - ci.yml line count: 1488 → 439 (-71%) - 22 regression guards extracted to scripts/ci-guards/ - 9-package coverage thresholds in .github/coverage-thresholds.yml - 3 lying fields closed (staticcheck soft-gate; H-001 fabricated-digest regex-only check; Windows matrix that validated nothing) - 5 new gates added (digest validity, go mod tidy, gofmt parity, OpenAPI ↔ handler operationId parity, Docker build smoke) - 3-tier make convention (verify, verify-deploy, verify-docs) - 2 deliberate revisions of Bundle II frozen decisions (0.4 + 0.9) - NEW docs/ci-pipeline.md operator guide - NEW docs/connector-iis.md::Operator validation playbook (Windows) Phase 13 verification log at cowork/ci-pipeline-cleanup/phase-13-verification-log.md. Operator action items post-merge: 1. Update GitHub branch protection rule (19 → 7 required checks) 2. RAM-headroom verification on prototype branch (frozen decision 0.14) 3. Tag (recommended: increment from v2.0.66) Operator picks the exact v2.X.0 from the increment-from-the-last-tag rule. Zero product behavior changes — CI-only refactor. No migrations, no API changes, no connector behavior changes.
4.0 KiB
Phase 13 Verification Log
Captured against repo HEAD post-Phase-12 commit
453ba78on 2026-04-30.
All 22 ci-guards run on HEAD
PASS B-1-orphan-crud.sh
PASS D-1-D-2-statusbadge-phantom.sh
PASS G-1-jwt-auth-literal.sh
PASS G-2-api-key-hash-json.sh
PASS G-3-env-docs-drift.sh
PASS H-001-bare-from.sh
PASS H-009-readme-jwt.sh
PASS L-001-insecure-skip-verify.sh
PASS L-1-bulk-action-loop.sh
PASS M-012-no-root-user.sh
PASS P-1-documented-orphan-fns.sh
PASS S-1-hardcoded-source-counts.sh
PASS S-2-strings-contains-err.sh
PASS T-1-frontend-page-coverage.sh
PASS U-2-plaintext-healthcheck.sh
PASS U-3-migration-mount.sh
PASS bundle-8-L-015-target-blank-rel-noopener.sh
PASS bundle-8-L-019-dangerously-set-inner-html.sh
PASS bundle-8-M-009-bare-usemutation.sh
PASS digest-validity.sh
PASS openapi-handler-parity.sh
PASS test-naming-convention.sh
The two "intentionally-fail-on-bare-invocation" helper scripts:
vendor-e2e-skip-check.sh— needstest-output.logargument (CI provides it); naked invocation correctly errorscoverage-pr-comment.sh— no-ops gracefully whenPR_NUMBERenv var is unset
Make targets pre-tag
make verify-docs:
qa-doc-part-count: clean (56 == 56).
qa-doc-seed-count: clean.
verify-docs: PASS — safe to tag
make verify and make verify-deploy require Go + docker; sandbox can't run them. Operator pre-tag verification:
make verify # required pre-commit
make verify-deploy # optional pre-push
make verify-docs # required pre-tag (verified above)
ci.yml final shape
- Line count: 439 (down from baseline 1488 = -71%)
- Job boundaries verified at lines 13, 232, 278, 345, 409:
go-build-and-testfrontend-buildhelm-lintdeploy-vendor-e2e(single job, was 12-job matrix)image-and-supply-chain(NEW)
- Total status checks per push: 7 (5 CI + 2 CodeQL), down from baseline 19.
Phase commits (master ahead of v2.0.66)
453ba78 ci-pipeline-cleanup Phase 12: docs/ci-pipeline.md + bundle artefacts
ce987cc ci-pipeline-cleanup Phase 11: make verify-docs + verify-deploy targets
3a69600 ci-pipeline-cleanup Phase 10: coverage PR-comment action
19a5e43 ci-pipeline-cleanup Phases 7-9: image-and-supply-chain job
d0bc53b ci-pipeline-cleanup Phase 6 follow-up: IIS operator playbook + matrix doc
6f6de63 ci-pipeline-cleanup Phase 5+6: collapse vendor matrix; delete Windows matrix
71b2245 ci-pipeline-cleanup Phase 4: gofmt parity + go mod tidy drift
af72630 ci-pipeline-cleanup Phase 3: staticcheck hard-fail (SA1019 sites verified closed)
60f368e ci-pipeline-cleanup Phase 2: coverage thresholds → YAML manifest
5b7a022 ci-pipeline-cleanup Phase 1: extract 20 regression guards to scripts/ci-guards/
d57910c ci-pipeline-cleanup Phase 0: baseline + frozen decisions + Bundle II revisions
Operator action items post-merge
-
GitHub branch protection rule update — required-checks list changes 19 → 7:
Go Build & Test Frontend Build Helm Chart Validation deploy-vendor-e2e image-and-supply-chain Analyze (go) Analyze (javascript-typescript)Old-name checks (
deploy-vendor-e2e (<vendor>)× 12,deploy-vendor-e2e-windows (<vendor>)× 2) won't appear on new PRs after the workflow change. Operator removes them from the required list. -
RAM-headroom verification (frozen decision 0.14) — operator runs the collapsed
deploy-vendor-e2ejob on a one-off branch withdocker stats --no-streampolling. If peak RSS > 12 GB, fall back to bucketed matrix percowork/ci-pipeline-cleanup/decisions-revised.md. If ≤ 12 GB, current single-job design is the final shape. -
Tag — operator picks the exact
v2.X.0value (recommended: increment fromv2.0.66). 11 phase commits land on master after the prior bundle's closing commit.
Acceptance gate verified
All 19 ☐ items from the prompt's "Final acceptance gate" pass except the operator-only items (3 above). Bundle is shippable pending the operator action.