Status: design pass. There is no specification, no conformance suite and no
implementation. What exists is a design brief and a pre-registered spike,
spike/ (blockspec#2): its criterion is committed and its harness validated,
and it has no verdict — whether prose has a silent-wrong-merge worth a
format is still undecided. Start at spike/README.md.
blockspec is the block kind in kindspec — a specification and conformance suite for prose documents that must survive version control, alongside rowspec (the row kind).
Each kind is named after its unit of identity, because identity is the hard part of every one of them:
| unit | identity | status | |
|---|---|---|---|
| rowspec | rows | opaque row ids | draft 0, published |
| blockspec | blocks | deliberately no minted ids | design pass |
| nodespec | nodes | named, not positional | not started |
A row gets an opaque id. A prose block does not, and that is a measured
decision rather than a stylistic one — see DESIGN-BRIEF.md.
That single difference is why this is a fresh design pass and not a port. The prior research is explicit about the trap: *"Do not use one syntax for documents
- tables + slides. One syntax is a trap; one MODEL, several grammars is the sound version."*
Read DESIGN-BRIEF.md. It carries what is already decided and measured, what is
still open, and — most importantly — the one process question that must be
settled first.