custom/ directory. Files in custom/ take precedence over the corresponding built-ins, and upstream updates never overwrite them (the only exception is custom/README.md, which may be updated with documentation changes). Your customizations are safe across upgrades.
There are two extension points: custom/steps/ for step modules and custom/pipelines/ for pipeline definitions.
custom/steps/ — override or add a step
You can either replace a built-in step or introduce an entirely new one by dropping a TypeScript file incustom/steps/.
- To override a built-in step, create a file named after its step ID — for example,
custom/steps/install.tsreplaces the built-ininstallstep. - To add a new step, give the file a name that doesn’t match any built-in ID and reference it from a custom pipeline (see below).
Overrides are discovered at startup by filename match — there is no plugin manifest or registration call.
Built-in step IDs
The orchestrator runs two pipelines — an implementation pipeline and a planning pipeline. Only the implementation pipeline checkscustom/steps/ for overrides at runtime. The six overridable IDs are: clone, install, feedback-loop, preflight, push, post-push-review.
All step IDs are listed below for reference.
architecture-analysis
architecture-analysis
Runs Claude during the planning phase to produce the Architecture Analysis comment posted to the issue. Override to change the prompt, model, or how the analysis is shaped.
clone
clone
Clones the target repo into the workspace at the start of an implementation run. Override if you need custom checkout logic (e.g. shallow clones, submodule init).
cross-story-context
cross-story-context
Planning step that produces the Cross-Story Context comment when the issue has dependencies or sibling stories with meaningful coordination needs. Skipped automatically when no related issues exist.
explore-codebase
explore-codebase
Read-only codebase exploration during the planning phase. Builds the context that feeds into the architecture analysis and test plan.
feedback-loop
feedback-loop
Wraps the implementation loop — runs
implement → review and iterates until the review approves the diff or the iteration cap is hit. Common override target for adjusting iteration limits, custom acceptance criteria, or swapping the review model.implement
implement
The main implementation Claude session. Reads the planning context and, when Work Units are present, appends instructions for Claude to use parallel subagents. The subagents run inside the single Claude session via the Task tool — not as separate processes — so AI-Implement can’t observe their individual progress.
install
install
Runs your repo-specific install/setup script(s) before Claude starts. Override to add cache management, dependency precompilation, or other setup not expressible as a
setup: script in WORKFLOW.md.post-push-review
post-push-review
Runs the gap analysis Claude pass after the PR is opened, comparing the diff to the ticket spec and posting the structured gap-analysis comment to the PR.
post-to-ticketing
post-to-ticketing
Posts the four structured planning comments (Architecture Analysis, Test Plan, Work Units, Cross-Story Context) back to the ticketing system. Used by the planning workflow.
preflight
preflight
Pre-implementation checks — validates the workspace and expected tools before Claude starts on a fresh run.
push
push
Commits Claude’s changes, pushes the branch to the target repo, and opens the PR. Override to customize commit message format, branch naming, or PR body construction.
review
review
A code-review sub-step executed inside
feedback-loop. Evaluates Claude’s diff against the issue requirements and returns an approval verdict plus an issues list that drives the loop’s next iteration. Distinct from the post-PR gap analysis (which is the post-push-review step) — review runs during the implementation loop to drive iteration; post-push-review runs after the PR is opened to report on completeness.test-plan
test-plan
Runs Claude during the planning phase to produce the Test Plan comment posted to the issue.
work-unit-decomposition
work-unit-decomposition
Runs Claude during the planning phase to produce the Work Units comment, splitting the issue into parallelizable subagent tasks. See AI planning phase for the downstream parallel-implementation behavior.
StepModule as its default export:
hello.ts example from custom/README.md:
A file in
custom/steps/ that exists but has no default export produces a warning at runtime and falls back to the built-in rather than silently misbehaving.custom/pipelines/ — override the pipeline definition
You can override the built-in autonomous loop pipeline by creatingcustom/pipelines/autonomous.yml. This replaces the built-in pipeline YAML entirely.
Pipeline YAML follows this schema:
moduleId field is what connects a pipeline step to your custom step module. When moduleId is set, the runner looks for custom/steps/<moduleId>.js (or .ts in development). When omitted, it defaults to the value of type.
Here is an example that adds a custom step to the pipeline:
custom/providers/ — reserved
Thecustom/providers/ directory is reserved for future provider overrides. It is not yet wired up to a stable interface.