Task
The version-increment CI gate reports pass/fail but not the comparison it made. Make it print the
base version, the head version, and the verdict, so a stale bump is visible on the PR instead of being
discovered at merge time.
Why
This has gone stale twice on a single branch (dig-node PR#354) across a five-round gate. The pattern:
- A lane opens a PR and bumps the workspace version — correct at the time.
main moves; another PR takes that version number.
- Rounds of review pass. Nobody re-checks, because the gate was green when they last looked.
- At merge, the gate fails with
Cargo.toml: base='13.4.0' head='13.4.0' — and the lane has to
rediscover from scratch what the comparison even was.
A long-lived gate round and a moving main interact badly, and the check is currently remembered rather
than mechanical. It is also cheap to fix: the workflow already computes both values in order to compare
them; it simply does not surface them on success.
Scope
- On every run, success or failure, echo the comparison:
base=<x> head=<y> for each manifest checked
(Cargo.toml and package.json where both exist), plus the verdict.
- Prefer a GitHub step summary or an annotation so it is readable from the PR without opening the log.
- Where both manifests exist, keep the existing must-match check and report both values when they diverge.
Out of scope
Do not change what the gate enforces. This is about making its reasoning visible, not about relaxing or
tightening the rule.
Where
dig-node's version-increment workflow. If the same workflow is templated across repos, say so and name
them — but bound this ticket to a listed set rather than "every repo", so it can actually close
(CLAUDE.md §1.3c rule zero).
Done condition
A PR run shows the base and head versions it compared, on both a passing and a failing run.
Effort
Low — a couple of echo lines into $GITHUB_STEP_SUMMARY in a workflow that already holds both values.
Task
The version-increment CI gate reports pass/fail but not the comparison it made. Make it print the
base version, the head version, and the verdict, so a stale bump is visible on the PR instead of being
discovered at merge time.
Why
This has gone stale twice on a single branch (dig-node PR#354) across a five-round gate. The pattern:
mainmoves; another PR takes that version number.Cargo.toml: base='13.4.0' head='13.4.0'— and the lane has torediscover from scratch what the comparison even was.
A long-lived gate round and a moving
maininteract badly, and the check is currently remembered ratherthan mechanical. It is also cheap to fix: the workflow already computes both values in order to compare
them; it simply does not surface them on success.
Scope
base=<x> head=<y>for each manifest checked(
Cargo.tomlandpackage.jsonwhere both exist), plus the verdict.Out of scope
Do not change what the gate enforces. This is about making its reasoning visible, not about relaxing or
tightening the rule.
Where
dig-node's version-increment workflow. If the same workflow is templated across repos, say so and namethem — but bound this ticket to a listed set rather than "every repo", so it can actually close
(CLAUDE.md §1.3c rule zero).
Done condition
A PR run shows the base and head versions it compared, on both a passing and a failing run.
Effort
Low — a couple of
echolines into$GITHUB_STEP_SUMMARYin a workflow that already holds both values.