What each release gave, what we work on now, and what comes next. Each item links to its GitHub issue. We do not give dates for work that is not released.
Each release is on the releases page. The newest release is v0.6.1, from 26 October 2026.
v0.6.1 comes from a review of the links, the citations and the commands. The stored format does not change.
v0.6.0 places more of the amendments in a law, and links more citations. The bill commands name the public law, and their counts are true. The stored format does not change.
bills and show-bill name the public law, show-bill accepts "Pub. L. 119-21", and the counts give the amendments that a link names (#297).diff does not report a change when the only difference is a format character, such as a soft hyphen (#363).v0.5.0 stores a court opinion as a case with its writings, pages and paragraphs. A citation runs from the paragraph that holds it to the subdivision that the court wrote. The readers also say when a question names a path, a bill, a work or a date that the dataset does not hold. The decisions are in ADR 0014.
words_to_data command for Linux, macOS and Windows on each release, so you do not need Rust. The crate is on crates.io.carry-reviews carries the reviews of citation links to a rebuilt dataset (#319).opinions lists the cases a dataset holds (#308). release-points lists the dates the mirror offers (#292). declare sets what a dataset must cover (#293).search counts and lists each occurrence, reads a window at an offset, and matches the forms the text holds, such as "U. S. C." and "§7" (#306, #307, #338).path and annotations show citations from both ends (#301), cases-citing reads subdivisions and has --json (#302), and a citation of a repealed section is flagged (#310).Map: #312
v0.4.0 changes Words to Data into a command, words_to_data, and a Rust library. A dataset holds the U.S. Code, the laws that change it, and court opinions in one SQLite file. Each link between an amendment and a change in the Code keeps its evidence.
words_to_data command, with 27 subcommands to build, grow, read and check a dataset.add-release-points adds Code release points and add-bills adds laws, with no rebuild.residue lists the amendments that no link names, with the stage and the reason each stopped.settle records a verdict on a link as its own link. The readers show how each link was decided.cases-citing tells which opinions cite a provision, and if the provision changed after the decision.v0.3.0 put release points of the U.S. Code and bills into one dataset, and added a client for the Congress.gov API.
v0.2.0 connected a change in the Code to the amendment that caused it.
SLEUTH is a legal research agent for Words to Data datasets. It is a package for the pi coding agent. It has one tool for each words_to_data subcommand that an agent may run; the commands that only a person runs have no tool. When no command answers a question, it records the gap. It writes to a dataset only when a person gives it permission.
Open requests from SLEUTH: sleuth-pi #1
People and agents wrote benchmark questions for SLEUTH. The work found places where a command gives output that is true but misleads an agent. We fix these first, because each fix shows in the benchmark at once. The fixes below are in v0.5.0 and v0.6.0. We add new fixes here when the benchmark finds more.
residue and diff see a section added inside a new parent (#336).cases-citing reports windows and changes, so that a true line cannot give a wrong answer (#340).diff does not report a change when the only difference is a soft hyphen (#363).A set of 157 questions in five groups: bills, case law, the Code, seed questions, and traps. Each question has a known answer from the dataset. We use it to measure SLEUTH and Words to Data after each change.
These items have no date. The order can change when the benchmark or a user question shows a different need.
Today a dataset links an opinion to the Code. It does not link one case to another case. Thus an agent cannot tell which held cases cite other held cases. The case-law map lists this as an open question: the citations come from CourtListener with no extra request, but the kind of link is not decided yet.
Map: #312
A dataset already holds members of Congress, sponsors and House votes. votes shows each roll call by party. No command names one member's vote yet. The command interfaces are a design decision that is still open.
members: list the members, with filters for state, party and chamber.show-bill.Issue: #104
When no command answers a question, SLEUTH reads the database with SQL and records a gap. Each gap is a command to add.
The mirror has 163 release points of the U.S. Code from 24 January 2020. A typical dataset holds only a few. Each release point is approximately 1 GB, so a title filter for add-release-points comes first. Then a dataset can hold the history of one title for a low cost. We add more bills and more release points when a user question needs them.
No issue yet. The mirror does not have the Code before 2020.
Some amendments are difficult to read by rule. These issues record the cases and the open questions.
Words to Data and SLEUTH are open source. You can work on an item on this page, or tell us about a new idea. Open an issue on GitHub.
Send us your questions and feedback, or tell us if you want to work with us.