Skip to content

docs(status): refresh blockspec status and node identity note - #25

Merged
CameronBrooks11 merged 3 commits into
mainfrom
docs/status-refresh
Oct 21, 2026
Merged

CameronBrooks11 merged 3 commits into
mainfrom
docs/status-refresh

Conversation

@CameronBrooks11

@CameronBrooks11 CameronBrooks11 commented Oct 21, 2026 •

Copy link
Copy Markdown
Member

Several status lines had fallen behind.

  • README.md kinds table: blockspec's status "design pass" becomes "specification draft 0, conformance cases and reference implementation".
  • README.md intro: "alongside rowspec (the row kind)" also names blockspec (the block kind).
  • DESIGN-BRIEF.md §4: the note that node identity is "barely more than a slogan at this stage" gains what 0001 decides (a node is its declared id) and what it leaves open (whether D1 to D5 refuse every identity error; the delete-against-move residual; canonical statement order).
  • DESIGN-BRIEF.md §0, README.md and AGENTS.md "Before writing anything": the adversary question is recorded as settled, citing 0001. In AGENTS.md only the status wording changes; no rule changes.

Evidence for each claim

  • blockspec has specification draft 0: head -2 SPEC.md in kindspec/blockspec at 3629226 prints # blockspec — specification, draft 0.
  • blockspec has conformance cases and a reference implementation: conformance/cases/ and reference/blockspec/ (document.py, anchor.py) exist at 3629226, and just conform there prints 0 failure(s) across 547 case(s) in the fixture tree.
  • blockspec is the block kind: blockspec's README.md says "blockspec is the block kind".
  • A node is its declared id: 0001 D1, "Every id is declared exactly once, and everything else only names it", and Not prevented, "The id is the node's identity, by this profile's own rule" (grep -n '^\*\*D1\|identity, by this profile' docs/adjudications/0001-mermaid-profile.md).
  • Still open whether D1 to D5 refuse every identity error: 0001 Open, "Whether some identity error passes D1 to D5 with one ordinary edit per leg beyond those named above" (grep -n 'passes D1 to D5' docs/adjudications/0001-mermaid-profile.md).
  • 0001 names merges they let through, among them a delete against a move: 0001 Not prevented, "A delete against a move of the same declaration … the deleted thing comes back" (grep -n 'delete against a move' docs/adjudications/0001-mermaid-profile.md).
  • Canonical statement order is not decided: SPEC.md §12 Not decided lists "A canonical statement order, which would close the delete-against-move residual" (grep -n 'canonical statement order' -i SPEC.md).
  • The adversary is settled: 0001 What is decided already, "Its adversary is blockspec's (owner, 2026-10-19): this text, then conformance cases written blind from the specification it becomes, then a reference checker run against them unchanged, under a mutation gate" (grep -n 'adversary is blockspec' docs/adjudications/0001-mermaid-profile.md). 0001's status line reads "approved by the owner, 2026-10-19".

Checked and left as is

  • rowspec's row "draft 0, published" is accurate: PyPI's latest rowspec is 0.4.0 (curl -s https://pypi.org/pypi/rowspec/json), and gh release list -R kindspec/rowspec shows v0.4.0, "rowspec 0.4.0 — draft 0", as latest.
  • nodespec's own row and status paragraph match SPEC.md (draft 0), reference/nodespec/ and conformance/cases/ (just conform: 322 passed, 0 failed).
  • §4 "Name availability" is still accurate: PyPI and crates.io return 404 for nodespec, and the npm registry returns 200.
  • README.md and DESIGN-BRIEF.md carry no issue references.

Gate

just check, just test (430 passed) and just conform (322 passed) each exit 0 on this branch.

The README's kinds table still called blockspec "design pass"; it
now has specification draft 0, conformance cases and a reference
implementation. DESIGN-BRIEF.md §4 called node identity barely more
than a slogan; adjudication 0001 now decides it for named-node
diagrams (D1, D4).

Signed-off-by: Cameron Brooks <95648474+CameronBrooks11@users.noreply.github.com>
The brief's identity note said 0001 settles node identity and cited
D4 for position. 0001 decides that a node is its declared id, but
keeps open whether D1 to D5 refuse every identity error, names merges
they let through, and SPEC.md §12 leaves canonical statement order
undecided.

The brief, README and AGENTS.md still said the adversary question
must be settled first; 0001 records the owner's answer of
2026-10-19. The README also now names blockspec beside rowspec.

Signed-off-by: Cameron Brooks <95648474+CameronBrooks11@users.noreply.github.com>
0001 keeps open only identity errors beyond those it names, with one
ordinary edit per leg; the merges it names already answer the broader
question. Name the mutation gate as part of the adversary, as 0001 does.

Signed-off-by: Cameron Brooks <95648474+CameronBrooks11@users.noreply.github.com>
@CameronBrooks11
CameronBrooks11 merged commit 47b52db into main Oct 21, 2026
7 checks passed
@CameronBrooks11
CameronBrooks11 deleted the docs/status-refresh branch October 21, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant