Forms, side by side
Lines that differ in one thing, and what it does.
Plain text with a few marks: a mark says what a word is doing, braces say what belongs together.
Each works as it stands and is yours to change: edit it here, keep it as your note, or download it.
Each mark has a reader's name and, kept apart from it, what the runtime does today. The numbers are the Learn panels that use 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 askForms, side by side: each brace, join and mark against its neighbors. Marks and braces compose: #[…] is a set, .{…} a property sheet.
Lines that differ in one thing, and what it does.
Change one slot; the rest holds.
!draft<chapter>(study)[second_pass]{voice, scene, turn}
Seven panels, one line each.
Parser, CLI and editor tooling at .spw/_workbench.
Dated parser builds, each with its integrity hash.
The difficulty was not having language for what I was thinking about, so I could not tell when a thought was ready to set down. Spw gives a thought somewhere to land: one character says what a word is doing, braces say what belongs together, and a thought can be set down whole instead of chased.
It started in 2017, alongside reading about how people learn from text and helping with research in an adult learning lab. Part of it was wanting language to share what I was learning, in a place where I could keep learning what I wanted to. The question it keeps asking is about cognition: where do two understandings stop sharing ground, and what would help them share more?
And it wonders about geometry: how a mind represents the thoughts it holds, what shape a circuit of thought might take on a page, and how findings from different fields could sit side by side in one form you can read.
It is not built for anyone in particular. It has been designed with care, and it has turned out to be useful, most of all toward a culture where media literacy can grow across generations.
Recipe for agents · quest.json · Source · What was hard to follow