The continuity ceiling
Long-running projects outlive every chat, context window, model, and human memory. Each new agent spends time reconstructing the project, misses a constraint, or repeats a decision that was already made.
Models have context. Agents have runtimes. Companies need state. Superself keeps what your company intends, has decided, is doing, and can prove — readable by any agent, any session, any tool.
~/payments $ self context
# payments
Card payments for merchants
- [goal] Payments a merchant can trust with real money
- [objective] Card payments go live for the first ten merchants (target 2026-09-30)
## Work in progress
- w-gzzab The payment flow passes its end-to-end proof [held by this session]
- 2 more open work items; run `self work --project 'payments'`
## Deadlines
- 2026-09-30: [objective] Card payments go live for the first ten merchants
## Index
- [decision] Store card data with the PSP, never in our database — PCI scope is the largest cost driver
- [decision] Retries are idempotent by request key — A double charge is worse than a failed charge
One command. A session that has never seen this project now knows what it is for, what is open, and what was already decided.
One limits what a session can carry. The other limits how much you can hand off.
Long-running projects outlive every chat, context window, model, and human memory. Each new agent spends time reconstructing the project, misses a constraint, or repeats a decision that was already made.
Execution stops scaling when one person must decompose every request, watch every process, approve every step, and verify every completion. The human becomes the scheduler, message bus, and retry loop.
The two reinforce each other. Execution cannot be delegated safely without durable context, and durable context has limited value if a person still has to drive every action.
Work is not a list of tickets to read. Each unit carries a required outcome, who holds it right now, and — when it is stuck — what it is stuck on and why.
A second session picks up the same graph without asking anyone what to do next.
~/payments $ self work
w-gzzab active The payment flow passes its end-to-end proof [held by this session]
w-qmyk4 next Refunds reconcile against the PSP ledger daily
w-wrn22 blocked (on dependency) Webhook replay cannot double-credit an account
An agent reporting success is not the same as work being finished. Superself refuses the claim until it carries a commit, an artifact, or a statement of what verifiably happened.
This is the rule the engine enforces on the write path, and it is why a closed unit still means something months later.
~/payments $ self work done w-gzzab
error: w-gzzab has no evidence for done — attach a report first (`self report
w-gzzab "<summary>" --evidence <commit>` or `--artifact <path>`), or state what
verifiably happened with `self work done w-gzzab --report "<what happened>"`
~/payments $ self report w-gzzab "End-to-end proof green on CI" --evidence e59c52a
report.added recorded [01kzbh2zb286ndckqkapnph26y]
~/payments $ self work done w-gzzab
entity.done recorded [01kzbh30m9jc30p9qw4rczr5yb]
Records are immutable once confirmed. Correcting one does not edit it — a new record supersedes it and carries the lineage, so the reason a direction changed survives.
And an agent cannot quietly retire a confirmed decision. The verb refuses, prints the record it would have replaced, and hands the command back to a person.
~/payments $ self decide "… by merchant order id" --supersedes 01kzbh2p2a…
error: this retires a confirmed decision, and nothing was recorded — retiring a
record is a person's call, and this process has no terminal to make it at
01kzbh2p2ahe7jyk6qjrvhzqnp decision confirmed 2026-08-06T12:34:25.994Z (just now)
Retries are idempotent by request key
why: A double charge is worse than a failed charge
referenced by: nothing
a person runs this in their own terminal:
self decide "Retries are idempotent by merchant order id"
--supersedes 01kzbh2p2ahe7jyk6qjrvhzqnp
State is plain text: typed events in an append-only JSONL log inside a git repository your machine owns. Grep-able, diff-able, blame-able, portable.
Search answers from the live records themselves, and every registered project answers at once — the current one's rows first.
~/payments $ self search "reconcil" --all
payments work w-qmyk4 (open) [work] Refunds reconcile against the
PSP ledger daily
merchant-app decision 01kzbh2xxp… [decision] The dashboard reads payments state,
never writes it — One writer keeps reconciliation ho…
Instruction files are the right place for stable operating rules. self connect renders a managed block into them that teaches any terminal agent the protocol and this project's current conventions.
What an instruction file cannot hold is the state that changes every session. That part stays in the log, and self context derives it on demand.
~/payments $ self connect
managed block rendered into AGENTS.md, CLAUDE.md — commit them so every agent tool
loads it
CLAUDE.md
<!-- superself:begin v0.5.1 -->
## Project state (superself)
- Session start: run `self context` and treat its output as current truth.
…
- Done is a judgment, and the claim must carry evidence: `self work done <id>`
closes the unit only when a report carries a commit or an artifact, or the
done itself states one …
The workspace is a git repository your machine owns, kept outside the code it describes. Register each project from its own directory; state never lands in the product repo.
Requires Node.js 22.12 or newer.
$ npm install -g superself
~/self-workspace $ self init
workspace initialized at ~/self-workspace/.superself (views in "en")
~/payments $ self project init
project "payments" registered
managed block rendered into AGENTS.md, CLAUDE.md — commit them so every agent tool
loads it
Every terminal above is real output from the shipped CLI. The complete runtime loop is the direction of the project, not a capability this release claims to have finished.
self context compiled for the next action instead of browsedSuperself is an early alpha. Expect breaking changes while the event schema and verbs settle. The roadmap draws the boundary between what the engine enforces today and what is still a target.