Sagittarius: the essentials Full deck By Ty Davis
1 of 10 · The problem

The wrong-spec problem

An agent can build exactly what it was told, and still build the wrong thing.

An agent is an AI that does the work, such as Claude Code. A spec is what it builds from: the request, the ticket, and the tests.

Wrong

The spec does not match how things really are.

Incomplete

The spec leaves out a case that matters.

Read two ways

The human and the agent read the same words and see different things.

The human is the source of intent. The human is not always the source of clarity.

Full deck: the wrong-spec problem

2 of 10 · The problem

"Make the button purple"

WHAT THE HUMAN MEANT WHAT THE AGENT BUILT WHAT THE TEST CHECKED /checkout/account/home One button /checkout/account/home Every primary button /checkout Submit is purple All checks pass. Nothing fails, so nobody notices. "Not what I meant."
The agent built what it understood. The test checked what the agent understood. Only the human saw the gap, and only at the end.

The fix costs one line, if it comes early. The agent says its claim back with one example, and the human answers: No, only that button.

Full deck: the example

3 of 10 · The idea

Alignment

The human, the agent, and the formal records agree on what to build and on when it is done.

restates, asks, delivers evidence it can read queries, checks, proves the artifacts can disagree with both The human owns the intent and the final product The agent owns the build Formal artifacts KB, tests, Lean impartial
No one grades their own work. The human verifies the result, not the test results.

Full deck: the philosophy, the roles, and loud versus quiet

4 of 10 · The idea

Tests and proofs

The real claim behind "add discount codes": no discount code takes a price below the floor, for every code and every cart.

EVERY CART AND CODE ● codes the tests try: all pass ● an untried combination: below the floor A PROOF ∀ covers every case of the model, checked by Lean
A test shows a claim for the cases that it tries. A proof shows it for all cases of the model.

A test written from a wrong spec passes.

So ask early whether the spec matches what the human means. When a claim must hold for every case, prove it in Lean.

Full deck: tests and proofs

5 of 10 · The story

The idea held; the machinery changed

The author, Ty, reached this process in 2026 through three eras. The process kept changing. The delivery did not.

2026 JanFebMarAprMay JunJulAugSepOct Processchanged Claude Code Orbitalplugins By handlong prompts AIDLC Sagittarius, live 21 Oct Leannever dropped Deliveryconstant Client work kept shipping
The philosophy held the whole way, so the quality of the client work held. What changed was how much of the method a tool ran.

Full deck: the timeline, the five chapters, and the eras

6 of 10 · The story

Why signals, not tiers

The AIDLC, the era before, sorted work into tiers by difficulty. The middle tiers drifted to the ends, and what is hard for a model changes with every model. One thing does not change:

The human what they want context and taste the niche cases a mind not made up yet The model data and compute keep growing explained in words MISALIGNMENT lives on this bridge Sagittarius works here
People change their minds, and often don't know what they want until they see it. Better models will guess better, but not every time, and least of all on the niche asks.

"I'm making the bet that even with ASI, humans will still need to explain what they want."

Full deck: why the tiers had to go

7 of 10 · The tool

What it is

System prompt SAGITTARIUS.md one plain-text file appended to each session The agent any harness; Claude Code today orbit-kb schema, lint, queries, report SWI-Prolog answers each query Lean 4 checks proofs, burns only The human asks, answers, verifies A KB folder kb.pl, runs/ logs plain words reads, writes
The prompt tells the agent how to work. orbit-kb keeps the records honest: every fact is declared, typed, and checked.
The prompt
One plain-text file, appended to the agent's system prompt. It says how to work: start light, shift up on a signal.
orbit-kb
A command-line tool that keeps the knowledge base (KB): every fact declared, typed, and checked.
Prolog
SWI-Prolog 9 or later: answers the KB's questions.
Lean 4
Only for proofs. Install with elan. Optional helpers: sharlean (shared libraries such as Mathlib) and lean-lsp-mcp.

Full deck: what it is, and why Lean and Prolog

8 of 10 · The tool

How to use it

behind the scenes: the agent runs orbit-kb on a shift up Install Prolog, orbit-kb; Lean Load the prompt SAGITTARIUS.md as system prompt Ask in your own words Answer at most 3 a round, defaults marked Verify the result, not the tests ONCE EVERY REQUEST
Two setup steps, then three steps for each request. The human's part is to ask, answer, and verify.

You rarely type orbit-kb yourself. Most requests stay on the light path: one check, no KB.

Install on Fedora

On another system, use its package manager for SWI-Prolog 9 or later, then follow the same steps.

$ sudo dnf install swi-prolog-nox
$ orbit-kb doctor

For orbit-kb prove, install Lean 4 and Lake with elan. A Lean project that needs Mathlib builds it slowly. If you have several such projects, you can share one built copy of the libraries between them. In the sagittarius repo, ./install.py puts orbit-kb on the PATH and its rules in ~/.local/share/orbit-kb.

Full deck: how to use it, with the commands the agent runs

9 of 10 · In practice

The gradient

No tier is picked up front. Each signal adds one rung, and each rung comes off when its cause is resolved.

LIGHTRIGOROUS shift up on a signal Answer directlyor tiny discovery a question, or a tiny report Light pathone check any change request + KBmemory, referee questions pile up, or a handoff + Lapsback to claims a divergence + Lean burnproves the model universal claim, or contested twice Full discoverymodels, in a KB a claim needs a model purple button discount codes: each trigger fires in turn leaning back: a rung stops when its cause is resolved. A KB stays; a burn stays until a proof or a waiver.
Fixed tiers had no middle. Here each trigger adds only its own rung, in any order: a universal claim can burn with no questions asked.

"This pattern offers, when it really needs it, a level of rigor that can guarantee correctness."

A proof holds for every case of the Lean model. The checks tie the model to the code.

The lightest path, step by step · The most rigorous path

10 of 10 · In practice

What you get back

Six fields, in short plain sentences. An empty field says "none", so you see that the agent looked.

Delivered:    Submit on /checkout is purple.
Claims:       Submit on /checkout renders #6B3FA0: fulfilled (check red, then green).
Guesses:      Only this button, not every primary button.
Disclosures:  none
Not checked:  dark mode
To land:      none; merged.
Screenshot attached. No KB.

Go deeper

Without JavaScript, scroll.

Arrows, PageUp and PageDown, Home, End to move. F for full screen. D for details.