Skip to content

feat: implement issue #737 — [Phase 1] Instrument auto-rebase: agentic-conflict-resolution rate + fan-out CI-run volume report - #755

Merged
don-petry merged 2 commits into
mainfrom
dev-lead/issue-737-20260615-0426
Jun 15, 2026
Merged

don-petry merged 2 commits into
mainfrom
dev-lead/issue-737-20260615-0426

Conversation

@don-petry

Copy link
Copy Markdown
Collaborator

Closes #737

Implemented by dev-lead agent. Please review.

…c-conflict-resolution rate + fan-out CI-run volume report
@don-petry
don-petry requested a review from a team as a code owner June 15, 2026 04:37
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@coderabbitai

coderabbitai Bot commented Jun 15, 2026 •

Copy link
Copy Markdown

Warning

Review limit reached

@don-petry, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 28 minutes and 53 seconds. Learn how PR review limits work.

Your organization has used up its prepaid credits, and credit purchases are no longer available. Enable the review add-on in the billing tab to keep reviews running — you're only billed for reviews past your plan's rate limits ($0.25/file).

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

Run ID: 9b806d5c-bef9-477a-b3a6-45d286edde0e

📥 Commits

Reviewing files that changed from the base of the PR and between 41e4954 and 29ce638.

📒 Files selected for processing (5)
  • .github/workflows/auto-rebase-health.yml
  • .github/workflows/lint.yml
  • AGENTS.md
  • scripts/auto_rebase_health.sh
  • tests/auto_rebase_health.bats
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dev-lead/issue-737-20260615-0426

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 15, 2026 04:38

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces the auto_rebase_health.sh script and its corresponding BATS unit tests to measure agentic conflict-resolution rates and estimate fan-out CI-run volume, as well as updating AGENTS.md to document this new workflow. The review feedback suggests a robustness improvement in the jq filter to safely handle null or missing PR authors, and an optimization to use pure Bash arithmetic instead of spawning an external awk process in fmt_rate.

Comment thread scripts/auto_rebase_health.sh Outdated
Comment thread scripts/auto_rebase_health.sh Outdated
@don-petry
don-petry disabled auto-merge June 15, 2026 04:39
coderabbitai[bot]
coderabbitai Bot previously approved these changes Jun 15, 2026
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — fix-reviews (applied)

Changes committed and pushed.

@sonarqubecloud

Copy link
Copy Markdown

@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — waiting on PR blockers (intent: review-changes)

PR: #755
No changes were committed, but the PR still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews). The retry cron will re-attempt automatically. Next attempt after: 2026-06-15T05:16:20Z

@don-petry

Copy link
Copy Markdown
Collaborator Author

Note

@don-petry I reviewed this PR and no code changes were needed, but it still has blocking checks or reviews (failing or cancelled checks, or changes-requested reviews), so I cannot mark it done yet. I'll re-check automatically.
Next attempt after: 2026-06-15T05:16:20Z

@don-petry
don-petry enabled auto-merge (squash) June 15, 2026 04:46
@don-petry
don-petry disabled auto-merge June 15, 2026 05:25
@don-petry

Copy link
Copy Markdown
Collaborator Author

Dev-Lead — review-changes (no-changes)

No changes were needed for this PR.

@don-petry
don-petry enabled auto-merge (squash) June 15, 2026 05:26

@donpetry-bot donpetry-bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Automated review — APPROVED ✓

Risk: MEDIUM
Reviewed commit: 29ce63880e2e5d00bd55f1f68be9e75457972da0
Review mode: triage-approved (single reviewer)

Summary

Adds a daily Auto-rebase Health report: a new no-LLM workflow (.github/workflows/auto-rebase-health.yml), the pure-helper + network-I/O script scripts/auto_rebase_health.sh, a 140-line bats suite, an AGENTS.md repo-specific-exception note, and the lint.yml bats wiring. +484/−0 across 5 files. Confirming the triage low-risk assessment.

Linked issue analysis

Closes #737 and meets all five acceptance criteria:

  1. Counts conflict sentinels (<!-- auto-rebase-conflict:) and dev-lead intent=rebase responses over a configurable lookback (summarize_sentinels).
  2. Quantifies auto-rebase fan-out from auto-rebase.yml run telemetry and labels it an estimate (summarize_runs / estimate_fanout).
  3. Recurring daily schedule (07:00 UTC) + workflow_dispatch with lookback_days; surfaced via step summary and a pinned tracking-issue comment.
  4. Documented as a Workflow Files exception in AGENTS.md, consistent with the existing exception notes.
  5. shellcheck-clean (CI green) with bats coverage of the counting/aggregation/rendering logic, added to the lint.yml bats list.

Findings

GitHub Actions surface reviewed closely (the only sensitive area):

  • Safe triggers (schedule + workflow_dispatch) — no pull_request_target and no untrusted-PR checkout/execution.
  • lookback_days flows through an env: block rather than being interpolated into a run: line, and workflow_dispatch requires write access — no script-injection vector.
  • Least-privilege permissions (contents:read, issues:write, pull-requests:read, actions:read); github.token only, no secrets/PAT used in the workflow.
  • Third-party actions SHA-pinned (checkout v6.0.3, github-script v9.0.0).
  • Script uses set -euo pipefail, jq --arg (no interpolation), null-safe .author?.login // "", and a zero-denominator guard in fmt_rate.

Prior review feedback resolved: gemini-code-assist's two suggestions (null-safe jq author handling and pure-bash arithmetic in fmt_rate) are reflected in fix commit 29ce638; the CodeRabbit review was dismissed and dev-lead reported no further changes needed. No unresolved threads or unanswered human-reviewer questions.

CI status

All checks green. CodeQL (actions/python), SonarCloud, Gitleaks, AgentShield, ShellCheck, bats, unit-tests, and the latest review / review run all SUCCESS. The single CANCELLED "review / review" entry is an earlier concurrency-superseded run of the same check, followed by a SUCCESS re-run — no genuinely failing checks. mergeStateStatus is BLOCKED only on the required org-leads human review.


Reviewed automatically by the PR-review agent (single-reviewer mode: fable 5). Reply if you need a human review.

@don-petry
don-petry merged commit 899c936 into main Jun 15, 2026
28 of 29 checks passed
@don-petry
don-petry deleted the dev-lead/issue-737-20260615-0426 branch June 15, 2026 11:27
don-petry added a commit that referenced this pull request Jul 18, 2026
* feat(personas): enforce the eval count gate; read evals.path OR evals.paths

Companion to petry-projects/.github#779. Two things, both #755:

1. Read the new evals shape. `evals` now carries `path` (one set) OR `paths`
   (several, for a persona that wraps multiple skills — pr-review's deep-review
   + triage). check_evals handles both and requires dev/ + holdout/ splits in
   every set. Backward-compatible: qa-lead's single `path` still validates
   against both the live main schema and the #779 branch schema.

2. Make principle 5 partially real (finding 5). "No persona reaches stable
   without an eval gate" was documented but unenforced. Now: once a persona's
   status reaches its `evals.required_before` ring, each held-out set MUST carry
   >= `min_cases` real cases (blank lines ignored). A draft is exempt — draft is
   exactly when seed cases are placeholders. So a persona can no longer be
   promoted past required_before on the 5 synthetic starters.

   The SCORED gate (running the cases against a judge and requiring a pass rate)
   needs an eval harness and is deliberately NOT here — it is a separate
   follow-up. What is hermetically checkable (the held-out COUNT at promotion)
   is enforced now; what needs a runtime is tracked, not faked.

Verification
- bats tests/test_validate_personas.bats: 22/22 (16 + 6 new: paths all-splits,
  paths one-split-missing, draft-not-enforced, stable-enforced-fails,
  enough-cases-passes, blank-lines-ignored).
- validate-personas.py against BOTH the live main schema and the #779 branch
  schema: OK (qa-lead is draft, so the count gate does not bite).

Merge after #779 (the validator fetches the schema from .github main; until #779
lands, `evals.paths` is not yet permitted there — but qa-lead uses `path`, so
main stays green either way).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(reviews): address review comments [skip ci-relay]

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-authored-by: donpetry-bot <281750570+donpetry-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 1] Instrument auto-rebase: agentic-conflict-resolution rate + fan-out CI-run volume report

2 participants