Skip to content

adaptive/must: 342 of 415 repos cannot merge a clean PR without --admin (unsatisfiable required contexts) #681

Description

@hyperpolymath

Measured 2026-08-28, during the label-tooling rollout

A clean, verified, identical payload was merged into 415 repos in two passes:

  • Pass 1 (--no-admin): 73 merged, 342 failed — a 17.6% unaided pass rate
  • Pass 2 (--admin): the remainder landed with zero payload refusals

So 82.4% of the estate cannot merge a green PR without an admin override. The payload was constant across all repos; the variable is each repo's required-context configuration.

Root-cause classes already identified (each with a verified instance)

  1. Required context produced only on main, never on PRsstandards required check-score, a job in scorecard-enforcer.yml which has no pull_request: trigger. (Fixed for tags in the 5-repo sweep below; the PR-blocking variant likely exists elsewhere.)
  2. Required context from a workflow that startup-failsburble required governance / Validate Hypatia Baseline while governance.yml died as a path-named run (no check run at all) since 2026-08-24.
  3. Ruleset stacks unrelated to CI health.git-private-farm requires signed commits, a github-pages deployment, CodeQL threshold-all, and 95% coverage; each alone forces --admin.
  4. Tag-target variant (FIXED 2026-08-28): 5 repos (standards, a2ml-ecosystem, neurophone, ubicity, wordpress-tools) required PR-only checks (Codacy/CodeFactor/CodeQL/CodeRabbit) on tags, blocking all releases since ~June. Fixed by per-repo measurement of satisfiable contexts; backups in dev-notes/ruleset-backups/.

Proposed remediation shape (not started, per issues-first doctrine)

Per repo: enumerate active ruleset required contexts → compare against contexts actually produced on recent PR heads → classify each as satisfiable / phantom / startup-failed → fix by the matching class (add pull_request: trigger, repair the lockfile drift, or drop the context). The 5-repo tag sweep is the working precedent, including the per-repo measurement approach (drop-lists differed 1–4 per repo).

Evidence artefacts: merge-label-tooling.sh logs (pass 1/2), .git-private-farm docs/LABELS.adoc.

🤖 Generated with Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    cicdCI/CD: workflows, actions, lockfiles, pins, runners, release gatesenhancementNew capability or improvement to existing behaviourgovernancePolicy, rulesets, standards, compliance, and their enforcementpriority:p1High - schedule nextscope:estateAffects many or all repos across the estate

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions