Repository navigation
refactor(review): migrate mechanics to Python and uv - #200
Merged
Merged
Conversation
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.
Why
The review plugin's Bash/AWK mechanics prevented native Windows execution and duplicated parsing across entrypoints. Closes #182.
What changed
Replace the runtime scripts with one self-contained, locked Python/UV package exposing the same seven command names, TSV protocols, scope bindings, reviewer routes, and report semantics. Subprocesses use argument vectors; explicit check commands use Bash on Unix or PowerShell on Windows, with descendant cleanup on cancellation.
Update the skill, references, eval fixtures, and verification/adaptive-delivery consumers to use frozen entrypoints. Add native Python regression/property tests, replace all seven shell regression suites with native Python tests and retained golden reports, register the package, and add Linux/macOS/Windows copied-install and Python 3.10–3.13 CI coverage. Bump all three affected plugins.
Verification
bun run check:python: passed all nine packages; review has 188 passing tests, 99.11% line coverage and 96.15% branch coverage, plus strict Ruff/mypy gates.bun test evals/runner/goal-review-fixture.test.ts evals/runner/review-outcome-eval-checks.test.ts evals/runner/review-route-eval-checks.test.ts: 109 passed, including all eight repair fixture setups.uv run --quiet --frozen --no-dev --project plugins/capability/darrow-review/backend python plugins/capability/darrow-review/backend/tests/fresh_install.py: all seven copied-plugin entrypoints passed on macOS with mocked provider transcripts. Final CI passed the Python 3.10–3.13 matrix and fresh copied installs on Linux, macOS, and native Windows.reviewer-route-overrideandfix-verification-resolved: each passed N=1. All 30 review cases prepared in the final dry run; this is fixture validation, not 30 live passes.reviewer-route-override: failed N=1 by returning a short finding without scope/route/report artifacts. A separate HEAD-baseline plugin trial reproduced the same omission; no Claude live-pass claim is made.bun run lint,bun run lint:ts,bun run lint:shell,bun run typecheck,bun run check:decisions,bun run check:docs, and the skill inspector passed. Independent artifact validation and the shell-to-Python coverage comparison findings were fixed and covered by regression tests.Review notes
Requires UV and Python 3.10–3.13; obsolete
bin/paths are removed, so external callers must use the documented frozen package entrypoints. Review the native Windows job-object ownership and immutable original/prior/current repair binding most closely. The existing Claude live-eval omission remains a documented limitation outside this mechanics migration.Checklist
CONTRIBUTING.md, including the contributionlicensing terms.
this change does not affect a capability invariant.
behavior.
change does not affect plugin content.
bun run check:python, or this change does not affect registeredPython packages or their repository quality infrastructure.