Green, with a warrant
An agent can write both the code and its check.
The check was written by
- Independencesame authorno
- Relevanceevery changed file5 of 5
- Discriminationonly when the check changesunknown
An agent can write both the code and its check.
The check was written by
sdt captures your worktree continuously and grades it, so sdt green returns the last state that passed.
Capture starts at sdt init and never stops.
sdt watch on Linuxsdt undosdt is a separate version control system, and it grades every state, so nothing is left to search.
What to know before you run sdt init.
A moment is a content-addressed state of your working tree, captured on its own with a stable id and a timestamp. It is not a commit and never appears in sdt log. A change is the thing you name yourself with sdt save.
Yes. sdt is its own version control system, with its own object store, its own history model, and its own commands. The git interop is bidirectional and lossless, so full history, branches, and tags move both ways and sdt export <dir> writes a plain git repo whenever you want one. Adoption is reversible because of that interop, not because sdt is git underneath.
Automatic capture is macOS only, started by launchd after a file changes and stopping again when it is done. On Linux you run sdt watch in a terminal, which does the same work for as long as it runs.
Nothing until you say what to run with sdt config checks.full "<command>". After that each check runs inside a throwaway copy-on-write clone, so your worktree is never touched and your terminal never waits.
An agent can write both the code and the test, in which case a green only proves it agrees with itself. So sdt labels every verdict with a warrant on three axes: independence, relevance, and discrimination. Relevance comes from file access times and is a conservative over-approximation off APFS, and discrimination is measured only when the check itself changed, otherwise reading unknown.
git history is a sequence of commits, and a commit is too coarse a unit to answer which state broke this, which is why bisect has to go searching after a failure. sdt records every captured state with a graded verdict attached, so sdt green returns the last one that passed. Two history models, not a faster search.
No. There is no account, no server, and no telemetry. Sharing is peer to peer, and the optional relay is one you run yourself, which cannot read what passes through it.
sdt seal encrypts a file in place and records it in .sdtsealed, the manifest of what is sealed and who can read it. Only the ciphertext is captured and shared. sdt unseal writes the plaintext back out for anyone holding a key.
Take a binary from GitHub Releases, then run sdt update to update in place. superdetermine is Apache-2.0 and lives at plyght/superdetermine. It is early and opinionated, and interfaces may still change.
Free and open source. Already have it? Run sdt update.