Summary
The actions.lock desync campaign (#968) has landed its cure: 6 PRs merged, 5 more are green
with auto-merge armed. What remains red on the other 17 PRs is, with very few exceptions, not
lockfile damage and not caused by those PRs. It is a set of estate-wide governance checks that
were already failing and only became visible once the lock cure revived the workflows that run
them.
This is the expected shape. Per the standing stopping rule a pre-existing red is an issue with
acceptance criteria, never a merge blocker — this is that issue for the cross-cutting classes.
Each affected repo also gets its own triage issue listing its own reds, linked back here.
Measured distribution (17 red PRs, 2026-09-22)
| n |
failing check |
reading |
| 10 |
lint-workflows |
often twice per repo — a matrix leg, so ~6 repos |
| 9 |
governance / Workflow security linter |
also red on several main branches |
| 9 |
Hypatia family — Hypatia neurosymbolic scan (5), scan / … (2), hypatia / … (2) |
four different check names for one scanner |
| 5 |
governance / Allowlist Preflight |
the actions allow-list |
| 3 |
Validate A2ML manifests |
⚠ see below |
| 3 |
governance / Guix packaging policy (Nix retired) |
|
| 2 |
SonarQube |
|
| 2 |
governance / Validate Hypatia Baseline |
|
| 2 |
analyze (actions, none) |
CodeQL |
Long tail, one repo each: Validate K9 contracts, Validate DEED manifests, scan / gitleaks,
openssf-compliance, estate-audit, estate-rules, check, core-fill-tests,
extension-build, GSBot build…, governance / Check Workflow Staleness,
governance / Language / package anti-pattern policy, Analyze (actions).
⚠ Three things worth a decision rather than a fix
1. Validate A2ML manifests is a live gate for a system that does not exist.
It is failing on gossamer#174, cadastra#51 and first-post#14. Standing estate doctrine is
that A2ML is dead — killed by the ML-community name clash. A gate that validates manifests for
a retired format is not something to repair; the likely correct action is to remove it. I have
not removed anything: that is a call for the owner, not a triage fix.
2. The Hypatia scanner reports under four different check names.
Hypatia neurosymbolic scan, scan / Hypatia Neurosymbolic Analysis,
hypatia / Hypatia Neurosymbolic Analysis, governance / Validate Hypatia Baseline. A ruleset
requires a check by exact context name, so four spellings means four separate required-check
entries to keep in step, and renaming any of them orphans every open PR that predates the rename.
Worth converging on one name — deliberately, with the PRs rebased, not casually.
3. governance / Workflow security linter is red on main too in at least
awesome-nickel and julia-professional-registry. A check that is red on main cannot be used to
judge a branch; it measures the estate, not the change.
Acceptance criteria
Scope note
This issue does not block any campaign PR. The lock cure is independently verified: the gate
kills a mutant that deletes a locked uses: entry, and the previously-dead workflows now execute.
A red here is a workflow getting its first real measurement in months, which is the cure
working, not a regression.
Related: #968 (campaign roll-up), #993 (lock policy + the pin bump), #987 (phantom blob pins).
🤖 Generated with Claude Code
https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm
Summary
The
actions.lockdesync campaign (#968) has landed its cure: 6 PRs merged, 5 more are greenwith auto-merge armed. What remains red on the other 17 PRs is, with very few exceptions, not
lockfile damage and not caused by those PRs. It is a set of estate-wide governance checks that
were already failing and only became visible once the lock cure revived the workflows that run
them.
This is the expected shape. Per the standing stopping rule a pre-existing red is an issue with
acceptance criteria, never a merge blocker — this is that issue for the cross-cutting classes.
Each affected repo also gets its own triage issue listing its own reds, linked back here.
Measured distribution (17 red PRs, 2026-09-22)
lint-workflowsgovernance / Workflow security lintermainbranchesHypatia neurosymbolic scan(5),scan / …(2),hypatia / …(2)governance / Allowlist PreflightValidate A2ML manifestsgovernance / Guix packaging policy (Nix retired)SonarQubegovernance / Validate Hypatia Baselineanalyze (actions, none)Long tail, one repo each:
Validate K9 contracts,Validate DEED manifests,scan / gitleaks,openssf-compliance,estate-audit,estate-rules,check,core-fill-tests,extension-build,GSBot build…,governance / Check Workflow Staleness,governance / Language / package anti-pattern policy,Analyze (actions).⚠ Three things worth a decision rather than a fix
1.
Validate A2ML manifestsis a live gate for a system that does not exist.It is failing on
gossamer#174,cadastra#51andfirst-post#14. Standing estate doctrine isthat A2ML is dead — killed by the ML-community name clash. A gate that validates manifests for
a retired format is not something to repair; the likely correct action is to remove it. I have
not removed anything: that is a call for the owner, not a triage fix.
2. The Hypatia scanner reports under four different check names.
Hypatia neurosymbolic scan,scan / Hypatia Neurosymbolic Analysis,hypatia / Hypatia Neurosymbolic Analysis,governance / Validate Hypatia Baseline. A rulesetrequires a check by exact context name, so four spellings means four separate required-check
entries to keep in step, and renaming any of them orphans every open PR that predates the rename.
Worth converging on one name — deliberately, with the PRs rebased, not casually.
3.
governance / Workflow security linteris red onmaintoo in at leastawesome-nickelandjulia-professional-registry. A check that is red onmaincannot be used tojudge a branch; it measures the estate, not the change.
Acceptance criteria
gate, or accept with a documented exemption. A class may not stay undetermined.
Validate A2ML manifestshas an explicit owner ruling (retire vs keep). If retired, itis removed from the 3 repos and from the estate template in the same change.
affected open PR rebased onto it, or an explicit decision to keep the four names, with the
reason written down.
mainis listed, with the date it went red. Nothing isrequired of a branch that its base does not satisfy.
continue-on-error, by demoting a failure to a warning, orby dropping the check from the required set without AC1's determination. Repair or retire;
never mute.
Scope note
This issue does not block any campaign PR. The lock cure is independently verified: the gate
kills a mutant that deletes a locked
uses:entry, and the previously-dead workflows now execute.A red here is a workflow getting its first real measurement in months, which is the cure
working, not a regression.
Related: #968 (campaign roll-up), #993 (lock policy + the pin bump), #987 (phantom blob pins).
🤖 Generated with Claude Code
https://claude.ai/code/session_01X3hgXxWm6umMgZkjYyHnnm