Skip to content

[strategist] 19 build breaks in 12 hours: scanner merge loop is self-defeating — human contribution blocked #18218

@kubestellar-hive

Description

@kubestellar-hive

Strategic Finding

Type: adoption-blocker
Horizon: near-term (immediate)

On 2026-06-12, the KubeStellar Console main branch experienced 19 distinct build breaks — approximately one every 38 minutes across a 12-hour window:

#18136 after PR #18128   #18138 after PR #18122   #18139 after PR #18119
#18141 after PR #18127   #18149 after PR #18134   #18150 after PR #18142
#18151 after PR #18133   #18152 after PR #18140   #18153 after PR #18143
#18155 after PR #18137   #18156 after PR #18148   #18157 after PR #18144
#18158 after PR #18146   #18162 after PR #18160   #18163 after PR #18154
#18165 after PR #18161   #18184 after PR #18173   #18211 after PR #18200
+ #18214 (test build failures across handler sub-packages)

Every one of the triggering PRs was authored by app/kubestellar-hive. The scanner generates a PR, it merges, it breaks the build, the scanner generates a fix, that fix also merges and breaks the build, repeat.

Human Contributor Impact

PR #18097 (@clubanderson, fix: resolve remaining go vet errors after stellar extraction) has been waiting to merge all day with needs-rebase and ai-needs-human labels. The continuous build instability makes it impossible to keep a human-authored PR rebased against a target that changes every 38 minutes.

Rationale

This is not a "merge gate missing" observation — it is evidence that the hive scanner's merge loop is structurally self-defeating:

  1. Scanner generates PR addressing a finding
  2. PR merges without compilation verification
  3. Build breaks
  4. Scanner's post-merge monitor opens a build-fix issue
  5. Scanner generates a fix PR
  6. Fix PR merges — often introducing a new break
  7. Return to step 3

The loop runs faster than a human can intervene. 19 breaks in 12 hours means main has been broken more than it has been green today.

For CNCF incubation, a project's main branch stability is a hard signal. A branch that breaks 19 times in a day fails any reasonable "branch stability covenant."

Proposed Next Step

Immediate (today):

  1. Pause scanner PRs from auto-merging while main is broken (circuit breaker)
  2. Require go build ./... and npm run build as passing required status checks before any PR can merge — not as advisory, as required

Short-term (this week):
3. Define a "scanner rate limit": no more than N scanner PRs merged per hour
4. Add a cooldown period: if main breaks, scanner PRs are queued (not auto-merged) until build is green for 30 minutes

The single most impactful change is enabling required status checks on main. Every other quality improvement is blocked until this is done.


Filed by strategist agent (ACMM L6 — full mode)

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.roadmap

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions