Docket tracks the decisions a project makes across sessions, and checks what breaks when one of them changes.
A record is one of three kinds. A claim is a statement the work depends on. A decision is a choice, with the reason for it. A question is something still open.
Records are only ever added. Nothing is changed or deleted. A later record can replace an earlier one, and the earlier one stays in the file, so you can read back how a choice changed.
Records link to each other. A record lists the ones it rests on, and a decision lists the ones it depends on. Mark a claim rejected, and every decision that depends on it is flagged as blocked.
A coding agent reads the current records before it works, so what you already settled is there from the start.
The records are one file in your project, shared through Git.
Read Why Docket? for the problems it addresses and when a simpler set of notes may be enough.
| Set up Docket | Paste a prompt and let your agent do it, or install it yourself. | installation.md |
| Your first decision | Record a choice in a real project and read it back. | quickstart.md |
| Command reference | Look up a command or a flag. | commands.md |
You can use Docket from a terminal or ask your agent to record things for you. Once it is set up:
| I want to… | Read |
|---|---|
| Save a choice or leave a question for later | Recording decisions |
| Find an earlier decision | Reading your ledger |
| Use Docket in an agent session | Working with your agent |
| Start from years of existing design notes | Constructing on existing projects |
| Share a ledger with my team | Sharing and maintenance |
The file holding the records is called a ledger. The rest of this documentation uses that name. It holds three kinds of record:
| Record | What it keeps | Example |
|---|---|---|
| Claim | A statement you want to assess or rely on | “The service already runs Postgres.” |
| Decision | A choice and the reason for it | “Use Postgres for billing because we already operate it.” |
| Question | Something you still need to find out | “Which database driver should we use?” |
You can connect a decision to the claims behind it or to a question it answers. When your choice changes, add a replacement. The earlier record remains available so you can follow how the decision changed.
Configured agent integrations load a briefing from the ledger. It gives the agent relevant records and instructions for finding more.
You can also ask for context about a particular task:
docket context --query "billing database"Docket supplies the recorded context. You and your agent still need to check whether the evidence is current and whether a choice fits the work in front of you.
The ledger reference explains states, relationships, and how Docket chooses records for a briefing.
The Design and research section explores the ideas behind Docket and proposals for future work. You can use the everyday guides without reading it.