๐Ÿญ Open Source ยท Apache-2.0

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.

๐Ÿ“‹ GitHub Project Board source of truth
โ†“ GraphQL poll
๐Ÿญ Fabrik Go CLI, runs locally
โ†“ stage config match
๐Ÿค– Claude Code invoked per stage, isolated worktree
โ†“ output
๐Ÿ’ฌ GitHub Comments + Labels + PRs durable state

From zero to pipeline in minutes

Fabrik runs as a local CLI. You need Go 1.26+, Claude Code, and a GitHub token.

1
Prerequisites
Go 1.26.1+, Claude Code CLI, and a GitHub token with repo and project scopes.
2
Install & initialize
One go install command. Then run fabrik init to scaffold stage configs into your project.
3
Configure & run
Edit .fabrik/config.yaml with your project settings, add your token to .env, and run ./fabrik.
4
File an issue, drag a card
Add an issue to your GitHub Project board. Drag it to the first stage column. Watch the factory run.
terminal
# 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

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.

Fabrik TUI showing active pipeline jobs
The Fabrik TUI Control Panel
Active jobs, history, cost tracking โ€” live in your terminal
GitHub Project Board with Fabrik pipeline stages
GitHub Project Board in Action
Drag issues across columns to control the pipeline; comment to steer Claude

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.

01

Specify

read-only

Turns 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_UPDATE markers.
  • Can pause with FABRIK_BLOCKED_ON_INPUT to 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.
Pipeline overview in the State Machine spec โ†’
02

Research

read-only

Maps 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.md and handed to every later stage as context.
  • Surfaces unknowns early, so Plan and Implement aren't guessing.
  • Output is posted on the issue.
How context files flow between stages โ†’
03

Plan

read-only

Designs 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_CHILD blocks; the engine creates them, links blockedBy edges, 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.
Sub-issue decomposition โ†’
04

Implement

writes code

Writes 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.
PR lifecycle integration โ†’
05

Review

writes code

Rebases, 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.
Pending reviewer gate โ†’
06

Validate

writes code

Proves 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.
CI gate and CI-fix reinvoke โ†’

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.

๐Ÿ“‹
GitHub-Native Pipeline
Board columns define stages and labels define state.
๐ŸŒฟ
Isolated Git Worktrees
Every issue gets a dedicated branch and worktree with zero cross-contamination. Edit and Write tool calls are path-scoped to the issue's worktree; cross-repo ref changes are detectable via the opt-in Layer 2 audit (worktree_boundary_audit: true).
๐Ÿ’ฌ
Comment-Driven Steering
Comment on any issue mid-stage to redirect the work in progress.
โšก
Yolo Mode & Auto-Merge
Auto-advances through every stage and merges the PR on Validate completion.
๐Ÿ”ง
Configurable Stages
Customize each stage's prompt, model, tools, and turn budget in YAML.
๐Ÿ‘ฅ
Multi-User Safe
Multiple Fabrik instances share one project board without conflicts.
โœ…
Startup Board Validation
Stage configs are validated against board columns on every startup.
๐Ÿ”„
Self-Upgrade
Detects and installs the latest release automatically at startup and when idle.
๐Ÿ”€
PR Lifecycle Management
Draft PR created at Implement and marked ready to merge at Validate.
๐Ÿ–ฅ๏ธ
Terminal UI
Live dashboard shows active jobs, stage progress, token costs, and history.
๐Ÿ—‚๏ธ
Multi-Repo Support
One Fabrik instance manages issues across every repo on the board.
๐Ÿงฉ
Plugin & Skills
Inject custom methodology per stage with plain markdown skill files.
๐Ÿ”—
Formations
Chain issues with GitHub's blocked-by relationships for automatic parallel execution.
๐ŸŒฑ
Sub-Issue Decomposition
Plan declares sub-issues to spawn; the engine creates them, links blockedBy edges, and the children run as a formation.
๐Ÿ‘๏ธ
Pending Reviewer Gate
Waits for all requested PR reviewers then re-invokes the stage to address comments.
โœ…
CI Gate
Blocks merge until CI passes and auto-fixes failing checks each cycle.
๐Ÿ””
Awaiting Input Notifications
Mentions the configured operator via @mention comment for mobile push when a stage needs user input.
๐Ÿ”ƒ
In-Place Restart
SIGHUP drains in-flight runs and re-execs the binary in place โ€” pick up a new build without terminal disruption.
๐Ÿš€
Big-Board Efficiency
Probe-driven polling cuts per-poll GraphQL cost ~5โ€“10ร— on large boards; cold-start bootstrap seeds Done items from probe data, cutting startup cost ~80โ€“90% โ€” making two Fabrik instances on a single token budget viable.
โšก
Webhook Mode
Optional GitHub event stream collapses event latency from ~30 s to near-zero and slashes GraphQL traffic โ€” no public endpoint, no ngrok, no infra. Polling stays on as a safety net.
๐Ÿ”
The Self-Evolving Factory
Fabrik is built with Fabrik
Issues filed against this repository go through the same Specify โ†’ Research โ†’ Plan โ†’ Implement โ†’ Review โ†’ Validate pipeline that Fabrik orchestrates. When we filed an issue to add 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.