Skip to content

Measure Greptile's review-on-every-push trial against Unfret (2026-10-15 to 2026-10-29) #189

Open

Description

@ericlitman

Goal

Decide whether Greptile earns its place on this repository after a two-week trial of reviews on every push.

Why

An assessment on 2026-10-15 adjudicated all 88 Greptile inline findings from PR 29 to PR 184 against the code and against Unfret. On Eric's and mast-factory's PRs from 2026-09-30 to 2026-10-14 (the period when both ran):

  • Greptile posted 58 findings. 13 were material, and Unfret reported 11 of those 13 on the same head.
  • Greptile alone drove 9 fixes. One was material: ci: queue PRs in Mergify once verify and Unfret pass #101's "PR queues before live verdict", which became the exact-head live-gate requirement.
  • Unfret reported 229 distinct defects on those PRs. Greptile matched 25 of them.
  • 19 of 88 findings were not defects, or were upstream-owned or pre-existing behavior.
  • Greptile reviewed only the head that each PR opened with. Unfret finds most of its defects on later fix heads.

Since #163 (2026-10-12), Mergify queues a PR only when #review-threads-unresolved = 0. Each Greptile thread now blocks the queue until someone resolves it.

Trial settings (changed by Eric on 2026-10-15)

  • Automatic reviews: on new pushes (was: on PR opened).
  • Default review tier: Auto.
  • Custom Instructions added, Confidence Score off, Sequence Diagram off (2026-10-15; see the comment below).
  • Filters: none. Outside contributors' PRs are allowed again, so Greptile reviews them too.
  • Any later change gets a dated note on this issue.

Acceptance criteria

  • Re-run the assessment over every PR opened from 2026-10-15 to 2026-10-29. Use the same rubric and scripts as the 2026-10-15 record. Adjudicate every Greptile finding against the code and against Unfret. Report two groups: Eric's and mast-factory's PRs, and outside contributors' fork PRs.
  • Outside fork PRs get no Unfret check (seen on docs(skills): require a smallest-change option, rewrite relays for the user, widen interrogate triggers #181 and feat(skills): add in-your-own-words and sharpen from Cursor pstack 0.15.24 (#187) #188), so Greptile is their only automated reviewer. For that group, report validity and materiality of each finding, and whether the contributor acted on it.
  • Split Greptile findings by head: the opening head vs later heads. A finding on a later head is the trial's effect.
  • For each later-head finding, report validity, materiality, the Unfret match (same defect, related, or none), and who drove the fix.
  • Report Greptile threads per PR. Report the time from the last required check passing (verify, Unfret, live-gate) to the last Greptile thread being resolved. That time is the merge delay Greptile causes under Require resolved review threads before Mergify queues a PR #163.
  • Compare the not-a-defect plus upstream rate with the 19-of-88 baseline.
  • Record Greptile credit use for the period from Greptile's Usage page.
  • Recommend one option: keep reviews on every push, return to reviews when a PR opens, or remove Greptile. Give the evidence for the recommendation.

Not a code change. This issue closes when the comparison is posted on it and Eric picks an option.

Activity

  1. ericlitman commented on Oct 15, 2026

    @ericlitman
    OwnerAuthor

    Settings note (2026-10-15): Eric applied the recommended changes. Custom Instructions now point Greptile at REVIEW.md, AGENTS.md and UPSTREAM.md, and add rules for upstream-owned content, no implicit timeouts or weaker-model fallbacks, verifier-evasion scope, security first, one thread per defect, and withdrawal only on a code fact. Confidence Score and Sequence Diagram are off in the PR summary. No author filter: outside contributors' PRs are allowed again, so the trial measures them as a separate group. The trial therefore has more than one variable. Findings on later heads measure the effect of reviewing every push. A change in the not-a-defect plus upstream rate measures the Custom Instructions.

  2. ericlitman commented on Oct 21, 2026

    @ericlitman
    OwnerAuthor

    Merge rule change, 2026-10-21 15:42 UTC (#241, merged by #242 as 9046eecb; ruleset change at 15:42 UTC).

    From this point Open Pstack lands on green, so the trial gains a variable:

    • A PR merges once verify and live-gate pass on its head and no review thread is unresolved. Unfret is required only for a PR that touches .github/** or the Mergify config. GitHub's "Review gate" ruleset now requires Mergify Merge Protections instead of Unfret.
    • Greptile's threads still count. Mergify's #review-threads-unresolved = 0 still holds a merge while any thread is unresolved. A new workflow, .github/workflows/unfret-threads.yml, resolves each thread Unfret starts as Unfret posts it, so from this date only Greptile's threads and people's threads hold a merge.
    • For the "last required check to last Greptile thread resolved" measure, the required checks after this date are verify and live-gate, plus Unfret on a PR that touches .github/** or the Mergify config. PRs before and after this point need separate buckets.
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