ci(quality): move hydra-gates-ref to v1.5.0 — restore the gates - #62
ci(quality): move hydra-gates-ref to v1.5.0 — restore the gates#62rubenvdlinde wants to merge 1 commit into
Conversation
…onger satisfies the floating workflow
`quality.yml` is consumed `@main` and executes three scripts BY PATH inside the
PINNED hydra-gates package:
scripts/lib/check_spec_anchors.py
scripts/lib/check_form_labels.py
scripts/lib/check_license_triangle.py
Verified by recursive tree listing per ref: v1.0.1, v1.2.0, v1.3.0 and v1.4.0
each contain 0 of 3; only v1.5.0 and main contain all three. So every consumer
below v1.5.0 fails with exit 1, and the workflow says so itself:
::error::hydra-gates-ref does not contain: ...
::error::This workflow floats on @main and executes those paths by name
inside the PINNED package.
This is NOT a code-quality finding about this repository — it is the
floating-caller / pinned-callee split, third occurrence today.
v1.5.0 also carries large genuine gate improvements, measured across the same
22 fleet trees with each version running its own code:
gate-46 spec-anchor-existence 2,228 -> 918
gate-40 form-label-association 1,211 -> 517
gate-9 semantic-auth 45 -> 11
Every relaxed predicate in it was mutation-checked both ways: always-true and
always-false must each fail.
Diff is exactly one line.
Quality Report — ConductionNL/launchpad @
|
| Check | PHP | Vue | Security | License | Tests |
|---|---|---|---|---|---|
| lint | ✅ | ||||
| phpcs | ✅ | ||||
| phpmd | ✅ | ||||
| psalm | ✅ | ||||
| phpstan | ✅ | ||||
| phpmetrics | ✅ | ||||
| eslint | ✅ | ||||
| stylelint | ✅ | ||||
| build | ✅ | ||||
| check-manifest | ✅ | ||||
| composer | ✅ | ✅ 102/102 | |||
| npm | ✅ | ✅ 548/548 | |||
| PHPUnit | ❌ | ||||
| Newman | ✅ | ||||
| Playwright | ✅ | ||||
| Hydra gates | ❌ |
Quality workflow — 2026-08-06 07:33 UTC
Download the full PDF report from the workflow artifacts.
|
Closing as superseded by #60, and because this PR targets the wrong version. Two errors on my part. 1. v1.5.0 is the wrong target. It is precisely the tag that exits 99 on every mainline push — on a push to 2. I duplicated existing work. #60 was already open. I searched open PRs for titles matching Per The diagnosis in this PR body stands and is worth keeping: |
quality.ymlis consumed@mainand executes three scripts by path inside the pinned hydra-gates package:Verified by recursive tree listing per ref:
So every consumer below v1.5.0 fails with
exit 1, and the workflow says so itself:This is not a code-quality finding about this repository. It is the floating-caller / pinned-callee split — the third occurrence today, after the
require-full-coveragedefault change reaching old runners and#168executingaxe-run.cjsby path.What v1.5.0 also brings
Measured across the same 22 fleet trees, each version running its own code (no CI output read, so a split fleet cannot skew it):
Every relaxed predicate was mutation-checked both ways — always-true and always-false must each fail — so the reduction is precision, not blindness.
It also fixes the
SCOPE WAS EMPTYreporting bug (an unanchoredgrep -q "0 changed file(s)", which10 changed file(s)also matched), the hardcoded/tmp/hydra-gate-*.logcollision that produced cross-repo false findings, and a gate-28 NUL-byte hole that could yield a false green.Scope
Exactly one line. No other change.
developmentthe gate diffs againstorigin/development— itself — so scope is 0 files and v1.5.0 exits 99. A scoping fix (againstgithub.event.before) is in progress. That is a true statement replacing a vacuous pass, and strictly better than failing because a script is missing.