Skip to content

Call the shared hygiene check beside this board's own gate - #180

Closed
iderex wants to merge 1 commit into
mainfrom
ci/the-shared-hygiene-check-runs-beside-the-local-gate
Closed

Call the shared hygiene check beside this board's own gate#180
iderex wants to merge 1 commit into
mainfrom
ci/the-shared-hygiene-check-runs-beside-the-local-gate

Conversation

@iderex

@iderex iderex commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

Closed unmerged as a duplicate. The survivor is #179, which is open,
carries the same one file, and was opened first.

What this was

.github/workflows/shared-hygiene.yml, calling the shared pull request hygiene
rules in iderex/wache pinned by commit hash with the commit subject rule off,
for #178.

Why it is closed rather than finished

The obstacle it ran into is already measured and written down on #178, and
#179 is where the change waits for the repair. The called workflow
claims the concurrency group pr-hygiene-<pull request number>, which is the
string .github/workflows/pr-hygiene.yml on this board already claims, so the
two runs land in one group and the local gate is the one that dies. On this head
it was cancelled three seconds after creation with no step run and no verdict:

gh api "repos/Flowfin/core/actions/runs?head_sha=5b9c142d1b841a02d3a7e7f8aef43c040117476f&per_page=100" \
  --jq '.workflow_runs[] | select(.event == "pull_request")
        | "\(.name)\t\(.status)/\(.conclusion)\t\(.created_at)\t\(.updated_at)"'
pr-hygiene      completed/cancelled  2026-08-23T13:25:17Z  2026-08-23T13:25:20Z
Shared hygiene  completed/success    2026-08-23T13:25:18Z  2026-08-23T13:25:26Z

gh api repos/Flowfin/core/actions/runs/32642291955/jobs \
  --jq '.jobs[] | "\(.name)\t\(.conclusion)\tsteps=\(.steps | length)"'
Deterministic PR-hygiene checks  cancelled  steps=0

This head declared a concurrency group of the caller's own, and the local gate
was cancelled anyway, which is the same reading already recorded on #178 against
three other placements of that group. So the group the called workflow claims is
independent of its caller, the repair is not available from this board without
editing the local gate to work around a name chosen elsewhere, and it is filed
where it belongs. Nothing above is a new finding and I am not restating the rest
of it here.

The shared side did run green, and its log carries the nine fixture lines and
the line saying the subject rule is off:

gh api repos/Flowfin/core/actions/jobs/97201133391/logs \
  | grep -cE '[0-9]Z fixture ok'
9

The pattern is anchored after the timestamp on purpose. An unanchored count
returns 13, because the log also echoes the lines of the script that print those
fixtures, and 13 would read as four fixtures nobody wrote.

What is not covered

Nothing is merged from this branch and nothing on this board changed. #178 is
still open and its condition is still unmet, for the reason written on it.

The rules every board in this fleet shares now have one implementation in
`iderex/wache`, and this board was not calling it. It carried its own copy
instead, as every other board did, which is the divergence argued in
iderex/operations#1556: a change to a shared rule cost one edit per board and
failed differently on each.

The call runs beside `.github/pr-hygiene/hygiene.sh` and replaces nothing.
Neither that script nor `.github/workflows/pr-hygiene.yml` is touched. What the
shared check adds here is a placeholder title and a closing keyword buried in a
paragraph, neither of which this board reads today. What it has no equivalent
for is the scope comparison, the qualifier aware reading of a reference, the
rule that a body names an issue rather than closing one, and this board's own
sense of an empty body, so the local rules all stay.

The subject rule is switched off. The shared check wants the issue number in the
commit subject in square brackets; of the 52 authored subjects the first page of
`main` returns, none carries that shape and the twelve most recent carry no
reference in the subject at all. On says every pull request here reddens from
day one. Off says the board does not meet that rule yet, which somebody can act
on. Not calling the check would say nothing.

The failure this prevents on the way in is a cancelled check. The called
workflow declares the concurrency group `pr-hygiene-<pull request number>` with
cancel-in-progress, and `.github/workflows/pr-hygiene.yml` here declares the
same string. On `iderex/bremsweg`, whose local group is written identically and
whose caller declares none, the local run was cancelled on the very commit that
added the shared call. This file declares its own group, so the two runs cannot
sweep each other up.

Refs #178

Signed-off-by: Nils Lehnen <30603423+iderex@users.noreply.github.com>
@iderex iderex closed this Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant