Receipts
A Receipt is the line-numbered proposal for a change. PhiCo proposes Receipts; you accept them. Nothing publishes without an accepted Receipt, and every accepted one becomes a snapshot you can diff against or roll back to.
Think of the Receipt as a typed PR description: it tells you exactly what will change, you sign off, and only then does the change land.
Why Receipts exist
PhiCo is an AI, and an AI proposal has to be reviewable before it is trusted:
- Reviewable — the diff is readable line by line.
- Reproducible — the same Receipt produces the same surface.
- Auditable — the history says what changed and who accepted it.
Applied without a Receipt, the same prompt could produce two different surfaces, debugging would be guesswork, and there would be no record of who changed what.
What a Receipt looks like
Receipt sf_abc123 · revision 7 → 8
─────────────────────────────────
+ block heading L12 level=1 align="center" content="…"
+ block text L13 align="center" color="muted"
~ container (props.padding) L05 lg → xl
- block image (id="img_old") L21 removedEach line is independently addressable — you accept the Receipt one instruction at a time, not all-or-nothing. A line you do not accept simply never applies.
Diff line semantics
| Op | Meaning |
|---|---|
+ (add) | A new block — its properties, children and position. |
- (remove) | Block deleted by ID. |
~ (mutate) | Targeted edit — only the changed property is in the line. |
move | Block re-parented or re-ordered. |
cap+ / cap- / cap~ | Capability configuration added / removed / changed. |
The same operations appear when you compare two arbitrary revisions of a surface in its version history.
Accepting, or not
- Accept an instruction — it is applied. The surface moves to a new revision and the diff stays in its history.
- Leave an instruction — nothing happens. The surface stays exactly as it was, and the proposal remains readable in the Receipt.
- Save the Receipt to keep its current state, accepted lines and all, and come back to it later.
Accepted Receipts are immutable. Instructions you did not accept are never applied.
Φ accounting
Φ is spent when the proposal is produced, because that is when the model does the work. Accepting or rejecting the result costs nothing on its own — by then it has already been paid for.
See Billing & plans.
See also
- PhiCo — the composer that proposes Receipts
- Surfaces — the unit Receipts target
- Composition — what a Receipt contains structurally