From 78ca66bb29c3a0bab04ae9499f7d9d0eaed54080 Mon Sep 17 00:00:00 2001 From: Lilleman auf Larv Date: Wed, 4 Nov 2026 20:30:08 +0100 Subject: [PATCH] =?UTF-8?q?Answer=20prose=20round=201:=202=20=F0=9F=94=B4,?= =?UTF-8?q?=207=20=F0=9F=9F=A1=20(0=20misread);=20retitle=20the=20decision?= =?UTF-8?q?,=20state=20its=20rule,=20and=20fix=20the=20carry=20claims?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- AGENTS.md | 2 +- docs/decisions.md | 44 +++++++++++++++++++++++--------------------- spec/flavour.md | 4 +++- spec/html.md | 4 ++-- 4 files changed, 29 insertions(+), 25 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 9a9073f..30c1d22 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -59,7 +59,7 @@ In `docs/decisions.md`: - Posts announcing a release wait for its publish, and their drafts wait for the finished release - A chunk ruled worse merges where a plan item of its release already restores that code's reading, and that item takes the ruling's places - A chunk ruled worse that restructures the places takes a paired ruling after each restructure, against the same base, and merges once one is not worse -- Writers refuse the shapes on a short list drawn from Atlassian's schema, before they write +- Writers and carry readers refuse an inline card a link marks - The gate runs on Deno and Bun - The gate installs the tarball - Firefox reads the build diff --git a/docs/decisions.md b/docs/decisions.md index e99a1cc..354b845 100644 --- a/docs/decisions.md +++ b/docs/decisions.md @@ -296,7 +296,8 @@ besides hard breaks but no node that takes a link: the panel refused to have `[!adf:status[Done]{color=green}](/u)` read as `/u` linked beside the status. A link text of hard breaks alone still reads as its destination, then the breaks (§An image reads as an image only alone in its paragraph). `adfToLosslessMarkdown` writes a node holding a mark its type does not take as -`!adf:carry`, so the round-trip holds. +`!adf:carry`, so the round-trip holds, except an inline card a link marks, which is refused +(§Writers and carry readers refuse an inline card a link marks). ## A linked image is written `[![alt](url)](href)`, a captioned image as its directive @@ -439,11 +440,9 @@ marking a node that shows a note goes around the note, and an image's own `text` schema, shows first, as every carried node's does. Recorded 2026-10-24 without a panel of its own: it joins the second panel's `` to that portable spelling. -Atlassian's schema gives no card a link mark, so only a hand-built document holds one, and no -element can hold both the link's target and the card's URL. Every writer refuses such a card -(§Writers refuse the shapes on a short list drawn from Atlassian's schema, before they write). The -maintainer chose this on 2026-11-04 over a new spelling. `htmlToAdf` still reads a carry element -holding one, since it checks no carried node's JSON against the schema. +HTML nests no `` in an ``, so no element can hold both a card's URL and the target of a link +marking it. Every writer refuses such a card, and a carry element holding one, as the maintainer +chose on 2026-11-04 over a new spelling (§Writers and carry readers refuse an inline card a link marks). A fifth panel (2026-11-04, three readers in the same roles, then four more for what the first three split on) was asked how to write a mention, emoji, status, date and inline card, which until then @@ -750,24 +749,27 @@ stays on `insideRun` alone, since it answers the parted line. A refactor that me so the chunk's later rulings read against that merge, the commit `larv-review ruling-base` prints. A restructure past a pass's round cap still goes unreviewed, so the PR summary names it. -## Writers refuse the shapes on a short list drawn from Atlassian's schema, before they write +## Writers and carry readers refuse an inline card a link marks -2026-11-04, replacing §No schema validation of 2026-08-23, the maintainer. Goals 1 and 6. Valid -while Atlassian's schema forbids each shape on the list. +2026-11-04, replacing §No schema validation of 2026-08-23 (its mark refusal 2026-08-25), the +maintainer. Goal 1. Valid while Atlassian's schema gives a card no link mark. -Every writer opens by refusing a document holding a listed shape, as `unsupported-node-shape` at -the node's path, wherever the node stands: in a node a writer carries, or under a type the library -does not know. The list is one shape, an `inlineCard` holding a `link` mark, since the schema -gives a card the `annotation` mark alone (§The node tables answer to Atlassian's schema). A shape -joins only where the schema forbids it and no format can spell it, so a node type, mark or -attribute the schema does not name passes and rides the carry. There is no full schema validation -and no exported validator: `isAdfDocument` checks the document's shape alone. A refusal that keeps -the round-trip is not on the list: a spelled node carrying the same mark type twice earns its own, -and input nesting a spelling inside its own kind (`*(*a*)*`) names that mark once. +Every writer refuses a document holding an `inlineCard` with a `link` mark, as +`unsupported-node-shape` at the card's path, wherever the card stands: in a node a writer carries, +or under a type the library does not know. Every carry reader, `losslessMarkdownToAdf` and +`htmlToAdf`, refuses a carried node holding one, so no reader builds a document a writer refuses. +The schema gives a card the `annotation` mark alone (§The node tables answer to Atlassian's +schema), and spelling the pair would take a new spelling in each format; HTML nests no `` in an +``. Another shape joins this entry only at the maintainer's word, once the schema forbids it and every format would +need a spelling for it. A node type, mark or attribute the schema does not name still rides the +carry. There is no full schema validation and no exported validator: `isAdfDocument` checks the +document's shape alone. A refusal that keeps the round-trip is no schema check and stays: a spelled +node carrying the same mark type twice is refused on its own terms, and input nesting a spelling +inside its own kind (`*(*a*)*`) names that mark once. -The earlier entry premised that the site a document is saved to validates it. A refusal before the -save is what the viewer/editor persona relies on, and a hand-built document is the one place the -site has not yet seen. +The earlier entry premised that the site a document is saved to validates it. A hand-built +document has not reached the site yet, and the viewer/editor persona relies on a refusal arriving +before the save. ## The gate runs on Deno and Bun diff --git a/spec/flavour.md b/spec/flavour.md index b48b1eb..062a83c 100644 --- a/spec/flavour.md +++ b/spec/flavour.md @@ -582,7 +582,9 @@ open or close where the run sits (`un**-real**istic`), or one CommonMark's match the merged run's pairing to another delimiter — rides the inline carry whole. So does every node holding `em`, `strike` or `strong` in a line still read back wrong after 32 tries. An opaque carry inside a mark spelling is a named error in input: the carry restores its node exactly, marks included -(`docs/decisions.md` §Unknown nodes ride the carry). +(`docs/decisions.md` §Unknown nodes ride the carry). An inline card a link marks rides no carry: +`adfToLosslessMarkdown` refuses it as `unsupported-node-shape`, and so does `losslessMarkdownToAdf` +reading a carry that holds one, since Atlassian's schema gives a card no link mark. ``` !adf:textColor[**Overdue**]{color="#ae2e24"}, H!adf:subsup[2]{type=sub}O, !adf:underline[signed]. diff --git a/spec/html.md b/spec/html.md index 94b4e37..0789bba 100644 --- a/spec/html.md +++ b/spec/html.md @@ -127,8 +127,8 @@ later release writes it as its own element. - a list holding a node that is no `listItem`, or an item holding a mark, text, an empty key or an attribute its type does not hold: the whole list rides the carry; - a `listItem` outside a list, an inline node in block position and a block node inline. -- An inline card a link marks is refused as `unsupported-node-shape` wherever it stands, carried - or not: Atlassian's schema gives a card no link mark. +- An inline card a link marks is refused as `unsupported-node-shape`, carried or not, by `adfToHtml` + and by `htmlToAdf` reading a carry element: Atlassian's schema gives a card no link mark. - A block carry's JSON nests at most 500 levels less the depth it stands at, an inline carry's at most 500, as in markdown.