Patchflows are made up of three main components: Steps, Prompts, and Inputs. These components are used to define the structure and behavior of a patchflow.

Steps

Steps are atomic, reusable actions that carry out a well-defined task. They are the fundamental building blocks of a patchflow, and take JSON objects as input and return JSON objects as output. Example - Read File, Create PR, Call LLM, etc.

Prompts

Prompts are a carefully curated set of instructions that are used in the Call LLM step to leverage the power of AI and LLMs. Prompts are used to generate code, documentation, and other artifacts, and can be templated to automate complex development tasks. Example - Summarize the changes in this {{diff}} into a list of bullet points.

Inputs

Inputs are the parameters that are passed to a patchflow when it is triggered. Inputs can be used to customize the behavior of a patchflow, and can also be used to pass in dynamic values. Example - branch_name, file_path, etc.