Prepare an existing repository so Tessl agents and Tessl Code Review work well in it: better agent context, verifiers, Code Review lenses, and lint rules drawn from how the team already works. Use when someone wants agents to make fewer mistakes in their repo, wants to prepare or improve their repo for agents, or wants to turn recurring review feedback into checks.
89%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
The canonical home for this skill is tessl-labs/factory-setup
This skill looks at how a repository is built, reviewed, and fixed, and proposes changes that help agents get work right the first time. Each proposal is a rule the team already follows, placed where it is enforced best: a lint rule or test, a verifier, a Code Review lens, or agent context.
It works on its own, or as a next step after factory-setup once the first
automation is live.
Rules for the whole session:
Every decision-point message has this shape and nothing else:
Do not describe the user's repository or the evidence back to them; they know it. Evidence appears only as a short "Seen on" note on the proposal it supports.
Run the checks in factory-setup step 2
that apply here: the Git repository and GitHub remote, tessl.json,
git status for uncommitted changes, tessl whoami, and the GitHub repo and
its default branch. Stop where those checks stop.
Then fetch the default branch and compare HEAD with
origin/<default branch>. Steps 1 to 5 read the checked-out files, and step 6
branches from origin/<default branch>. When they differ, tell the user and
ask them to switch to an up-to-date default branch before you go on.
Read before you ask:
AGENTS.md, CLAUDE.md, rules, skills, and
anything tessl.json installs.tessl code repo view <owner/repo> --json. Note
whether repository.review.enabled is true. If the command fails, for
example because the user is in several organizations without TESSL_ORG
set, Code Review is not available for the organization, or the repository
is not selected for the GitHub App, treat Code Review as off and continue
without the lens tier.Then check the skills this needs: tessl-verify, and
create-code-review-lens only when item 4 found Code Review on. In Claude
Code and Cursor they install as tessl__<name>, so match either name.
Send decision point 1, the plan:
tessl/tessl-verify for
tessl-verify, which writes the checks, and tessl/code-review for
create-code-review-lens, which writes review rules, with
tessl install -g <plugin>.tessl-verify is needed, one item saying you will judge the checks
with openai/gpt-6-luna, or jev if they want cheaper and faster but
still in testing. tessl-verify asks its user to choose; answer it from
this reply and never pass the question on.For example:
Preparing your repository: step 1 of 6, baseline. Readiness: Level 3/5, 61%.
Before I gather evidence, I'll:
1. Install tessl-verify for your account, to write the checks. The repo is unchanged.
2. Judge checks with openai/gpt-6-luna. Say "jev" for cheaper and faster, still in testing.
Code Review is off, so I'll skip review rules.
Reply go, or tell me what to change.After the reply, install what the user agreed to and confirm each skill is visible; if an install fails or a skill is still not visible, say so in one line. A skill that is still missing, because the user declined, the install failed, or it is not visible after the install, makes its tier's items "needs " items, shown but not applied, as the proposal list says.
Collect where agents and reviewers keep tripping, from the sources in evidence. Each source is optional; skip one that is missing and say so in the closing message. Do not message the user here; go on to step 3.
Turn the evidence into candidate rules, each one a thing the team already expects and can name. Follow routing. Resolve each contradiction and each context layout choice yourself, as routing and context say.
Give each candidate one tier, following routing:
Send decision point 2, the proposals, one group per message, following the proposal list. Send the next group only after the user replies to the one before. Each message says these are the changes you will make; every numbered item is made unless the user leaves it out, and the user can add anything the history did not show. Change nothing until the last group is confirmed; then apply every kept item in step 6, in one pass. When nothing is left to apply, stop.
Make the confirmed changes on one new branch, following apply. Write each tier's files from its step 6 sections:
Run each new verifier and lens on a few historical pull requests, following the step 7 sections:
Each count, sample, and backtest run spends credits; lint and dry-run
commands are free. Decide warn or an exclude list per verifier before
counting, skip a full count that cannot change a level, and ask once for one
plan with a firm total, as
apply says: that plan is
decision point 3. Tell the
user each one's catches, false alarms, and the replays that did not exercise
it, which replays used the merged result, and whether its backtest was weak.
Drop or fix the ones the user
rejects; a dropped verifier or lens is deleted. Then check the configuration
and commit, one commit per category, as
apply says.
Follow the step 8 sections of apply:
Decision-point messages carry the one-line status from the message shape. Show the full timeline only in the closing message, or when you stop before the end, using the marks and format from the factory-setup timeline, under the heading "Preparing your repository", with these stages:
stephaniedominy/tessl-carnival
0e37a76
Canonical home
since Oct 15, 2026
Also appears in
last in sync Oct 16, 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.