docs(review): record Greptile Review as a required context - #13
Conversation
Branch protection was changed on 2026-08-12 after ratification, so the merge policy as committed no longer described the live setting. merge-policy.md §2 declares that when the API and this document disagree the API is right and the document is the defect, to be corrected by the PR that notices — this is that correction. Records the before/after protection state, that strict, both build-and-smoke contexts, and required_conversation_resolution were preserved, that the context is pinned to app id 867647, and that Sourcery was deliberately not promoted. Also records the first post-policy proof on PR #12 at 76d495d: all three required contexts green, SonarCloud failing but unrequired and therefore not blocking, and mergeStateStatus BLOCKED on one unresolved Greptile P1 — the status half proving the head was reviewed, the resolution half holding the merge. States the accepted cost plainly: PR #6 predates the policy and has no Greptile run, so it must update before it can merge. The gate was not weakened for it. No product behavior change. No changeset. Refs META-322
Reviewer's GuideThis PR updates the documented merge policy to reflect that Sequence diagram for merge gate with Greptile Review and conversation resolutionsequenceDiagram
actor Developer
participant GitHub
participant BuildAndSmoke20
participant BuildAndSmoke22
participant GreptileApp867647
Developer->>GitHub: push commits to main PR
GitHub->>BuildAndSmoke20: run build-and-smoke (20)
GitHub->>BuildAndSmoke22: run build-and-smoke (22)
GitHub->>GreptileApp867647: trigger Greptile Review on head SHA
BuildAndSmoke20-->>GitHub: status success
BuildAndSmoke22-->>GitHub: status success
GreptileApp867647-->>GitHub: status success (head was reviewed)
GitHub-->>Developer: mergeStateStatus=BLOCKED
alt [all conversations resolved]
GitHub-->>Developer: merge allowed
else [Greptile P1 thread unresolved]
GitHub-->>Developer: merge blocked by required_conversation_resolution
end
File-Level Changes
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
There was a problem hiding this comment.
Hey - I've left some high level feedback:
- The branch protection before/after tables and narrative are now duplicated between
merge-policy.mdandcalibration-2026-08.md; consider centralizing the canonical description in one place and referencing it from the other to reduce future drift. - Several passages are very date- and PR-specific (e.g., explicit references to PR #12, PR #6, specific SHAs and dates); you might want to tighten these into more general statements so the docs remain accurate and readable as the repository evolves.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The branch protection before/after tables and narrative are now duplicated between `merge-policy.md` and `calibration-2026-08.md`; consider centralizing the canonical description in one place and referencing it from the other to reduce future drift.
- Several passages are very date- and PR-specific (e.g., explicit references to PR #12, PR #6, specific SHAs and dates); you might want to tighten these into more general statements so the docs remain accurate and readable as the repository evolves.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
| Filename | Overview |
|---|---|
| docs/review/merge-policy.md | Correctly updates the required-context list and measurement provenance to the post-policy SHA, resolving the prior inconsistency. |
| docs/review/calibration-2026-08.md | Records the ratified policy transition and removes the previously duplicated conclusion. |
Reviews (2): Last reviewed commit: "docs(review): reconcile review findings ..." | Re-trigger Greptile
- correct the measurement stamp in merge-policy.md §2: the table describes main at f61e0cb, not the pre-policy a31242b reading, which stays in the calibration record as the before half - remove a duplicated paragraph in the calibration decision section - state the division of responsibility between the two documents: merge-policy is the current contract, calibration is the evidence and change record Refs META-322
|
Reconciling Sourcery finding 1 of 2 — before/after tables duplicated across the two documentsAccepted in substance, addressed structurally rather than by deletion. The overlap is real and is a genuine drift risk: two places stating what is required is two places that can disagree. Applied in
So when a setting changes, the new state is recorded in one place and the transition in the other. They are adjacent, not redundant. Not centralized into a single file, because they answer different questions and have different lifetimes: the contract is read by anyone opening a PR today, while the calibration record is an append-only artifact that must keep its pre-policy readings intact to remain evidence. Collapsing them would force the historical |
Reconciling Sourcery finding 2 of 2 — passages are very date-, PR-, and SHA-specificDeclined, with reasoning — this one I disagree with, and the disagreement is the disposition. The suggestion is to generalize passages that name PR #12, PR #6, specific SHAs and dates, so the docs read better as the repository evolves. For most documentation that would be right. Here the specificity is the content.
Generalizing those into "a clean head", "a subsequent PR", "an older PR" would convert falsifiable receipts into assertions — the exact failure this repository's own The dated filename ( Where the concern does apply is |
…TM-45) (#18) The withdrawal record said "emission on this repository is not dependable." That was accurate about the symptom and wrong about the cause, and the difference decides what anyone does next: a flaky app is waited out, an exhausted trial is topped up. Established 2026-08-13. Greptile posts, in place of a review: `qmarcelle` has reached the 50-credit limit for trial accounts. To continue receiving code reviews, upgrade your plan. and emits no check run. That is why the check fired on #10 and #13 and then stopped at #14 — the credits ran out in between, not the app's emission becoming unreliable here. The prediction that follows was confirmed the same day. `workspacejson/standard` kept working only until its own next pull request: #37 reviewed the exact head 4f9e8f6f and emitted zero check runs, against exactly one each on #34, #35 and #36. It hit the identical deadlock and its requirement was withdrawn the same way. So the "next door still works" observation in the original evidence was true but temporary, and reading it as repository-specific would have sent the investigation somewhere there was nothing to find. Restoring the signal is a billing action.



Follow-up to #10. Branch protection changed on 2026-08-12 after ratification, so the committed merge policy no longer described the live setting.
docs/review/merge-policy.md§2 says that when the API and the document disagree, the API is right and the document is the defect, to be corrected in the PR that notices. This is that correction — and it is also the first ordinary PR to pass through the new gate.Recorded
Branch protection, before → after
build-and-smoke (20),(22)Greptile Review(app id867647)stricttruerequired_conversation_resolutiontruerequired_approving_review_count0dismiss_stale_reviews/enforce_adminstrue/falseSourcery reviewrequiredVerified by independent read-back of the protection API, not from the write response.
How to read the requirement: the Greptile context asserts the current head was reviewed, not the review found nothing — it concludes
successeven on a head carrying a P1. The semantic half isrequired_conversation_resolutionplus the written per-finding protocol in §3. GitHub cannot encode "a human actually engaged", so the written disposition, not theisResolvedbit, is the evidence.Observed working on PR #12 at
76d495d: all three required contexts green,SonarCloud Code Analysisfailing but unrequired and not blocking,mergeStateStatus=BLOCKEDon one unresolved Greptile P1. Every required status satisfied and still blocked, on conversation resolution alone.Accepted cost, stated plainly: PR #6 predates the policy and its head has no Greptile run, so it must update before it can merge. Intended behavior; the gate was not weakened to preserve it.
No product behavior change. No published package bytes or metadata change. No changeset — the repository is not Changesets-managed.
Summary by Sourcery
Document that Greptile Review is now a required status check on main, paired with required conversation resolution as part of the merge gate, and record the calibrated branch-protection state before and after.
Documentation: