Forms, side by side
Compare lines that differ in one slot.
#>reading[compare]{shared}(shelf)<notation>
#>reading[compare]{parted}(shelf)<notation>
A mark says what a word is doing. A brace says which slot it fills. Change one slot and the reading updates.
This file writes itself as you open rooms here, in the marks this guide teaches. It stays in this browser; nothing is sent. With scripts off it shows where a walk begins.
#>walk
you@guide
~learn ~build ~forms
#> names it, so it can be found again.@ sets a perspective: the context before it, the subject after it. Here, you, at the guide.~ keeps a path open without taking it: rooms not opened yet.Each works as it stands and is yours to change: edit it here, keep it as your note, or download it. On the stage, a pattern that performs sets this field's theme.
A mark says what a word is doing. The name is the workbench's name for that mark. The runtime line is what the reader does with it today. The numbers open the Learn panel that uses it.
potential ~
Keep a path open without taking it.
Runtime: Defers its first argument.
wonder ?
Open a question you can close again.
Runtime: Returns the second argument when the first is true.
action !
Commit a move so its consequence can be seen.
Runtime: Returns its first argument.
value *
Mark what carries weight here.
Runtime: Writes and returns a collapsed first argument.
ground .
Come back to the local default.
Runtime: Reads a property path, or the base value.
ascension ^
Lift parts into one relation you can inspect.
Runtime: Wraps its arguments as one integrated value.
vibration #
Name a structure so it can be found again.
Runtime: Reduces its arguments into a register.
perspective @
Say who is looking, and from where.
Runtime: Observes its first argument through a named observer.
subject &
Name what the relation is about.
Runtime: Merges its arguments into one register.
configuration =
Keep this here, under this name.
Runtime: Writes its first argument to a register.
measure %
Compare, weigh, or level the field.
Runtime: Measures a named or focused register.
substrate $
Name what carries the charge: time, money, memory, attention.
Runtime: Materializes a register's metadata.
<>
concept What this is about.
()
scene Where it happens.
[]
mode Which lens you are using.
3 hold 6 ask
{}
definition What belongs together inside it.
3 hold 6 ask
Forms, side by side: each brace, join and mark against its neighbors. Marks and braces compose: #[…] is a set, .{…} a property sheet.
Compare lines that differ in one slot.
Edit one slot. The reading updates.
!draft<chapter>(study)[second_pass]{voice, scene, turn}
Seven panels. Each panel is one line.
Install the guide. It opens in its own window.
Parser, CLI, and editor tooling at .spw/_workbench.
Dated parser builds. Each build has an integrity hash.
This is for work that keeps a reading inspectable. A line stays a note a person can read, and a tool can still find it, check it, and follow its links. A mark says what a word is doing. A brace says which slot that word fills.
When two readings of one subject are in hand, name the slots they share and the slot where they part. Hold them on the shelf. Edit one slot in the editor. A question on a line carries the probe that would answer it.
Joins stay distinct, so a comparison can say which relation moved.
. A dot makes one name., A comma holds a company.; A semicolon keeps an order.~> A path.The fuller statement is what Spw should let you say.
Release is published. This page keeps reader.min.js of 2026.10.13. Read the guide with the published release; that loads the release's full build and does not change what this page keeps.
Recipe for agents · quest.json · Source · What was hard to follow