Discuss one product area

Update

Loft 2.0: The specification format and command line are open source

Loft 2.0 releases the Loft Specification Format and the loft command line under the Apache 2.0 license. A person or a small team can keep a product contract in their own git repository, write it with a coding agent, and check it without a server.

By Loft Published

Loft 2.0 is the first public release of the Loft Specification Format and its reference implementation, the loft command line. Both are open source under the Apache 2.0 license, and the code is on GitHub (github.com) (opens in a new tab). Version 2.0.0 shipped on October 13, 2026, and 2.0.4 followed on October 14.

A product contract in your own repository

The format keeps a product contract, the structured specification of what a product should do and of the decisions and constraints that govern it, as YAML files in a spec/ directory beside the code. It holds Products, Features, Requirements with their acceptance criteria, Components, Constraints, Quality Attributes, and architecture decisions. Nothing runs on a server: one person or a small team works on the contract with git, in the same branches and reviews as the code.

The open release is separate from the Loft server described in earlier updates. loft import v1 converts that server's exports into the open format.

Written with a coding agent

loft init creates an empty specification and installs the loft-spec skill for Claude Code and Codex. The agent asks about the product, proposes an outline for you to agree, writes the specification, and runs loft check until it passes. You read the change and decide whether it says what you mean. The skill is also available as a plugin for both hosts.

Ratified versions and merges

When the people responsible have ratified a version, loft publish gives each new item a stable label and pins that version by its content hash. In CI, loft verify confirms that the files still match the pinned version, so implementation starts from the version people ratified. Git merges the specification item by item through a merge driver that loft installs, and it records a typed conflict where two branches change the same field.

Reconciliation against tests

Reconciliation is the check of an implementation and its evidence against the ratified contract. Release 2.0.4 adds a local form of it, loft reconcile, which reads a trace file that links each acceptance criterion to the tests that verify it. The command reports a criterion no test is linked to, a link nobody has reviewed, a link reviewed before its criterion last changed, and a test that cannot be found in its file. It runs no tests, and the decision to accept the implementation stays with the people who own it.

In use at Loft

The format and the command line are specified in the format itself, in the same public repository. On October 14 the specification of askloft.ai moved into it with loft import v1, and each of the site's acceptance criteria is now linked to its tests. Both uses are internal.

Install

The npm package carries prebuilt binaries for macOS, Linux, and Windows; crates.io builds from source.

npm install --save-dev @ask-loft/loft
cargo install --locked loft-cli

Then run loft init in the product's git repository. The README (github.com) (opens in a new tab) covers the quick start, every command, and their JSON output.

Next step