Skip to content

docs(svg-editor): day-1 SDK design — refs, WG docs, sdk-* skills#725

Merged
softmarshmallow merged 6 commits into
mainfrom
feature/svg-editor
May 22, 2026
Merged

docs(svg-editor): day-1 SDK design — refs, WG docs, sdk-* skills#725
softmarshmallow merged 6 commits into
mainfrom
feature/svg-editor

Conversation

@softmarshmallow
Copy link
Copy Markdown
Member

@softmarshmallow softmarshmallow commented May 20, 2026

Reframed: design-only. The original PR was scoped as "package + page + AI agent + slides demo"; that implementation is deferred to a follow-up. Day-1 SDK design is too load-bearing to bundle with code that would rewrite itself against an evolving design. This PR lands the design substrate; the implementation slice ships on top of it once the design settles in review.

What's in

  • sdk-* skills (.agents/skills/sdk-design/, .agents/skills/sdk-seam/) — cross-cutting doctrine for any SDK Grida ships (TypeScript, Rust, FFI). Not svg-specific; lives here because @grida/svg-editor is the proximate motivator.
  • SVG spec reference (docs/reference/svg/) — element-model.md (per-element geometry, presentation, round-trip hazards) and transform-and-frame.md (transform=, viewport / viewBox, <use>). Used by both the editor SDK and the Rust SVG importer.
  • feat-svg-editor WG directory (docs/wg/feat-svg-editor/) — element-ir.md (typed in-memory IR proposal), svg-editor-intent-matrix.md (current-state inventory), hit-test.md (v2 architecture; survives a v1 revert), feedback-transform.md (transform-pipeline critique), glossary/policy-class.md (the "Policy Class" defined term — minimal partition where every intent admits the same legal-solution set).
  • Comparative researchdocs/wg/research/usvg-tree-notes.md (what resvg's usvg IR normalizes away and what an editor IR must refuse).
  • Selection-intent extension (docs/wg/feat-editor/ux-surface/selection-intent.md) — Tier-1 sub-selection scenarios (vertex / tangent / segment × replace / add / narrow-or-drag / toggle-or-drag, plus ghost-split), and the absolute-gesture click-no-drag invariant.
  • @grida/svg-editor README — universal-route link to the IR design doc; "Policy Class" defined-terms pointer.

What's deferred

The @grida/svg-editor package, the /svg demo page, the AI agent for /svg, the slides example, the package-internal docs (geometry / grouping / keybindings / element-ir-migration), and the supabase/seed.md-driven local sign-in note in CONTRIBUTING.md all land in a follow-up PR on top of this design substrate.

A note on forward references

Several docs in this PR (feedback-transform.md, svg-editor-intent-matrix.md, hit-test.md, element-ir.md, policy-class.md) review or propose against an in-flight @grida/svg-editor implementation that lives on a private branch and is not yet on main. Source paths under packages/grida-svg-editor/src/ cited in those docs describe the forthcoming implementation slice. Each affected doc carries a header disclaimer noting this. The design questions stand independently of the referenced code.

Status

Pre-implementation; design under review.

Test plan

  • pnpm --filter=docs build — docusaurus build is clean
  • Universal-route links resolve (grida.co/_/docs/wg/feat-svg-editor/..., grida.co/_/docs/reference/svg/...)
  • No https://github.com/.../blob/main/<deferred-path> links remain in the design docs

Summary by CodeRabbit

  • Documentation

    • Added extensive SVG Editor design docs: element IR, transform/frame semantics, hit-testing, policy class, intent matrix, feedback and research notes
    • Introduced SDK design & seam management guidelines
    • Added SVG reference material for element modeling and transforms
    • Updated SVG Editor public docs with new commands (nudge, resize_to, rotate_to, flatten_transform, align, group, insert, insert_preview), state fields (can_undo, can_redo, tool), surface lifecycle notes, and bundled React hooks
  • Contributing

    • Added local test-user setup guide for development

Review Change Stack

Placeholder commit for feature/svg-editor draft PR. The bulk of the
SVG editor + /svg page + AI agent work stays unpushed locally.
@vercel
Copy link
Copy Markdown

vercel Bot commented May 20, 2026

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

Project Deployment Actions Updated (UTC)
docs Ready Ready Preview, Comment May 22, 2026 2:49pm
grida Ready Ready Preview, Comment May 22, 2026 2:49pm
5 Skipped Deployments
Project Deployment Actions Updated (UTC)
backgrounds Ignored Ignored Preview May 22, 2026 2:49pm
blog Ignored Ignored Preview May 22, 2026 2:49pm
code Ignored Ignored May 22, 2026 2:49pm
legacy Ignored Ignored May 22, 2026 2:49pm
viewer Ignored Ignored Preview May 22, 2026 2:49pm

Request Review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 20, 2026

Walkthrough

Adds comprehensive design and reference documentation: SDK design and seam workflows; a typed Element IR proposal; SVG element/transform/frame reference; policy-class intent routing; hit-testing v2 plan; selection-intent updates; usvg research; and README/API docs for the TypeScript svg-editor package.

Changes

SVG Editor Design & SDK Discipline

Layer / File(s) Summary
SDK doctrine and cross-boundary seam discipline
.agents/skills/sdk-design/SKILL.md, .agents/skills/sdk-seam/SKILL.md, CONTRIBUTING.md
SDK design doctrine establishes five disciplines for public-surface evolution (outcomes focus, pure-logic core, asymmetric outputs, anti-goals, naming commitment), promotion rules (≥2 internal consumers), three extension paths, test-as-spec principle, and critique-partner placeholders; sdk-seam discipline defines a subagent-based feature-request workflow for managing contracts when both sides are controlled.
SVG Technical Reference
docs/reference/svg/element-model.md, docs/reference/svg/transform-and-frame.md
Element-model reference enumerates per-element geometry/presentation/structural attributes, local frames, safe in-place edits, and cross-element round-trip hazards (cascade, SMIL, switch, foreign-content, transform property vs attribute, units, viewBox, use shadow-tree, path d fidelity). Transform-and-frame reference defines seven SVG 1.1 transform functions, composition order, rotate desugaring, CSS property vs attribute differences, composition through g/use/nested-svg, and normalize-vs-preserve policy synthesis with pivot-on-resize case study.
Element IR Specification
docs/wg/feat-svg-editor/element-ir.md
Typed IR design proposes 12-variant element taxonomy (primitives, containers, references, paint servers, opaque content) dispatched by capability instead of tag; defines LocalTransform with explicit_pivot for round-trip fidelity, recomposition invariant for pivot rewrites on local-geometry changes, RefusalReason taxonomy, intent-to-mutator landing map, MixedView for multi-selection, polygon queries for rotated-element snapping, and addresses feedback-transform blockers (pivot drift, gate typos, snap divergence, headless resize path unification).
Policy Class Partition and Intent Routing
docs/wg/feat-svg-editor/glossary/policy-class.md
Glossary defines Policy Class as minimal element partition under each editing intent via fork-test methodology; specifies v1 partition with three mapping tables (element→class+invariants, solution-space counts with bake/via-transform/promote/restrict vocabulary, editor v1 policy picks); documents v1 intent coverage (resize/translate/rotate) and vector-editing sub-modal with predicted future splits; describes optional base-plus-constraints generalization and layered architecture (Policy Class lookups, SVG Document layer facts/writes, per-class handlers).
Hit-Testing Design and Intent Matrix
docs/wg/feat-svg-editor/hit-test.md, docs/wg/feat-svg-editor/svg-editor-intent-matrix.md
Hit-test doc records v1 bugs and postmortem (fallback behavior, coordinate-frame mismatches, ancestor transparency, fill-none semantics) with lessons learned; proposes v2 plan using render-time hit clones and elementsFromPoint picker with clone rules, descent conditions, and simplified picker algorithm; intent matrix inventories current svg-editor behavior (verdict vocabulary, per-command/per-element verdicts with file:line citations, hot-zone dispatch sites, known typos/refusals like is_resizable_node, flatten-transform rotate refusal, parallel resize divergence, pivot drift).
Feedback-Transform Analysis and Design Index
docs/wg/feat-svg-editor/feedback-transform.md, docs/wg/feat-svg-editor/index.md
Feedback-transform doc describes HUD SelectionShape transformed variant and svg-editor opt-in implementation (shape_of path, resize eligibility, intent.shape consumption, size-meter math); reports manual verification results, resolved items (rotate pivot drift, rotate-pipeline composition), flagged broken areas (snap on rotated elements), and open design questions (pivot renormalization, g-child participation, mixed-rotation multi-selection, knob parent-transform, camera composition); notes structural concerns and test gaps. Design index provides landing page/scope for feat-svg-editor/ (TypeScript @grida/svg-editor SDK design) distinguishing it from Rust/canvas SVG pipeline.
Research and Supporting Specs
docs/wg/research/usvg-tree-notes.md, docs/wg/feat-editor/ux-surface/selection-intent.md
usvg research documents parse pipeline stages, constraint enforcement (no authored style/use/symbol/switch/SMIL), node taxonomy, Paint model, lossy to_string writer behavior, and argues what components are reusable vs incompatible with editor IR round-trip/editability requirements. Selection-intent spec adds Tier-1 sub-selection scenarios for path-edit (singleton vs ambiguous drag-promotion, segment bend handling, tangent routing per selection size), absolute-gesture click-no-drag invariant conformance, and required test coverage for handle scenarios.
SVG Editor Public API Documentation
packages/grida-svg-editor/README.md
README adds "Element IR (internal)" section describing typed IR as throwaway per-load view over parsed AST; updates Surface contract with on_input and dispose; replaces attach/domSurface with attach_dom_surface returning detach handle; renames state fields (can_undo/can_redo), adds tool field and version counters (structure_version, geometry_version, load_version); documents new commands (set_mode, nudge, resize_to, rotate_to, flatten_transform, align, group, insert, insert_preview); updates React API (SvgEditorCanvas attach/detach lifecycle, bundled hooks: useSelection, useTool, useMode, useCanUndo, useCanRedo, usePaintPreview, usePropertyPreview, useEditorLoad, useEditorSerialize, useHoverOverride, useCameraSnapshot).
Configuration and Category Definition
docs/wg/feat-svg-editor/_category_.json
Creates SVG Editor category label for documentation sidebar.

🎯 3 (Moderate) | ⏱️ ~25 minutes

Suggested labels

svg, skills

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main changes: adding day-1 SDK design documentation including SDK skills, working group docs, and reference docs for the SVG editor.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/svg-editor

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 and usage tips.

Catch-up to current main. Brings in desktop CI work, downloads page,
electron bump, Dependabot bumps, pnpm version alignment, dev-bouman
and jolly-hugle merges. No agent-tools content — that ships separately
via the 'ai' branch (PR #737) and lands in svg-editor when that PR
merges to main.
Adopt the @grida/agent-tools package locally so the SVG-editor-side
'_ai/' consumers and editor/package.json workspace dep resolve. The
ai branch's PR (#737) ships independently to main; this local sync
keeps feature/svg-editor self-consistent until that lands.

This merge is intentionally local-only — feature/svg-editor is not
pushed from this commit. When PR #737 merges to main and we re-sync
feature/svg-editor with main, this commit's content becomes 'already
in main' and the PR diff against main loses any ai entanglement.
Lands the design substrate for the @grida/svg-editor SDK ahead of the
implementation slice. Day-1 SDK design is too load-bearing to bundle
with code that would rewrite itself against an evolving design; the
implementation slice (package + /svg demo + AI agent + slides) lands
on top in a follow-up PR.

- sdk-design / sdk-seam skills (cross-cutting; not svg-specific).
- SVG spec reference under docs/reference/svg/ (element-model,
  transform-and-frame) — used by both the editor SDK and the Rust
  SVG importer.
- feat-svg-editor WG directory: index, element-ir (typed IR
  proposal), svg-editor-intent-matrix (current-state inventory),
  hit-test (v2 architecture), feedback-transform (transform-
  pipeline critique), glossary/policy-class (the "Policy Class"
  defined term).
- Comparative research: research/usvg-tree-notes.
- Selection-intent extension: Tier-1 sub-selection scenarios
  (vertex / tangent / segment) and the absolute-gesture
  click-no-drag invariant.

Docs that critique in-flight implementation carry a header
disclaimer that the cited source paths describe a forthcoming slice
not yet on main. Status: pre-implementation; design under review.
@softmarshmallow softmarshmallow changed the title feat(svg): @grida/svg-editor package + /svg page + AI agent + slides demo docs(svg-editor): day-1 SDK design — refs, WG docs, sdk-* skills May 22, 2026
@softmarshmallow softmarshmallow marked this pull request as ready for review May 22, 2026 14:21
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 13

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
docs/wg/feat-editor/ux-surface/selection-intent.md (1)

2-11: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Include SEO metadata in frontmatter for this updated WG spec.

format: md is present, but description and keywords are missing.

As per coding guidelines, "docs/{wg,reference,editor,forms,platform,with-figma,design}/**/*.md: Use SEO frontmatter with title, description, and keywords when adding or meaningfully editing actively maintained doc pages".

🤖 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-editor/ux-surface/selection-intent.md` around lines 2 - 11, The
frontmatter for the WG spec (id: selection-intent, title: "Selection Intent:
Decision Tree") is missing SEO metadata; add a description string and a keywords
array to the YAML frontmatter (alongside existing title, tags, format) so it
follows the docs frontmatter guideline—e.g., add a descriptive description field
and a keywords field containing relevant terms (selection, intent, editor,
interaction, decision-tree) to the top of the file.
🧹 Nitpick comments (5)
docs/wg/feat-svg-editor/glossary/policy-class.md (1)

208-208: ⚡ Quick win

Specify languages for fenced code blocks to satisfy lint/build hygiene.

These fenced blocks are missing language identifiers. Add text, ts, or svg as appropriate.

Also applies to: 440-440, 517-517, 528-528, 579-579

🤖 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-editor/glossary/policy-class.md` at line 208, Several fenced
code blocks in the policy-class.md file are missing language identifiers; locate
each occurrence of a bare triple-backtick block (``` ... ```) around the
examples and add the appropriate language specifier immediately after the
opening backticks (e.g., change ``` to ```text, ```ts, or ```svg as appropriate
for the snippet). Update the specific bare blocks noted in the review (the block
at the shown range plus the ones referenced at 440, 517, 528, and 579) so
lint/build tools recognize the block languages.
docs/wg/feat-svg-editor/element-ir.md (1)

109-142: ⚡ Quick win

Mark fenced blocks with explicit languages.

These code fences should declare a language (text, ts, xml, etc.) to satisfy MD040 and keep lint passing.

Also applies to: 421-432, 459-463, 487-495, 510-522, 526-532, 555-567, 582-615, 747-749

🤖 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-editor/element-ir.md` around lines 109 - 142, The fenced
code blocks in docs/wg/feat-svg-editor/element-ir.md (notably the ASCII diagram
block showing the parser→AST→IR flow and the other fenced sections called out in
the review) are missing language identifiers; update each triple-backtick fence
to include an explicit language token (e.g., ```text, ```ts, ```xml as
appropriate for the content) so the markdown linter (MD040) passes and syntax
highlighting is correct.
docs/reference/svg/transform-and-frame.md (1)

17-21: ⚡ Quick win

Add language tags to fenced code blocks.

Several fences are missing language specifiers, which triggers MD040 and breaks doc lint consistency.

Also applies to: 31-35, 43-47, 53-57, 63-67, 83-88, 102-106, 112-117, 129-132

🤖 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/reference/svg/transform-and-frame.md` around lines 17 - 21, Several
fenced code blocks containing matrix examples like the block showing "[a c
e]\n[b d f]\n[0 0 1]" lack a language tag and are triggering MD040; update each
of these fences (including the other occurrences noted: the blocks at 31-35,
43-47, 53-57, 63-67, 83-88, 102-106, 112-117, 129-132) to include an appropriate
language specifier such as ```text (or ```svg if preferred) so the linter
recognizes them and consistency is restored.
docs/reference/svg/element-model.md (1)

17-21: ⚡ Quick win

Specify fenced code block languages to satisfy markdownlint.

These fences are unlabeled. Add language identifiers (e.g., text, md, xml) to resolve MD040 and keep docs lint-clean.

Also applies to: 31-35, 43-47, 53-57, 63-67, 83-88, 102-106, 112-117, 129-132

🤖 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/reference/svg/element-model.md` around lines 17 - 21, Several fenced
code blocks in the "Conventions" section (and other similar blocks in this
document) are unlabeled causing markdownlint MD040 failures; update each
triple-backtick fence around examples and snippets (including the blocks grouped
near the "Conventions" heading and the other blocks noted in the review) to
include an appropriate language identifier (e.g., text, md, xml) so the fences
are labeled and lint-clean, leaving the surrounding content unchanged and only
adding the language token after the opening ``` for each block.
docs/wg/feat-svg-editor/feedback-transform.md (1)

375-397: ⚡ Quick win

Track follow-up work in frontmatter (doc_tasks).

The doc explicitly lists remaining work and verification tasks; add doc_tasks (e.g. enhance) so follow-up is machine-visible.

As per coding guidelines, "docs/**/*.md: Use doc_tasks frontmatter with values like enhance, update, or translate for publishable docs that still need follow-up 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/feat-svg-editor/feedback-transform.md` around lines 375 - 397, Add a
frontmatter field named doc_tasks to the top of this document (the "Summary for
the agent" markdown) with an appropriate value such as "enhance" to mark the
listed follow-up items as machine-visible; place it in the existing
YAML/frontmatter block (or create one if missing) and include a short array or
single value like doc_tasks: ["enhance"] so downstream tooling can detect the
remaining work items.
🤖 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 @.agents/skills/sdk-design/SKILL.md:
- Around line 117-119: The fenced code block containing "primitives / math  ← 
logic core  ←  adapter shell  ←  host" is missing a language identifier and
triggers MD040; edit the fenced block in SKILL.md (the triple-backtick block at
the snippet) to include a language tag such as ```text (or ```txt) immediately
after the opening backticks so the linter recognizes it as a plain text code
block.

In @.agents/skills/sdk-seam/SKILL.md:
- Around line 85-104: The fenced ASCII diagram block is missing a language tag
(triggering MD040); update the opening fence for the diagram in SKILL.md to
include a language label (e.g., add ```text instead of ```), so the linter
recognizes it as a code block; keep the diagram contents unchanged and ensure
the fence closing line stays ``` to match the opening fence.

In `@docs/reference/svg/element-model.md`:
- Around line 1-8: The frontmatter for this Markdown page is missing required
keys; update the YAML header block to include format: md and SEO metadata by
adding a descriptive description: "…" and a keywords: [ "svg", "element model",
"geometry", "presentation", "frames", "round-trip" ] entry alongside the
existing title so the header contains at minimum title, format, description, and
keywords.

In `@docs/reference/svg/transform-and-frame.md`:
- Around line 1-9: The frontmatter for the "SVG Transforms and Coordinate
Frames" doc is missing required SEO and format fields; update the YAML block at
the top of the file (the frontmatter for title: "SVG Transforms and Coordinate
Frames") to include format: md, a descriptive description string, and a keywords
array (e.g., keywords: [svg, transforms, coordinate frames, svg-editor]) so the
page complies with the docs frontmatter guidelines.

In `@docs/wg/feat-svg-editor/element-ir.md`:
- Around line 1-9: The frontmatter for "Element IR — Typed In-Memory Model for
svg-editor" is missing required fields: add format: md, an SEO description and
keywords matching the page title, and replace or augment status: draft with the
repo's draft tracking (use draft: true for an unshippable draft or add a
doc_tasks array for a publishable page that needs follow-up). Update the top
YAML block to include format: md, title (already present), description: "<short
SEO summary>", keywords: [<relevant, comma-separated terms>], and either draft:
true or doc_tasks: [<task items>] so the file conforms to docs/* frontmatter
guidelines.

In `@docs/wg/feat-svg-editor/feedback-transform.md`:
- Around line 1-12: This doc is missing required frontmatter for active WG docs;
add a YAML frontmatter block at the top of the file containing at minimum
format: md and the SEO fields title, description, and keywords (e.g., format:
md, title: "<brief page title>", description: "<short summary>", keywords:
["keyword1","keyword2"]); ensure the frontmatter is the first content in the
file and that the keywords value is an array of strings so the page conforms to
docs/{wg,...} guidelines.

In `@docs/wg/feat-svg-editor/glossary/policy-class.md`:
- Around line 1-10: Update the Markdown frontmatter for the Policy Class doc to
include the required SEO fields: add "format: md" and a concise "description"
summarizing the page (one sentence describing what the Policy Class covers), and
add a "keywords" array containing relevant terms (e.g., "policy", "policy
class", "svg-editor", "ir", plus any existing tags). Keep the existing "title",
"tags", and "status" entries unchanged and ensure the new fields appear in the
frontmatter block at the top of the file (the document referenced by title
"Policy Class").

In `@docs/wg/feat-svg-editor/hit-test.md`:
- Around line 1-3: Add YAML frontmatter at the top of the hit-test.md document
containing at minimum title, description, keywords (as a list), and format: md;
e.g., set a descriptive title like "Hit-testing — design notes for v2", a
concise one-line description, a few relevant keywords, and format: md to avoid
MDX angle-bracket parsing, then ensure the frontmatter block is wrapped with ---
delimiters and placed before any content.

In `@docs/wg/feat-svg-editor/index.md`:
- Around line 69-73: The two absolute site URLs in
docs/wg/feat-svg-editor/index.md (the links to reference/svg/element-model.md
and reference/svg/transform-and-frame.md) should be converted to internal
relative site paths under /docs (e.g. /docs/reference/svg/element-model and
/docs/reference/svg/transform-and-frame) so they point to the local docs site
instead of absolute URLs; update the link targets in the paragraph containing
"SVG spec reference" to use the /docs/... paths while preserving the link text
and surrounding punctuation.
- Around line 1-8: The frontmatter block for the WG index page is missing
required SEO and format fields; update the YAML frontmatter at the top of the
file to include description: "<brief one-line page summary>", keywords:
["svg","svg-editor","ts-sdk"] (or other relevant keywords), and format: md in
addition to the existing title and tags so the page complies with the docs
guidelines.

In `@docs/wg/feat-svg-editor/svg-editor-intent-matrix.md`:
- Around line 1-8: The frontmatter is missing required SEO and format fields;
update the YAML frontmatter to include a descriptive `description: "<brief
summary of the document>"`, a `keywords: [list, of, relevant, tags]` array, and
`format: md` in addition to the existing `title` and `tags` keys so the document
conforms to the docs guidelines and tooling expectations.

In `@docs/wg/research/usvg-tree-notes.md`:
- Around line 1-9: The frontmatter in the usvg-tree-notes.md file is missing
required SEO and format fields; add a `description` string, a `keywords` array
(e.g., ["svg","usvg","svg-editor","research"]) and `format: md` into the YAML
frontmatter alongside the existing `title` and `tags` so the file satisfies the
docs guidelines and includes `description`, `keywords`, and `format: md`.

In `@packages/grida-svg-editor/README.md`:
- Around line 60-63: Replace the two relative links in the README—the "[Policy
Class](../../docs/wg/feat-svg-editor/glossary/policy-class.md)" link and the
"Full glossary:
[`docs/wg/feat-svg-editor/glossary/`](../../docs/wg/feat-svg-editor/glossary/)"
link—with absolute URLs (e.g., the GitHub repo or canonical docs site) so the
links work outside the repo; follow the same absolute-link pattern used
elsewhere in this file (see the link near Line 54) and update the link targets
for the "Policy Class" anchor text and the "Full glossary" reference
accordingly.

---

Outside diff comments:
In `@docs/wg/feat-editor/ux-surface/selection-intent.md`:
- Around line 2-11: The frontmatter for the WG spec (id: selection-intent,
title: "Selection Intent: Decision Tree") is missing SEO metadata; add a
description string and a keywords array to the YAML frontmatter (alongside
existing title, tags, format) so it follows the docs frontmatter guideline—e.g.,
add a descriptive description field and a keywords field containing relevant
terms (selection, intent, editor, interaction, decision-tree) to the top of the
file.

---

Nitpick comments:
In `@docs/reference/svg/element-model.md`:
- Around line 17-21: Several fenced code blocks in the "Conventions" section
(and other similar blocks in this document) are unlabeled causing markdownlint
MD040 failures; update each triple-backtick fence around examples and snippets
(including the blocks grouped near the "Conventions" heading and the other
blocks noted in the review) to include an appropriate language identifier (e.g.,
text, md, xml) so the fences are labeled and lint-clean, leaving the surrounding
content unchanged and only adding the language token after the opening ``` for
each block.

In `@docs/reference/svg/transform-and-frame.md`:
- Around line 17-21: Several fenced code blocks containing matrix examples like
the block showing "[a c e]\n[b d f]\n[0 0 1]" lack a language tag and are
triggering MD040; update each of these fences (including the other occurrences
noted: the blocks at 31-35, 43-47, 53-57, 63-67, 83-88, 102-106, 112-117,
129-132) to include an appropriate language specifier such as ```text (or ```svg
if preferred) so the linter recognizes them and consistency is restored.

In `@docs/wg/feat-svg-editor/element-ir.md`:
- Around line 109-142: The fenced code blocks in
docs/wg/feat-svg-editor/element-ir.md (notably the ASCII diagram block showing
the parser→AST→IR flow and the other fenced sections called out in the review)
are missing language identifiers; update each triple-backtick fence to include
an explicit language token (e.g., ```text, ```ts, ```xml as appropriate for the
content) so the markdown linter (MD040) passes and syntax highlighting is
correct.

In `@docs/wg/feat-svg-editor/feedback-transform.md`:
- Around line 375-397: Add a frontmatter field named doc_tasks to the top of
this document (the "Summary for the agent" markdown) with an appropriate value
such as "enhance" to mark the listed follow-up items as machine-visible; place
it in the existing YAML/frontmatter block (or create one if missing) and include
a short array or single value like doc_tasks: ["enhance"] so downstream tooling
can detect the remaining work items.

In `@docs/wg/feat-svg-editor/glossary/policy-class.md`:
- Line 208: Several fenced code blocks in the policy-class.md file are missing
language identifiers; locate each occurrence of a bare triple-backtick block
(``` ... ```) around the examples and add the appropriate language specifier
immediately after the opening backticks (e.g., change ``` to ```text, ```ts, or
```svg as appropriate for the snippet). Update the specific bare blocks noted in
the review (the block at the shown range plus the ones referenced at 440, 517,
528, and 579) so lint/build tools recognize the block languages.
🪄 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: 910553c9-f99b-4af0-841a-27d68ddfb627

📥 Commits

Reviewing files that changed from the base of the PR and between 30b99b8 and 7c07489.

📒 Files selected for processing (15)
  • .agents/skills/sdk-design/SKILL.md
  • .agents/skills/sdk-seam/SKILL.md
  • CONTRIBUTING.md
  • docs/reference/svg/element-model.md
  • docs/reference/svg/transform-and-frame.md
  • docs/wg/feat-editor/ux-surface/selection-intent.md
  • docs/wg/feat-svg-editor/_category_.json
  • docs/wg/feat-svg-editor/element-ir.md
  • docs/wg/feat-svg-editor/feedback-transform.md
  • docs/wg/feat-svg-editor/glossary/policy-class.md
  • docs/wg/feat-svg-editor/hit-test.md
  • docs/wg/feat-svg-editor/index.md
  • docs/wg/feat-svg-editor/svg-editor-intent-matrix.md
  • docs/wg/research/usvg-tree-notes.md
  • packages/grida-svg-editor/README.md

Comment thread .agents/skills/sdk-design/SKILL.md Outdated
Comment thread .agents/skills/sdk-seam/SKILL.md Outdated
Comment thread docs/reference/svg/element-model.md
Comment thread docs/reference/svg/transform-and-frame.md
Comment thread docs/wg/feat-svg-editor/element-ir.md
Comment thread docs/wg/feat-svg-editor/index.md
Comment thread docs/wg/feat-svg-editor/index.md
Comment thread docs/wg/feat-svg-editor/svg-editor-intent-matrix.md
Comment thread docs/wg/research/usvg-tree-notes.md
Comment thread packages/grida-svg-editor/README.md Outdated
Addresses PR #725 review feedback:

- Add `format: md` + SEO frontmatter (`description`, `keywords`) to
  all new docs under `docs/wg/feat-svg-editor/`, `docs/reference/svg/`,
  and `docs/wg/research/usvg-tree-notes.md`, per docs/AGENTS.md.
- Fix Docusaurus MDX build failure on `svg-editor-intent-matrix.md`
  by backtick-escaping a bare `<2` (MDX parsed it as a JSX tag with
  an invalid first character). The other new docs were already
  hazard-free outside code spans.
- Replace `status: draft` / no-status with `doc_tasks: [update]` on
  docs that critique an in-flight implementation slice (they ship
  now; the disclaimers and source-path references will be cleaned
  up when the implementation lands).
- Drop unregistered tags (`svg-editor`, `design`, `ir`, `usvg`,
  `transforms`, `intents`, `glossary`) from frontmatter; keep only
  tags registered in `docs/tags.yml` to silence tag warnings.
- Add `text` language tag to bare fenced code blocks in
  `sdk-design/SKILL.md` and `sdk-seam/SKILL.md` (MD040).
- Convert `https://grida.co/docs/...` cross-refs in
  `feat-svg-editor/index.md` to relative paths (within-/docs/
  convention).
- Convert relative `../../docs/...` links in
  `packages/grida-svg-editor/README.md` to absolute URLs (the README
  is the package's outside-the-repo surface).

Verified locally: `pnpm --filter=docs build` is clean (only pre-
existing unrelated warnings remain).
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 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-editor/glossary/policy-class.md`:
- Around line 11-16: This MD file's frontmatter is missing the required
doc_tasks field for in-flight/publishable docs; update the YAML frontmatter at
the top of policy-class.md by adding a doc_tasks entry (e.g., doc_tasks:
["update"] or ["enhance"]) so the document is marked as needing follow-up while
remaining publishable, ensuring the new key appears alongside the existing
tags/format entries in the header.
🪄 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: 0c855a7b-c6c9-4e66-8abb-4037a959fc82

📥 Commits

Reviewing files that changed from the base of the PR and between 7c07489 and 54fc5bd.

📒 Files selected for processing (12)
  • .agents/skills/sdk-design/SKILL.md
  • .agents/skills/sdk-seam/SKILL.md
  • docs/reference/svg/element-model.md
  • docs/reference/svg/transform-and-frame.md
  • docs/wg/feat-svg-editor/element-ir.md
  • docs/wg/feat-svg-editor/feedback-transform.md
  • docs/wg/feat-svg-editor/glossary/policy-class.md
  • docs/wg/feat-svg-editor/hit-test.md
  • docs/wg/feat-svg-editor/index.md
  • docs/wg/feat-svg-editor/svg-editor-intent-matrix.md
  • docs/wg/research/usvg-tree-notes.md
  • packages/grida-svg-editor/README.md
✅ Files skipped from review due to trivial changes (9)
  • .agents/skills/sdk-seam/SKILL.md
  • docs/wg/feat-svg-editor/svg-editor-intent-matrix.md
  • .agents/skills/sdk-design/SKILL.md
  • docs/wg/feat-svg-editor/index.md
  • docs/reference/svg/transform-and-frame.md
  • docs/wg/feat-svg-editor/hit-test.md
  • docs/wg/feat-svg-editor/feedback-transform.md
  • docs/wg/feat-svg-editor/element-ir.md
  • docs/reference/svg/element-model.md

Comment on lines +11 to +16
tags:
- internal
- svg
- reference
format: md
---
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add doc_tasks frontmatter for this in-flight doc.

This page is publishable but still explicitly tracks deferred/in-flight follow-up work; add doc_tasks (e.g., update) in frontmatter.

Suggested patch
 tags:
   - internal
   - svg
   - reference
+doc_tasks:
+  - update
 format: md

As per coding guidelines, docs/**/*.md: “Use doc_tasks frontmatter with values like enhance, update, or translate for publishable docs that still need follow-up 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/feat-svg-editor/glossary/policy-class.md` around lines 11 - 16, This
MD file's frontmatter is missing the required doc_tasks field for
in-flight/publishable docs; update the YAML frontmatter at the top of
policy-class.md by adding a doc_tasks entry (e.g., doc_tasks: ["update"] or
["enhance"]) so the document is marked as needing follow-up while remaining
publishable, ensuring the new key appears alongside the existing tags/format
entries in the header.

@softmarshmallow softmarshmallow merged commit d8f8c37 into main May 22, 2026
13 checks passed
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