Your SDLC,
on autopilot
Fabrik watches your GitHub Project board and drives Claude Code through a full software development pipeline โ Specify, Research, Plan, Implement, Review, Validate โ automatically. File an issue. Drag a card. Ship.
Or โ just want Claude to know about your Fabrik board? No binary install needed. Install the companion Claude Code plugin in three commands and start asking "what's on the board?", "why is #42 stuck?" right in your interactive session.
Quickstart
From zero to pipeline in minutes
Fabrik runs as a local CLI. You need Go 1.26+, Claude Code, and a GitHub token.
repo and project scopes.go install command. Then run fabrik init to scaffold stage configs into your project..fabrik/config.yaml with your project settings, add your token to .env, and run ./fabrik.# 1. Install go install github.com/handarbeit/fabrik@latest # 2. Initialize your project (pass your GitHub Project URL to skip manual config) fabrik init --user you https://github.com/orgs/your-org/projects/5 # Creates .fabrik/stages/, .fabrik/config.yaml # 3. Add your GitHub token echo 'FABRIK_TOKEN=ghp_...' >> .env echo '.env' >> .gitignore # 4. Run fabrik # Optional: yolo mode (auto-advance all stages) fabrik --yolo # Optional: self-upgrade from GitHub Releases at startup and when idle fabrik --auto-upgrade
How It Works
Issues in. Code out.
Each issue moves through board columns that map to pipeline stages. Fabrik polls the board, matches the issue's column to a stage config, spins up an isolated git worktree, and invokes Claude Code with the stage's prompt.
The Pipeline, Stage by Stage
What happens in each column
Every stage is a Claude Code invocation with its own prompt, tools, and rules โ driven by the issue's position on the board. Here's what each one does, what it produces, and how the engine moves work forward.
Specify
read-onlyTurns a rough idea into a crisp, buildable spec.
Specify reads the raw issue and works it into a clear specification, asking clarifying questions when the request is ambiguous. It runs read-only โ the worktree is stashed clean and no code is written.
- The only stage that rewrites the issue body itself, via
FABRIK_ISSUE_UPDATEmarkers. - Can pause with
FABRIK_BLOCKED_ON_INPUTto ask you a question, then resumes automatically the moment you comment. - Output is posted as a stage comment on the issue โ no PR exists yet.
Research
read-onlyMaps the codebase before a line is changed.
Research explores the repository, locates the files the change will touch, and pins down the scope and constraints. Like Specify it reads and greps but writes nothing.
- Its findings are saved to
.fabrik-context/stage-Research.mdand handed to every later stage as context. - Surfaces unknowns early, so Plan and Implement aren't guessing.
- Output is posted on the issue.
Plan
read-onlyDesigns the approach and breaks it into tasks.
Plan decides how the work will be done โ the approach, the sequence, the tasks โ and produces the contract that Implement builds against. Still read-only.
- Can declare child issues with
FABRIK_SPAWN_CHILDblocks; the engine creates them, linksblockedByedges, and runs them as a parallel formation. - Decomposition is recursive โ a child's own Plan can spawn grandchildren, with no depth limit.
- Output is posted on the issue.
Implement
writes codeWrites the code, the tests, and opens the PR.
Implement is the first stage to write files. It implements the plan, adds tests, and commits to the issue's branch โ with edits path-scoped to that issue's isolated worktree so nothing leaks across issues.
- Opens a draft PR with
Closes #N, linking the PR back to the issue. - Marks the PR ready on completion, which triggers external review bots.
- Commits frequently so progress survives an interrupted session; detailed output goes to the PR, a short summary to the issue.
Review
writes codeRebases, self-reviews, and resolves the PR.
Review rebases the branch onto its base, reviews its own diff, and fixes what it finds โ resolving PR review threads as it goes.
- The engine tracks the PR's resolved-thread count to detect real progress and grant extra turns when needed.
- The pending-reviewer gate waits for every requested reviewer, then re-invokes the stage to address their comments.
- Output is posted on the PR.
Validate
writes codeProves it works, then clears the PR to merge.
Validate runs the test suite and verifies the issue's requirements are actually met โ the last gate before merge.
- The CI gate blocks merge until checks pass, auto-fixing failing checks each cycle.
- With
fabrik:yolo, completion enables auto-merge; the PR merges once branch protection is satisfied. - Records the validated SHA, so a later force-push or external commit automatically re-enters Validate.
Features
Everything you need to automate your SDLC
Fabrik gives Claude Code the structure, context, and tooling to work reliably through a full software lifecycle โ with you in the loop at every step.
fabrik watch, Fabrik researched its own log
format, designed the per-issue monitoring command, and implemented the live log
streaming and CI check UI โ building the observatory it now uses to watch itself
build features. This page was written by Fabrik too.
The human's role is product manager, architect, and UX designer all in one: file issues, answer clarifying questions, drag cards, and occasionally comment to redirect the work. The factory does the rest.
Resources