feat(reviewers): per-reviewer throughput and turnaround report#451
Open
boskodev790 wants to merge 1 commit into
Open
feat(reviewers): per-reviewer throughput and turnaround report#451boskodev790 wants to merge 1 commit into
boskodev790 wants to merge 1 commit into
Conversation
`vouch stats` buckets the review queue by the proposing agent and `vouch digest` lists decisions one at a time; neither aggregates by the human at the gate. `vouch reviewers` reports, per `decided_by` actor, how many proposals they approved versus rejected, their approval rate, and the turnaround from `proposed_at` to `decided_at` (median and max). an auto-expiry is a system action, not a review, so expiries are excluded from reviewer counts and reported once as `expired_total`. strictly a viewport: composes store.list_proposals, writes nothing, logs no audit event. cli-only, no kb.* method surface. adds src/vouch/reviewers.py and tests/test_reviewers.py (10 tests).
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
what
vouch reviewers— a read-only throughput report keyed on the human at thegate.
vouch statsbuckets the review queue by the proposing agent (proposed_by)and
vouch digestlists recent decisions one at a time. neither answers "whois doing the reviewing, and how" — the
decided_byaxis. this reports, perreviewer:
proposed_attodecided_at,as median and max
an auto-expiry is not a review decision — a proposal that ages out is closed by
the
vouch-expireactor, not a human — so expiries are excluded from everyreviewer's counts and reported once, separately, as
expired_total(sameEXPIRE_REASONconventionstatsuses). clock-skew decisions (decided beforeproposed) still count but contribute no turnaround sample.
why
on a team with more than one human at the gate, this is the "who's carrying the
review load, who's the bottleneck, who rubber-stamps" view — none of which the
by-proposer surfaces show. safe from cron via
--since/--format json.surface
strictly a viewport. composes
store.list_proposals; writes nothing, logs noaudit event, never touches a proposal. cli-only, so no new
kb.*method (thefour-site method surface and
test_capabilitiesare untouched). no storage,model, migration, or on-disk-layout change.
src/vouch/reviewers.py— new module: purebuild()plus text / markdown /json renderers with a stable
to_dict()json contractsrc/vouch/cli.py—vouch reviewers, next tovouch digesttests/test_reviewers.py— 10 tests (per-reviewer counts + approval rate,expiry exclusion, turnaround,
--sincewindow, unknown-reviewer fallback,clock-skew drop, and the cli)
CHANGELOG.md—[Unreleased]example
validation
python -m pytest tests/ -q --ignore=tests/embeddings→ 1098 passed, 37 skippedpython -m mypy src→ cleanpython -m ruff check src tests→ cleanno linked issue — a self-contained read-only viewport that changes neither the
object model, the
kb.*surface, the on-disk layout, the bundle format, northe audit shape, so per contributing it doesn't need a vep. glad to file one if
you'd prefer to track it.