Set up, explain, and change a Tessl factory on a repository: pick automations that fit how you work, such as triaging tickets, shipping tickets as pull requests, keeping pull requests moving, code review, and scheduled jobs.
78
98%
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
A factory is a set of automations on a repository. Each one is a rule: when something happens (a ticket is filed, a pull request gets a review, a time of day arrives), a Tessl agent runs a skill in the cloud and does one job.
Your job is to help the user pick the first automation that is useful to them, set it up safely, show it working, and then help them see what else they could add. Fit the factory to how the user works. Do not assume they use pull requests, Linear, or any other tool until you have checked.
Rules for the whole session:
--workspace <workspace> to every tessl command that takes it. gh
and git commands do not take it.Before you run anything that changes state, tell the user in a few short sentences:
tessl.json, and maybe a label.tessl.json.Then ask: "Do you want to go ahead?" Stop if they say no.
tessl.json, tell the user to
run tessl init and stop.git status. If there are uncommitted changes, say so and ask the user
to commit them or put them aside before you continue. Do not move or stash
them yourself.tessl whoami. If it fails, ask the user to run tessl login.tessl project repair --json. The workspace is
linkedProject.workspaceName. If there is no linked project, ask which
workspace to use, then run tessl project link --workspace <workspace>, or
tessl project create --workspace <workspace> if no project matches.tessl org list --json. If the organization's credits.state is not
ok, tell the user that factory runs will not start until the
organization has credits, and ask whether to continue.gh repo view --json nameWithOwner). Check that the
Tessl GitHub App can write to it: tessl integrations show github-app-agent
and tessl github token --repo <owner/repo>. If either fails, ask the user
to install the Tessl GitHub App on the repo from workspace settings. Say
that it asks for read and write access so agents can comment, push
branches, and open pull requests. Wait until they say it is done.Read before you ask:
CLAUDE.md, AGENTS.md, and CONTRIBUTING.md, for rules about branches,
pull requests, and releases.git log --first-parent -30 <default branch>. Merge commits mean work
arrives through pull requests. Plain commits mean people push to the
default branch.gh pr list --state merged --limit 10 and
gh api repos/<owner>/<repo>/rules/branches/<default branch>.gh issue list --limit 5), or a
Linear connection (tessl integrations show linear --json)..github/workflows/.Tell the user what you found in two or three sentences, for example "You push straight to main, file GitHub issues, and have no CI." Ask them to correct it. Then ask: "Is there one thing you want Tessl to take off your plate first?"
Read tessl.json. Find the actions, triggers, and schedules, and the
environments they use (tessl environment view <env>). Check Code Review with
tessl integrations show github-app-code-review.
If nothing is set up, say so and go to step 5.
If something is set up, tell the user in plain words which automations are on, what starts each one, and which skills are their own copies. Then suggest one or two automations from the starters that fit what they already have and how they work, and say what each would save them. For example: "Tessl already ships your labelled issues. A triage automation could read each new issue and add the label when the issue is small and clear." Ask what they want to do: add an automation, remove one, change what starts one, or edit a skill.
Set up one automation first. Add more once it works.
Before you build it, say what it does in plain words: what starts it, what the agent does, what it changes, and how to stop it. Ask: "Is this what you want?"
Use one environment named <repo>-factory. If it exists, show its access and
ask before you change it. If not, create it with the access that the chosen
starter lists:
tessl environment create <repo>-factory <flags>, then confirm it with
tessl environment view <repo>-factory.
If tessl environment create --help has no flag that the starter needs, ask
the user to create the environment in the web app, under workspace settings,
Environments, with that access.
setup-tessl-factory from the default branch and make every file change
on it.setup-tessl-factory branch.gh label create tessl.tessl doctor --automations. Fix what it reports. Tell the user what
each warning means for them, not what it says. For example, "event
delivery not confirmed" means "Tessl has not received a GitHub event from
this repo yet. This is normal until the change is on the default branch."setup-tessl-factory and open a pull request. The automations start only
once tessl.json is on the default branch.Tell the user:
tessl.json, or remove the label from a
ticket.Say the plain words. If a command or screen shows the Tessl term, say what it means in one line.
| Plain words | Tessl term |
|---|---|
| automation | loop, trigger, action |
| cloud environment: the machine and access the agent gets | environment |
| check the setup | tessl doctor |
| review rules: what Code Review looks for | lens |
| keep pull requests moving: answer review comments, fix failing checks | shepherd |
| wait time: Tessl waits about 90 seconds after an event, so quick events start one run | debounce |