Loft 2.3: Yard is available
Yard is where you and your coding agents meet while they work. It keeps a log on every branch of what they planned, asked, decided, and did, and a page on your machine shows all of it live. It ships with open-source Loft 2.3, in the plugin for Claude Code and Codex.
What Yard does
Loft 2.3.0, released on November 5, 2026, is the first release with Yard Client, the part of Yard that keeps these records. Each branch gets a Yard Log. You write none of it: the yard skill tells your agent to open the log when work on a branch begins and to keep it as the work goes, and the plugin records what the agent does through its host's own tools.
- Stages
- One for each step of the work, with a goal that says what the step leaves done. Stages still to come are written as planned, so you see what's ahead.
- Questions, approvals, and plans
- What the agent needs from you, sent together for each decision point, each option with its reasoning.
- Decisions
- Each choice you make, with what follows from it.
- Tasks
- The bounded tasks of the plan, marked as they start and end, so the page can time them.
- Notes
- What each stage produced, with tables and diagrams where they help.
- Loft's reports
- The change to the specification, the findings of
loft check, the trace, and the publish, kept asloftprinted them.
The Yard page shows every Yard Log on your machine, whatever its repository. It runs on your own computer, at http://127.0.0.1:7411/, and listens on the loopback interface only.
- billingfeat/pause-limit1 waits on you
- billingfeat/resume-early
- webfix/invoice-totals
- Timeline
- Gantt chart
- Tokens
- DoneSpecify the limit
- ActiveBuild the refusal
- PlannedLink the trace
Should a refused pause name the three-month limit?
- Yes, name it Recommended
- No, refuse plainly
- In your own words
When you'd reach for it
Say Ada is limiting how long a customer can pause a subscription, on feat/pause-limit, while other branches run beside it.
Answer while the agent works
Her agent reaches a decision: should a refused pause name the limit? The question appears under what waits on you, which comes first on the page, across every branch. In Claude Code she can answer on the page or in Claude Code's own dialog, and the first answer counts. In Codex, questions and plans go to the page.
Approve before anything is committed
Each change to the specification comes to her before it is committed, drawn as a map of panels in which every changed box says how it changed. Then comes a plan of the build, naming the criteria each step meets, before any code is written. A rejection with a reason goes straight back to the agent, and the correction shows on the page as a fix.
Review how a branch was built
The Yard Log is committed with the work, under .yard/<branch>/, so Ada's reviewer reads it beside the diff: what was asked, what she answered, what each decision led to, and what loft reported. Every earlier version of a block is kept, and Loft's merge driver joins two copies of a Yard Log record by record.
Pick the work up later
The page marks what changed since your last visit, so Ada can come back to a branch and read only what's new. After /clear or a resume, the new session continues the one that ended, with its stages, tasks, and open questions. Claude Code and Codex can share a branch.
Run several agents at once
A main agent can hand tasks to subagents, which work inside its stage, and the page shows who holds each one. When an agent stops, its active tasks return to open for the stage's owner to review, so a task reads as done only once someone marks it done. Work follows its stage into another worktree, even of another repository.
See where the time and tokens went
The Gantt chart shows when each stage and task ran, several agents at once included. The Tokens view shows what each stage took, by agent and by model, where the host reports it.
Yard: the record of how a change was built follows one branch through all of this from start to finish.
Add Yard to a project
Add the plugin to your agent, then say "Set up Loft in this repository" in your product's repository:
# Claude Code
/plugin marketplace add Ask-Loft/loft
/plugin install loft@ask-loft
# Codex, then trust its hooks in /hooks
codex plugin marketplace add Ask-Loft/loft
codex plugin add loft@ask-loft
Yard works in Claude Code sessions signed in with a Team or Enterprise account, and in local Codex sessions. A team that keeps its plans off git adds .yard/ to .gitignore: the agent commits nothing of it, and the page works the same.
Publish as a team
2.3 also connects a specification to a Loft server, so a team publishes it from any clone and any branch, and the server gives the labels. When someone else has published first, the server refuses the publish and loft pull merges their change under yours. Hosted Loft is in early access: talk to us about connecting your team, and the publishing guide (github.com, opens in a new tab) has the details.
Also in 2.3
loft reviewgathers the context each requirement and criterion should be read against and judges nothing, so you or your agent can review a change with everything it touches in view.loft initandloft skill installend with a setup report: whether Loft's merge driver is registered, and whether theloftyour agent's hooks find is the version running.- The plugin marketplace those commands write is pinned to the running release, so a fresh machine installs the plugin of the same version.
- A Feature Group can hold Quality Attributes, for a quality its Features share. An older
loftrefuses a specification that uses them.
Upgrade
npm install --save-dev @ask-loft/loft@2.3.0
cargo install --locked loft-cli
Then run loft skill install, and its setup report says how to bring an installed plugin to the same version. The changelog (github.com, opens in a new tab) lists every change in 2.3.0. Pick a change you were about to start anyway, and run it on one branch with Yard.