Open-source software factory for Claude Code

Put the agents
in a loop.

Three skills turn rough ideas into reviewed pull requests—while keeping product decisions and every merge in human hands.

3 skills1 approval labelHumans merge
LIVE QUEUEOne issue. One PR.
SELF-PACED
SPECHIM-418
GATEagent-ready
BUILDPR #92
Scope ledger3 / 3
AC-1Observable outcome shipped
AC-2Error state verified
NG-1Existing behavior preserved
loop-approvedCI green · clean merge · exact SHA
HUMAN MERGE

The operating system

A loop with two human gates.

Automation handles the repeatable middle. People define what good looks like, release work into the queue, and decide what ships.

  1. 01

    Idea

    Start with a rough thought, not a polished ticket.

    Human
  2. 02

    Spec

    The agent researches the repo and removes ambiguity.

    /finn-spec
  3. 03HUMAN GATE

    Approve

    You apply agent-ready when the contract is right.

    Human gate
  4. 04

    Build

    One approved issue becomes one tested pull request.

    /finn-build
  5. 05

    Review

    The PR is checked against the issue and green CI.

    /finn-review
  6. 06HUMAN GATE

    Merge

    A person reads the evidence and makes the final call.

    Human

The three skills

Small prompts. Clear jobs.

Each skill owns one stage and has a hard stopping point. That is what makes the system legible—and safe to leave running.

01/finn-spec

Turn a fuzzy idea into a contract.

It reads the existing code before asking questions, then interviews you until two engineers would build the same observable behavior.

Reads
Your idea + the current repository
Produces
A Linear issue with AC-N, NG-N, files, tests, and verification steps
Stops
Before agent-ready. You approve the spec yourself.
02/finn-build

Build exactly what was approved.

It claims the next safe issue, protects unrelated work, implements only the acceptance criteria, runs the project checks, and opens a PR.

Reads
The highest-priority safe agent-ready issue
Produces
One branch, one verified PR, and a scope ledger
Stops
On ambiguity, blocked work, dirty files, or a human decision.
03/finn-review

Judge the PR against the promise.

It reviews the exact commit against the linked Linear issue, required GitHub checks, mergeability, defects, security, and scope drift.

Reads
The issue, full diff, changed files, CI, and current head SHA
Produces
One verdict and a loop-approved or escalation label
Stops
Before merge. Approval is evidence, never authorization.

Start here

Go from zero to a running queue.

Finn-loop installs into the repository where you want the factory. You need Claude Code, Linear, GitHub, and project CI.

1

Install the three skills

Open Claude Code in your target repository and paste the setup request. It checks your team, labels, permissions, default branch, and required checks.

Set up Finn-loop from https://github.com/finna/Finn-loop
Open the full installer prompt
2

Spec one real idea

Start with something useful but small. The spec agent reads the codebase first, then asks only the product decisions it cannot answer itself.

/finn-spec Add team invitations to settings
3

Approve the contract

Read the drafted Linear issue. When the acceptance criteria, non-goals, and verification steps are right, apply the one approval label.

LINEAR LABELagent-readyapplied by you
4

Start the loops

Run the builder and reviewer in separate Claude Code sessions. They self-pace, stop when their queues are empty, and leave every merge to you.

SESSION 1 · BUILDER
/loop /finn-build
SESSION 2 · REVIEWER
/loop /finn-review

Why it stays sane

The rules are the product.

The agents are capable. The factory works because it narrows their freedom at the moments where confidence can become expensive.

01

No invented work

If it is not in Linear, it does not exist. The queue—not chat history—is the source of truth.

02

Blocked means out

A blocked issue leaves the automated queue until a person answers the exact question and removes the label.

03

Scope cannot grow silently

A review comment cannot expand the issue. Acceptance criteria and non-goals change only in Linear.

04

CI is part of the verdict

No required checks means no automated approval. Red or pending checks never count as green.

05

One builder per team

The assignee is a cooperative lock. Run one builder loop per Linear team to avoid same-user races.

06

Humans merge

Every irreversible step stays with a person. Agents never merge and never enable auto-merge.

A normal day

Your job becomes judgment, not ticket babysitting.

Spend fifteen focused minutes on the places where your taste and context matter. Let the loops handle the repeatable work between those decisions.

  1. 05 min
    Approve good specs

    Release only the exact contracts you want built.

  2. 05 min
    Answer blocked questions

    Make the product decisions the agents refused to guess.

  3. 05 min
    Merge with evidence

    Read the verdict, checks, risk, and manual test steps.

Good questions

Before you leave it running.

Does Finn-loop merge code automatically?

No. The builder never merges or enables auto-merge. A loop-approved label gives you structured evidence for your own merge decision.

What happens when a spec is unclear?

The builder posts one concrete question, applies the blocked label, unassigns itself, and moves on. The issue returns only after a human answers and removes blocked.

Can I run multiple builders at once?

Use one builder loop per Linear team. Two sessions authenticated as the same Linear user cannot reliably lock each other. Separate teams and clean worktrees can operate independently.

Does Finn-loop provide tests or CI?

It runs the checks your project already defines and requires GitHub evidence before automated approval. Your repository still owns its test suite, build, security, and deployment checks.

Ready when you are

Build the queue. Keep the judgment.

Install Finn-loop MIT licensed · Open source