Factorial is an orchestrator for the Agent Development Life Cycle. GitHub issues move through a process you define, AI coding agents do the work of each step, and people approve at gates.
What Factorial does
Factorial runs on top of GitHub. It does not replace your tickets, your branches or your reviews.
- A ticket is a GitHub issue.
- Each ticket follows a process. The process comes from the config in your repository.
- Each step of the process runs an agent or waits for a person.
- All work stays in GitHub, as branches and pull requests.
- Factorial checks each result itself before the ticket moves on. It does not trust the report of an agent.
Architecture shows how the parts fit together.
Terms
- Project
- One GitHub repository that an operator connects to Factorial. Connect a repository shows how.
- Ticket
- A GitHub issue that Factorial admits and moves through a process. Tickets and gates explains the labels that show where it is.
- Process (lane)
- The path a ticket follows, from the issue to the merged change. One process is one file in the repository. A project can have more than one. Lanes explains how an issue picks one.
- Step
- One stage of a process. A step runs an agent, waits for a person, runs a named action or waits for a condition. Step kinds lists the four kinds.
- Gate
- A step that waits for a person to review a pull request. Gates explains the two decisions.
- Agent
- An AI coding agent with a prompt, and with the skills and tools that it may use. Agents describes how to define one.
- Runtime
- The place where an agent runs, and the adapter that starts, watches and stops it. Runtimes lists the four runtimes.
- Postcondition
- A check that must hold before a step is done. Factorial evaluates it against what it observes on GitHub. Postconditions explains how.
- The
.factorial/folder - The folder in your repository that holds the processes, the agents and the tool servers. Where the config lives shows its layout.
- The
factorialbranch - The protected branch that Factorial reads the
.factorial/folder from. It is not the default branch of the repository. Connect a repository explains how to set it up.
One ticket, start to finish
This is the path of one ticket through a simple process.
- A product owner files an issue that describes the change. The issue must meet the entry condition of the process. In the sample process, that means the label
factorial:newand an assignee. - Factorial admits the issue and labels it with the name of the first step.
- An agent does the work, pushes a branch and opens a pull request.
- Factorial checks the postconditions of the step against GitHub.
- A reviewer approves the pull request at the gate.
- Factorial merges the pull request and moves the ticket to the next step.
- The next steps repeat this pattern: an agent works, Factorial checks, and a person approves where the process has a gate.
- The ticket reaches the end of the process and is done.
An example lane shows a longer path, step by step.
Where to start
Start at the page for your role.
- Organisation owner
- Create the GitHub App for Factorial. See GitHub App.
- Operator
- Run the factory and connect your repositories. See Run the factory and Connect a repository.
- Process author
- Define the processes and the agents. See Processes and Agents.
- Reviewer
- Review the pull requests at the gates. See Tickets and gates and Dashboard.