Skills that Tessl factory loops run: implement a Linear or GitHub issue as a pull request, shepherd that pull request through review and checks, wake the shepherd for pull requests that a push to their base branch left in conflict, and keep the work in step when a person stops, ends, answers or closes it.
88%
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
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"required": ["GITHUB_AUTHOR_IDS"],
"properties": {
"GITHUB_AUTHOR_IDS": {
"type": "string",
"minLength": 1,
"description": "Comma-separated numeric GitHub user ids of the authors whose pull requests the sweep acts on. Setup fills it with `{{ github.tesslApp.userId }}`."
},
"BRANCH_PREFIXES": {
"type": "string",
"description": "Comma-separated head branch prefixes the sweep acts on. Absent or empty means `tessl/`."
},
"GITHUB_REQUIRED_LABEL": {
"type": "string",
"description": "The label a pull request must carry. Absent or empty means `tessl`."
},
"GITHUB_SKIP_LABEL": {
"type": "string",
"description": "A label that rules a pull request out. Absent or empty rules none out."
},
"FIXER_ACTION": {
"type": "string",
"description": "The action the sweep triggers for a pull request it wakes, given the pull request's number as `GITHUB_PR_NUMBER`. Absent or empty means `shepherd`."
},
"LINEAR_TESSL_APP_USER_ID": {
"type": "string",
"description": "The Tessl App's Linear user id: a Linear issue counts as delegated to Tessl when its delegate has this id. Setup fills it with `{{ linear.tesslApp.userId }}`. Absent or empty, no Linear issue counts as delegated to Tessl."
},
"LINEAR_ACTIVE_STATES": {
"type": "string",
"description": "Comma-separated Linear state names a pull request's Linear issue must be in for the sweep to wake it. Absent or empty allows any state whose type is not completed or canceled."
},
"LINEAR_STATE_MAX_AGES": {
"type": "string",
"pattern": "^\\s*([^,=]+=\\s*[1-9][0-9]*[smhd]\\s*)(,\\s*[^,=]+=\\s*[1-9][0-9]*[smhd]\\s*)*$",
"description": "Comma-separated `State=duration` pairs: how long after a Linear issue entered that state, its current state, its pull request is still swept, such as `In Review=24h`. A state not named has no limit; absent or empty, no state has one."
},
"GITHUB_ISSUE_LABEL": {
"type": "string",
"description": "The label a pull request's GitHub issue must carry for the sweep to wake it, unless the pull request's description names another in a `<!-- tessl-factory:issue-label: <label> -->` line. Absent or empty means `tessl`."
},
"DRY_RUN": {
"type": "string",
"enum": ["true", "false"],
"description": "`true` decides and reports what the sweep would trigger without triggering. `false` when absent."
}
}
}