Start here for Tessl Code Review. Use when someone mentions Tessl Code Review or Tessl's AI review, wants automated review of pull requests in a repository, asks to review a diff, branch, or pull request ("review this change", "check this diff for security issues", "what would Code Review say"), asks what Tessl Code Review does, or asks for something and it is not yet clear which Code Review job it is. Works out whether they want to install it on a repository, run a review, change what reviews catch, change which lenses run on which paths, or answer a review's findings. Installing is the Tessl Review GitHub App, which this skill links the user to; the other jobs hand off to create-code-review-lens, respond-to-code-review, or the tessl code review command. The review-* skills in this plugin are lenses that tessl code review runs as reviewer instructions; do not follow one directly to review code, run the command instead.
95%
Does it follow best practices?
Impact
98%
1.08xAverage score across 18 eval scenarios
Low
Low-risk findings worth noting
The canonical home for this skill is tessl/code-review
Tessl Code Review reviews a pull request or a local change with several
reviewers running in parallel, one per lens, then merges and grades what they
found into one review. It runs from the CLI as tessl code review, and on GitHub
as the Tessl Review GitHub App.
This plugin holds every part a user touches:
| Job | Skill | Signals |
|---|---|---|
| Install Code Review on a repository | Installing on a repository, below | set up, enable, install, turn on reviews on this repo, get Tessl reviewing our pull requests |
| Change what a review looks for | create-code-review-lens | the review missed something, keeps flagging something it should not, write a lens, fork a lens, tune a lens, custom review rules |
| Change which lenses run where | references/repository-profile.md | add our lens to the reviews, run a lens only on some paths, stop reviewing generated files |
| Answer a review that has arrived | respond-to-code-review | address the findings, respond to the review, the reviewer left comments, changes requested, the review loop is not converging |
| Run a review now | the tessl code review command, below | review this change, review my PR, what would Code Review say about this diff |
The review-* skills are lenses. Four of them, for program code, are the
default lenses; review-plugin-content and review-markdown review agent
plugins and other Markdown when a profile routes them. They are reviewer
instructions that tessl code review loads into its own reviewer agents. Do not
activate one to review code yourself: a lens on its own has no supervisor to
merge and grade findings, and the result is not a Tessl Code Review.
Read the request and the repository before choosing. One question is usually enough when the request is ambiguous; do not interview.
Hand off by following the named skill. Say which one you are using and why in one line. If two jobs are present, do the one that unblocks the other first: an install before a lens, since a lens changes a review that has to be running, and a respond before anything else when a review is waiting.
Tessl Code Review runs on GitHub as the Tessl Review GitHub App. Installing the App is the supported way to install Tessl Code Review, and it starts on the organization's Code reviews page in the Tessl web app. Until an installation exists, that page offers Connect GitHub. Once one does, it lists the repositories the App can reach, and a repository's row is where it is enabled and where its trigger policy and review behavior are set.
Build the link to that page. It is per-organization, so find the organization first:
tessl org list --jsonTake the organization's id from the output and put it in:
https://tessl.io/orgs/<id>/code-reviewsAn organization UUID in that position redirects to the organization's slug, so
the link resolves without you having to know the slug. When tessl org list --json returns more than one organization, ask which one to set up rather than
guessing: the link points at a single organization, and installing against the
wrong one is invisible until no reviews arrive.
Not every organization has this page. If the user reports it is not there, their organization is not enabled for Tessl Code Review. Say that, and that enabling it is a change Tessl makes rather than one they can make. No other address reaches the App, and the CLI cannot install it, so there is nothing further to offer.
Give the finished link on its own line. Never construct or emit a
github.com/apps/... install link: those carry signed per-user state that
expires in ten minutes, so a link you produce is broken by the time anyone
follows it. The page mints that link itself, in the browser, which is why the
install has to start there.
The documentation covers the full setup, and is worth naming next to the link for a user who wants to read before clicking:
https://docs.tessl.io/tutorials/setting-up-agentic-code-review
Then do three things, in order:
open on macOS,
xdg-open on Linux, start on Windows. If the command fails, say the page
could not be opened and leave the URL on screen for the user to follow
themselves. A failed opener is a failed open, not a failed install; do not
report it as one.The App is the only install path. A user who asks for a GitHub Action or a workflow, or says they cannot install a GitHub App, gets the same link and an explanation of what the App requires and who in their organization can approve it. Do not write a workflow as a substitute.
tessl code review reviews the working tree's change against the default branch
when given nothing. It takes a range with --base and --head, or a pull request
with --pr.
tessl code review
tessl code review --base origin/main --head HEAD
tessl code review --pr 42The default lens set is six lenses in this plugin, pinned to a version of this
plugin: four code lenses, plus review-plugin-content and review-markdown,
each change file going to exactly one group by its kind. A plain run needs no
lens selection. --skill
replaces that set with the complete ordered set you name; it does not add to it.
A reference is a local path, an installed skill name, or a registry ref
workspace/plugin[@version]#skill. A registry ref without a version follows the
newest published version; a ref with one stays fixed until someone edits it.
Choose per ref. A plain run uses the lens version the CLI pins, which can be
older than the newest published one, so an unversioned tessl/code-review#...
ref can review differently from a plain run.
tessl code review --skill ./review-lenses/review-test-reliability
tessl code review --skill tessl/code-review#review-security-and-privacy--json writes one document to stdout on success and failure alike. Count
findings only when status is ok: a failed or skipped run with no
findings otherwise looks like a clean review.
Never pass --publish unless the user asked for the review to be posted to the
pull request. A local run is a preview.
create-code-review-lens knows the contract the CLI
enforces.respond-to-code-review.
Fix, refute, and decline are distinct dispositions with distinct consequences.tesslio/product-plugins
84360a8
Canonical home
since Sep 3, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.