Skip to content

docs(wg): land the model-v2 spec overlay from model-v2-anchor#26

Merged
softmarshmallow merged 1 commit into
mainfrom
docs/wg-v2-overlay
Jul 18, 2026
Merged

docs(wg): land the model-v2 spec overlay from model-v2-anchor#26
softmarshmallow merged 1 commit into
mainfrom
docs/wg-v2-overlay

Conversation

@softmarshmallow

Copy link
Copy Markdown
Member

What

Lands the model-v2-anchor branch's docs/wg overlay on main — 25 files: the Grida XML Draft 0 RFD family (format/), the SVG animation-profile specs + cluster index (feat-svg/), the Universal Shaped Text Layout RFD (feat-paragraph/), the motion-graphics survey and the reverified Chromium SMIL research (research/), and the re-scope of format/svg.md to the static projection.

After this merge, main is canonical for all WG content. The branch's copies are frozen history — model-v2-anchor is locked as a design reference (see #9).

Why now

This is M0 of the legacy seam program: crates/grida is being reorganized into model-agnostic modules ahead of the v2 engine promotion, and the seam work must cite these specs (the text-layout RFD and the svg static-projection scope) from main per the repo's link discipline. Program umbrella issue follows; consolidation guideline: #1.

Link fixes (same commit, fix-forward)

The overlay was authored pre-split inside the product monorepo; its link fabric is corrected here rather than carried faithfully:

  • 108 extension-less Docusaurus-style relative links → .md-suffixed (main's post-split convention; every target verified present; resolves on GitHub and the www docs site)
  • format/index.md engine-path references → same-repo relative (their absolute gridaco/grida forms 404 since the split); the grida-side TS schema link stays absolute per link doctrine
  • feat-paragraph/index.md OpenType reference links keep main's absolute blob/main form (docs/reference stayed in the product repo)
  • grida-xml.md originating request relabeled → anchor — the v2 node model #9 (transferred; formerly gridaco/grida#957)

Merge notes

Two files were hand-merged against post-split changes on main: format/index.md (keeps the branch's Specifications/Import-mappings restructure over #25's .md-suffix pass) and feat-paragraph/index.md (keeps the branch's cluster-index restructure, restores main's absolute reference links). Verified: zero grida.co/docs/wg links, zero unresolvable relative links, zero references to the branch's proof workspace.

The node workflow builds the www docs site against this tree (its path filter includes docs/wg/**), which gates renderability.

Cherry-picks the branch's docs/wg delta (25 files) onto main, making
main canonical for all WG content; the copies on model-v2-anchor are
frozen history (the branch is locked as a design reference).

What lands:
- format/: the Grida XML Draft 0 RFD family (grida-xml + properties,
  modules, component-parameters, component-slots, addressing,
  animation), registered in the format cluster index
- feat-svg/: the cluster index + seven SVG animation-profile specs;
  testing.md gains animated-profile conformance
- feat-paragraph/: the Universal Shaped Text Layout RFD + the cluster
  index restructure
- research/: motion-graphics survey; Chromium SMIL research reverified
  against a pinned Chromium 145 probe run
- format/svg.md re-scoped to the static projection (+ usvg upstream
  link fix)

Link fixes applied in the same commit (fix-forward, not faithful):
- 108 extension-less Docusaurus-style relative links -> .md-suffixed,
  matching main's post-split convention (resolves on GitHub and the
  www docs site)
- engine-path references in format/index.md -> same-repo relative
  (their absolute gridaco/grida forms 404 since the engine split);
  the grida-side TS schema link stays absolute
- feat-paragraph reference links keep main's absolute blob/main form
  (docs/reference stayed in the product repo)
- grida-xml.md originating request relabeled to #9
  (transferred; formerly gridaco/grida#957)

Part of the legacy seam program under #1's
consolidation guideline; v2 tracking: #9.
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
nothing Ready Ready Preview, Comment Jul 18, 2026 12:04pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 18, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

The PR expands working-group documentation with a universal text-layout contract, SVG animation profiles and research, Grida XML specifications across multiple versions, reorganized format navigation, and a motion-graphics systems survey.

Changes

Paragraph and text layout

Layer / File(s) Summary
Universal shaped text layout contract
docs/wg/feat-paragraph/text-layout.md, docs/wg/feat-paragraph/index.md
Adds the immutable text-resolution contract and reorganizes the paragraph roadmap, specifications, studies, and coverage checklist.

SVG animation profiles and research

Layer / File(s) Summary
Animation baseline and replacement composition
docs/wg/feat-svg/animation.md, docs/wg/feat-svg/animation-keyframes.md, docs/wg/feat-svg/animation-sandwiches.md
Defines SVG animation input, timing, keyframes, easing, replacement layering, validation, and conformance.
Additive, effect, and transform composition
docs/wg/feat-svg/animation-composition.md, docs/wg/feat-svg/animation-effects-and-transforms.md
Defines additive accumulation, lone-to effects, typed transforms, arithmetic, diagnostics, and conformance rules.
Paint and path animation profiles
docs/wg/feat-svg/animation-solid-fills.md, docs/wg/feat-svg/animation-path-geometry.md
Defines solid-fill animation and deterministic path geometry interpolation, discrete selection, topology handling, and validation.
SVG catalog, testing, and Chromium research
docs/wg/feat-svg/*, docs/wg/format/svg.md, docs/wg/research/chromium/svg/*
Updates navigation, import scope, conformance methodology, and researched Chromium animation behavior.

Grida XML specifications

Layer / File(s) Summary
Draft 0 core and property registry
docs/wg/format/grida-xml.md, docs/wg/format/grida-xml-properties.md
Defines the authored scene language, layout, paint, text, stroke, resource, property, validation, and conformance contracts.
Modules and component materialization
docs/wg/format/grida-xml-modules.md
Defines Version 1 source units, components, linking, materialization, provenance, resources, cycles, writers, and diagnostics.
Component parameters and named slots
docs/wg/format/grida-xml-component-parameters.md, docs/wg/format/grida-xml-component-slots.md
Defines typed parameters, brace bindings, forwarding, named slot projection, ownership, provenance, validation, and writing.
Durable addressing and animation boundary
docs/wg/format/grida-xml-addressing.md, docs/wg/format/grida-xml-animation.md
Defines Version 4 durable identity and typed effective values, while keeping native Grida XML animation syntax rejected and SVG as the animation frontend.
Format documentation navigation
docs/wg/format/index.md
Reorganizes specification, import mapping, usage, and related-reference links.

Motion-graphics research

Layer / File(s) Summary
Motion-graphics systems and capabilities
docs/wg/research/motion-graphics/*
Surveys animation systems, reusable and procedural structures, authoring workflows, persisted semantics, accessibility, findings, and sources.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related issues

  • gridaco/grida#957 — The Grida XML Draft 0 and property-registry specifications directly expand the same format and property-model objectives.
  • anchor — the v2 node model #9 — The PR directly adds the text-layout, SVG animation, and Grida XML documentation described by this issue.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: landing the model-v2 spec overlay from the anchor branch.
Description check ✅ Passed The description is directly related and accurately describes the docs overlay, link fixes, and merge notes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/wg-v2-overlay

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 6

🧹 Nitpick comments (1)
docs/wg/research/chromium/svg/animation-and-smil.md (1)

318-323: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Remove redundant wording.

The phrase "final end" is slightly redundant. Consider using "end" or "animation end" for better readability.

♻️ Proposed fix
 The exact repeat boundary starts the next iteration at its first simple value
-and adds `repeat_index * terminal`. At the final end, freeze uses the final
+and adds `repeat_index * terminal`. At the end, freeze uses the final
 iteration's terminal value, yielding `repeatCount * terminal` for cumulative
 replacement. The `replace`/`sum` row also confirms that cumulative replacement
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/research/chromium/svg/animation-and-smil.md` around lines 318 - 323,
In the cumulative replacement explanation, update the phrase “At the final end”
to “At the end” or “At animation end,” while preserving the surrounding
description of freeze behavior and the repeatCount * terminal result.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@docs/wg/feat-svg/animation-path-geometry.md`:
- Around line 117-125: Define the positive-root SVG viewport as a deterministic
static-profile input, including the exact source used for width and height and
how the supplied example obtains it. Specify when the rectangle is captured for
the complete effect, reject or otherwise explicitly handle missing and
percentage-based dimensions, and state that later dimension changes do not alter
the captured rectangle or trigger per-keyframe renormalization.

In `@docs/wg/feat-svg/animation.md`:
- Around line 296-302: Update the conformance artifact metadata list in the
“Conformance” section to include the fixture/corpus revision and the exact
sample time, alongside the existing recorded revisions and browser build. Keep
the current metadata requirements unchanged.

In `@docs/wg/format/grida-xml-addressing.md`:
- Around line 515-524: Revise the “empty map is the permanent static oracle”
statement so its equivalence law is scoped to a single materialized scene,
declared resource-environment snapshot, and evaluation inputs. Preserve the
listed identical geometry, content, draw list, queries, and pixels outcomes, but
make clear the oracle must not be reused when resource bytes, readiness, or
environment revisions change.

In `@docs/wg/format/grida-xml-properties.md`:
- Around line 122-131: Update the Draft 0 `ellipse` entry in the element table
to describe only an ellipse, removing “ring” and “arc” from the production
concept. Keep the existing note that arc parameters are placeholders, and
explicitly mark ring/arc behavior as future work without changing other element
definitions.

In `@docs/wg/format/grida-xml.md`:
- Around line 215-241: Add the Draft 0 `clips` attribute to the Common authored
attributes table, defining its boolean value, `false` default, applicable
element types, and canonical/conformance handling consistently with its
definition in grida-xml-properties.md. Update the strict parsing and writer
rules so valid `clips="true"` usage, including the Version 2 component-parameter
example, is accepted and emitted canonically.

In `@docs/wg/format/index.md`:
- Around line 38-40: Update the status-key description in the index
documentation to include the 🔮 marker used by the HTML tracker for future or
proposed support, keeping the listed statuses authoritative across the linked
CSS, HTML, and SVG trackers.

---

Nitpick comments:
In `@docs/wg/research/chromium/svg/animation-and-smil.md`:
- Around line 318-323: In the cumulative replacement explanation, update the
phrase “At the final end” to “At the end” or “At animation end,” while
preserving the surrounding description of freeze behavior and the repeatCount *
terminal result.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f1bfc47a-06dd-4e74-b234-c21135eaf6f7

📥 Commits

Reviewing files that changed from the base of the PR and between 90eb144 and 0fbe00a.

📒 Files selected for processing (25)
  • docs/wg/feat-paragraph/index.md
  • docs/wg/feat-paragraph/text-layout.md
  • docs/wg/feat-svg/_category_.json
  • docs/wg/feat-svg/animation-composition.md
  • docs/wg/feat-svg/animation-effects-and-transforms.md
  • docs/wg/feat-svg/animation-keyframes.md
  • docs/wg/feat-svg/animation-path-geometry.md
  • docs/wg/feat-svg/animation-sandwiches.md
  • docs/wg/feat-svg/animation-solid-fills.md
  • docs/wg/feat-svg/animation.md
  • docs/wg/feat-svg/index.md
  • docs/wg/feat-svg/testing.md
  • docs/wg/format/grida-xml-addressing.md
  • docs/wg/format/grida-xml-animation.md
  • docs/wg/format/grida-xml-component-parameters.md
  • docs/wg/format/grida-xml-component-slots.md
  • docs/wg/format/grida-xml-modules.md
  • docs/wg/format/grida-xml-properties.md
  • docs/wg/format/grida-xml.md
  • docs/wg/format/index.md
  • docs/wg/format/svg.md
  • docs/wg/research/chromium/svg/animation-and-smil.md
  • docs/wg/research/chromium/svg/index.md
  • docs/wg/research/motion-graphics/_category_.json
  • docs/wg/research/motion-graphics/index.md

Comment on lines +117 to +125
The positive root SVG viewport is the fixed reference rectangle for the static
path and every keyframe. After ordinary static arc lowering in SVG user space,
each binary32 x-coordinate is divided once by the binary32 viewport width and
each y-coordinate once by the binary32 viewport height. The resulting tight
geometry must fit inside the closed `0 0 1 1` rectangle. A value outside it is
rejected. This is a bounded source-profile restriction, not a claim that
general SVG clips path geometry to its viewport. A wider profile may select a
different stable reference rectangle, but it must select that rectangle once
for the complete effect rather than renormalizing each keyframe independently.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Define the reference rectangle deterministically.

“Positive root SVG viewport” is not defined here: it is unclear whether width/height come from the root viewBox, root attributes, computed CSS layout, or another static profile. The supplied example also has no root viewport. Since this rectangle determines acceptance and normalized geometry, different hosts could accept different paths or produce different endpoint bits.

Specify the exact source of the rectangle, when it is captured, and the behavior when dimensions are missing, percentage-based, or changed.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/feat-svg/animation-path-geometry.md` around lines 117 - 125, Define
the positive-root SVG viewport as a deterministic static-profile input,
including the exact source used for width and height and how the supplied
example obtains it. Specify when the rectangle is captured for the complete
effect, reject or otherwise explicitly handle missing and percentage-based
dimensions, and state that later dimension changes do not alter the captured
rectangle or trigger per-keyframe renormalization.

Comment on lines +296 to +302
## Conformance

Conformance has value-level, scene-level, and pixel-level layers. A test
artifact records the Profile 0 revision, standards baseline, source-number
parser revision, static materializer revision, applicable
[web-platform-tests](https://github.com/web-platform-tests/wpt/tree/master/svg/animations)
revision, and browser build used as an oracle.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Record fixture revision and exact sample time in conformance artifacts.

docs/wg/feat-svg/testing.md requires compatibility results to record the fixture/corpus revision and exact sample time, but this metadata list omits both. Without them, the documented result cannot be reproduced or compared reliably.

Suggested correction
- A test artifact records the Profile 0 revision, standards baseline, source-number
- parser revision, static materializer revision, applicable
+ A test artifact records the Profile 0 revision, standards baseline, fixture/corpus
+ revision, source-number parser revision, static materializer revision, exact sample
+ time, applicable
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Conformance
Conformance has value-level, scene-level, and pixel-level layers. A test
artifact records the Profile 0 revision, standards baseline, source-number
parser revision, static materializer revision, applicable
[web-platform-tests](https://github.com/web-platform-tests/wpt/tree/master/svg/animations)
revision, and browser build used as an oracle.
## Conformance
Conformance has value-level, scene-level, and pixel-level layers. A test
artifact records the Profile 0 revision, standards baseline, fixture/corpus
revision, source-number parser revision, static materializer revision, exact sample
time, applicable
[web-platform-tests](https://github.com/web-platform-tests/wpt/tree/master/svg/animations)
revision, and browser build used as an oracle.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/feat-svg/animation.md` around lines 296 - 302, Update the conformance
artifact metadata list in the “Conformance” section to include the
fixture/corpus revision and the exact sample time, alongside the existing
recorded revisions and browser build. Keep the current metadata requirements
unchanged.

Comment on lines +515 to +524
The empty map is the permanent static oracle:

```text
effective-values = empty
=> authored base values at every registered property
=> identical resolved geometry and content
=> identical draw list
=> identical queries
=> identical pixels
```

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟠 Major | ⚡ Quick win

Scope static equivalence to one resource-environment snapshot.

Lines 496-507 correctly require the same declared resource environment for complete frame equivalence, but this law is currently unconditional. An implementation could incorrectly reuse the empty-map oracle across changed resource bytes, readiness, or environment revisions.

State that the equivalence holds for the same materialized scene, declared environment snapshot, and evaluation inputs.

Proposed clarification
-The empty map is the permanent static oracle:
+For a fixed materialized scene, declared environment snapshot, and evaluation inputs,
+the empty map is the permanent static oracle:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The empty map is the permanent static oracle:
```text
effective-values = empty
=> authored base values at every registered property
=> identical resolved geometry and content
=> identical draw list
=> identical queries
=> identical pixels
```
For a fixed materialized scene, declared environment snapshot, and evaluation inputs,
the empty map is the permanent static oracle:
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/format/grida-xml-addressing.md` around lines 515 - 524, Revise the
“empty map is the permanent static oracle” statement so its equivalence law is
scoped to a single materialized scene, declared resource-environment snapshot,
and evaluation inputs. Preserve the listed identical geometry, content, draw
list, queries, and pixels outcomes, but make clear the oracle must not be reused
when resource bytes, readiness, or environment revisions change.

Comment on lines +122 to +131
| `container` | Container | Yes | **Draft 0** | Flutter/HTML; boxed composition and layout owner |
| `group` | Group | Yes | **Draft 0** | SVG `g`; derived bounds, no own geometry |
| `rect` | Rectangle | Yes | **Draft 0** | SVG; direct primitive |
| `ellipse` | Ellipse, ring, or arc | Yes | **Draft 0** | SVG base primitive; arc parameters are placeholders |
| `line` | Line | Yes | **Draft 0** | SVG; stroke-only primitive with repeatable stroke geometries |
| `text` | Text or attributed-text node | No | **Draft 0** | Owns one text box, paragraph/default style, and node paints |
| `tspan` | `StyledTextRun` | No | **Draft 0** | Flat direct child of `text`; contextual run, never a scene node |
| `lens` | Source transform wrapper | Yes | **Draft 0** | Grida source construct; resolves through group/transform semantics |
| `image` | Image node outside paint channels | No | **Placeholder** | HTML/SVG; contextual with the existing image-paint element |
| `path` | Box-mapped unit-space path | Yes | **Draft 0** | Full SVG path-data grammar in the fixed `0 0 1 1` reference rectangle |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Restrict the Draft 0 ellipse entry to supported semantics.

The core RFD defines ellipse only; ring and arc parameters remain placeholders below. Describing the Draft 0 element as “Ellipse, ring, or arc” blurs the accepted grammar and may lead implementations to expose unsupported syntax. Change the production concept to ellipse-only and explicitly identify ring/arc behavior as future work.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/format/grida-xml-properties.md` around lines 122 - 131, Update the
Draft 0 `ellipse` entry in the element table to describe only an ellipse,
removing “ring” and “arc” from the production concept. Keep the existing note
that arc parameters are placeholders, and explicitly mark ring/arc behavior as
future work without changing other element definitions.

Comment on lines +215 to +241
## Common authored attributes

Only attributes applicable to an element may appear on that element.

| Attribute | Value | Default | Contract |
| ------------------------- | ----------------------------------------- | ---------- | ---------------------------------------------------------------- |
| `name` | XML string | none | Human-readable label; it is not durable node identity |
| `x`, `y` | position binding | `0` | Places a free-positioned node in its parent's local box |
| `width`, `height` | finite number or `auto`, where applicable | by element | Declares a fixed extent or requests element-specific measurement |
| `min-width`, `min-height` | non-negative finite number | none | Sets a lower bound on a non-derived box axis |
| `max-width`, `max-height` | non-negative finite number | none | Sets an upper bound on a non-derived box axis |
| `aspect-ratio` | positive finite `width:height` pair | none | Resolves one otherwise under-specified box axis |
| `corner-radius` | one or four radii, optionally elliptical | `0` | Rounds the outline of a `container` or `rect` |
| `corner-smoothing` | finite number in `[0, 1]` | `0` | Smooths circular corners on a `container` or `rect` |
| `rotation` | finite number | `0` | Visual rotation about box center; about origin for derived kinds |
| `flip-x`, `flip-y` | `true` or `false` | `false` | Reflects paint horizontally or vertically before rotation |
| `fill` | `#RGB` or `#RRGGBB` | none | Canonical compact form for one ordinary solid fill |
| `d` | SVG path-data string | required | Defines a `path` in the fixed unit reference rectangle |
| `fill-rule` | `nonzero` or `evenodd` | `nonzero` | Selects path interior construction |
| `font-size` | positive finite number | `16` | Default size on `text`; optional run override on `tspan` |
| `font-weight` | integer from `1` through `1000` | `400` | Default weight on `text`; optional run override on `tspan` |
| `font-style` | `normal` or `italic` | `normal` | Default style on `text`; optional run override on `tspan` |
| `opacity` | finite number in `[0, 1]` | `1` | Composites the node and its descendants |
| `hidden` | `true` or `false` | `false` | Removes the subtree from layout and painting |
| `flow` | `in` or `absolute` | `in` | Opts a child into or out of a flex parent's flow |
| `grow` | non-negative finite number | `0` | Flex main-axis growth factor |
| `align` | `start`, `center`, `end`, or `stretch` | none | Per-child flex cross-axis override |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win

Add clips to the normative Draft 0 attribute contract.

clips="true" is defined later in this RFD and marked Draft 0 in docs/wg/format/grida-xml-properties.md:175, but it is absent from this core attribute table and the strict parsing/writer rules. A strict reader therefore has no complete contract for the attribute and may reject the Version 2 example in docs/wg/format/grida-xml-component-parameters.md:53-59. Define its value, default, applicability, and canonical/conformance behavior here.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/format/grida-xml.md` around lines 215 - 241, Add the Draft 0 `clips`
attribute to the Common authored attributes table, defining its boolean value,
`false` default, applicable element types, and canonical/conformance handling
consistently with its definition in grida-xml-properties.md. Update the strict
parsing and writer rules so valid `clips="true"` usage, including the Version 2
component-parameter example, is accepted and emitted canonically.

Comment thread docs/wg/format/index.md
Comment on lines +38 to +40
The CSS, HTML, and SVG trackers use this status key: ✅ mapped | ⚠️ partial |
🔧 IR exists, not wired | ❌ IR missing | 🚫 out of scope. Their **IR Gaps**
sections identify schema changes that would unblock further progress.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Include every status used by the linked trackers.

The index claims CSS, HTML, and SVG use this status key, but docs/wg/format/html.md also uses 🔮 for future/proposed support. Add that marker here or replace it in the tracker so the navigation page remains authoritative.

Proposed fix
-The CSS, HTML, and SVG trackers use this status key: ✅ mapped | ⚠️ partial |
-🔧 IR exists, not wired | ❌ IR missing | 🚫 out of scope. Their **IR Gaps**
+The CSS, HTML, and SVG trackers use this status key: ✅ mapped | ⚠️ partial |
+🔧 IR exists, not wired | ❌ IR missing | 🔮 proposed/future | 🚫 out of scope.
+Their **IR Gaps**
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
The CSS, HTML, and SVG trackers use this status key: ✅ mapped | ⚠️ partial |
🔧 IR exists, not wired | ❌ IR missing | 🚫 out of scope. Their **IR Gaps**
sections identify schema changes that would unblock further progress.
The CSS, HTML, and SVG trackers use this status key: ✅ mapped | ⚠️ partial |
🔧 IR exists, not wired | ❌ IR missing | 🔮 proposed/future | 🚫 out of scope.
Their **IR Gaps**
sections identify schema changes that would unblock further progress.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@docs/wg/format/index.md` around lines 38 - 40, Update the status-key
description in the index documentation to include the 🔮 marker used by the HTML
tracker for future or proposed support, keeping the listed statuses
authoritative across the linked CSS, HTML, and SVG trackers.

@softmarshmallow
softmarshmallow merged commit ecba855 into main Jul 18, 2026
4 checks passed
@softmarshmallow
softmarshmallow deleted the docs/wg-v2-overlay branch July 18, 2026 15:59
softmarshmallow added a commit that referenced this pull request Jul 19, 2026
All 20 conflicts are docs/wg files whose content was cherry-picked to
main in #26 (branch content + link fixes). Resolved wholesale to main's
copies.

Patrol audit (patrol-before-drop): zero branch-only substance dropped —
every branch-to-main delta is a link fix (.md suffix, absolute-to-
relative engine paths, the gridaco/grida#957 -> #9
relabel) or a main-side addition; verified line-level on the two
hand-merged files (docs/wg/format/index.md, feat-paragraph/index.md).
The branch has no docs/wg file main lacks.

Part of landing #5; tracking #9.
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