Skip to content

superdetermine is a version control system, keeping code in superposition.

superdetermine

Every green comes with a warrant

When one agent writes both the code and its check, a pass only shows the two agree.

The check was written byno model, 3 ms

  • Independencesame authorno
  • Relevanceevery changed file5 of 5
  • Discriminationmeasured when the check changesunknown

Every state gets a grade

sdt captures your worktree as you work and grades each state, so sdt green can return the last one that passed.

Nothing is ever unsaved

Capture starts when you run sdt init and keeps going from then on.

  • Runs on its own on macOS, and through sdt watch on Linux
  • There is no staging area and no stash to manage
  • sdt undo reverses any operation you run

git records what changed,
but nothing records what worked.

sdt is a separate version control system that grades every state as it happens, so you never search for a break.

gitgit bisectsdtsdt green

History moves between git and sdt without loss

.git.sdt
sdt importsdt exportsync.git

A failing state never leaves your machine

  • greenorigin
  • redstays local
sdt push --require-greensdt attest
Instant worktrees
Binaries without LFS
Reversible rewrites
Sealed secrets
Shared verdicts
Blame that shows the prompt

Frequently asked questions

Here is what to know before you run sdt init.

What is a moment, and how is it different from a change?

A moment is a content-addressed state of your working tree that sdt captures on its own, with a stable id and a timestamp. It is not a commit and never shows up in sdt log. A change is something you create and name yourself with sdt save.

Does sdt replace git?

Yes, sdt is its own version control system, with its own object store, history model and commands. Its git interop works in both directions without loss, so full history, branches and tags move either way, and sdt export <dir> writes a plain git repo whenever you want one. That interop is what makes switching reversible, rather than sdt being git underneath.

Does automatic capture work on Linux?

Automatic capture is macOS only, where launchd starts it after a file changes and it stops again once it is done. On Linux you run sdt watch in a terminal instead, and it does the same work for as long as it keeps running.

Will grading slow down my machine or my terminal?

Grading does nothing until you tell it which command to run with sdt config checks.full "<command>". From then on, every check runs inside a throwaway copy-on-write clone, so it never touches your worktree and never makes your terminal wait.

Why is a passing check not enough on its own?

When an agent writes both the code and the test, a pass only proves that the code agrees with its own test. That is why sdt attaches a warrant to every verdict, which rates it on independence, relevance and discrimination. Relevance comes from file access times and is a conservative over-approximation on file systems other than APFS, while discrimination is only measured when the check itself changed and reads as unknown otherwise.

What does sdt record that git does not?

git history is a sequence of commits, and a commit is too coarse to tell you which state broke something, which is why bisect has to go searching after a failure. sdt records every captured state with a graded verdict attached, so sdt green can return the last one that passed. The difference is in what each system records, rather than in how quickly it can search.

Is my code sent anywhere?

No, because there is no account, no server and no telemetry. Sharing happens peer to peer, and the optional relay is one you run yourself, which cannot read anything that passes through it.

What happens to secrets in a captured file?

sdt seal encrypts a file in place and records it in .sdtsealed, the manifest of what is sealed and who can read it, so only the ciphertext is ever captured or shared. Anyone holding a key can run sdt unseal to write the plaintext back out.

How do I install sdt, and is it stable?

Download a binary from GitHub Releases, and run sdt update whenever you want to update it in place. superdetermine is licensed under Apache-2.0 and lives at plyght/superdetermine. It is still early and opinionated, so its interfaces may change.

Download for macOS

sdt is free and open source, and if you already have it, sdt update brings it up to date.