From a2e269543e05621515ad23a3db11f67ce4be96ea Mon Sep 17 00:00:00 2001 From: Noel Tock Date: Mon, 28 Sep 2026 13:38:59 +0700 Subject: [PATCH 1/2] docs: correct native Accordion release attribution --- dev/benchmarks/specs/accordion/expected.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dev/benchmarks/specs/accordion/expected.json b/dev/benchmarks/specs/accordion/expected.json index 3fa9bcb..0ee22c3 100644 --- a/dev/benchmarks/specs/accordion/expected.json +++ b/dev/benchmarks/specs/accordion/expected.json @@ -1,5 +1,5 @@ { - "intent": "A set of collapsible panels: an H2, then a native accordion. Core gained a real accordion in WordPress 7.1 — a SET of disclosures is core/accordion with one core/accordion-item each, NOT a series of core/details (which remains correct for a single standalone disclosure). Each item is a heading plus a panel; the heading's text lives in its `title` attribute (NOT `content`, unlike every other text block — passing `content` yields a valid accordion with a blank heading), and the panel's body is a child paragraph.", + "intent": "A set of collapsible panels: an H2, then a native accordion. Core gained a real accordion in WordPress 6.9 — a SET of disclosures is core/accordion with one core/accordion-item each, NOT a series of core/details (which remains correct for a single standalone disclosure). Each item is a heading plus a panel; the heading's text lives in its `title` attribute (NOT `content`, unlike every other text block — passing `content` yields a valid accordion with a blank heading), and the panel's body is a child paragraph.", "tree": { "block": "core/group", "children": [ From 1e26f1a4f6072fc513901f65b290a45586400447 Mon Sep 17 00:00:00 2001 From: Noel Tock Date: Mon, 28 Sep 2026 13:38:59 +0700 Subject: [PATCH 2/2] docs: distinguish native block support from runtime qualification --- docs/reference.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/reference.md b/docs/reference.md index 3a78a8f..2b037d3 100644 --- a/docs/reference.md +++ b/docs/reference.md @@ -2,6 +2,42 @@ Start with the [README](../README.md) for a first conversion, or the [architecture guide](architecture.md) for the code paths. This reference covers commands, configuration and compatibility details. The [registered-block delivery guide](../skills/block-runner/references/AUTHORING.md#shipped-notice-source-to-standalone-zip) owns the complete source-to-ZIP procedure. +## Native block support boundaries + +Four different claims need different evidence: + +| Route | What it establishes | What it does not establish | +|---|---|---| +| Explicit intent through CLI `assemble` / library `realize()` | Registered blocks and open attributes pass through shared finalisation and the headless validity gate | A live destination registry, server rendering, interaction or edit persistence | +| Registered-block composition | Native nesting and save round trips accepted by the authoring capability gate | Every native attribute being exposed as an editable field | +| Declared editable fields | The compiler's reviewed Heading, Paragraph, List Item, Image and Button attribute surfaces | Tab Panel label editing or automatic pattern overrides for arbitrary registered blocks | +| WordPress browser proof | The exact fixture and runtime exercised by a retained receipt | Other runtime versions, manual visual acceptance, model quality or collaboration | + +Native Tabs page content is covered on WordPress 7.1 by the explicit two-panel, +rich-content and independent-instance fixtures. The browser proof checks the frontend +before editor effects, label/body edits, saved/reopened content hashes, clean editor +state, ARIA associations, clicks and keyboard behaviour against a native control. +Use the [Tabs input contract](../skills/block-runner/references/ASSEMBLE.md#native-tabs-page-content). +Nested Tabs, HTML inference and registered-block label overrides remain unqualified. + +The September catch-up leaves these candidates deferred, rather than enabling them +from registry presence alone: + +| Candidate | Required scope before qualification | +|---|---| +| Icon | A named destination-registered icon and live rendering proof; transporting a static SVG does not register an icon collection | +| Playlist | An audio-collection input, attachment/track metadata, playback and persistence; the current media resolver handles Image/Cover | +| Breadcrumbs | A seeded target-site hierarchy and explicit dynamic-content intent | +| Gallery Grid | An explicitly supported Gutenberg/Core target plus desktop/mobile crop, layout, links and image-ID proof; it is a `core/gallery` variation, not `core/gallery-grid` | +| Description List and Table of Contents | An accepted upstream release contract, followed by term/detail or heading/anchor persistence proof | +| Additional responsive controls | A source-fidelity audit of actual native output; retain authored CSS when no equivalent native control exists | + +Accordion first shipped in [WordPress 6.9](https://make.wordpress.org/core/2025/11/25/wordpress-6-9-field-guide/). +The benchmark attribution correction does not change expected block trees or scores. +The deferred source contracts and promotion conditions remain in [the catch-up tracker](https://github.com/humanmade/block-runner/issues/119). + +Generated-template compatibility is a separate [three-lane investigation](https://github.com/humanmade/block-runner/issues/118). The public release-proof identity remains WordPress 7.1, and the current template prop remains required for that floor. + ## CLI For a local installation, run these commands with `npx --no-install block-runner`.