> ## Documentation Index
> Fetch the complete documentation index at: https://docs.patched.codes/llms.txt
> Use this file to discover all available pages before exploring further.

# Overview

> Understanding patchflows and how to use them

Patchflows are LLM-assisted workflows defined using steps and prompts that can be triggered to automate a well-defined process.

## What is a Patchflow?

In its simplest form, a patchflow is a Python script that defines a series of function (Steps) and LLM (Prompts) calls to execute a development task, generally in the context of a target code repository.

## What makes a good Patchflow?

Patchflows are meant to automate repetitive, well-defined development tasks so that they can be executed end-to-end without active manual intervention.

When deciding what tasks to automate using a patchflow, consider the following:

* **Repetitive**: The task should be something that is done frequently and is well understood.
* **Effort**: The task should ideally be time-consuming or error-prone when done manually.
* **Scope**: The task should be well-defined and have clearly identifiable inputs and outputs.
* **Asynchronous**: The task should be something that can be done in the background, so as to not block active development or require manual intervention.
* **Expectations**: An ideal task is one where the output can be easily verified manually.

A good example task that can be automated using a patchflow is PR reviews. Reviews are repetitive, have well-defined context in terms of the modified code, can be done asynchronously, and the output is easily verifiable.

A bad example task would be to automate the entire process of writing a new feature. Every feature is unique (not repetitive), requires a lot of context (not well-defined), requires active collaboration (not asynchronous), and the output quality is hard to assess (not easily verifiable).

## Why are Patchflows the right way to automate?

A core tenet of software development is planning out the steps needed to achieve a goal. The absence of a plan often leads to confusion, wasted effort, and poor outcomes.

The same is true for LLMs and AI agents. An open-ended task without clear definition leads to poor outcomes. This is why even the best AI-engineers [can only complete about 40% of the tasks](https://www.swebench.com/) assigned to them. And this is for a set of curated tasks that were known beforehand.

Patchflows in comparison can have an [accuracy rate as high as 90%](https://www.patched.codes/blog/patched-moa-optimizing-inference-for-diverse-software-development-tasks), made possible because of the well-defined structure and targeted context. The slightly higher upfront cost of defining a patchflow is more than offset by the increased accuracy and reduced effort in the long run. Plus, when a result is not as expected, patchflows make it incredibly simple to debug and improve them.
