Skip to content

Jules bot pushes revert already-merged work on #1138, twice, with scoped-sounding commit subjects #1158

Description

@d-morrison

On #1138, google-labs-jules[bot]
has twice pushed commits that revert work already on main, and the reverts
are not visible from the commit subjects.

What happened

First occurrence. Three commits, the first of which
(5d4f80af8, "docs(count-regression): split sentence breaks in zero-inflation
solution") changed 25 files, 774 deletions, reaching chapters the PR does
not touch (coxph subfiles, chapters/glms.qmd, binom.likelihood.app.qmd).
The following commit restored most of it.

Second occurrence. Five commits ending b96aa903. Against origin/main
(1cd5319ff, an ancestor of both heads, so this is not main catching up),
that head's own diff is 27 files where the PR's scope is 11, and across
the 19 out-of-scope files it is +340 / -730.

Concrete regressions it would land if merged:

  • chapters/parametric-survival-models.qmd reverted by 161/283 lines,
    undoing #1140, already
    merged. The @fay2010exact citation and its references.bib entry are
    both deleted.
  • The <!-- ... do not re-flag --> slidebreak markers CLAUDE.md requires
    drop from 9 to 5.
  • 20 \eqdef revert to = across causal-inference, predictor-selection and
    chapters/probability.qmd.

The shape suggests a main merge resolved by discarding main's side:
main's commits are ancestors of the branch, but their content is not.

Reproduce

git fetch origin
B=docs/improve-count-regression-narrative-and-math-3039313453932777784
git diff origin/main...origin/$B --name-only          # 27 files
git diff origin/main...origin/$B -- references.bib    # fay2010exact removed
git grep -c 'do not re-flag' origin/main -- '*.qmd'   # 9
git grep -c 'do not re-flag' origin/$B  -- '*.qmd'    # 5

Why this is hard to catch

The commit subjects are ordinary and scoped-sounding
("fix line breaks in parametric survival chapter"), so --oneline gives no
signal; only --stat or a scope diff against main shows it. A reviewer
reading the PR's own diff sees plausible content and no conflict markers,
and CI stays green because reverting to an older valid state compiles fine.

Suggested guard

A CI check comparing a PR's changed-file set against a declared scope, or
simply failing when a PR deletes lines from files outside the directories it
claims to touch, would catch both occurrences. Cheap version: warn when
git diff origin/main...HEAD --numstat shows net negative lines in files the
PR's title/description does not mention.

Filed by Claude Code (AI agent).

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions