vat · multi‑repository workspace CLI
Period — Present
I built vat to develop many repositories at once from one parent folder. Git records each repository, and vat records what happened across them in one place. It also keeps the decisions and records that agents read while developing, each with its source and the date it was last checked.
Records changes and decisions with sources so the next task picks them up
- Repository list and per‑repository edit boundaries declared in one vat.yaml
- Batch sync that leaves local work alone and only fast‑forwards when safe
- Return points, check results and the commits verified together across repositories
- Decision records with source commit and check date, and stale records taken out of citation
- Claude Code and Codex agent instructions generated from one role definition, with drift checks
- Configuration and environment checks with lint and doctor
Which commits were verified together
- Problem
- When an API change spanned several repositories, each git log could not tell which commits had been verified together. Nothing recorded where to go back if something broke.
- Solution
- vat records a return commit per repository when a change starts and links check results to the exact commits they ran on. Git ancestry shows whether those commits reached the release branch. The verified combination and return points are found in a single change record.
Batch pulls that reported success
- Problem
- Looping git pull over repositories reported success even when one repository had stashed local work.
- Solution
- vat checks each repository's state before syncing and only runs safe fast‑forwards. Local changes, branch drift, remote mismatch and divergence are reported per repository.
Facts nobody had rechecked
- Problem
- A document's description of the current state kept being quoted as fact by people and agents long after anyone checked it.
- Solution
- Each record keeps its source repository, commit and check date. Records not rechecked within their window drop to a state that cannot be cited as evidence.