CtrlK
BlogDocsLog inGet started
Tessl Logo
PluginPublic

tessl-labs/factory

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.

Quality

88%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Low

Low-risk findings worth noting

Overview
Quality
Evals
Security
Files

output.schema.jsonskills/merge-conflict-sweep/schemas/

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "required": ["decisions", "triggered", "skipped"],
  "properties": {
    "collectedAt": {
      "type": "string",
      "description": "When the listing read the issues its fact sheets carry."
    },
    "openPullRequests": {
      "type": "integer",
      "description": "How many open pull requests against the branch the sweep read."
    },
    "counts": {
      "type": "object",
      "description": "The listing's counts: open pull requests, those not the factory's, those without a conflict, those whose mergeability was still unknown at its end time, and the conflicting factory pull requests that got a fact sheet.",
      "properties": {
        "openPullRequests": { "type": "integer" },
        "notFactory": { "type": "integer" },
        "noConflict": { "type": "integer" },
        "mergeabilityUnknown": { "type": "integer" },
        "conflicting": { "type": "integer" }
      }
    },
    "linearRequests": {
      "type": "integer",
      "description": "How many Linear requests the sweep made."
    },
    "githubIssueRequests": {
      "type": "integer",
      "description": "How many GitHub issue reads the sweep made."
    },
    "dryRun": {
      "type": "boolean",
      "description": "Whether the sweep only decided what it would trigger."
    },
    "decisions": {
      "type": "array",
      "description": "Each conflicting factory pull request, with the agent's decision and the evidence it decided from: the issue, where its identifier came from, and the issue's state, delegate id and entry time from the fact sheet.",
      "items": {
        "type": "object",
        "required": [
          "number",
          "headSha",
          "issue",
          "issueSource",
          "issueSourceText",
          "state",
          "delegateId",
          "stateEnteredAt",
          "decision",
          "reason"
        ],
        "properties": {
          "number": { "type": "integer" },
          "headSha": { "type": "string" },
          "issue": { "type": ["string", "null"] },
          "issueSource": {
            "type": ["string", "null"],
            "enum": ["branch", "description", null]
          },
          "issueSourceText": {
            "type": ["string", "null"],
            "description": "The branch name, or the description's text, quoted, that named the issue."
          },
          "state": { "type": ["string", "null"] },
          "delegateId": { "type": ["string", "null"] },
          "stateEnteredAt": { "type": ["string", "null"] },
          "decision": { "type": "string", "enum": ["trigger", "skip"] },
          "reason": { "type": "string", "minLength": 1 }
        }
      }
    },
    "triggered": {
      "type": "array",
      "description": "Each pull request whose trigger request for the fixer action succeeded, new or already recorded at its head (`alreadyRecorded`), or in a dry run each one the sweep would trigger.",
      "items": {
        "type": "object",
        "required": ["number"],
        "properties": {
          "number": { "type": "integer" },
          "issue": { "type": "string" },
          "headSha": { "type": "string" },
          "requestId": { "type": "string" },
          "alreadyRecorded": { "type": "boolean" }
        }
      }
    },
    "skipped": {
      "type": "array",
      "description": "Each open pull request the sweep did not trigger, with the reason.",
      "items": {
        "type": "object",
        "required": ["number", "reason"],
        "properties": {
          "number": { "type": "integer" },
          "issue": { "type": "string" },
          "reason": { "type": "string" }
        }
      }
    }
  }
}

README.md

tile.json