Review orchestration plugin for Takopi.
Project description
takopi-review
multi-review orchestration plugin for takopi.
takopi-review runs multiple review agents over the same diff bundle, normalizes
their findings into one schema, deduplicates overlap, and produces a single
report you can act on. It keeps raw reviewer output for audit, but everything
downstream uses the same provider-agnostic finding shape.
shipped now
phase 1 and the initial /review fix flow are implemented here:
/review diff/review pr <number|url>/review commit <sha>- normalized provider-agnostic findings
- consolidated markdown reports with audit artifacts
- deterministic meta-review
/review fixfor accepted findings
how it works
the plugin runs in four stages:
- collect the review target, diff, changed files, inferred test surface, and repo instructions
- run the configured reviewers in parallel with the same bundle
- normalize, deduplicate, rank, and classify findings as
accepted,needs-human-triage, orrejected - optionally hand only accepted findings to a fixer engine and write a fix report
requirements
- python 3.14+
- takopi installed
- reviewer engines available in your takopi setup
ghinstalled if you want/review pr ...
install
uv tool install -U takopi --with takopi-review
or install into the same environment as takopi:
pip install -U takopi-review
enable it:
[plugins]
enabled = ["takopi-review"]
commands
review the working tree diff:
/review diff
/review diff --focus security --focus tests
review a pull request:
/review pr 123
/review pr https://github.com/acme/repo/pull/123 --focus performance
review a commit:
/review commit abc1234
apply accepted fixes from the latest saved review run, or a specific run:
/review fix
/review fix --id RF-001 --id RF-002
/review fix --run 20260313T161318Z-ff69298e --engine codex
/review fix loads the latest saved review run for the active repo context and
only applies findings marked accepted.
outputs
review artifacts are written under .takopi/review/ by default:
.takopi/review/
latest.json
<run-id>/
bundle.json
report.json
report.md
raw/
claude.txt
codex.txt
devin.txt
fix-report.json
fix-report.md
the markdown review report includes:
- a consolidated findings table
- an agreement matrix by reviewer
- recommended fix order
- testing gaps
- reviewer execution errors, if any
finding schema
all reviewer output is normalized into this shape before consolidation:
{
"reviewer": "claude",
"title": "Missing authorization check",
"priority": 1,
"confidence": 0.84,
"file": "src/example.py",
"start_line": 42,
"end_line": 45,
"summary": "Route allows any Slack user to trigger destructive actions.",
"suggested_fix": "Check allowed_user_ids before dispatch."
}
config
[plugins.review]
default_fixer = "codex"
reviewers = ["claude", "codex", "devin"]
timeout_s = 900
max_parallel_reviews = 3
post_github_comments = false
auto_fix = false
report_dir = ".takopi/review"
reports and raw reviewer outputs are stored under report_dir inside the repo.
development
install the locked dev environment:
uv sync --frozen --group dev
run the same checks as CI:
uv run --no-sync ruff check
uv run --no-sync pytest -q
build the package locally:
uv build
release
ci runs on pushes to main and pull requests. publishing is wired through
github actions on tags matching v*.
once PyPI trusted publishing is configured, a release is:
git tag v0.1.0
git push origin main --tags
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file takopi_review-0.1.0.tar.gz.
File metadata
- Download URL: takopi_review-0.1.0.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb350febef6b8bc6215c09b330bf7504c8f66d4af1d9225ca29e6c14d7b12cdd
|
|
| MD5 |
6b50b38bc6b9d0a3d41c76e2d78d1332
|
|
| BLAKE2b-256 |
46080ac4bdbf499e8daff5b25d7b39095f4f2668f6f6d76b11549e5a18076c00
|
Provenance
The following attestation bundles were made for takopi_review-0.1.0.tar.gz:
Publisher:
workflow.yml on richardliang/takopi-review
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
takopi_review-0.1.0.tar.gz -
Subject digest:
eb350febef6b8bc6215c09b330bf7504c8f66d4af1d9225ca29e6c14d7b12cdd - Sigstore transparency entry: 1097814513
- Sigstore integration time:
-
Permalink:
richardliang/takopi-review@6e74d3ff49410da9ecd9b449e919b9e8588b54ce -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/richardliang
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@6e74d3ff49410da9ecd9b449e919b9e8588b54ce -
Trigger Event:
push
-
Statement type:
File details
Details for the file takopi_review-0.1.0-py3-none-any.whl.
File metadata
- Download URL: takopi_review-0.1.0-py3-none-any.whl
- Upload date:
- Size: 17.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90b86bd2efdd7a5f845a4bd4ff333b6299f33aed68d224aca937787281561fe5
|
|
| MD5 |
75ac74c1f97184b38e171f2150983619
|
|
| BLAKE2b-256 |
af56353ac5283b10bf6acf851928e8a012eb8bfe1bdf67680bd4153c9f1195be
|
Provenance
The following attestation bundles were made for takopi_review-0.1.0-py3-none-any.whl:
Publisher:
workflow.yml on richardliang/takopi-review
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
takopi_review-0.1.0-py3-none-any.whl -
Subject digest:
90b86bd2efdd7a5f845a4bd4ff333b6299f33aed68d224aca937787281561fe5 - Sigstore transparency entry: 1097814525
- Sigstore integration time:
-
Permalink:
richardliang/takopi-review@6e74d3ff49410da9ecd9b449e919b9e8588b54ce -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/richardliang
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@6e74d3ff49410da9ecd9b449e919b9e8588b54ce -
Trigger Event:
push
-
Statement type: