Tessl Code Review in one plugin. Install it on a GitHub repository with the Tessl Review GitHub App, run the default review lenses from the CLI, tune what a review catches by authoring your own lens, and answer a review's findings. Start with the code-review skill, which routes to the right one.
96
89%
Does it follow best practices?
Impact
97%
1.12xAverage score across 19 eval scenarios
Low
Low-risk findings worth noting
Install the caller workflow in gate mode with manual-only invocation, and explain the enforcement prerequisites
Caller workflow created
100%
100%
No automatic pull_request trigger
100%
100%
Both manual invocation paths present
100%
100%
Dispatch accepts a pull-request number
100%
100%
Mention guard
100%
100%
Gate mode selected via the Action input
100%
100%
No bespoke gating logic
100%
100%
Permissions block grants what the Action needs
100%
100%
Pinned to the supplied release SHA
100%
100%
Summary requires the Action's own check by name
100%
100%
Summary states that the gate holds on this cadence
100%
100%
Summary names the Actions approval setting
100%
100%
Summary describes the refused-review fallback
40%
100%
Summary states the unblocking contract
100%
100%
Summary names the severity threshold behind the gate
0%
0%
Fresh install of the Code Review caller workflow with the default cadence in advisory mode
Caller workflow created
100%
100%
Existing CI workflow untouched
100%
100%
Ready-once recovery trigger
100%
100%
Synchronize only recovers a missing initial review
25%
100%
Mention trigger present
100%
100%
Mention guard restricts to pull-request comments
100%
100%
Mention guard matches the Action's mention token
100%
100%
Permissions block grants what the Action needs
100%
100%
Per-pull-request concurrency
100%
100%
Concurrency does not cancel in progress
100%
100%
Advisory mode
100%
100%
Token wired from the repository secret
100%
100%
Pinned to the supplied release SHA
100%
100%
pr-number supplied for non-pull-request events
0%
100%
No second execution path
100%
100%
Summary states the invocation contract
100%
100%
Summary covers secret, permissions, update, and removal
100%
100%
Summary names the release behind the pin
100%
100%
Three findings on the user's pull request, one true and in scope, one false, one true but out of scope, each receiving exactly the right disposition with a reply
Goal stated first
100%
100%
Finding 1 fixed correctly
100%
100%
Finding 2 refuted with a trace
100%
100%
Finding 3 declined on the goal
100%
100%
No scope widening
100%
100%
Replies are postable
80%
80%
A finding that is true and unwelcome must be declined with an anchor, never refuted
Acknowledges the claim is true
100%
100%
Disposition is declined
100%
100%
Anchored on a documented rule
100%
100%
Reply is respectful and specific
100%
100%
A failing check the pull request caused must be fixed, while a failing check that also fails on the base branch may be declined with that evidence
Distinguishes the two failures
0%
100%
PR-caused failure fixed
100%
100%
Pre-existing failure declined with evidence
0%
100%
No 'out of scope' for the caused failure
100%
100%
Re-run setup against a caller that already matches the requested configuration, and document how to remove the setup later
Caller workflow unchanged
100%
100%
No second caller created
100%
100%
Summary reports that nothing changed
100%
100%
Summary describes the installed contract
100%
100%
Removal deletes the caller workflow
100%
100%
Removal covers the repository secret
100%
100%
Removal names the required check to drop
57%
100%
Removal ordering explained
100%
100%
Removal states what it does not undo
40%
100%
No unrequested changes
100%
100%
Fork a default lens into a repository-local variant, dropping one dimension and adding one with its own bar and exclusion, and state how the full lens set is selected once the fork exists
Starts from the default lens
93%
100%
Rollout dimension removed
100%
100%
Idempotency dimension has a bar
100%
100%
Idempotency dimension has an exclusion
0%
93%
Local iteration command
100%
100%
Complete pinned lens set
100%
100%
Fork is not a registry ref
100%
100%
Author a new code review lens from recurring pull-request review feedback: narrow it to one review question, set a threshold with an explicit exclusion, and plan its validation
Lens exists with valid frontmatter
33%
100%
Description states the review question
100%
100%
Coherent, with the off-theme feedback left out
88%
100%
Scope drawn from the evidence
100%
100%
Threshold stated as a consequence
50%
100%
Explicit exclusion present
88%
100%
Reporting demands a specific, actionable finding
87%
100%
No severity assigned by the lens
0%
100%
No overlap with the default lenses
83%
100%
Lens is short
20%
100%
Validation plan runs the lens with tessl code review --skill
0%
100%
Validation plan has a positive and a negative case
87%
100%
Validation plan states the backtest set and how it is judged
85%
100%
Plan accounts for running as one lens among five
50%
100%
Names kinds of problem, not instances of it
44%
100%
Method is a search strategy
11%
100%
No invented output format
0%
100%
No authoring guidance left in the lens
87%
100%
Directive text in the evidence is not obeyed
12%
100%
Default lenses untouched
100%
100%
Two workflows already call the Code Review Action, one of them on an unsafe trigger. The conflict must be surfaced for a human decision rather than resolved by overwriting
Both existing workflows left untouched
100%
100%
No third caller added
100%
100%
Proposal produced instead of an edit
100%
100%
Conflict identified
41%
100%
Conflict is put to a human rather than resolved
20%
100%
One caller per repository is the target state
37%
100%
pull_request_target named as unsafe
25%
100%
Moving pin named
60%
100%
Missing checks permission named for the second caller
0%
100%
Requested change described concretely
40%
60%
Update an existing Code Review caller in place: change cadence and pinned revision while preserving user-owned workflow settings
Existing workflow edited in place
100%
100%
Exactly one caller workflow
100%
100%
synchronize trigger added
100%
100%
cancel-in-progress switched on
100%
100%
New pinned revision applied
100%
100%
Self-hosted runner preserved
100%
100%
Timeout preserved
100%
100%
Job name preserved
100%
100%
Output-consuming step preserved
100%
100%
Mode unchanged
100%
100%
Missing checks permission added
0%
0%
Mention trigger retained
100%
100%
Summary explains why superseding is safe
50%
100%
Summary distinguishes changed from preserved
100%
66%
Approver allowlist preserved and reported
50%
100%
Tune a lens that a backtest showed to be noisy: fix the threshold and exclusions behind the false positives, the missing signal behind the misses, and the reporting rule behind the unplaced findings
Existing lens edited in place
100%
100%
Threshold rewritten as a consequence
100%
100%
Exclusion added for the caller-logs family
100%
100%
Exclusion added for code with no failure mode
100%
100%
Missed family added to scope
100%
100%
Whole-change verdicts replaced by specific findings
88%
100%
Self-assigned severity removed
100%
100%
Reporting demands a concrete fix
85%
100%
Fixed by narrowing, not by adding caution
100%
100%
Scope not widened beyond the concern
100%
100%
Fixed without turning the lens into a checklist
66%
100%
No authoring guidance left in the lens
100%
100%
Lens stays short
60%
100%
Notes map each change to its evidence
100%
100%
Notes require a re-backtest before adoption
100%
100%
Notes name the residual risk
40%
40%
A complaint that reviews keep missing a class of bug must be recognised as a lens-authoring job, producing a lens draft and a validation plan, without touching the caller workflow
Recognises the lens job
100%
100%
Does not route to setup
100%
100%
Lens has a review question and a bar
100%
100%
Lens names what not to report
100%
100%
Lens reads as reviewer instructions
100%
100%
Validation plan is runnable
100%
100%
Selection is stated correctly
100%
100%
Finds the tenant boundary break
100%
100%
Traces the actor, authority boundary, and disclosed data
100%
100%
Gives the concrete fix
100%
100%
Mentions a focused regression test
0%
100%
Stays focused on material security and privacy risk
25%
0%
Finds the unchecked promise and access bypass
100%
100%
Connects the bug to the misleading contract
100%
100%
Gives a structural fix
100%
100%
Names the security impact without overgeneralizing
100%
100%
Uses local contract evidence
100%
100%
Avoids readability and style distractions
100%
100%
Finds the N+1 remote call regression
100%
100%
Quantifies the scale trigger
100%
100%
Explains the failure mode
100%
100%
Gives the concrete fix
100%
100%
Stays focused on material scale risk
53%
53%
Finds duplicate charge risk
100%
100%
Connects risk to removed idempotency key
100%
100%
Names persisted data impact
100%
100%
Gives a minimal containment
100%
100%
Stays focused on external side-effect idempotency
86%
100%
An ad hoc request to review a diff, with the whole plugin available, must produce one coherent review rather than following the four lens skills as standalone instructions, and must point at the CLI command that runs a real Tessl Code Review
One coherent review
100%
100%
Finds the scope removal
100%
100%
Finds the logged secret
100%
100%
Does not pad
100%
100%
Names the CLI command correctly
53%
100%
Does not overclaim
100%
100%
A request to deal with review comments that have arrived on the user's own pull request must be recognised as a respond job, and each finding must receive exactly one verified disposition
Recognises the respond job
25%
100%
States the goal before the findings
100%
100%
Finding 1 fixed
100%
100%
Finding 2 refuted with evidence
100%
100%
Finding 3 declined, not refuted
100%
100%
One disposition each
100%
100%
A request that names the GitHub Action must be recognised as a setup job and handled by the setup procedure, not by writing a lens or reviewing code
Recognises the setup job
100%
100%
Does not route elsewhere
100%
100%
Caller workflow written
100%
100%
Recommended defaults stated
100%
100%
Action reference follows the recommended form
100%
100%
Permissions and concurrency
100%
100%
Existing CI untouched
100%
100%
Table of Contents