Ana içeriğe geç

Glossary

Terms this project uses in a specific sense. Where a term has a general meaning in software and a narrower one here, the narrower one is what is written down.

The parts of the system

Hub: the long-running web service (index.ts, src/app.ts) that holds all the records: plans, lanes, messages, approvals, notifications. It decides nothing on its own; it answers questions and stores answers. Runs on 127.0.0.1:8787.

Conductor: the process that does the work the hub only records (conductor.ts, src/conductor.ts). It asks the hub which lanes may start, starts them, and reports what happened. It exists so work continues while no Claude Code session is open.

Plan: one approved piece of work, large enough to be split into several lanes. Has an id, a title, and one or more revisions.

Plan revision: a numbered version of a plan's content. Changing material scope creates a new revision rather than editing the old one, so what was approved stays readable. Only the newest revision's lanes may run.

Lane: one bounded task inside a plan, given to one worker. It owns a set of file paths nobody else may touch, a git branch (lane/<lane_id>), a worktree, and usually a database of its own.

Worker: the agent that executes a lane. Which agent is a named preset (src/agent.ts): LANEWARD_AGENT=codex runs Codex through codex exec in a sandbox, LANEWARD_AGENT=claude runs Claude Code. There is no default; an operator declares one.

Brief: the written instruction a lane's worker receives. It is the entire contract: the worker cannot see the conversation that produced it.

Git and filesystem terms as used here

Worktree: a second working directory attached to the same repository, on a different branch. Two lanes can edit the same project at the same time without sharing files. Created and removed with git worktree.

Slug: an identifier safe to use as a directory name and a branch name: letters, digits, dot, underscore, dash, starting with a letter or digit, at most 64 characters. Enforced in src/slug.ts, because a / or a .. in an id reaches outside the directory it was supposed to stay in.

Teardown: the explicit command that removes what a lane created: its worktree, its branch, its database (bun run teardown <lane-id>). Nothing runs it automatically, so nothing is deleted at a moment nobody is watching.

Integration and verification

Integration candidate: the merged, installed, runnable tree built from all the lanes of a plan revision, on branch integration/<plan_id>-r<revision>. It is the thing that gets checked before anything reaches the real branch. Built by bun run build-candidate <plan_id>.

Base commit: the commit the candidate branch was forked from. The change being reviewed is the difference between the base commit and the candidate.

Clean run: installing the candidate from scratch on a fresh database and running it, the way a new machine would. Catches what a passing test suite cannot: things that only break on first install or first start.

Reader: the review layer that reads the change rather than running it. An agent lane whose declared subject is the test diff: did this change weaken what the tests prove? It advises and never blocks, because it does not answer the same question the same way twice.

Shadow mode: a check that runs and records but stops nothing. How a new check earns trust before it is given the power to block.

Finding: one thing a check reported, kept as its own record with a lifecycle: open, accepted, rejected, deferred. rejected exists so a false alarm that was already investigated does not come back forever.

Evidence: the recorded output of the checks that ran, stored against the lane so a returning session finds results rather than unstarted work.

Gate: the hub's answer to "may this lane start right now?". Checks plan approval, dependencies, path conflicts, and the active lane limit.

Preset: a named agent configuration, selected with LANEWARD_AGENT. It holds the command Laneward runs to start that agent, the command for its read-only mode, and which model each tier resolves to. codex and claude ship. There is no default: an install with no preset and no raw command declared refuses to start.

Model tier: fast, balanced or deep. A lane names a tier rather than a model, and the preset decides which model that tier means, so the same lane can run on a different model just by changing preset or override. A tier is a slot the operator fills, not a promise about any particular model.

Git boundary: the rule that Laneward owns Git and an agent never changes it (D-008). Enforced rather than trusted: a shim ahead of the real git on the agent's PATH refuses anything it cannot identify as read-only, and records each refusal. A refused read is reported but does not fail the lane; a refused mutation does.

Process terms

D-0NN: a numbered decision in docs/architecture/workflow-v1/01-decisions.md. The numbering is not sequential in file order, so the next free number has to be found by reading every heading.

Grilling: a round of interview questions used to settle an open decision before any code is written, each question carrying a recommended answer and the evidence behind it.

Escaped defect: a real fault that reached the operator despite everything that ran. The ledger of these is what the verification layer is measured against.