local · fair source  

Review before the one-way door

galley

The review a branch gets before it goes anywhere one-way.

Before force-pushing an in-review PR, opening a PR on a repo you don't own, or merging a branch an agent wrote, galley builds a single reviewable page out of what is actually on the branch right now — and collects your objections on it before anything goes out. Every figure is re-derived from a command at the current HEAD. Nothing outward happens from the tool.

what it's for

Some pushes you don't get back.

A force-push replaces history someone may be reading. A first PR to an upstream repo is a first impression. An agent-written branch merges with whatever nobody caught. These are one-way doors — and the natural moment to look hard at a branch is the moment before it goes through one. galley exists for exactly that moment. It found seven real problems across two rounds on the pull request it was built for — including a doc header asserting the opposite of the code below it — and the PR merged with zero further review comments.

agent-written branches

An agent produced a large diff and is ready to merge. galley gives the branch a real review surface first: the diff, the claims, and the coverage in one page, with your objections collected before the merge instead of after the incident.

the final audit pass

Assembling the page re-derives every number from the current HEAD — base, commits, files, patch coverage. Nothing comes from memory or a stale description, so a PR body describing a design the diff no longer contains gets caught here.

history rewrites, flagged

galley facts answers "what am I about to push?" — and says plainly when the push would rewrite remote history, before you learn it from a teammate.

coverage, as codecov sees it

galley coverage computes patch coverage the way the bot will: added lines ∩ never-executed lines. It exits non-zero when any added line went unrun, so it composes into CI and agent loops as a plain check.

how it works

A live page both of you hold at once.

The review page is a live document, not a report. The reviewer reads and objects in the browser; the person — or agent — answering holds the same document from the command line. Replies land on the reviewer's screen as they're written.

live page The page is a CRDT document. The browser is a peer — Go compiled to WebAssembly speaking the sync protocol — so there is no refresh, no polling, and no divergence between what the reviewer sees and what the CLI holds.
agent in the loop An agent holds the same document in-process. reply and resolve from the CLI appear on the reviewer's page live — a review conversation between a human and an agent, on the artifact itself.
durable record A JSON file beside the page is the durable, git-friendly projection, written after every change and replayed at startup. The review survives the server; the conversation is diffable.
wake the agent --on-comment 'muster nudge galley' runs a command when comments settle — debounced on a quiet period and fingerprinted on content, so typing never wakes anyone mid-sentence, and an edit you undo wakes nobody at all.
no npm There is no bundler and no vendored third-party JavaScript — the only JS is Go's own wasm_exec.js and a thin DOM shim. One static binary serves the whole thing.

Every command speaks --json, so a person, CI, or an agent can drive the same review without any of them reimplementing the others.

the cli

Every capability is a command.

galley facts What am I about to push? Base, commits, files, +/−, dirty tree — and whether pushing would rewrite remote history. Free forever.
galley coverage Patch coverage as codecov computes it; exits non-zero when any added line went unrun. Free forever.
galley serve <page> Serve a review page as a live document and collect comments beside it.
galley comments · reply · resolve Read the conversation, answer a thread — live on the reviewer's screen when a server is up — and mark it settled.
galley edit <doc.md> The same live-document machinery pointed at prose: serve a markdown document as a live editor, with suggest, accept, and reject for propose-and-decide editing. PR descriptions and design docs get the same review as the code.

licensing

The audit is free. The review surface is the product.

galley is Fair Core software: the source is public, and each release becomes Apache-2.0 two years after it ships.

free forever

facts and coverage — the audit commands — free for everyone, no key, no trial clock.

14-day trial

Everything else — the live review and edit surfaces — fully functional for 14 days, starting the first time you serve a page.

one-time license

A personal license with 12 months of updates. Every release from inside your window keeps working forever — no subscription, no phone-home, keys verify offline.

Activation is one command: galley license activate <key>. The binary never talks to a server — a key is a signed token your machine verifies itself.

setup

One static binary.

Releases — with a Homebrew tap, signed macOS builds, and the source opening up under Fair Core — land with the first public release. The 14-day trial in every build is full-featured.

# macOS / Linux, arm64 & amd64 — coming with 1.0
$ brew install schuettc/tap/galley
$ galley facts

Want a key or a build before then? court@subaud.io.