docs(svg-editor): day-1 SDK design — refs, WG docs, sdk-* skills#725
Conversation
Placeholder commit for feature/svg-editor draft PR. The bulk of the SVG editor + /svg page + AI agent work stays unpushed locally.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughAdds 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. ChangesSVG Editor Design & SDK Discipline
🎯 3 (Moderate) | ⏱️ ~25 minutes Suggested labels
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
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.
There was a problem hiding this comment.
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 winInclude SEO metadata in frontmatter for this updated WG spec.
format: mdis present, butdescriptionandkeywordsare missing.As per coding guidelines, "
docs/{wg,reference,editor,forms,platform,with-figma,design}/**/*.md: Use SEO frontmatter withtitle,description, andkeywordswhen 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 winSpecify languages for fenced code blocks to satisfy lint/build hygiene.
These fenced blocks are missing language identifiers. Add
text,ts, orsvgas 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 winMark 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 winAdd 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 winSpecify 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 winTrack 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: Usedoc_tasksfrontmatter with values likeenhance,update, ortranslatefor 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
📒 Files selected for processing (15)
.agents/skills/sdk-design/SKILL.md.agents/skills/sdk-seam/SKILL.mdCONTRIBUTING.mddocs/reference/svg/element-model.mddocs/reference/svg/transform-and-frame.mddocs/wg/feat-editor/ux-surface/selection-intent.mddocs/wg/feat-svg-editor/_category_.jsondocs/wg/feat-svg-editor/element-ir.mddocs/wg/feat-svg-editor/feedback-transform.mddocs/wg/feat-svg-editor/glossary/policy-class.mddocs/wg/feat-svg-editor/hit-test.mddocs/wg/feat-svg-editor/index.mddocs/wg/feat-svg-editor/svg-editor-intent-matrix.mddocs/wg/research/usvg-tree-notes.mdpackages/grida-svg-editor/README.md
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).
There was a problem hiding this comment.
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
📒 Files selected for processing (12)
.agents/skills/sdk-design/SKILL.md.agents/skills/sdk-seam/SKILL.mddocs/reference/svg/element-model.mddocs/reference/svg/transform-and-frame.mddocs/wg/feat-svg-editor/element-ir.mddocs/wg/feat-svg-editor/feedback-transform.mddocs/wg/feat-svg-editor/glossary/policy-class.mddocs/wg/feat-svg-editor/hit-test.mddocs/wg/feat-svg-editor/index.mddocs/wg/feat-svg-editor/svg-editor-intent-matrix.mddocs/wg/research/usvg-tree-notes.mdpackages/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
| tags: | ||
| - internal | ||
| - svg | ||
| - reference | ||
| format: md | ||
| --- |
There was a problem hiding this comment.
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: mdAs 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.
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-editoris the proximate motivator.docs/reference/svg/) —element-model.md(per-element geometry, presentation, round-trip hazards) andtransform-and-frame.md(transform=, viewport / viewBox,<use>). Used by both the editor SDK and the Rust SVG importer.feat-svg-editorWG 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).docs/wg/research/usvg-tree-notes.md(what resvg'susvgIR normalizes away and what an editor IR must refuse).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-editorREADME — universal-route link to the IR design doc; "Policy Class" defined-terms pointer.What's deferred
The
@grida/svg-editorpackage, the/svgdemo page, the AI agent for/svg, the slides example, the package-internal docs (geometry / grouping / keybindings / element-ir-migration), and thesupabase/seed.md-driven local sign-in note inCONTRIBUTING.mdall 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-editorimplementation that lives on a private branch and is not yet onmain. Source paths underpackages/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 cleangrida.co/_/docs/wg/feat-svg-editor/...,grida.co/_/docs/reference/svg/...)https://github.com/.../blob/main/<deferred-path>links remain in the design docsSummary by CodeRabbit
Documentation
Contributing