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 `[](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.