docs(review): record the META-321 calibration outcome and the required-check decision - #24
Conversation
…eck status does not (META-321) Canary PR #23 answered the question META-321 actually asked, and the answer is not the one the staged rollout was set up to expect. The rules caught 3/3 positive controls, each citing the rule by name and each sourced from `.greptile`, which also proves branch-local configuration is read. Typecheck was clean on all three defects, so none of them is visible to the compiler — the semantic layer earned its place. The check STATUS is a different question, and it fails in both directions: - cannot-ever-fail: on PR #22 the reviewer posted a P1 at 13:30:16 and the Greptile Review check concluded success at 13:30:18; - cannot-ever-pass: on the canary's revert head, whose diff nets to empty against main, no Greptile Review check run was posted at all. A required context that goes green with an open P1 and can also never appear would neither block a bad head nor clear a good one. That is the vacuous-check shape .greptile/rules.md prohibits, so it is not installed. Branch protection is unchanged: test (20), test (22), Compatibility parity vs frozen source, strict, required conversation resolution. What does enforce review was measured rather than assumed. With the rollup at SUCCESS and the branch MERGEABLE, PR #22 sat at BLOCKED on one unresolved thread and moved to CLEAN when that thread resolved, head and rollup unchanged. Conversation resolution is the load-bearing mechanism; Greptile produces the findings it counts. Sourcery keeps its non-required status on new evidence rather than inheritance: it concluded success on the head carrying all three deliberate defects. No release impact: REVIEW.md is outside packages/, no published bytes change, no changeset.
Reviewer's GuideDocuments the META-321 calibration results for Greptile and Sourcery review checks, explains why Greptile Review remains non-required despite effective rules, clarifies what actually enforces review (required conversation resolution), and updates the documented required contexts on main without changing release behavior. Sequence diagram for review enforcement vs Greptile/Sourcery checkssequenceDiagram
actor Developer
participant GitHub
participant GreptileReview
participant SourceryReview
Developer->>GitHub: open_pull_request
GitHub->>GreptileReview: run_review_check
GitHub->>SourceryReview: run_review_check
GreptileReview-->>GitHub: conclude_success (P1 findings may exist)
SourceryReview-->>GitHub: conclude_success (even with deliberate defects)
GitHub-->>Developer: mergeStateStatus BLOCKED [unresolved_review_thread]
Developer->>GitHub: resolve_conversation_thread
GitHub-->>Developer: mergeStateStatus CLEAN
Note over GitHub: Required contexts:
Note over GitHub: test_20, test_22,
Note over GitHub: Compatibility_parity_vs_frozen_source,
Note over GitHub: required_conversation_resolution
Note over GreptileReview,SourceryReview: Non-required status checks
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 Greptile calibration narrative is quite long and repeats concepts (e.g., vacuous checks and conversation resolution); consider tightening this section to a shorter, more linear explanation so readers can quickly understand the decision and evidence.
- The exact timestamps and PR numbers used as calibration examples are currently embedded in prose; consider emphasizing the general rule (what conditions make a check eligible to be required) and moving the specific calibration run details into a short, clearly labeled bullet list or table.
- The phrase "Revisit if Greptile's check conclusion becomes a documented function of finding severity" defines a future policy trigger; consider making this a more explicit criterion (e.g., numbered condition in a list) to avoid ambiguity when someone later decides whether the calibration needs to be rerun.
Prompt for AI Agents
Please address the comments from this code review:
## Overall Comments
- The Greptile calibration narrative is quite long and repeats concepts (e.g., vacuous checks and conversation resolution); consider tightening this section to a shorter, more linear explanation so readers can quickly understand the decision and evidence.
- The exact timestamps and PR numbers used as calibration examples are currently embedded in prose; consider emphasizing the general rule (what conditions make a check eligible to be required) and moving the specific calibration run details into a short, clearly labeled bullet list or table.
- The phrase "Revisit if Greptile's check conclusion becomes a documented function of finding severity" defines a future policy trigger; consider making this a more explicit criterion (e.g., numbered condition in a list) to avoid ambiguity when someone later decides whether the calibration needs to be rerun.Help me be more useful! Please click 👍 or 👎 on each comment and I'll use the feedback to improve your reviews.
|
| Filename | Overview |
|---|---|
| REVIEW.md | Updates the repository’s review policy with calibration evidence, the resulting branch-protection decision, and the current required checks; no actionable defect was identified. |
Reviews (1): Last reviewed commit: "docs(review): record the calibration out..." | Re-trigger Greptile
Completes META-321. Records what canary PR #23 measured and the branch-protection decision that follows from it.
The short version
The rules work. The check status does not carry the result.
Greptile Reviewis therefore not made a required status, and branch protection is unchanged.The rules caught every positive control — 3/3
Canary #23 pushed three deliberate producer defects, each mapped to one rule so attribution was unambiguous:
0db1a26)history-refresh-refusal-observableordinary-generation-never-minescompareUtf8replaced with bare<=in canonical orderingcanonical-utf8-endpoint-orderEach cited
Rule Used: … (source: .greptile)— so branch-local repo-owned config is read, not a default profile.pnpm typecheckwas clean on all three. None is visible to the compiler.Why the check is still not required — measured in both directions
13:30:16andGreptile Reviewconcluded success at13:30:18.2eac40d, whose diff nets to empty againstmain, noGreptile Reviewcheck run was posted at all.A required context that goes green with an open P1 and can also simply never appear would neither block a bad head nor clear a good one. That is the vacuous-check shape
.greptile/rules.mdprohibits — so it is not installed here.What does enforce review, measured not assumed
With the rollup at
SUCCESSand the branchMERGEABLE, PR #22 sat atmergeStateStatus: BLOCKEDon one unresolved thread and moved toCLEANthe moment it resolved — head SHA and rollup unchanged, so resolution was the only variable.Conversation resolution is the load-bearing gate. Greptile produces the findings it counts.
No-repeat evidence
The revert head was deliberately not accepted as proof of no-repeat: with a net-empty diff nothing was reviewed, so "no finding" there is absence of evidence. A third head
7fbb87crestored a real diff on the same two files with comment-only changes — Greptile reviewed it, concluded success, added no findings, total stayed at 3.Sourcery
Non-required status retained on new evidence rather than inheritance:
Sourcery reviewconcluded success on the head carrying all three deliberate defects.Verification on this head
check:architecturepasses (100 files, 4 manifests); architecture red suite 21/21.Release impact — measured
None. No changeset.
REVIEW.mdis outsidepackages/; no published bytes, exports, schema, or package metadata change.Summary by Sourcery
Documentation: