[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-figma-generate-project-plan":3,"mdc-kv350-key":37,"related-org-figma-generate-project-plan":6669,"related-repo-figma-generate-project-plan":6838},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"generate-project-plan","generate FigJam project plan boards","Generate a FigJam project plan board from a PRD plus codebase context. Interactive flow: research → propose sections → per-section deep research → per-section content + block-shape proposal → create FigJam → skeleton → fill → diagrams → wrap. Each content block (section, nested section, intro callout, table, multi-column text, sticky column, diagram section, metadata strip) has its own subskill reference file. Use when the user asks for 'project plan in FigJam', 'interactive project plan', '\u002Fgenerate-project-plan', or provides a PRD and wants per-section confirmation on content + rendering.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"figma","Figma","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Ffigma.png",[12,16,19,22,23],{"name":13,"slug":14,"type":15},"Research","research","tag",{"name":17,"slug":18,"type":15},"Productivity","productivity",{"name":20,"slug":21,"type":15},"Project Management","project-management",{"name":9,"slug":8,"type":15},{"name":24,"slug":25,"type":15},"Design","design",1805,"https:\u002F\u002Fgithub.com\u002Ffigma\u002Fmcp-server-guide","2026-04-28T05:43:54.112446",null,164,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"A guide on how to use the Figma MCP server","https:\u002F\u002Fgithub.com\u002Ffigma\u002Fmcp-server-guide\u002Ftree\u002FHEAD\u002Fworkflow-skills\u002Fgenerate-project-plan","---\nname: generate-project-plan\ndescription: \"Generate a FigJam project plan board from a PRD plus codebase context. Interactive flow: research → propose sections → per-section deep research → per-section content + block-shape proposal → create FigJam → skeleton → fill → diagrams → wrap. Each content block (section, nested section, intro callout, table, multi-column text, sticky column, diagram section, metadata strip) has its own subskill reference file. Use when the user asks for 'project plan in FigJam', 'interactive project plan', '\u002Fgenerate-project-plan', or provides a PRD and wants per-section confirmation on content + rendering.\"\ndisable-model-invocation: false\n---\n\n# generate-project-plan\n\nTurn a PRD (plus optional codebase grounding) into a FigJam project plan board. Section set is not fixed — the skill proposes candidates from the research and the user picks which to include. For each picked section, the skill proposes content + rendering shape (block) and the user confirms.\n\n## Mandatory prerequisites\n\n**Foundation skills** (load by name; available in `figma\u002Fmcp-server-guide`):\n\n- `figma-use` — **Load once per session.** Stays in context for all `use_figma` calls.\n- `figma-use-figjam` — **Re-load before every `use_figma` call.**\n- `figma-generate-diagram` — **Re-load before every `generate_diagram` call.**\n\n**Foundation references** (in this plugin):\n\n- [`foundation\u002Fpalette.md`](references\u002Ffoundation\u002Fpalette.md) — section + sticky + text palette constants (`hex\u002F255`).\n- [`foundation\u002Flayout.md`](references\u002Ffoundation\u002Flayout.md) — canvas geometry, sizing rules, placeholder lifecycle.\n- [`foundation\u002Fplugin-api-traps.md`](references\u002Ffoundation\u002Fplugin-api-traps.md) — documented traps for FigJam `use_figma`.\n- [`foundation\u002Fcodebase-grounding.md`](references\u002Ffoundation\u002Fcodebase-grounding.md) — Step 1 expansion rules.\n\n**Section catalog**:\n\n- [`section-catalog.md`](references\u002Fsection-catalog.md) — the ~10 candidate sections with default blocks and palette.\n\n**Block subskills** (one per content type — re-load the one(s) you need before each `use_figma` fill call):\n\n| Block | File | When to load |\n|---|---|---|\n| Top-level section | [`blocks\u002Fsection.md`](references\u002Fblocks\u002Fsection.md) | Skeleton pass (Step 6) and every fill call (Step 7) |\n| Nested section | [`blocks\u002Fnested-section.md`](references\u002Fblocks\u002Fnested-section.md) | Fills that group sub-content (e.g. \"Design Decisions 1\u002F2\u002F3\") |\n| Intro callout | [`blocks\u002Fintro-callout.md`](references\u002Fblocks\u002Fintro-callout.md) | Fills that open with a highlighted intro (e.g. Motivation) |\n| Text primitives | [`blocks\u002Ftext-primitives.md`](references\u002Fblocks\u002Ftext-primitives.md) | Any fill that uses body paragraphs, H3 subheaders, or bulleted lists |\n| Table | [`blocks\u002Ftable.md`](references\u002Fblocks\u002Ftable.md) | Fills with structured data (Resources, Goals, Dependencies, Rollout, Milestones) |\n| Multi-column text | [`blocks\u002Fmulti-column-text.md`](references\u002Fblocks\u002Fmulti-column-text.md) | Fills with 2–4 option columns (Design Decisions alternatives) |\n| Sticky column | [`blocks\u002Fsticky-column.md`](references\u002Fblocks\u002Fsticky-column.md) | Fills with lists of stickies (Success Metrics, Risks, Open Questions) |\n| Diagram section | [`blocks\u002Fdiagram-section.md`](references\u002Fblocks\u002Fdiagram-section.md) | Right-column diagram sections (Step 8) |\n| Metadata strip | [`blocks\u002Fmetadata-strip.md`](references\u002Fblocks\u002Fmetadata-strip.md) | Skeleton pass — one metadata strip at top of board |\n\n**Also pass** `skillNames: \"figma-use,figma-use-figjam,generate-project-plan\"` on `use_figma` calls (logging only).\n\n## Visual UI conventions — STRICT, do not deviate\n\nThese are derived from a canonical reference board. Read the source-of-truth files for the full constants; this section is a single-place summary so an agent can answer \"what color \u002F size \u002F font \u002F padding?\" without hunting.\n\n### Colors (two-tone per section)\n\nEvery left-column section uses **two coordinated colors** of the same hue: a very-pale `ARCH_PALE` background, and a slightly-more-saturated FigJam-`SECTION` palette color for any table header inside that section. Right-column diagram sections are pure white.\n\n| Section bg (`ARCH_PALE.X`) | Table header (`TABLE_HEADER.lightX`) | Hue |\n|---|---|---|\n| `#F8F5FF` | `#DCCCFF` | violet |\n| `#EBFFEE` | `#CDF4D3` | green |\n| `#DBF0FF` | `#C2E5FF` | blue |\n| `#F5FBFF` (alt) | `#C2E5FF` | pale blue |\n| `#FFF7F0` | `#FFE0C2` | orange |\n| `#F1FEFD` | `#C6FAF6` | teal |\n| `#FFFBF0` | `#FFEC BD` | yellow |\n| `#FFEEF8` | `#FFC2EC` | pink |\n| `#FFEEE8` | `#FFCDC2` | red |\n\nSource: `references\u002Ffoundation\u002Fpalette.md`. Never use the dark-saturated palette (`#874FFF`, `#3DADFF`, etc.) for table headers — that's for FigJam's standalone tables, not project-plan boards.\n\nArchitecture-diagram subgraph colors are auto-applied by `generate_diagram` and **must not be overridden**. Their canonical values: `client #AFF4C6` rounded-rect, `gateway #FFFFFF` square (diamond if labeled \"Load Balancer\"\u002F\"ALB\"\u002F\"LB\"), `service #E4CCFF` square, `datastore #BDE3FF` cylinder, `external #FFFFFF` PREDEFINED_PROCESS, `async #BDE3FF` ENG_QUEUE.\n\n### Typography (font sizes)\n\n| Element | Size | Font | Color |\n|---|---|---|---|\n| H1 (board title) | **40** | Inter Medium | `#1E1E1E` |\n| H2 (section title — first child of every section) | 40 | Inter Medium | `#1E1E1E` |\n| H3 — full-width subhead (e.g. \"Resources\" inside Motivation) | **40** | Inter Medium | `#1E1E1E` |\n| H3 — nested-section header (e.g. \"Design Decision 1: …\") | **32** | Inter Medium | `#1E1E1E` |\n| H3 — column title in 2\u002F3\u002F4-col layouts (Risks col, Goals col) | **24** | Inter Medium | `#1E1E1E` |\n| Body text | 16 | Inter Medium | `#1E1E1E` |\n| Table cells (header AND body) | 16 | **Inter Bold** | `#1E1E1E` |\n\nThe three different H3 sizes are deliberate. 40 = matches H2 weight when subhead is alone in the section. 32 = sub-section header inside a child section (672px inner width). 24 = column title in narrow contexts (≤ 224px col width). Pick by **container width**, not by semantic depth.\n\nAlways load both `Inter Medium` AND `Inter Bold` at the top of any `use_figma` script that creates tables (Bold) plus any other text (Medium).\n\n### Section properties\n\n| Property | Value |\n|---|---|\n| `section.fills` | `[{ type: 'SOLID', color: ARCH_PALE.X }]` (left column) or `ARCH_PALE.white` (right column \u002F diagrams) |\n| `section.name` | `\"\"` — empty string. NO FigJam title-bar label. The H2 inside is the only title. |\n| Inner padding (all 4 sides) | 32 (current default; reference uses 40-50, kept at 32 for now) |\n| First child position | `(32, 32)` |\n| Width (left column) | 800 |\n| Width (right column \u002F diagram) | `max(1200, diag.width + 64)` after diagram is reparented |\n| Vertical gap between sections (inside the wrapper) | **64** |\n| Hug behavior | Manual: call `section.resizeWithoutConstraints(w, maxChildBottom + 32)` after appending children. Sections do NOT auto-grow. |\n| Placeholder during build | `placeholder = true` in skeleton pass; `placeholder = false` at the end of the section's fill. |\n\n### Outer wrapper + column alignment (STRICT defaults)\n\nThe board has **one outer wrapper** (unlabeled, white) plus the diagram column:\n\n1. **Column wrapper** — an unlabeled white SECTION at `(_, 0)`. Contains, in order from top:\n   - H1 project title (40px Inter Medium, charcoal) at `(64, 64)` (= section padding)\n   - Body row of metadata: Owner \u002F Status \u002F Last updated \u002F Source (16px Inter Medium, charcoal), at `(64, h1.y + h1.height + 16)` — 16px gap below H1; 32px gap between each body cell\n   - 64px gap below the body row, then the 6 left-column sections stacked with 64px gutter\n2. **Diagram column** at `(columnWrapperRight + 64, 0)`. Each diagram is its own un-wrapped white SECTION; the **top diagram's y aligns with the column wrapper's y (= 0)**. Diagrams stack with 64px gutter.\n\nThe metadata is **embedded** in the column wrapper (NOT a separate section). One column wrapper holds everything text-related.\n\n**Constants:**\n- Wrapper inner padding (all 4 sides): **64**\n- Vertical gap between sections inside the wrapper: **64**\n- Horizontal gap between wrapper right edge and diagram-column left edge: **64**\n- Top of the diagram column aligns with `wrapper.y` (same horizontal axis as the wrapper top edge)\n- Vertical gap between stacked diagram sections: **64** (matches the inner gutter)\n\n```js\nconst PAD = 64;\nconst leftIds = [\u002F* all left-column section ids in order *\u002F];\nconst sections = [];\nfor (const id of leftIds) sections.push(await figma.getNodeByIdAsync(id));\n\n\u002F\u002F Compute bbox of the column in page coords\nlet minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\nfor (const s of sections) {\n  minX = Math.min(minX, s.x); minY = Math.min(minY, s.y);\n  maxX = Math.max(maxX, s.x + s.width); maxY = Math.max(maxY, s.y + s.height);\n}\n\nconst wrapper = figma.createSection();\nwrapper.name = \"\";                                                              \u002F\u002F STRICT\nwrapper.fills = [{ type: 'SOLID', color: WHITE }];                              \u002F\u002F ARCH_PALE.white\nwrapper.resizeWithoutConstraints((maxX - minX) + 2*PAD, (maxY - minY) + 2*PAD);\nwrapper.x = minX - PAD;\nwrapper.y = minY - PAD;\n\n\u002F\u002F Reparent + translate to keep visual positions\nfor (const s of sections) {\n  const newX = (s.x - minX) + PAD;\n  const newY = (s.y - minY) + PAD;\n  wrapper.appendChild(s);\n  s.x = newX;\n  s.y = newY;\n}\n```\n\nThe wrapper has no header (no H2 inside) and no name — it's a pure container. Don't repeat the project title here; that lives in the metadata strip.\n\n**Position the diagram column** after the wrapper exists:\n\n```js\nconst wrapperRight = wrapper.x + wrapper.width;\nconst diagramX = wrapperRight + 64;       \u002F\u002F 64px horizontal gap matches inter-section gutter\nlet y = wrapper.y;                          \u002F\u002F align top with wrapper's top edge\nfor (const id of diagramSectionIdsInOrder) {\n  const d = await figma.getNodeByIdAsync(id);\n  d.x = diagramX;\n  d.y = y;\n  y += d.height + 64;                     \u002F\u002F 64px vertical gutter between stacked diagrams\n}\n```\n\n### Vertical spacing (STRICT)\n\n| Between | Gap |\n|---|---|\n| Section top edge → H2 (first child) | 32 (= padding) |\n| H2 → next child (body \u002F intro callout \u002F H3 \u002F table \u002F first column) | **24** |\n| Body paragraph → H3 | **24** |\n| H3 (any size: 40 \u002F 32 \u002F 24) → next child (body \u002F table \u002F list \u002F column content) | **24** |\n| Body → body | **24** |\n| List → next block | **24** |\n| Last child bottom → section bottom edge | 32 (= padding) |\n\n**Always position children using `prevChild.y + prevChild.height + 24`** — never use a fixed offset like `prevChild.y + 60`. The H3 has three different sizes (40 \u002F 32 \u002F 24), so a fixed offset is wrong by definition; always read `prevChild.height` after the font size is set.\n\n**When you change a header's font size after the fact, you MUST re-stack downstream children.** Setting `h3.fontSize = 40` grows the node's height; if the next child's `y` was computed before the resize, it will overlap.\n\n### Tables\n\n- **Both header AND body cells** use `Inter Bold` 16px (NOT Medium).\n- Header text is `#1E1E1E` charcoal on a light fill (matching the section's hue).\n- Body cells leave fill at default white; text is charcoal.\n- Headers do NOT use white-on-dark — that's wrong for this board style.\n\n### Diagrams (right column)\n\n`generate_diagram` with `useArchitectureLayoutCode: \"FIGMA_DIAGRAM_2026\"` produces **multiple page-level nodes** (1–2 subgraph SECTIONs + bare SHAPE_WITH_TEXTs + CONNECTORs), NOT a single container. To wrap them in a section:\n1. Collect all new page-level nodes (exclude known plan-section IDs).\n2. Compute the bbox.\n3. Create a new SECTION sized to `bboxW + 64 × bboxH + 64 + 64` (HEADER_BLOCK = 40 H2 + 24 gap), fill `ARCH_PALE.white`.\n4. Reparent each diagram node, translating local coords to maintain visual layout.\n5. **CRITICAL — delete and recreate every connector after reparent.** The assign-to-self trick (`c.connectorStart = c.connectorStart`) is NOT reliable: short connectors re-route fine, but long-bend connectors retain stale elbow waypoints and extend hundreds of pixels outside the section. Delete + `figma.createConnector()` from captured spec produces a clean route every time. See [`blocks\u002Fdiagram-section.md`](references\u002Fblocks\u002Fdiagram-section.md) for the spec-capture + recreate pattern.\n6. **Connector labels — explicit `fontName` + `fontSize` + `fills` ALL required.** A fresh connector's `text` sublayer has no usable defaults. Set ALL FOUR: `c.text.fontName = { family: 'Inter', style: 'Medium' }`, `c.text.fontSize = 14`, `c.text.characters = label`, `c.text.fills = [{ type: 'SOLID', color: CHARCOAL }]`. Default `text.fills` is **`[]` (empty array)** so the label renders **transparent** and is invisible — read-back of `c.text.characters` lies; verify with a screenshot.\n\nDiagram-section convention: `section.name = \"\"`, H2 text node inside as the title (matches the rest of the board).\n\n### What NOT to use (common wrong defaults)\n\n| Don't use | Use instead | Why |\n|---|---|---|\n| `#CDF4D3` (FigJam lightGreen) for section bg | `#EBFFEE` (ARCH_PALE.green) | Too saturated next to diagrams |\n| `#C2E5FF` (FigJam lightBlue) for section bg | `#DBF0FF` or `#F5FBFF` (ARCH_PALE.blue \u002F blueLite) | Same |\n| `#874FFF` (FigJam dark violet) for table header | `#DCCCFF` (FigJam lightViolet) | Reference uses light-on-pale, not dark-on-pale |\n| White text on dark table header | `#1E1E1E` charcoal text on light header | Same — pale-on-pale convention |\n| `Inter Medium` for table cells | `Inter Bold` | Reference uses Bold for all cells |\n| `section.name = \"Goals\"` (or any non-empty string) | `section.name = \"\"` | Reference uses empty names; H2 inside is the title |\n| Reparenting only one subgraph from a generated diagram | Reparent ALL page-level nodes (SECTIONs + SHAPEs + CONNECTORs) | Architecture diagrams are not single nodes |\n| Trusting `c.connectorStart = c.connectorStart` to re-route every connector | After reparent, **delete and recreate every connector** from a captured spec | Long-bend connectors retain stale elbow waypoints; only `figma.createConnector()` produces a fresh route |\n| Setting only `c.text.characters = label` on a fresh connector | Set `c.text.fontName`, `c.text.fontSize`, `c.text.characters`, AND `c.text.fills` | Defaults: fontSize=missing, fills=`[]` (empty array → transparent) → label invisible despite correct read-back |\n\n## Step template\n\nEvery step below uses this shape. Read the step, then execute.\n\n```\n## Step N — \u003CName>  [Type: Research | Confirm | Write]\nInputs required: …\nAsk if missing: …\nTools \u002F refs loaded: …\nDo: (3–6 action bullets)\nCheckpoint: (Research → self-check; Confirm → AskUserQuestion; Write → screenshot + AskUserQuestion)\n```\n\nThree step types:\n- **Research** — read-only; checkpoint = self-check list.\n- **Confirm** — no board writes, user decision gate; checkpoint = `AskUserQuestion`.\n- **Write** — creates\u002Fmutates FigJam; checkpoint = screenshot + `AskUserQuestion`.\n\n---\n\n## Step 1 — Gather context  [Research]\n\n**Inputs required**\n- PRD file path or pasted text.\n- Optional: codebase entry points (file paths, service names, doc paths).\n\n**Ask if missing**\n- \"Where's the PRD? (path or paste).\"\n- \"Any codebase entry points I should ground in? (paths \u002F services \u002F docs \u002F 'none').\"\n\n**Tools \u002F refs loaded**\n- `Read`, `Glob`, `Grep`.\n- [`foundation\u002Fcodebase-grounding.md`](references\u002Ffoundation\u002Fcodebase-grounding.md).\n\n**Do**\n1. Read the PRD. Extract: title, problem, goals, non-goals, owner, audience, success metrics, rollout hints, risks.\n2. If entry points provided: follow `codebase-grounding.md` — bounded 20-file cap, depth-1 imports, walk up to `CLAUDE.md`\u002F`ARCHITECTURE.md`\u002F`OWNERS`.\n3. Produce the **tech-context object**: `files_read`, `services`, `external_deps`, `key_modules`, `architecture_notes`, `ownership`, `expansion_truncated`.\n\n**Self-check**\n- Have: project title, problem statement, at least 1 concrete goal, owner (or \"TBD\"), services touched (or empty list with a reason).\n- Enough signal to draft candidate section cards in Step 2. If not, loop back and ask.\n\n---\n\n## Step 2 — Propose candidate sections  [Confirm]\n\n**Inputs required**\n- Tech-context object from Step 1.\n\n**Tools \u002F refs loaded**\n- [`section-catalog.md`](references\u002Fsection-catalog.md).\n- `AskUserQuestion`.\n\n**Do**\n1. For each section in the catalog, decide if there is *real content* for it from Step 1. Skip catalog entries that would be empty or padding.\n2. For each qualifying candidate, produce a card:\n   - **Title** (catalog name)\n   - **1-line description** (what this section will contain, specific to the PRD)\n   - **Why suggested** (which PRD facts or tech-context items justify it)\n   - **Default block shape** (from the catalog)\n3. Print all cards to chat.\n4. Fire `AskUserQuestion` with a multiSelect question **per batch of ≤4 candidates** (max 4 questions per call, 4 options each → up to 16 candidates per call). Each option's label is the section title; description is the 1-line summary.\n\n**Checkpoint (AskUserQuestion)**\n- The multiSelect questions above. User ticks the sections they want. Store the selected set as `approved_sections`.\n- If zero sections selected → stop with a clean exit message. No file is created.\n\n---\n\n## Step 3 — Per-section deep research  [Research]\n\n**Inputs required**\n- `approved_sections` from Step 2; tech-context from Step 1.\n\n**Tools \u002F refs loaded**\n- `Read`, `Grep`, `Glob` (optional).\n\n**Do**\n1. For each section in `approved_sections`, look up its catalog entry. The catalog declares what the section needs (e.g. Dependencies needs cross-team services + external deps + blockers).\n2. Compare what the section needs vs. what the tech-context has.\n3. Produce a **gap list per section**: specific facts the user must supply, framed as answerable questions (no \"figure it out yourself\" gaps).\n\n**Self-check**\n- Every `approved_sections` entry has either `ready` (no gaps) or a specific non-empty gap list.\n- Gaps are answerable — not vague prompts like \"tell me more about X.\"\n\n---\n\n## Step 4 — Per-section content + block proposal  [Confirm]\n\n**Inputs required**\n- Gap lists from Step 3.\n\n**Tools \u002F refs loaded**\n- `AskUserQuestion`.\n- [`section-catalog.md`](references\u002Fsection-catalog.md).\n- Block reference(s) for the section's default shape (e.g. `blocks\u002Ftable.md` for Dependencies).\n\n**Do**, per section (one at a time, or small batch if trivial):\n1. Fill the gap list — free-text prompt for prose; `AskUserQuestion` for bounded choices.\n2. Propose:\n   - **Content**: the concrete bullets \u002F rows \u002F stickies that will appear.\n   - **Block shape**: the rendering block (body paragraph \u002F table \u002F multi-column \u002F sticky column \u002F …). Default from `section-catalog.md`; offer alternative shapes where sensible (e.g. \"As a table, or as a multi-column layout?\").\n3. Show a short preview — section title + first line of body + block type summary.\n4. Fire `AskUserQuestion`: \"Use this content + shape? [Yes \u002F Edit \u002F Skip this section].\"\n5. Edit → accept free-text amendments, re-show, re-ask. Skip → mark the section as `skipped`; do not write it to the board.\n\n**Checkpoint**\n- Every section is `approved`, `edited+approved`, or `skipped`. No board writes yet.\n\n---\n\n## Step 5 — Create FigJam file  [Write]\n\n**Inputs required**\n- `approved_sections` (non-skipped); project title; `planKey` (Figma team plan).\n\n**Tools \u002F refs loaded**\n- `create_new_file` MCP tool.\n- `whoami` MCP tool (for `planKey` if not known).\n- `use_figma` (once).\n- `figma-use` (already in context from Step 5 onward).\n- `figma-use-figjam` (re-loaded for the probe).\n- `AskUserQuestion`.\n\n**Do**\n1. Resolve `planKey`: call `whoami`. If one plan → use it. If multiple → `AskUserQuestion` which team.\n2. Call `create_new_file` with `{ planKey, fileName: \"\u003Cproject title>\", editorType: \"figjam\" }`. Capture `file_key` + `file_url`.\n3. Run the first-run probe (`use_figma`):\n\n```js\nconst page = figma.currentPage;\nreturn {\n  rootName: figma.root.name,\n  editorType: figma.editorType,\n  pageCount: figma.root.children.length,\n  firstPageName: figma.root.children[0].name,\n  currentPageChildrenCount: page.children.length,\n};\n```\n\nExpect `editorType === \"figjam\"` and empty page. If not, halt and report.\n\n**Checkpoint (probe output + AskUserQuestion)**\n- Print probe return + `file_url`.\n- AskUserQuestion: \"File created at `\u003Cfile_url>` — proceed to skeleton? [Yes \u002F Cancel].\" Cancel = stop, leave empty file.\n\n---\n\n## Step 6 — Skeleton pass  [Write]\n\n**Inputs required**\n- `approved_sections` in taxonomy order; palette from `foundation\u002Fpalette.md`; layout constants from `foundation\u002Flayout.md`.\n\n**Tools \u002F refs loaded**\n- `use_figma` (one call).\n- Re-load `figma-use-figjam\u002FSKILL.md`.\n- Re-load `blocks\u002Fsection.md` and `blocks\u002Fmetadata-strip.md`.\n- [`foundation\u002Fpalette.md`](references\u002Ffoundation\u002Fpalette.md), [`foundation\u002Flayout.md`](references\u002Ffoundation\u002Flayout.md).\n\n**Do**\n1. Create metadata strip per `blocks\u002Fmetadata-strip.md` (H1 + 4 body texts at board `(0, 0)`–`(0, ~100)`).\n2. For each approved section, create a top-level SECTION per `blocks\u002Fsection.md` — colored bg from ARCH_PALE, `section.name = \"\"` (no title-bar label — STRICT), `placeholder = true`, `resizeWithoutConstraints(LEFT_COL_W, DEFAULT_H)` for left-column sections or `resizeWithoutConstraints(RIGHT_COL_W_MIN, DEFAULT_H)` for right-column diagram sections.\n3. Position each left-column section at `(0, SECTION_TOP_Y + cumulative_y)`. Right-column sections at `(832, SECTION_TOP_Y + cumulative_y_right)`.\n4. Return all created node IDs: `{ createdNodeIds: { metadataStrip: {...}, sections: { \u003Cslug>: \"\u003Cid>\", ... } }, status: \"skeleton-complete\" }`. (The `slug` is internal, used to look up palette + drive Step 7 fills. It is never written to `section.name`.)\n5. Take an inline screenshot at `await figma.currentPage.screenshot({ scale: 0.3 })`.\n\n**Checkpoint (screenshot + AskUserQuestion)**\n- AskUserQuestion: \"Skeleton looks right? [Yes \u002F Fix \u002F Cancel].\" Fix = targeted fix script; Cancel = stop.\n\n---\n\n## Step 7 — Fill pass (one call per section)  [Write]\n\n**Inputs required**\n- Approved content + block shape for each section; section ID from Step 6.\n\n**Tools \u002F refs loaded**\n- `use_figma` (one call per section).\n- Re-load `figma-use-figjam\u002FSKILL.md`.\n- Re-load whichever block refs this section uses:\n  - `blocks\u002Fsection.md` always.\n  - `blocks\u002Ftext-primitives.md` if body\u002FH3\u002Flist.\n  - `blocks\u002Ftable.md` if table.\n  - `blocks\u002Fmulti-column-text.md` if multi-column.\n  - `blocks\u002Fnested-section.md` if nested subsections.\n  - `blocks\u002Fintro-callout.md` if highlighted intro.\n  - `blocks\u002Fsticky-column.md` if stickies.\n\n**Do**, per section:\n1. `await figma.getNodeByIdAsync(sectionId)` — confirm type is SECTION.\n2. Build content: H2 header first, then children per approved block shape. Append to section FIRST, then set x\u002Fy.\n3. Two-pass measure for stickies per `blocks\u002Fsticky-column.md`.\n4. `section.resizeWithoutConstraints(LEFT_COL_W, computed_height)`.\n5. `section.placeholder = false`.\n6. `await section.screenshot()` inline.\n7. `return { mutatedNodeIds: [...], sectionHeight, screenshotIncluded: true }`.\n\n**Checkpoint (screenshot + AskUserQuestion)**\n- Per section: AskUserQuestion: \"Section `\u003Cname>` done? [Yes \u002F Edit this section \u002F Skip rest].\" Edit = targeted fix; Skip rest = exit fill loop (user will finalize manually).\n\n**After all left-column fills**: run the re-stack pass (single `use_figma`) to fix cumulative Y based on actual resized heights:\n\n```js\nlet y = SECTION_TOP_Y;\nfor (const id of leftColumnSectionIdsInOrder) {\n  const sec = await figma.getNodeByIdAsync(id);\n  sec.y = y;\n  sec.x = 0;\n  y += sec.height + 32;\n}\nreturn { mutatedNodeIds: leftColumnSectionIdsInOrder };\n```\n\n**Then run the outer-wrapper pass** (single `use_figma`) — wrap all left-column sections in an unlabeled white outer SECTION (see \"Outer column wrapper\" in the visual conventions block above). This is STRICT; do not skip.\n\n---\n\n## Step 8 — Diagrams  [Write]\n\n**Inputs required**\n- Diagram intents from Step 2\u002F4 (Current State, Target State, 0–N Key Flows); tech-context for Mermaid composition.\n\n**Tools \u002F refs loaded**\n- Re-load `generate-diagram\u002FSKILL.md` before each `generate_diagram` call.\n- Re-load `figma-use-figjam\u002FSKILL.md` + `blocks\u002Fdiagram-section.md` before each reparent `use_figma` call.\n- `generate_diagram` MCP tool, `use_figma`.\n\n**Do**, per diagram:\n1. `use_figma`: create the right-column section (white fill, H2 header, `placeholder = true`) per `blocks\u002Fdiagram-section.md`.\n2. `generate_diagram`: compose Mermaid from tech-context; architecture diagrams use `useArchitectureLayoutCode: \"FIGMA_DIAGRAM_2026\"`.\n3. `use_figma`: locate the generated diagram node, reparent into the section (`section.appendChild(diag)`), position below H2, resize section to fit. `placeholder = false`.\n4. `await section.screenshot()`.\n\n**Failure handling**: if `generate_diagram` fails, leave a text placeholder in the section reading `\"Diagram generation failed: \u003Cmessage>. Regenerate manually.\"` Continue to the next diagram.\n\n**Checkpoint (screenshot + AskUserQuestion)**\n- Per diagram: AskUserQuestion: \"Diagram `\u003Cname>` looks right? [Yes \u002F Regenerate \u002F Skip].\"\n\n---\n\n## Step 9 — Final review + report  [Write, then Read]\n\n**Inputs required**\n- `file_url` from Step 5.\n\n**Tools \u002F refs loaded**\n- `use_figma` (one call for full-page screenshot).\n\n**Do**\n1. `await figma.currentPage.screenshot({ scale: 0.25 })` — full board.\n2. Inspect: two-column structure, no overlaps, no sections left with `placeholder = true`, metadata strip visible.\n3. Fix any issues with a targeted `use_figma` script. Do **not** regenerate from scratch.\n4. Post to chat:\n\n```\n✅ Project plan written to FigJam.\nFile: \u003Cfile_url>\nSections: \u003CN text + N diagram>\nFiles referenced during grounding: \u003Ccount>\n```\n\n**Checkpoint (screenshot + AskUserQuestion)**\n- AskUserQuestion: \"Done, or tweak? [Done \u002F Tweak].\" Tweak = targeted fix script on user's request, not regeneration.\n\n---\n\n## Operational rules\n\n- ≤10 logical operations per `use_figma` call.\n- Always return `createdNodeIds` \u002F `mutatedNodeIds` from every write script.\n- Use `hex\u002F255` notation for all palette colors (see `foundation\u002Fpalette.md`).\n- **STRICT: section backgrounds use the `ARCH_PALE` palette, NOT the FigJam standard SECTION palette.** ARCH_PALE colors (`#EBFFEE`, `#F8F5FF`, `#F5FBFF`, `#FFF7F0`, etc.) visually pair with the architecture-diagram subgraph wrappers that `generate_diagram` produces. The FigJam SECTION palette (`#CDF4D3`, `#C2E5FF`, `#DCCCFF`, `#FFE0C2`) is too saturated and causes visible color clash next to diagrams. See `foundation\u002Fpalette.md`.\n- **STRICT: `section.name = \"\"` on every project-plan section (left-column, right-column, and nested children).** The user-facing title is rendered as the H2 text node *inside* the section, NOT via FigJam's section title-bar label. The reference board uses empty section names; setting a non-empty `name` produces a duplicate label that visually clutters the board.\n- Read, edit, or cancel at every Confirm\u002FWrite checkpoint — never write past an unanswered AskUserQuestion.\n- If a `use_figma` script errors: atomic — no changes made. Read the error, fix, retry.\n\n## Trigger phrases\n\n\"\u002Fgenerate-project-plan\", \"interactive project plan\", \"project plan\", \"make a FigJam project plan\", \"PRD to FigJam\".\n",{"data":38,"body":40},{"name":4,"description":6,"disable-model-invocation":39},false,{"type":41,"children":42},"root",[43,50,56,63,83,157,167,246,256,274,291,558,583,589,594,601,629,906,934,1001,1007,1229,1241,1267,1273,1475,1481,1493,1574,1586,1594,1648,2837,2842,2852,3170,3176,3298,3330,3355,3361,3403,3409,3434,3612,3625,3631,3941,3947,3952,3962,3967,4012,4016,4026,4034,4047,4055,4068,4076,4115,4123,4227,4235,4248,4251,4261,4268,4276,4283,4307,4314,4402,4410,4430,4433,4443,4450,4463,4470,4495,4502,4534,4541,4569,4572,4582,4589,4597,4604,4640,4649,4735,4743,4773,4776,4786,4793,4814,4821,4892,4899,4972,5237,5250,5258,5292,5295,5305,5312,5338,5345,5407,5414,5545,5553,5568,5571,5581,5588,5596,5603,5704,5713,5784,5791,5814,5831,6071,6088,6091,6101,6108,6116,6123,6183,6192,6267,6292,6299,6320,6323,6334,6341,6354,6361,6374,6381,6431,6440,6447,6462,6465,6471,6652,6658,6663],{"type":44,"tag":45,"props":46,"children":47},"element","h1",{"id":4},[48],{"type":49,"value":4},"text",{"type":44,"tag":51,"props":52,"children":53},"p",{},[54],{"type":49,"value":55},"Turn a PRD (plus optional codebase grounding) into a FigJam project plan board. Section set is not fixed — the skill proposes candidates from the research and the user picks which to include. For each picked section, the skill proposes content + rendering shape (block) and the user confirms.",{"type":44,"tag":57,"props":58,"children":60},"h2",{"id":59},"mandatory-prerequisites",[61],{"type":49,"value":62},"Mandatory prerequisites",{"type":44,"tag":51,"props":64,"children":65},{},[66,72,74,81],{"type":44,"tag":67,"props":68,"children":69},"strong",{},[70],{"type":49,"value":71},"Foundation skills",{"type":49,"value":73}," (load by name; available in ",{"type":44,"tag":75,"props":76,"children":78},"code",{"className":77},[],[79],{"type":49,"value":80},"figma\u002Fmcp-server-guide",{"type":49,"value":82},"):",{"type":44,"tag":84,"props":85,"children":86},"ul",{},[87,114,136],{"type":44,"tag":88,"props":89,"children":90},"li",{},[91,97,99,104,106,112],{"type":44,"tag":75,"props":92,"children":94},{"className":93},[],[95],{"type":49,"value":96},"figma-use",{"type":49,"value":98}," — ",{"type":44,"tag":67,"props":100,"children":101},{},[102],{"type":49,"value":103},"Load once per session.",{"type":49,"value":105}," Stays in context for all ",{"type":44,"tag":75,"props":107,"children":109},{"className":108},[],[110],{"type":49,"value":111},"use_figma",{"type":49,"value":113}," calls.",{"type":44,"tag":88,"props":115,"children":116},{},[117,123,124],{"type":44,"tag":75,"props":118,"children":120},{"className":119},[],[121],{"type":49,"value":122},"figma-use-figjam",{"type":49,"value":98},{"type":44,"tag":67,"props":125,"children":126},{},[127,129,134],{"type":49,"value":128},"Re-load before every ",{"type":44,"tag":75,"props":130,"children":132},{"className":131},[],[133],{"type":49,"value":111},{"type":49,"value":135}," call.",{"type":44,"tag":88,"props":137,"children":138},{},[139,145,146],{"type":44,"tag":75,"props":140,"children":142},{"className":141},[],[143],{"type":49,"value":144},"figma-generate-diagram",{"type":49,"value":98},{"type":44,"tag":67,"props":147,"children":148},{},[149,150,156],{"type":49,"value":128},{"type":44,"tag":75,"props":151,"children":153},{"className":152},[],[154],{"type":49,"value":155},"generate_diagram",{"type":49,"value":135},{"type":44,"tag":51,"props":158,"children":159},{},[160,165],{"type":44,"tag":67,"props":161,"children":162},{},[163],{"type":49,"value":164},"Foundation references",{"type":49,"value":166}," (in this plugin):",{"type":44,"tag":84,"props":168,"children":169},{},[170,194,209,231],{"type":44,"tag":88,"props":171,"children":172},{},[173,184,186,192],{"type":44,"tag":174,"props":175,"children":177},"a",{"href":176},"references\u002Ffoundation\u002Fpalette.md",[178],{"type":44,"tag":75,"props":179,"children":181},{"className":180},[],[182],{"type":49,"value":183},"foundation\u002Fpalette.md",{"type":49,"value":185}," — section + sticky + text palette constants (",{"type":44,"tag":75,"props":187,"children":189},{"className":188},[],[190],{"type":49,"value":191},"hex\u002F255",{"type":49,"value":193},").",{"type":44,"tag":88,"props":195,"children":196},{},[197,207],{"type":44,"tag":174,"props":198,"children":200},{"href":199},"references\u002Ffoundation\u002Flayout.md",[201],{"type":44,"tag":75,"props":202,"children":204},{"className":203},[],[205],{"type":49,"value":206},"foundation\u002Flayout.md",{"type":49,"value":208}," — canvas geometry, sizing rules, placeholder lifecycle.",{"type":44,"tag":88,"props":210,"children":211},{},[212,222,224,229],{"type":44,"tag":174,"props":213,"children":215},{"href":214},"references\u002Ffoundation\u002Fplugin-api-traps.md",[216],{"type":44,"tag":75,"props":217,"children":219},{"className":218},[],[220],{"type":49,"value":221},"foundation\u002Fplugin-api-traps.md",{"type":49,"value":223}," — documented traps for FigJam ",{"type":44,"tag":75,"props":225,"children":227},{"className":226},[],[228],{"type":49,"value":111},{"type":49,"value":230},".",{"type":44,"tag":88,"props":232,"children":233},{},[234,244],{"type":44,"tag":174,"props":235,"children":237},{"href":236},"references\u002Ffoundation\u002Fcodebase-grounding.md",[238],{"type":44,"tag":75,"props":239,"children":241},{"className":240},[],[242],{"type":49,"value":243},"foundation\u002Fcodebase-grounding.md",{"type":49,"value":245}," — Step 1 expansion rules.",{"type":44,"tag":51,"props":247,"children":248},{},[249,254],{"type":44,"tag":67,"props":250,"children":251},{},[252],{"type":49,"value":253},"Section catalog",{"type":49,"value":255},":",{"type":44,"tag":84,"props":257,"children":258},{},[259],{"type":44,"tag":88,"props":260,"children":261},{},[262,272],{"type":44,"tag":174,"props":263,"children":265},{"href":264},"references\u002Fsection-catalog.md",[266],{"type":44,"tag":75,"props":267,"children":269},{"className":268},[],[270],{"type":49,"value":271},"section-catalog.md",{"type":49,"value":273}," — the ~10 candidate sections with default blocks and palette.",{"type":44,"tag":51,"props":275,"children":276},{},[277,282,284,289],{"type":44,"tag":67,"props":278,"children":279},{},[280],{"type":49,"value":281},"Block subskills",{"type":49,"value":283}," (one per content type — re-load the one(s) you need before each ",{"type":44,"tag":75,"props":285,"children":287},{"className":286},[],[288],{"type":49,"value":111},{"type":49,"value":290}," fill call):",{"type":44,"tag":292,"props":293,"children":294},"table",{},[295,319],{"type":44,"tag":296,"props":297,"children":298},"thead",{},[299],{"type":44,"tag":300,"props":301,"children":302},"tr",{},[303,309,314],{"type":44,"tag":304,"props":305,"children":306},"th",{},[307],{"type":49,"value":308},"Block",{"type":44,"tag":304,"props":310,"children":311},{},[312],{"type":49,"value":313},"File",{"type":44,"tag":304,"props":315,"children":316},{},[317],{"type":49,"value":318},"When to load",{"type":44,"tag":320,"props":321,"children":322},"tbody",{},[323,350,376,402,428,454,480,506,532],{"type":44,"tag":300,"props":324,"children":325},{},[326,332,345],{"type":44,"tag":327,"props":328,"children":329},"td",{},[330],{"type":49,"value":331},"Top-level section",{"type":44,"tag":327,"props":333,"children":334},{},[335],{"type":44,"tag":174,"props":336,"children":338},{"href":337},"references\u002Fblocks\u002Fsection.md",[339],{"type":44,"tag":75,"props":340,"children":342},{"className":341},[],[343],{"type":49,"value":344},"blocks\u002Fsection.md",{"type":44,"tag":327,"props":346,"children":347},{},[348],{"type":49,"value":349},"Skeleton pass (Step 6) and every fill call (Step 7)",{"type":44,"tag":300,"props":351,"children":352},{},[353,358,371],{"type":44,"tag":327,"props":354,"children":355},{},[356],{"type":49,"value":357},"Nested section",{"type":44,"tag":327,"props":359,"children":360},{},[361],{"type":44,"tag":174,"props":362,"children":364},{"href":363},"references\u002Fblocks\u002Fnested-section.md",[365],{"type":44,"tag":75,"props":366,"children":368},{"className":367},[],[369],{"type":49,"value":370},"blocks\u002Fnested-section.md",{"type":44,"tag":327,"props":372,"children":373},{},[374],{"type":49,"value":375},"Fills that group sub-content (e.g. \"Design Decisions 1\u002F2\u002F3\")",{"type":44,"tag":300,"props":377,"children":378},{},[379,384,397],{"type":44,"tag":327,"props":380,"children":381},{},[382],{"type":49,"value":383},"Intro callout",{"type":44,"tag":327,"props":385,"children":386},{},[387],{"type":44,"tag":174,"props":388,"children":390},{"href":389},"references\u002Fblocks\u002Fintro-callout.md",[391],{"type":44,"tag":75,"props":392,"children":394},{"className":393},[],[395],{"type":49,"value":396},"blocks\u002Fintro-callout.md",{"type":44,"tag":327,"props":398,"children":399},{},[400],{"type":49,"value":401},"Fills that open with a highlighted intro (e.g. Motivation)",{"type":44,"tag":300,"props":403,"children":404},{},[405,410,423],{"type":44,"tag":327,"props":406,"children":407},{},[408],{"type":49,"value":409},"Text primitives",{"type":44,"tag":327,"props":411,"children":412},{},[413],{"type":44,"tag":174,"props":414,"children":416},{"href":415},"references\u002Fblocks\u002Ftext-primitives.md",[417],{"type":44,"tag":75,"props":418,"children":420},{"className":419},[],[421],{"type":49,"value":422},"blocks\u002Ftext-primitives.md",{"type":44,"tag":327,"props":424,"children":425},{},[426],{"type":49,"value":427},"Any fill that uses body paragraphs, H3 subheaders, or bulleted lists",{"type":44,"tag":300,"props":429,"children":430},{},[431,436,449],{"type":44,"tag":327,"props":432,"children":433},{},[434],{"type":49,"value":435},"Table",{"type":44,"tag":327,"props":437,"children":438},{},[439],{"type":44,"tag":174,"props":440,"children":442},{"href":441},"references\u002Fblocks\u002Ftable.md",[443],{"type":44,"tag":75,"props":444,"children":446},{"className":445},[],[447],{"type":49,"value":448},"blocks\u002Ftable.md",{"type":44,"tag":327,"props":450,"children":451},{},[452],{"type":49,"value":453},"Fills with structured data (Resources, Goals, Dependencies, Rollout, Milestones)",{"type":44,"tag":300,"props":455,"children":456},{},[457,462,475],{"type":44,"tag":327,"props":458,"children":459},{},[460],{"type":49,"value":461},"Multi-column text",{"type":44,"tag":327,"props":463,"children":464},{},[465],{"type":44,"tag":174,"props":466,"children":468},{"href":467},"references\u002Fblocks\u002Fmulti-column-text.md",[469],{"type":44,"tag":75,"props":470,"children":472},{"className":471},[],[473],{"type":49,"value":474},"blocks\u002Fmulti-column-text.md",{"type":44,"tag":327,"props":476,"children":477},{},[478],{"type":49,"value":479},"Fills with 2–4 option columns (Design Decisions alternatives)",{"type":44,"tag":300,"props":481,"children":482},{},[483,488,501],{"type":44,"tag":327,"props":484,"children":485},{},[486],{"type":49,"value":487},"Sticky column",{"type":44,"tag":327,"props":489,"children":490},{},[491],{"type":44,"tag":174,"props":492,"children":494},{"href":493},"references\u002Fblocks\u002Fsticky-column.md",[495],{"type":44,"tag":75,"props":496,"children":498},{"className":497},[],[499],{"type":49,"value":500},"blocks\u002Fsticky-column.md",{"type":44,"tag":327,"props":502,"children":503},{},[504],{"type":49,"value":505},"Fills with lists of stickies (Success Metrics, Risks, Open Questions)",{"type":44,"tag":300,"props":507,"children":508},{},[509,514,527],{"type":44,"tag":327,"props":510,"children":511},{},[512],{"type":49,"value":513},"Diagram section",{"type":44,"tag":327,"props":515,"children":516},{},[517],{"type":44,"tag":174,"props":518,"children":520},{"href":519},"references\u002Fblocks\u002Fdiagram-section.md",[521],{"type":44,"tag":75,"props":522,"children":524},{"className":523},[],[525],{"type":49,"value":526},"blocks\u002Fdiagram-section.md",{"type":44,"tag":327,"props":528,"children":529},{},[530],{"type":49,"value":531},"Right-column diagram sections (Step 8)",{"type":44,"tag":300,"props":533,"children":534},{},[535,540,553],{"type":44,"tag":327,"props":536,"children":537},{},[538],{"type":49,"value":539},"Metadata strip",{"type":44,"tag":327,"props":541,"children":542},{},[543],{"type":44,"tag":174,"props":544,"children":546},{"href":545},"references\u002Fblocks\u002Fmetadata-strip.md",[547],{"type":44,"tag":75,"props":548,"children":550},{"className":549},[],[551],{"type":49,"value":552},"blocks\u002Fmetadata-strip.md",{"type":44,"tag":327,"props":554,"children":555},{},[556],{"type":49,"value":557},"Skeleton pass — one metadata strip at top of board",{"type":44,"tag":51,"props":559,"children":560},{},[561,566,568,574,576,581],{"type":44,"tag":67,"props":562,"children":563},{},[564],{"type":49,"value":565},"Also pass",{"type":49,"value":567}," ",{"type":44,"tag":75,"props":569,"children":571},{"className":570},[],[572],{"type":49,"value":573},"skillNames: \"figma-use,figma-use-figjam,generate-project-plan\"",{"type":49,"value":575}," on ",{"type":44,"tag":75,"props":577,"children":579},{"className":578},[],[580],{"type":49,"value":111},{"type":49,"value":582}," calls (logging only).",{"type":44,"tag":57,"props":584,"children":586},{"id":585},"visual-ui-conventions-strict-do-not-deviate",[587],{"type":49,"value":588},"Visual UI conventions — STRICT, do not deviate",{"type":44,"tag":51,"props":590,"children":591},{},[592],{"type":49,"value":593},"These are derived from a canonical reference board. Read the source-of-truth files for the full constants; this section is a single-place summary so an agent can answer \"what color \u002F size \u002F font \u002F padding?\" without hunting.",{"type":44,"tag":595,"props":596,"children":598},"h3",{"id":597},"colors-two-tone-per-section",[599],{"type":49,"value":600},"Colors (two-tone per section)",{"type":44,"tag":51,"props":602,"children":603},{},[604,606,611,613,619,621,627],{"type":49,"value":605},"Every left-column section uses ",{"type":44,"tag":67,"props":607,"children":608},{},[609],{"type":49,"value":610},"two coordinated colors",{"type":49,"value":612}," of the same hue: a very-pale ",{"type":44,"tag":75,"props":614,"children":616},{"className":615},[],[617],{"type":49,"value":618},"ARCH_PALE",{"type":49,"value":620}," background, and a slightly-more-saturated FigJam-",{"type":44,"tag":75,"props":622,"children":624},{"className":623},[],[625],{"type":49,"value":626},"SECTION",{"type":49,"value":628}," palette color for any table header inside that section. Right-column diagram sections are pure white.",{"type":44,"tag":292,"props":630,"children":631},{},[632,668],{"type":44,"tag":296,"props":633,"children":634},{},[635],{"type":44,"tag":300,"props":636,"children":637},{},[638,651,663],{"type":44,"tag":304,"props":639,"children":640},{},[641,643,649],{"type":49,"value":642},"Section bg (",{"type":44,"tag":75,"props":644,"children":646},{"className":645},[],[647],{"type":49,"value":648},"ARCH_PALE.X",{"type":49,"value":650},")",{"type":44,"tag":304,"props":652,"children":653},{},[654,656,662],{"type":49,"value":655},"Table header (",{"type":44,"tag":75,"props":657,"children":659},{"className":658},[],[660],{"type":49,"value":661},"TABLE_HEADER.lightX",{"type":49,"value":650},{"type":44,"tag":304,"props":664,"children":665},{},[666],{"type":49,"value":667},"Hue",{"type":44,"tag":320,"props":669,"children":670},{},[671,697,723,749,776,802,828,854,880],{"type":44,"tag":300,"props":672,"children":673},{},[674,683,692],{"type":44,"tag":327,"props":675,"children":676},{},[677],{"type":44,"tag":75,"props":678,"children":680},{"className":679},[],[681],{"type":49,"value":682},"#F8F5FF",{"type":44,"tag":327,"props":684,"children":685},{},[686],{"type":44,"tag":75,"props":687,"children":689},{"className":688},[],[690],{"type":49,"value":691},"#DCCCFF",{"type":44,"tag":327,"props":693,"children":694},{},[695],{"type":49,"value":696},"violet",{"type":44,"tag":300,"props":698,"children":699},{},[700,709,718],{"type":44,"tag":327,"props":701,"children":702},{},[703],{"type":44,"tag":75,"props":704,"children":706},{"className":705},[],[707],{"type":49,"value":708},"#EBFFEE",{"type":44,"tag":327,"props":710,"children":711},{},[712],{"type":44,"tag":75,"props":713,"children":715},{"className":714},[],[716],{"type":49,"value":717},"#CDF4D3",{"type":44,"tag":327,"props":719,"children":720},{},[721],{"type":49,"value":722},"green",{"type":44,"tag":300,"props":724,"children":725},{},[726,735,744],{"type":44,"tag":327,"props":727,"children":728},{},[729],{"type":44,"tag":75,"props":730,"children":732},{"className":731},[],[733],{"type":49,"value":734},"#DBF0FF",{"type":44,"tag":327,"props":736,"children":737},{},[738],{"type":44,"tag":75,"props":739,"children":741},{"className":740},[],[742],{"type":49,"value":743},"#C2E5FF",{"type":44,"tag":327,"props":745,"children":746},{},[747],{"type":49,"value":748},"blue",{"type":44,"tag":300,"props":750,"children":751},{},[752,763,771],{"type":44,"tag":327,"props":753,"children":754},{},[755,761],{"type":44,"tag":75,"props":756,"children":758},{"className":757},[],[759],{"type":49,"value":760},"#F5FBFF",{"type":49,"value":762}," (alt)",{"type":44,"tag":327,"props":764,"children":765},{},[766],{"type":44,"tag":75,"props":767,"children":769},{"className":768},[],[770],{"type":49,"value":743},{"type":44,"tag":327,"props":772,"children":773},{},[774],{"type":49,"value":775},"pale blue",{"type":44,"tag":300,"props":777,"children":778},{},[779,788,797],{"type":44,"tag":327,"props":780,"children":781},{},[782],{"type":44,"tag":75,"props":783,"children":785},{"className":784},[],[786],{"type":49,"value":787},"#FFF7F0",{"type":44,"tag":327,"props":789,"children":790},{},[791],{"type":44,"tag":75,"props":792,"children":794},{"className":793},[],[795],{"type":49,"value":796},"#FFE0C2",{"type":44,"tag":327,"props":798,"children":799},{},[800],{"type":49,"value":801},"orange",{"type":44,"tag":300,"props":803,"children":804},{},[805,814,823],{"type":44,"tag":327,"props":806,"children":807},{},[808],{"type":44,"tag":75,"props":809,"children":811},{"className":810},[],[812],{"type":49,"value":813},"#F1FEFD",{"type":44,"tag":327,"props":815,"children":816},{},[817],{"type":44,"tag":75,"props":818,"children":820},{"className":819},[],[821],{"type":49,"value":822},"#C6FAF6",{"type":44,"tag":327,"props":824,"children":825},{},[826],{"type":49,"value":827},"teal",{"type":44,"tag":300,"props":829,"children":830},{},[831,840,849],{"type":44,"tag":327,"props":832,"children":833},{},[834],{"type":44,"tag":75,"props":835,"children":837},{"className":836},[],[838],{"type":49,"value":839},"#FFFBF0",{"type":44,"tag":327,"props":841,"children":842},{},[843],{"type":44,"tag":75,"props":844,"children":846},{"className":845},[],[847],{"type":49,"value":848},"#FFEC BD",{"type":44,"tag":327,"props":850,"children":851},{},[852],{"type":49,"value":853},"yellow",{"type":44,"tag":300,"props":855,"children":856},{},[857,866,875],{"type":44,"tag":327,"props":858,"children":859},{},[860],{"type":44,"tag":75,"props":861,"children":863},{"className":862},[],[864],{"type":49,"value":865},"#FFEEF8",{"type":44,"tag":327,"props":867,"children":868},{},[869],{"type":44,"tag":75,"props":870,"children":872},{"className":871},[],[873],{"type":49,"value":874},"#FFC2EC",{"type":44,"tag":327,"props":876,"children":877},{},[878],{"type":49,"value":879},"pink",{"type":44,"tag":300,"props":881,"children":882},{},[883,892,901],{"type":44,"tag":327,"props":884,"children":885},{},[886],{"type":44,"tag":75,"props":887,"children":889},{"className":888},[],[890],{"type":49,"value":891},"#FFEEE8",{"type":44,"tag":327,"props":893,"children":894},{},[895],{"type":44,"tag":75,"props":896,"children":898},{"className":897},[],[899],{"type":49,"value":900},"#FFCDC2",{"type":44,"tag":327,"props":902,"children":903},{},[904],{"type":49,"value":905},"red",{"type":44,"tag":51,"props":907,"children":908},{},[909,911,916,918,924,926,932],{"type":49,"value":910},"Source: ",{"type":44,"tag":75,"props":912,"children":914},{"className":913},[],[915],{"type":49,"value":176},{"type":49,"value":917},". Never use the dark-saturated palette (",{"type":44,"tag":75,"props":919,"children":921},{"className":920},[],[922],{"type":49,"value":923},"#874FFF",{"type":49,"value":925},", ",{"type":44,"tag":75,"props":927,"children":929},{"className":928},[],[930],{"type":49,"value":931},"#3DADFF",{"type":49,"value":933},", etc.) for table headers — that's for FigJam's standalone tables, not project-plan boards.",{"type":44,"tag":51,"props":935,"children":936},{},[937,939,944,946,951,953,959,961,967,969,975,977,983,985,991,993,999],{"type":49,"value":938},"Architecture-diagram subgraph colors are auto-applied by ",{"type":44,"tag":75,"props":940,"children":942},{"className":941},[],[943],{"type":49,"value":155},{"type":49,"value":945}," and ",{"type":44,"tag":67,"props":947,"children":948},{},[949],{"type":49,"value":950},"must not be overridden",{"type":49,"value":952},". Their canonical values: ",{"type":44,"tag":75,"props":954,"children":956},{"className":955},[],[957],{"type":49,"value":958},"client #AFF4C6",{"type":49,"value":960}," rounded-rect, ",{"type":44,"tag":75,"props":962,"children":964},{"className":963},[],[965],{"type":49,"value":966},"gateway #FFFFFF",{"type":49,"value":968}," square (diamond if labeled \"Load Balancer\"\u002F\"ALB\"\u002F\"LB\"), ",{"type":44,"tag":75,"props":970,"children":972},{"className":971},[],[973],{"type":49,"value":974},"service #E4CCFF",{"type":49,"value":976}," square, ",{"type":44,"tag":75,"props":978,"children":980},{"className":979},[],[981],{"type":49,"value":982},"datastore #BDE3FF",{"type":49,"value":984}," cylinder, ",{"type":44,"tag":75,"props":986,"children":988},{"className":987},[],[989],{"type":49,"value":990},"external #FFFFFF",{"type":49,"value":992}," PREDEFINED_PROCESS, ",{"type":44,"tag":75,"props":994,"children":996},{"className":995},[],[997],{"type":49,"value":998},"async #BDE3FF",{"type":49,"value":1000}," ENG_QUEUE.",{"type":44,"tag":595,"props":1002,"children":1004},{"id":1003},"typography-font-sizes",[1005],{"type":49,"value":1006},"Typography (font sizes)",{"type":44,"tag":292,"props":1008,"children":1009},{},[1010,1036],{"type":44,"tag":296,"props":1011,"children":1012},{},[1013],{"type":44,"tag":300,"props":1014,"children":1015},{},[1016,1021,1026,1031],{"type":44,"tag":304,"props":1017,"children":1018},{},[1019],{"type":49,"value":1020},"Element",{"type":44,"tag":304,"props":1022,"children":1023},{},[1024],{"type":49,"value":1025},"Size",{"type":44,"tag":304,"props":1027,"children":1028},{},[1029],{"type":49,"value":1030},"Font",{"type":44,"tag":304,"props":1032,"children":1033},{},[1034],{"type":49,"value":1035},"Color",{"type":44,"tag":320,"props":1037,"children":1038},{},[1039,1069,1093,1120,1148,1176,1201],{"type":44,"tag":300,"props":1040,"children":1041},{},[1042,1047,1055,1060],{"type":44,"tag":327,"props":1043,"children":1044},{},[1045],{"type":49,"value":1046},"H1 (board title)",{"type":44,"tag":327,"props":1048,"children":1049},{},[1050],{"type":44,"tag":67,"props":1051,"children":1052},{},[1053],{"type":49,"value":1054},"40",{"type":44,"tag":327,"props":1056,"children":1057},{},[1058],{"type":49,"value":1059},"Inter Medium",{"type":44,"tag":327,"props":1061,"children":1062},{},[1063],{"type":44,"tag":75,"props":1064,"children":1066},{"className":1065},[],[1067],{"type":49,"value":1068},"#1E1E1E",{"type":44,"tag":300,"props":1070,"children":1071},{},[1072,1077,1081,1085],{"type":44,"tag":327,"props":1073,"children":1074},{},[1075],{"type":49,"value":1076},"H2 (section title — first child of every section)",{"type":44,"tag":327,"props":1078,"children":1079},{},[1080],{"type":49,"value":1054},{"type":44,"tag":327,"props":1082,"children":1083},{},[1084],{"type":49,"value":1059},{"type":44,"tag":327,"props":1086,"children":1087},{},[1088],{"type":44,"tag":75,"props":1089,"children":1091},{"className":1090},[],[1092],{"type":49,"value":1068},{"type":44,"tag":300,"props":1094,"children":1095},{},[1096,1101,1108,1112],{"type":44,"tag":327,"props":1097,"children":1098},{},[1099],{"type":49,"value":1100},"H3 — full-width subhead (e.g. \"Resources\" inside Motivation)",{"type":44,"tag":327,"props":1102,"children":1103},{},[1104],{"type":44,"tag":67,"props":1105,"children":1106},{},[1107],{"type":49,"value":1054},{"type":44,"tag":327,"props":1109,"children":1110},{},[1111],{"type":49,"value":1059},{"type":44,"tag":327,"props":1113,"children":1114},{},[1115],{"type":44,"tag":75,"props":1116,"children":1118},{"className":1117},[],[1119],{"type":49,"value":1068},{"type":44,"tag":300,"props":1121,"children":1122},{},[1123,1128,1136,1140],{"type":44,"tag":327,"props":1124,"children":1125},{},[1126],{"type":49,"value":1127},"H3 — nested-section header (e.g. \"Design Decision 1: …\")",{"type":44,"tag":327,"props":1129,"children":1130},{},[1131],{"type":44,"tag":67,"props":1132,"children":1133},{},[1134],{"type":49,"value":1135},"32",{"type":44,"tag":327,"props":1137,"children":1138},{},[1139],{"type":49,"value":1059},{"type":44,"tag":327,"props":1141,"children":1142},{},[1143],{"type":44,"tag":75,"props":1144,"children":1146},{"className":1145},[],[1147],{"type":49,"value":1068},{"type":44,"tag":300,"props":1149,"children":1150},{},[1151,1156,1164,1168],{"type":44,"tag":327,"props":1152,"children":1153},{},[1154],{"type":49,"value":1155},"H3 — column title in 2\u002F3\u002F4-col layouts (Risks col, Goals col)",{"type":44,"tag":327,"props":1157,"children":1158},{},[1159],{"type":44,"tag":67,"props":1160,"children":1161},{},[1162],{"type":49,"value":1163},"24",{"type":44,"tag":327,"props":1165,"children":1166},{},[1167],{"type":49,"value":1059},{"type":44,"tag":327,"props":1169,"children":1170},{},[1171],{"type":44,"tag":75,"props":1172,"children":1174},{"className":1173},[],[1175],{"type":49,"value":1068},{"type":44,"tag":300,"props":1177,"children":1178},{},[1179,1184,1189,1193],{"type":44,"tag":327,"props":1180,"children":1181},{},[1182],{"type":49,"value":1183},"Body text",{"type":44,"tag":327,"props":1185,"children":1186},{},[1187],{"type":49,"value":1188},"16",{"type":44,"tag":327,"props":1190,"children":1191},{},[1192],{"type":49,"value":1059},{"type":44,"tag":327,"props":1194,"children":1195},{},[1196],{"type":44,"tag":75,"props":1197,"children":1199},{"className":1198},[],[1200],{"type":49,"value":1068},{"type":44,"tag":300,"props":1202,"children":1203},{},[1204,1209,1213,1221],{"type":44,"tag":327,"props":1205,"children":1206},{},[1207],{"type":49,"value":1208},"Table cells (header AND body)",{"type":44,"tag":327,"props":1210,"children":1211},{},[1212],{"type":49,"value":1188},{"type":44,"tag":327,"props":1214,"children":1215},{},[1216],{"type":44,"tag":67,"props":1217,"children":1218},{},[1219],{"type":49,"value":1220},"Inter Bold",{"type":44,"tag":327,"props":1222,"children":1223},{},[1224],{"type":44,"tag":75,"props":1225,"children":1227},{"className":1226},[],[1228],{"type":49,"value":1068},{"type":44,"tag":51,"props":1230,"children":1231},{},[1232,1234,1239],{"type":49,"value":1233},"The three different H3 sizes are deliberate. 40 = matches H2 weight when subhead is alone in the section. 32 = sub-section header inside a child section (672px inner width). 24 = column title in narrow contexts (≤ 224px col width). Pick by ",{"type":44,"tag":67,"props":1235,"children":1236},{},[1237],{"type":49,"value":1238},"container width",{"type":49,"value":1240},", not by semantic depth.",{"type":44,"tag":51,"props":1242,"children":1243},{},[1244,1246,1251,1253,1258,1260,1265],{"type":49,"value":1245},"Always load both ",{"type":44,"tag":75,"props":1247,"children":1249},{"className":1248},[],[1250],{"type":49,"value":1059},{"type":49,"value":1252}," AND ",{"type":44,"tag":75,"props":1254,"children":1256},{"className":1255},[],[1257],{"type":49,"value":1220},{"type":49,"value":1259}," at the top of any ",{"type":44,"tag":75,"props":1261,"children":1263},{"className":1262},[],[1264],{"type":49,"value":111},{"type":49,"value":1266}," script that creates tables (Bold) plus any other text (Medium).",{"type":44,"tag":595,"props":1268,"children":1270},{"id":1269},"section-properties",[1271],{"type":49,"value":1272},"Section properties",{"type":44,"tag":292,"props":1274,"children":1275},{},[1276,1292],{"type":44,"tag":296,"props":1277,"children":1278},{},[1279],{"type":44,"tag":300,"props":1280,"children":1281},{},[1282,1287],{"type":44,"tag":304,"props":1283,"children":1284},{},[1285],{"type":49,"value":1286},"Property",{"type":44,"tag":304,"props":1288,"children":1289},{},[1290],{"type":49,"value":1291},"Value",{"type":44,"tag":320,"props":1293,"children":1294},{},[1295,1326,1349,1362,1379,1392,1411,1427,1448],{"type":44,"tag":300,"props":1296,"children":1297},{},[1298,1307],{"type":44,"tag":327,"props":1299,"children":1300},{},[1301],{"type":44,"tag":75,"props":1302,"children":1304},{"className":1303},[],[1305],{"type":49,"value":1306},"section.fills",{"type":44,"tag":327,"props":1308,"children":1309},{},[1310,1316,1318,1324],{"type":44,"tag":75,"props":1311,"children":1313},{"className":1312},[],[1314],{"type":49,"value":1315},"[{ type: 'SOLID', color: ARCH_PALE.X }]",{"type":49,"value":1317}," (left column) or ",{"type":44,"tag":75,"props":1319,"children":1321},{"className":1320},[],[1322],{"type":49,"value":1323},"ARCH_PALE.white",{"type":49,"value":1325}," (right column \u002F diagrams)",{"type":44,"tag":300,"props":1327,"children":1328},{},[1329,1338],{"type":44,"tag":327,"props":1330,"children":1331},{},[1332],{"type":44,"tag":75,"props":1333,"children":1335},{"className":1334},[],[1336],{"type":49,"value":1337},"section.name",{"type":44,"tag":327,"props":1339,"children":1340},{},[1341,1347],{"type":44,"tag":75,"props":1342,"children":1344},{"className":1343},[],[1345],{"type":49,"value":1346},"\"\"",{"type":49,"value":1348}," — empty string. NO FigJam title-bar label. The H2 inside is the only title.",{"type":44,"tag":300,"props":1350,"children":1351},{},[1352,1357],{"type":44,"tag":327,"props":1353,"children":1354},{},[1355],{"type":49,"value":1356},"Inner padding (all 4 sides)",{"type":44,"tag":327,"props":1358,"children":1359},{},[1360],{"type":49,"value":1361},"32 (current default; reference uses 40-50, kept at 32 for now)",{"type":44,"tag":300,"props":1363,"children":1364},{},[1365,1370],{"type":44,"tag":327,"props":1366,"children":1367},{},[1368],{"type":49,"value":1369},"First child position",{"type":44,"tag":327,"props":1371,"children":1372},{},[1373],{"type":44,"tag":75,"props":1374,"children":1376},{"className":1375},[],[1377],{"type":49,"value":1378},"(32, 32)",{"type":44,"tag":300,"props":1380,"children":1381},{},[1382,1387],{"type":44,"tag":327,"props":1383,"children":1384},{},[1385],{"type":49,"value":1386},"Width (left column)",{"type":44,"tag":327,"props":1388,"children":1389},{},[1390],{"type":49,"value":1391},"800",{"type":44,"tag":300,"props":1393,"children":1394},{},[1395,1400],{"type":44,"tag":327,"props":1396,"children":1397},{},[1398],{"type":49,"value":1399},"Width (right column \u002F diagram)",{"type":44,"tag":327,"props":1401,"children":1402},{},[1403,1409],{"type":44,"tag":75,"props":1404,"children":1406},{"className":1405},[],[1407],{"type":49,"value":1408},"max(1200, diag.width + 64)",{"type":49,"value":1410}," after diagram is reparented",{"type":44,"tag":300,"props":1412,"children":1413},{},[1414,1419],{"type":44,"tag":327,"props":1415,"children":1416},{},[1417],{"type":49,"value":1418},"Vertical gap between sections (inside the wrapper)",{"type":44,"tag":327,"props":1420,"children":1421},{},[1422],{"type":44,"tag":67,"props":1423,"children":1424},{},[1425],{"type":49,"value":1426},"64",{"type":44,"tag":300,"props":1428,"children":1429},{},[1430,1435],{"type":44,"tag":327,"props":1431,"children":1432},{},[1433],{"type":49,"value":1434},"Hug behavior",{"type":44,"tag":327,"props":1436,"children":1437},{},[1438,1440,1446],{"type":49,"value":1439},"Manual: call ",{"type":44,"tag":75,"props":1441,"children":1443},{"className":1442},[],[1444],{"type":49,"value":1445},"section.resizeWithoutConstraints(w, maxChildBottom + 32)",{"type":49,"value":1447}," after appending children. Sections do NOT auto-grow.",{"type":44,"tag":300,"props":1449,"children":1450},{},[1451,1456],{"type":44,"tag":327,"props":1452,"children":1453},{},[1454],{"type":49,"value":1455},"Placeholder during build",{"type":44,"tag":327,"props":1457,"children":1458},{},[1459,1465,1467,1473],{"type":44,"tag":75,"props":1460,"children":1462},{"className":1461},[],[1463],{"type":49,"value":1464},"placeholder = true",{"type":49,"value":1466}," in skeleton pass; ",{"type":44,"tag":75,"props":1468,"children":1470},{"className":1469},[],[1471],{"type":49,"value":1472},"placeholder = false",{"type":49,"value":1474}," at the end of the section's fill.",{"type":44,"tag":595,"props":1476,"children":1478},{"id":1477},"outer-wrapper-column-alignment-strict-defaults",[1479],{"type":49,"value":1480},"Outer wrapper + column alignment (STRICT defaults)",{"type":44,"tag":51,"props":1482,"children":1483},{},[1484,1486,1491],{"type":49,"value":1485},"The board has ",{"type":44,"tag":67,"props":1487,"children":1488},{},[1489],{"type":49,"value":1490},"one outer wrapper",{"type":49,"value":1492}," (unlabeled, white) plus the diagram column:",{"type":44,"tag":1494,"props":1495,"children":1496},"ol",{},[1497,1549],{"type":44,"tag":88,"props":1498,"children":1499},{},[1500,1505,1507,1513,1515],{"type":44,"tag":67,"props":1501,"children":1502},{},[1503],{"type":49,"value":1504},"Column wrapper",{"type":49,"value":1506}," — an unlabeled white SECTION at ",{"type":44,"tag":75,"props":1508,"children":1510},{"className":1509},[],[1511],{"type":49,"value":1512},"(_, 0)",{"type":49,"value":1514},". Contains, in order from top:\n",{"type":44,"tag":84,"props":1516,"children":1517},{},[1518,1531,1544],{"type":44,"tag":88,"props":1519,"children":1520},{},[1521,1523,1529],{"type":49,"value":1522},"H1 project title (40px Inter Medium, charcoal) at ",{"type":44,"tag":75,"props":1524,"children":1526},{"className":1525},[],[1527],{"type":49,"value":1528},"(64, 64)",{"type":49,"value":1530}," (= section padding)",{"type":44,"tag":88,"props":1532,"children":1533},{},[1534,1536,1542],{"type":49,"value":1535},"Body row of metadata: Owner \u002F Status \u002F Last updated \u002F Source (16px Inter Medium, charcoal), at ",{"type":44,"tag":75,"props":1537,"children":1539},{"className":1538},[],[1540],{"type":49,"value":1541},"(64, h1.y + h1.height + 16)",{"type":49,"value":1543}," — 16px gap below H1; 32px gap between each body cell",{"type":44,"tag":88,"props":1545,"children":1546},{},[1547],{"type":49,"value":1548},"64px gap below the body row, then the 6 left-column sections stacked with 64px gutter",{"type":44,"tag":88,"props":1550,"children":1551},{},[1552,1557,1559,1565,1567,1572],{"type":44,"tag":67,"props":1553,"children":1554},{},[1555],{"type":49,"value":1556},"Diagram column",{"type":49,"value":1558}," at ",{"type":44,"tag":75,"props":1560,"children":1562},{"className":1561},[],[1563],{"type":49,"value":1564},"(columnWrapperRight + 64, 0)",{"type":49,"value":1566},". Each diagram is its own un-wrapped white SECTION; the ",{"type":44,"tag":67,"props":1568,"children":1569},{},[1570],{"type":49,"value":1571},"top diagram's y aligns with the column wrapper's y (= 0)",{"type":49,"value":1573},". Diagrams stack with 64px gutter.",{"type":44,"tag":51,"props":1575,"children":1576},{},[1577,1579,1584],{"type":49,"value":1578},"The metadata is ",{"type":44,"tag":67,"props":1580,"children":1581},{},[1582],{"type":49,"value":1583},"embedded",{"type":49,"value":1585}," in the column wrapper (NOT a separate section). One column wrapper holds everything text-related.",{"type":44,"tag":51,"props":1587,"children":1588},{},[1589],{"type":44,"tag":67,"props":1590,"children":1591},{},[1592],{"type":49,"value":1593},"Constants:",{"type":44,"tag":84,"props":1595,"children":1596},{},[1597,1606,1615,1624,1637],{"type":44,"tag":88,"props":1598,"children":1599},{},[1600,1602],{"type":49,"value":1601},"Wrapper inner padding (all 4 sides): ",{"type":44,"tag":67,"props":1603,"children":1604},{},[1605],{"type":49,"value":1426},{"type":44,"tag":88,"props":1607,"children":1608},{},[1609,1611],{"type":49,"value":1610},"Vertical gap between sections inside the wrapper: ",{"type":44,"tag":67,"props":1612,"children":1613},{},[1614],{"type":49,"value":1426},{"type":44,"tag":88,"props":1616,"children":1617},{},[1618,1620],{"type":49,"value":1619},"Horizontal gap between wrapper right edge and diagram-column left edge: ",{"type":44,"tag":67,"props":1621,"children":1622},{},[1623],{"type":49,"value":1426},{"type":44,"tag":88,"props":1625,"children":1626},{},[1627,1629,1635],{"type":49,"value":1628},"Top of the diagram column aligns with ",{"type":44,"tag":75,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":49,"value":1634},"wrapper.y",{"type":49,"value":1636}," (same horizontal axis as the wrapper top edge)",{"type":44,"tag":88,"props":1638,"children":1639},{},[1640,1642,1646],{"type":49,"value":1641},"Vertical gap between stacked diagram sections: ",{"type":44,"tag":67,"props":1643,"children":1644},{},[1645],{"type":49,"value":1426},{"type":49,"value":1647}," (matches the inner gutter)",{"type":44,"tag":1649,"props":1650,"children":1655},"pre",{"className":1651,"code":1652,"language":1653,"meta":1654,"style":1654},"language-js shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","const PAD = 64;\nconst leftIds = [\u002F* all left-column section ids in order *\u002F];\nconst sections = [];\nfor (const id of leftIds) sections.push(await figma.getNodeByIdAsync(id));\n\n\u002F\u002F Compute bbox of the column in page coords\nlet minX = Infinity, minY = Infinity, maxX = -Infinity, maxY = -Infinity;\nfor (const s of sections) {\n  minX = Math.min(minX, s.x); minY = Math.min(minY, s.y);\n  maxX = Math.max(maxX, s.x + s.width); maxY = Math.max(maxY, s.y + s.height);\n}\n\nconst wrapper = figma.createSection();\nwrapper.name = \"\";                                                              \u002F\u002F STRICT\nwrapper.fills = [{ type: 'SOLID', color: WHITE }];                              \u002F\u002F ARCH_PALE.white\nwrapper.resizeWithoutConstraints((maxX - minX) + 2*PAD, (maxY - minY) + 2*PAD);\nwrapper.x = minX - PAD;\nwrapper.y = minY - PAD;\n\n\u002F\u002F Reparent + translate to keep visual positions\nfor (const s of sections) {\n  const newX = (s.x - minX) + PAD;\n  const newY = (s.y - minY) + PAD;\n  wrapper.appendChild(s);\n  s.x = newX;\n  s.y = newY;\n}\n","js","",[1656],{"type":44,"tag":75,"props":1657,"children":1658},{"__ignoreMap":1654},[1659,1694,1731,1757,1834,1844,1853,1917,1952,2073,2221,2230,2238,2277,2313,2404,2495,2533,2570,2578,2587,2619,2681,2738,2772,2801,2829],{"type":44,"tag":1660,"props":1661,"children":1664},"span",{"class":1662,"line":1663},"line",1,[1665,1671,1677,1683,1689],{"type":44,"tag":1660,"props":1666,"children":1668},{"style":1667},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[1669],{"type":49,"value":1670},"const",{"type":44,"tag":1660,"props":1672,"children":1674},{"style":1673},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[1675],{"type":49,"value":1676}," PAD ",{"type":44,"tag":1660,"props":1678,"children":1680},{"style":1679},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[1681],{"type":49,"value":1682},"=",{"type":44,"tag":1660,"props":1684,"children":1686},{"style":1685},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[1687],{"type":49,"value":1688}," 64",{"type":44,"tag":1660,"props":1690,"children":1691},{"style":1679},[1692],{"type":49,"value":1693},";\n",{"type":44,"tag":1660,"props":1695,"children":1697},{"class":1662,"line":1696},2,[1698,1702,1707,1711,1716,1722,1727],{"type":44,"tag":1660,"props":1699,"children":1700},{"style":1667},[1701],{"type":49,"value":1670},{"type":44,"tag":1660,"props":1703,"children":1704},{"style":1673},[1705],{"type":49,"value":1706}," leftIds ",{"type":44,"tag":1660,"props":1708,"children":1709},{"style":1679},[1710],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1712,"children":1713},{"style":1673},[1714],{"type":49,"value":1715}," [",{"type":44,"tag":1660,"props":1717,"children":1719},{"style":1718},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1720],{"type":49,"value":1721},"\u002F* all left-column section ids in order *\u002F",{"type":44,"tag":1660,"props":1723,"children":1724},{"style":1673},[1725],{"type":49,"value":1726},"]",{"type":44,"tag":1660,"props":1728,"children":1729},{"style":1679},[1730],{"type":49,"value":1693},{"type":44,"tag":1660,"props":1732,"children":1734},{"class":1662,"line":1733},3,[1735,1739,1744,1748,1753],{"type":44,"tag":1660,"props":1736,"children":1737},{"style":1667},[1738],{"type":49,"value":1670},{"type":44,"tag":1660,"props":1740,"children":1741},{"style":1673},[1742],{"type":49,"value":1743}," sections ",{"type":44,"tag":1660,"props":1745,"children":1746},{"style":1679},[1747],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1749,"children":1750},{"style":1673},[1751],{"type":49,"value":1752}," []",{"type":44,"tag":1660,"props":1754,"children":1755},{"style":1679},[1756],{"type":49,"value":1693},{"type":44,"tag":1660,"props":1758,"children":1760},{"class":1662,"line":1759},4,[1761,1767,1772,1776,1781,1786,1791,1795,1801,1806,1811,1816,1820,1825,1830],{"type":44,"tag":1660,"props":1762,"children":1764},{"style":1763},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[1765],{"type":49,"value":1766},"for",{"type":44,"tag":1660,"props":1768,"children":1769},{"style":1673},[1770],{"type":49,"value":1771}," (",{"type":44,"tag":1660,"props":1773,"children":1774},{"style":1667},[1775],{"type":49,"value":1670},{"type":44,"tag":1660,"props":1777,"children":1778},{"style":1673},[1779],{"type":49,"value":1780}," id ",{"type":44,"tag":1660,"props":1782,"children":1783},{"style":1679},[1784],{"type":49,"value":1785},"of",{"type":44,"tag":1660,"props":1787,"children":1788},{"style":1673},[1789],{"type":49,"value":1790}," leftIds) sections",{"type":44,"tag":1660,"props":1792,"children":1793},{"style":1679},[1794],{"type":49,"value":230},{"type":44,"tag":1660,"props":1796,"children":1798},{"style":1797},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[1799],{"type":49,"value":1800},"push",{"type":44,"tag":1660,"props":1802,"children":1803},{"style":1673},[1804],{"type":49,"value":1805},"(",{"type":44,"tag":1660,"props":1807,"children":1808},{"style":1763},[1809],{"type":49,"value":1810},"await",{"type":44,"tag":1660,"props":1812,"children":1813},{"style":1673},[1814],{"type":49,"value":1815}," figma",{"type":44,"tag":1660,"props":1817,"children":1818},{"style":1679},[1819],{"type":49,"value":230},{"type":44,"tag":1660,"props":1821,"children":1822},{"style":1797},[1823],{"type":49,"value":1824},"getNodeByIdAsync",{"type":44,"tag":1660,"props":1826,"children":1827},{"style":1673},[1828],{"type":49,"value":1829},"(id))",{"type":44,"tag":1660,"props":1831,"children":1832},{"style":1679},[1833],{"type":49,"value":1693},{"type":44,"tag":1660,"props":1835,"children":1837},{"class":1662,"line":1836},5,[1838],{"type":44,"tag":1660,"props":1839,"children":1841},{"emptyLinePlaceholder":1840},true,[1842],{"type":49,"value":1843},"\n",{"type":44,"tag":1660,"props":1845,"children":1847},{"class":1662,"line":1846},6,[1848],{"type":44,"tag":1660,"props":1849,"children":1850},{"style":1718},[1851],{"type":49,"value":1852},"\u002F\u002F Compute bbox of the column in page coords\n",{"type":44,"tag":1660,"props":1854,"children":1856},{"class":1662,"line":1855},7,[1857,1862,1867,1871,1876,1881,1885,1889,1894,1898,1903,1908,1912],{"type":44,"tag":1660,"props":1858,"children":1859},{"style":1667},[1860],{"type":49,"value":1861},"let",{"type":44,"tag":1660,"props":1863,"children":1864},{"style":1673},[1865],{"type":49,"value":1866}," minX ",{"type":44,"tag":1660,"props":1868,"children":1869},{"style":1679},[1870],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1872,"children":1873},{"style":1679},[1874],{"type":49,"value":1875}," Infinity,",{"type":44,"tag":1660,"props":1877,"children":1878},{"style":1673},[1879],{"type":49,"value":1880}," minY ",{"type":44,"tag":1660,"props":1882,"children":1883},{"style":1679},[1884],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1886,"children":1887},{"style":1679},[1888],{"type":49,"value":1875},{"type":44,"tag":1660,"props":1890,"children":1891},{"style":1673},[1892],{"type":49,"value":1893}," maxX ",{"type":44,"tag":1660,"props":1895,"children":1896},{"style":1679},[1897],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1899,"children":1900},{"style":1679},[1901],{"type":49,"value":1902}," -Infinity,",{"type":44,"tag":1660,"props":1904,"children":1905},{"style":1673},[1906],{"type":49,"value":1907}," maxY ",{"type":44,"tag":1660,"props":1909,"children":1910},{"style":1679},[1911],{"type":49,"value":1682},{"type":44,"tag":1660,"props":1913,"children":1914},{"style":1679},[1915],{"type":49,"value":1916}," -Infinity;\n",{"type":44,"tag":1660,"props":1918,"children":1920},{"class":1662,"line":1919},8,[1921,1925,1929,1933,1938,1942,1947],{"type":44,"tag":1660,"props":1922,"children":1923},{"style":1763},[1924],{"type":49,"value":1766},{"type":44,"tag":1660,"props":1926,"children":1927},{"style":1673},[1928],{"type":49,"value":1771},{"type":44,"tag":1660,"props":1930,"children":1931},{"style":1667},[1932],{"type":49,"value":1670},{"type":44,"tag":1660,"props":1934,"children":1935},{"style":1673},[1936],{"type":49,"value":1937}," s ",{"type":44,"tag":1660,"props":1939,"children":1940},{"style":1679},[1941],{"type":49,"value":1785},{"type":44,"tag":1660,"props":1943,"children":1944},{"style":1673},[1945],{"type":49,"value":1946}," sections) ",{"type":44,"tag":1660,"props":1948,"children":1949},{"style":1679},[1950],{"type":49,"value":1951},"{\n",{"type":44,"tag":1660,"props":1953,"children":1955},{"class":1662,"line":1954},9,[1956,1961,1966,1971,1975,1980,1985,1990,1995,2000,2004,2009,2013,2018,2023,2027,2031,2035,2039,2043,2048,2052,2056,2060,2065,2069],{"type":44,"tag":1660,"props":1957,"children":1958},{"style":1673},[1959],{"type":49,"value":1960},"  minX",{"type":44,"tag":1660,"props":1962,"children":1963},{"style":1679},[1964],{"type":49,"value":1965}," =",{"type":44,"tag":1660,"props":1967,"children":1968},{"style":1673},[1969],{"type":49,"value":1970}," Math",{"type":44,"tag":1660,"props":1972,"children":1973},{"style":1679},[1974],{"type":49,"value":230},{"type":44,"tag":1660,"props":1976,"children":1977},{"style":1797},[1978],{"type":49,"value":1979},"min",{"type":44,"tag":1660,"props":1981,"children":1983},{"style":1982},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[1984],{"type":49,"value":1805},{"type":44,"tag":1660,"props":1986,"children":1987},{"style":1673},[1988],{"type":49,"value":1989},"minX",{"type":44,"tag":1660,"props":1991,"children":1992},{"style":1679},[1993],{"type":49,"value":1994},",",{"type":44,"tag":1660,"props":1996,"children":1997},{"style":1673},[1998],{"type":49,"value":1999}," s",{"type":44,"tag":1660,"props":2001,"children":2002},{"style":1679},[2003],{"type":49,"value":230},{"type":44,"tag":1660,"props":2005,"children":2006},{"style":1673},[2007],{"type":49,"value":2008},"x",{"type":44,"tag":1660,"props":2010,"children":2011},{"style":1982},[2012],{"type":49,"value":650},{"type":44,"tag":1660,"props":2014,"children":2015},{"style":1679},[2016],{"type":49,"value":2017},";",{"type":44,"tag":1660,"props":2019,"children":2020},{"style":1673},[2021],{"type":49,"value":2022}," minY",{"type":44,"tag":1660,"props":2024,"children":2025},{"style":1679},[2026],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2028,"children":2029},{"style":1673},[2030],{"type":49,"value":1970},{"type":44,"tag":1660,"props":2032,"children":2033},{"style":1679},[2034],{"type":49,"value":230},{"type":44,"tag":1660,"props":2036,"children":2037},{"style":1797},[2038],{"type":49,"value":1979},{"type":44,"tag":1660,"props":2040,"children":2041},{"style":1982},[2042],{"type":49,"value":1805},{"type":44,"tag":1660,"props":2044,"children":2045},{"style":1673},[2046],{"type":49,"value":2047},"minY",{"type":44,"tag":1660,"props":2049,"children":2050},{"style":1679},[2051],{"type":49,"value":1994},{"type":44,"tag":1660,"props":2053,"children":2054},{"style":1673},[2055],{"type":49,"value":1999},{"type":44,"tag":1660,"props":2057,"children":2058},{"style":1679},[2059],{"type":49,"value":230},{"type":44,"tag":1660,"props":2061,"children":2062},{"style":1673},[2063],{"type":49,"value":2064},"y",{"type":44,"tag":1660,"props":2066,"children":2067},{"style":1982},[2068],{"type":49,"value":650},{"type":44,"tag":1660,"props":2070,"children":2071},{"style":1679},[2072],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2074,"children":2076},{"class":1662,"line":2075},10,[2077,2082,2086,2090,2094,2099,2103,2108,2112,2116,2120,2124,2129,2133,2137,2142,2146,2150,2155,2159,2163,2167,2171,2175,2180,2184,2188,2192,2196,2200,2204,2208,2213,2217],{"type":44,"tag":1660,"props":2078,"children":2079},{"style":1673},[2080],{"type":49,"value":2081},"  maxX",{"type":44,"tag":1660,"props":2083,"children":2084},{"style":1679},[2085],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2087,"children":2088},{"style":1673},[2089],{"type":49,"value":1970},{"type":44,"tag":1660,"props":2091,"children":2092},{"style":1679},[2093],{"type":49,"value":230},{"type":44,"tag":1660,"props":2095,"children":2096},{"style":1797},[2097],{"type":49,"value":2098},"max",{"type":44,"tag":1660,"props":2100,"children":2101},{"style":1982},[2102],{"type":49,"value":1805},{"type":44,"tag":1660,"props":2104,"children":2105},{"style":1673},[2106],{"type":49,"value":2107},"maxX",{"type":44,"tag":1660,"props":2109,"children":2110},{"style":1679},[2111],{"type":49,"value":1994},{"type":44,"tag":1660,"props":2113,"children":2114},{"style":1673},[2115],{"type":49,"value":1999},{"type":44,"tag":1660,"props":2117,"children":2118},{"style":1679},[2119],{"type":49,"value":230},{"type":44,"tag":1660,"props":2121,"children":2122},{"style":1673},[2123],{"type":49,"value":2008},{"type":44,"tag":1660,"props":2125,"children":2126},{"style":1679},[2127],{"type":49,"value":2128}," +",{"type":44,"tag":1660,"props":2130,"children":2131},{"style":1673},[2132],{"type":49,"value":1999},{"type":44,"tag":1660,"props":2134,"children":2135},{"style":1679},[2136],{"type":49,"value":230},{"type":44,"tag":1660,"props":2138,"children":2139},{"style":1673},[2140],{"type":49,"value":2141},"width",{"type":44,"tag":1660,"props":2143,"children":2144},{"style":1982},[2145],{"type":49,"value":650},{"type":44,"tag":1660,"props":2147,"children":2148},{"style":1679},[2149],{"type":49,"value":2017},{"type":44,"tag":1660,"props":2151,"children":2152},{"style":1673},[2153],{"type":49,"value":2154}," maxY",{"type":44,"tag":1660,"props":2156,"children":2157},{"style":1679},[2158],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2160,"children":2161},{"style":1673},[2162],{"type":49,"value":1970},{"type":44,"tag":1660,"props":2164,"children":2165},{"style":1679},[2166],{"type":49,"value":230},{"type":44,"tag":1660,"props":2168,"children":2169},{"style":1797},[2170],{"type":49,"value":2098},{"type":44,"tag":1660,"props":2172,"children":2173},{"style":1982},[2174],{"type":49,"value":1805},{"type":44,"tag":1660,"props":2176,"children":2177},{"style":1673},[2178],{"type":49,"value":2179},"maxY",{"type":44,"tag":1660,"props":2181,"children":2182},{"style":1679},[2183],{"type":49,"value":1994},{"type":44,"tag":1660,"props":2185,"children":2186},{"style":1673},[2187],{"type":49,"value":1999},{"type":44,"tag":1660,"props":2189,"children":2190},{"style":1679},[2191],{"type":49,"value":230},{"type":44,"tag":1660,"props":2193,"children":2194},{"style":1673},[2195],{"type":49,"value":2064},{"type":44,"tag":1660,"props":2197,"children":2198},{"style":1679},[2199],{"type":49,"value":2128},{"type":44,"tag":1660,"props":2201,"children":2202},{"style":1673},[2203],{"type":49,"value":1999},{"type":44,"tag":1660,"props":2205,"children":2206},{"style":1679},[2207],{"type":49,"value":230},{"type":44,"tag":1660,"props":2209,"children":2210},{"style":1673},[2211],{"type":49,"value":2212},"height",{"type":44,"tag":1660,"props":2214,"children":2215},{"style":1982},[2216],{"type":49,"value":650},{"type":44,"tag":1660,"props":2218,"children":2219},{"style":1679},[2220],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2222,"children":2224},{"class":1662,"line":2223},11,[2225],{"type":44,"tag":1660,"props":2226,"children":2227},{"style":1679},[2228],{"type":49,"value":2229},"}\n",{"type":44,"tag":1660,"props":2231,"children":2233},{"class":1662,"line":2232},12,[2234],{"type":44,"tag":1660,"props":2235,"children":2236},{"emptyLinePlaceholder":1840},[2237],{"type":49,"value":1843},{"type":44,"tag":1660,"props":2239,"children":2241},{"class":1662,"line":2240},13,[2242,2246,2251,2255,2259,2263,2268,2273],{"type":44,"tag":1660,"props":2243,"children":2244},{"style":1667},[2245],{"type":49,"value":1670},{"type":44,"tag":1660,"props":2247,"children":2248},{"style":1673},[2249],{"type":49,"value":2250}," wrapper ",{"type":44,"tag":1660,"props":2252,"children":2253},{"style":1679},[2254],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2256,"children":2257},{"style":1673},[2258],{"type":49,"value":1815},{"type":44,"tag":1660,"props":2260,"children":2261},{"style":1679},[2262],{"type":49,"value":230},{"type":44,"tag":1660,"props":2264,"children":2265},{"style":1797},[2266],{"type":49,"value":2267},"createSection",{"type":44,"tag":1660,"props":2269,"children":2270},{"style":1673},[2271],{"type":49,"value":2272},"()",{"type":44,"tag":1660,"props":2274,"children":2275},{"style":1679},[2276],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2278,"children":2280},{"class":1662,"line":2279},14,[2281,2286,2290,2295,2299,2304,2308],{"type":44,"tag":1660,"props":2282,"children":2283},{"style":1673},[2284],{"type":49,"value":2285},"wrapper",{"type":44,"tag":1660,"props":2287,"children":2288},{"style":1679},[2289],{"type":49,"value":230},{"type":44,"tag":1660,"props":2291,"children":2292},{"style":1673},[2293],{"type":49,"value":2294},"name ",{"type":44,"tag":1660,"props":2296,"children":2297},{"style":1679},[2298],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2300,"children":2301},{"style":1679},[2302],{"type":49,"value":2303}," \"\"",{"type":44,"tag":1660,"props":2305,"children":2306},{"style":1679},[2307],{"type":49,"value":2017},{"type":44,"tag":1660,"props":2309,"children":2310},{"style":1718},[2311],{"type":49,"value":2312},"                                                              \u002F\u002F STRICT\n",{"type":44,"tag":1660,"props":2314,"children":2316},{"class":1662,"line":2315},15,[2317,2321,2325,2330,2334,2338,2343,2348,2352,2357,2363,2368,2372,2377,2381,2386,2391,2395,2399],{"type":44,"tag":1660,"props":2318,"children":2319},{"style":1673},[2320],{"type":49,"value":2285},{"type":44,"tag":1660,"props":2322,"children":2323},{"style":1679},[2324],{"type":49,"value":230},{"type":44,"tag":1660,"props":2326,"children":2327},{"style":1673},[2328],{"type":49,"value":2329},"fills ",{"type":44,"tag":1660,"props":2331,"children":2332},{"style":1679},[2333],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2335,"children":2336},{"style":1673},[2337],{"type":49,"value":1715},{"type":44,"tag":1660,"props":2339,"children":2340},{"style":1679},[2341],{"type":49,"value":2342},"{",{"type":44,"tag":1660,"props":2344,"children":2345},{"style":1982},[2346],{"type":49,"value":2347}," type",{"type":44,"tag":1660,"props":2349,"children":2350},{"style":1679},[2351],{"type":49,"value":255},{"type":44,"tag":1660,"props":2353,"children":2354},{"style":1679},[2355],{"type":49,"value":2356}," '",{"type":44,"tag":1660,"props":2358,"children":2360},{"style":2359},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[2361],{"type":49,"value":2362},"SOLID",{"type":44,"tag":1660,"props":2364,"children":2365},{"style":1679},[2366],{"type":49,"value":2367},"'",{"type":44,"tag":1660,"props":2369,"children":2370},{"style":1679},[2371],{"type":49,"value":1994},{"type":44,"tag":1660,"props":2373,"children":2374},{"style":1982},[2375],{"type":49,"value":2376}," color",{"type":44,"tag":1660,"props":2378,"children":2379},{"style":1679},[2380],{"type":49,"value":255},{"type":44,"tag":1660,"props":2382,"children":2383},{"style":1673},[2384],{"type":49,"value":2385}," WHITE ",{"type":44,"tag":1660,"props":2387,"children":2388},{"style":1679},[2389],{"type":49,"value":2390},"}",{"type":44,"tag":1660,"props":2392,"children":2393},{"style":1673},[2394],{"type":49,"value":1726},{"type":44,"tag":1660,"props":2396,"children":2397},{"style":1679},[2398],{"type":49,"value":2017},{"type":44,"tag":1660,"props":2400,"children":2401},{"style":1718},[2402],{"type":49,"value":2403},"                              \u002F\u002F ARCH_PALE.white\n",{"type":44,"tag":1660,"props":2405,"children":2407},{"class":1662,"line":2406},16,[2408,2412,2416,2421,2426,2431,2436,2441,2446,2451,2456,2460,2465,2469,2474,2478,2482,2486,2491],{"type":44,"tag":1660,"props":2409,"children":2410},{"style":1673},[2411],{"type":49,"value":2285},{"type":44,"tag":1660,"props":2413,"children":2414},{"style":1679},[2415],{"type":49,"value":230},{"type":44,"tag":1660,"props":2417,"children":2418},{"style":1797},[2419],{"type":49,"value":2420},"resizeWithoutConstraints",{"type":44,"tag":1660,"props":2422,"children":2423},{"style":1673},[2424],{"type":49,"value":2425},"((maxX ",{"type":44,"tag":1660,"props":2427,"children":2428},{"style":1679},[2429],{"type":49,"value":2430},"-",{"type":44,"tag":1660,"props":2432,"children":2433},{"style":1673},[2434],{"type":49,"value":2435}," minX) ",{"type":44,"tag":1660,"props":2437,"children":2438},{"style":1679},[2439],{"type":49,"value":2440},"+",{"type":44,"tag":1660,"props":2442,"children":2443},{"style":1685},[2444],{"type":49,"value":2445}," 2",{"type":44,"tag":1660,"props":2447,"children":2448},{"style":1679},[2449],{"type":49,"value":2450},"*",{"type":44,"tag":1660,"props":2452,"children":2453},{"style":1673},[2454],{"type":49,"value":2455},"PAD",{"type":44,"tag":1660,"props":2457,"children":2458},{"style":1679},[2459],{"type":49,"value":1994},{"type":44,"tag":1660,"props":2461,"children":2462},{"style":1673},[2463],{"type":49,"value":2464}," (maxY ",{"type":44,"tag":1660,"props":2466,"children":2467},{"style":1679},[2468],{"type":49,"value":2430},{"type":44,"tag":1660,"props":2470,"children":2471},{"style":1673},[2472],{"type":49,"value":2473}," minY) ",{"type":44,"tag":1660,"props":2475,"children":2476},{"style":1679},[2477],{"type":49,"value":2440},{"type":44,"tag":1660,"props":2479,"children":2480},{"style":1685},[2481],{"type":49,"value":2445},{"type":44,"tag":1660,"props":2483,"children":2484},{"style":1679},[2485],{"type":49,"value":2450},{"type":44,"tag":1660,"props":2487,"children":2488},{"style":1673},[2489],{"type":49,"value":2490},"PAD)",{"type":44,"tag":1660,"props":2492,"children":2493},{"style":1679},[2494],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2496,"children":2498},{"class":1662,"line":2497},17,[2499,2503,2507,2512,2516,2520,2524,2529],{"type":44,"tag":1660,"props":2500,"children":2501},{"style":1673},[2502],{"type":49,"value":2285},{"type":44,"tag":1660,"props":2504,"children":2505},{"style":1679},[2506],{"type":49,"value":230},{"type":44,"tag":1660,"props":2508,"children":2509},{"style":1673},[2510],{"type":49,"value":2511},"x ",{"type":44,"tag":1660,"props":2513,"children":2514},{"style":1679},[2515],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2517,"children":2518},{"style":1673},[2519],{"type":49,"value":1866},{"type":44,"tag":1660,"props":2521,"children":2522},{"style":1679},[2523],{"type":49,"value":2430},{"type":44,"tag":1660,"props":2525,"children":2526},{"style":1673},[2527],{"type":49,"value":2528}," PAD",{"type":44,"tag":1660,"props":2530,"children":2531},{"style":1679},[2532],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2534,"children":2536},{"class":1662,"line":2535},18,[2537,2541,2545,2550,2554,2558,2562,2566],{"type":44,"tag":1660,"props":2538,"children":2539},{"style":1673},[2540],{"type":49,"value":2285},{"type":44,"tag":1660,"props":2542,"children":2543},{"style":1679},[2544],{"type":49,"value":230},{"type":44,"tag":1660,"props":2546,"children":2547},{"style":1673},[2548],{"type":49,"value":2549},"y ",{"type":44,"tag":1660,"props":2551,"children":2552},{"style":1679},[2553],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2555,"children":2556},{"style":1673},[2557],{"type":49,"value":1880},{"type":44,"tag":1660,"props":2559,"children":2560},{"style":1679},[2561],{"type":49,"value":2430},{"type":44,"tag":1660,"props":2563,"children":2564},{"style":1673},[2565],{"type":49,"value":2528},{"type":44,"tag":1660,"props":2567,"children":2568},{"style":1679},[2569],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2571,"children":2573},{"class":1662,"line":2572},19,[2574],{"type":44,"tag":1660,"props":2575,"children":2576},{"emptyLinePlaceholder":1840},[2577],{"type":49,"value":1843},{"type":44,"tag":1660,"props":2579,"children":2581},{"class":1662,"line":2580},20,[2582],{"type":44,"tag":1660,"props":2583,"children":2584},{"style":1718},[2585],{"type":49,"value":2586},"\u002F\u002F Reparent + translate to keep visual positions\n",{"type":44,"tag":1660,"props":2588,"children":2590},{"class":1662,"line":2589},21,[2591,2595,2599,2603,2607,2611,2615],{"type":44,"tag":1660,"props":2592,"children":2593},{"style":1763},[2594],{"type":49,"value":1766},{"type":44,"tag":1660,"props":2596,"children":2597},{"style":1673},[2598],{"type":49,"value":1771},{"type":44,"tag":1660,"props":2600,"children":2601},{"style":1667},[2602],{"type":49,"value":1670},{"type":44,"tag":1660,"props":2604,"children":2605},{"style":1673},[2606],{"type":49,"value":1937},{"type":44,"tag":1660,"props":2608,"children":2609},{"style":1679},[2610],{"type":49,"value":1785},{"type":44,"tag":1660,"props":2612,"children":2613},{"style":1673},[2614],{"type":49,"value":1946},{"type":44,"tag":1660,"props":2616,"children":2617},{"style":1679},[2618],{"type":49,"value":1951},{"type":44,"tag":1660,"props":2620,"children":2622},{"class":1662,"line":2621},22,[2623,2628,2633,2637,2641,2646,2650,2654,2659,2664,2669,2673,2677],{"type":44,"tag":1660,"props":2624,"children":2625},{"style":1667},[2626],{"type":49,"value":2627},"  const",{"type":44,"tag":1660,"props":2629,"children":2630},{"style":1673},[2631],{"type":49,"value":2632}," newX",{"type":44,"tag":1660,"props":2634,"children":2635},{"style":1679},[2636],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2638,"children":2639},{"style":1982},[2640],{"type":49,"value":1771},{"type":44,"tag":1660,"props":2642,"children":2643},{"style":1673},[2644],{"type":49,"value":2645},"s",{"type":44,"tag":1660,"props":2647,"children":2648},{"style":1679},[2649],{"type":49,"value":230},{"type":44,"tag":1660,"props":2651,"children":2652},{"style":1673},[2653],{"type":49,"value":2008},{"type":44,"tag":1660,"props":2655,"children":2656},{"style":1679},[2657],{"type":49,"value":2658}," -",{"type":44,"tag":1660,"props":2660,"children":2661},{"style":1673},[2662],{"type":49,"value":2663}," minX",{"type":44,"tag":1660,"props":2665,"children":2666},{"style":1982},[2667],{"type":49,"value":2668},") ",{"type":44,"tag":1660,"props":2670,"children":2671},{"style":1679},[2672],{"type":49,"value":2440},{"type":44,"tag":1660,"props":2674,"children":2675},{"style":1673},[2676],{"type":49,"value":2528},{"type":44,"tag":1660,"props":2678,"children":2679},{"style":1679},[2680],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2682,"children":2684},{"class":1662,"line":2683},23,[2685,2689,2694,2698,2702,2706,2710,2714,2718,2722,2726,2730,2734],{"type":44,"tag":1660,"props":2686,"children":2687},{"style":1667},[2688],{"type":49,"value":2627},{"type":44,"tag":1660,"props":2690,"children":2691},{"style":1673},[2692],{"type":49,"value":2693}," newY",{"type":44,"tag":1660,"props":2695,"children":2696},{"style":1679},[2697],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2699,"children":2700},{"style":1982},[2701],{"type":49,"value":1771},{"type":44,"tag":1660,"props":2703,"children":2704},{"style":1673},[2705],{"type":49,"value":2645},{"type":44,"tag":1660,"props":2707,"children":2708},{"style":1679},[2709],{"type":49,"value":230},{"type":44,"tag":1660,"props":2711,"children":2712},{"style":1673},[2713],{"type":49,"value":2064},{"type":44,"tag":1660,"props":2715,"children":2716},{"style":1679},[2717],{"type":49,"value":2658},{"type":44,"tag":1660,"props":2719,"children":2720},{"style":1673},[2721],{"type":49,"value":2022},{"type":44,"tag":1660,"props":2723,"children":2724},{"style":1982},[2725],{"type":49,"value":2668},{"type":44,"tag":1660,"props":2727,"children":2728},{"style":1679},[2729],{"type":49,"value":2440},{"type":44,"tag":1660,"props":2731,"children":2732},{"style":1673},[2733],{"type":49,"value":2528},{"type":44,"tag":1660,"props":2735,"children":2736},{"style":1679},[2737],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2739,"children":2741},{"class":1662,"line":2740},24,[2742,2747,2751,2756,2760,2764,2768],{"type":44,"tag":1660,"props":2743,"children":2744},{"style":1673},[2745],{"type":49,"value":2746},"  wrapper",{"type":44,"tag":1660,"props":2748,"children":2749},{"style":1679},[2750],{"type":49,"value":230},{"type":44,"tag":1660,"props":2752,"children":2753},{"style":1797},[2754],{"type":49,"value":2755},"appendChild",{"type":44,"tag":1660,"props":2757,"children":2758},{"style":1982},[2759],{"type":49,"value":1805},{"type":44,"tag":1660,"props":2761,"children":2762},{"style":1673},[2763],{"type":49,"value":2645},{"type":44,"tag":1660,"props":2765,"children":2766},{"style":1982},[2767],{"type":49,"value":650},{"type":44,"tag":1660,"props":2769,"children":2770},{"style":1679},[2771],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2773,"children":2775},{"class":1662,"line":2774},25,[2776,2781,2785,2789,2793,2797],{"type":44,"tag":1660,"props":2777,"children":2778},{"style":1673},[2779],{"type":49,"value":2780},"  s",{"type":44,"tag":1660,"props":2782,"children":2783},{"style":1679},[2784],{"type":49,"value":230},{"type":44,"tag":1660,"props":2786,"children":2787},{"style":1673},[2788],{"type":49,"value":2008},{"type":44,"tag":1660,"props":2790,"children":2791},{"style":1679},[2792],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2794,"children":2795},{"style":1673},[2796],{"type":49,"value":2632},{"type":44,"tag":1660,"props":2798,"children":2799},{"style":1679},[2800],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2802,"children":2804},{"class":1662,"line":2803},26,[2805,2809,2813,2817,2821,2825],{"type":44,"tag":1660,"props":2806,"children":2807},{"style":1673},[2808],{"type":49,"value":2780},{"type":44,"tag":1660,"props":2810,"children":2811},{"style":1679},[2812],{"type":49,"value":230},{"type":44,"tag":1660,"props":2814,"children":2815},{"style":1673},[2816],{"type":49,"value":2064},{"type":44,"tag":1660,"props":2818,"children":2819},{"style":1679},[2820],{"type":49,"value":1965},{"type":44,"tag":1660,"props":2822,"children":2823},{"style":1673},[2824],{"type":49,"value":2693},{"type":44,"tag":1660,"props":2826,"children":2827},{"style":1679},[2828],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2830,"children":2832},{"class":1662,"line":2831},27,[2833],{"type":44,"tag":1660,"props":2834,"children":2835},{"style":1679},[2836],{"type":49,"value":2229},{"type":44,"tag":51,"props":2838,"children":2839},{},[2840],{"type":49,"value":2841},"The wrapper has no header (no H2 inside) and no name — it's a pure container. Don't repeat the project title here; that lives in the metadata strip.",{"type":44,"tag":51,"props":2843,"children":2844},{},[2845,2850],{"type":44,"tag":67,"props":2846,"children":2847},{},[2848],{"type":49,"value":2849},"Position the diagram column",{"type":49,"value":2851}," after the wrapper exists:",{"type":44,"tag":1649,"props":2853,"children":2855},{"className":1651,"code":2854,"language":1653,"meta":1654,"style":1654},"const wrapperRight = wrapper.x + wrapper.width;\nconst diagramX = wrapperRight + 64;       \u002F\u002F 64px horizontal gap matches inter-section gutter\nlet y = wrapper.y;                          \u002F\u002F align top with wrapper's top edge\nfor (const id of diagramSectionIdsInOrder) {\n  const d = await figma.getNodeByIdAsync(id);\n  d.x = diagramX;\n  d.y = y;\n  y += d.height + 64;                     \u002F\u002F 64px vertical gutter between stacked diagrams\n}\n",[2856],{"type":44,"tag":75,"props":2857,"children":2858},{"__ignoreMap":1654},[2859,2908,2945,2982,3014,3064,3093,3121,3163],{"type":44,"tag":1660,"props":2860,"children":2861},{"class":1662,"line":1663},[2862,2866,2871,2875,2880,2884,2888,2892,2896,2900,2904],{"type":44,"tag":1660,"props":2863,"children":2864},{"style":1667},[2865],{"type":49,"value":1670},{"type":44,"tag":1660,"props":2867,"children":2868},{"style":1673},[2869],{"type":49,"value":2870}," wrapperRight ",{"type":44,"tag":1660,"props":2872,"children":2873},{"style":1679},[2874],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2876,"children":2877},{"style":1673},[2878],{"type":49,"value":2879}," wrapper",{"type":44,"tag":1660,"props":2881,"children":2882},{"style":1679},[2883],{"type":49,"value":230},{"type":44,"tag":1660,"props":2885,"children":2886},{"style":1673},[2887],{"type":49,"value":2511},{"type":44,"tag":1660,"props":2889,"children":2890},{"style":1679},[2891],{"type":49,"value":2440},{"type":44,"tag":1660,"props":2893,"children":2894},{"style":1673},[2895],{"type":49,"value":2879},{"type":44,"tag":1660,"props":2897,"children":2898},{"style":1679},[2899],{"type":49,"value":230},{"type":44,"tag":1660,"props":2901,"children":2902},{"style":1673},[2903],{"type":49,"value":2141},{"type":44,"tag":1660,"props":2905,"children":2906},{"style":1679},[2907],{"type":49,"value":1693},{"type":44,"tag":1660,"props":2909,"children":2910},{"class":1662,"line":1696},[2911,2915,2920,2924,2928,2932,2936,2940],{"type":44,"tag":1660,"props":2912,"children":2913},{"style":1667},[2914],{"type":49,"value":1670},{"type":44,"tag":1660,"props":2916,"children":2917},{"style":1673},[2918],{"type":49,"value":2919}," diagramX ",{"type":44,"tag":1660,"props":2921,"children":2922},{"style":1679},[2923],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2925,"children":2926},{"style":1673},[2927],{"type":49,"value":2870},{"type":44,"tag":1660,"props":2929,"children":2930},{"style":1679},[2931],{"type":49,"value":2440},{"type":44,"tag":1660,"props":2933,"children":2934},{"style":1685},[2935],{"type":49,"value":1688},{"type":44,"tag":1660,"props":2937,"children":2938},{"style":1679},[2939],{"type":49,"value":2017},{"type":44,"tag":1660,"props":2941,"children":2942},{"style":1718},[2943],{"type":49,"value":2944},"       \u002F\u002F 64px horizontal gap matches inter-section gutter\n",{"type":44,"tag":1660,"props":2946,"children":2947},{"class":1662,"line":1733},[2948,2952,2957,2961,2965,2969,2973,2977],{"type":44,"tag":1660,"props":2949,"children":2950},{"style":1667},[2951],{"type":49,"value":1861},{"type":44,"tag":1660,"props":2953,"children":2954},{"style":1673},[2955],{"type":49,"value":2956}," y ",{"type":44,"tag":1660,"props":2958,"children":2959},{"style":1679},[2960],{"type":49,"value":1682},{"type":44,"tag":1660,"props":2962,"children":2963},{"style":1673},[2964],{"type":49,"value":2879},{"type":44,"tag":1660,"props":2966,"children":2967},{"style":1679},[2968],{"type":49,"value":230},{"type":44,"tag":1660,"props":2970,"children":2971},{"style":1673},[2972],{"type":49,"value":2064},{"type":44,"tag":1660,"props":2974,"children":2975},{"style":1679},[2976],{"type":49,"value":2017},{"type":44,"tag":1660,"props":2978,"children":2979},{"style":1718},[2980],{"type":49,"value":2981},"                          \u002F\u002F align top with wrapper's top edge\n",{"type":44,"tag":1660,"props":2983,"children":2984},{"class":1662,"line":1759},[2985,2989,2993,2997,3001,3005,3010],{"type":44,"tag":1660,"props":2986,"children":2987},{"style":1763},[2988],{"type":49,"value":1766},{"type":44,"tag":1660,"props":2990,"children":2991},{"style":1673},[2992],{"type":49,"value":1771},{"type":44,"tag":1660,"props":2994,"children":2995},{"style":1667},[2996],{"type":49,"value":1670},{"type":44,"tag":1660,"props":2998,"children":2999},{"style":1673},[3000],{"type":49,"value":1780},{"type":44,"tag":1660,"props":3002,"children":3003},{"style":1679},[3004],{"type":49,"value":1785},{"type":44,"tag":1660,"props":3006,"children":3007},{"style":1673},[3008],{"type":49,"value":3009}," diagramSectionIdsInOrder) ",{"type":44,"tag":1660,"props":3011,"children":3012},{"style":1679},[3013],{"type":49,"value":1951},{"type":44,"tag":1660,"props":3015,"children":3016},{"class":1662,"line":1836},[3017,3021,3026,3030,3035,3039,3043,3047,3051,3056,3060],{"type":44,"tag":1660,"props":3018,"children":3019},{"style":1667},[3020],{"type":49,"value":2627},{"type":44,"tag":1660,"props":3022,"children":3023},{"style":1673},[3024],{"type":49,"value":3025}," d",{"type":44,"tag":1660,"props":3027,"children":3028},{"style":1679},[3029],{"type":49,"value":1965},{"type":44,"tag":1660,"props":3031,"children":3032},{"style":1763},[3033],{"type":49,"value":3034}," await",{"type":44,"tag":1660,"props":3036,"children":3037},{"style":1673},[3038],{"type":49,"value":1815},{"type":44,"tag":1660,"props":3040,"children":3041},{"style":1679},[3042],{"type":49,"value":230},{"type":44,"tag":1660,"props":3044,"children":3045},{"style":1797},[3046],{"type":49,"value":1824},{"type":44,"tag":1660,"props":3048,"children":3049},{"style":1982},[3050],{"type":49,"value":1805},{"type":44,"tag":1660,"props":3052,"children":3053},{"style":1673},[3054],{"type":49,"value":3055},"id",{"type":44,"tag":1660,"props":3057,"children":3058},{"style":1982},[3059],{"type":49,"value":650},{"type":44,"tag":1660,"props":3061,"children":3062},{"style":1679},[3063],{"type":49,"value":1693},{"type":44,"tag":1660,"props":3065,"children":3066},{"class":1662,"line":1846},[3067,3072,3076,3080,3084,3089],{"type":44,"tag":1660,"props":3068,"children":3069},{"style":1673},[3070],{"type":49,"value":3071},"  d",{"type":44,"tag":1660,"props":3073,"children":3074},{"style":1679},[3075],{"type":49,"value":230},{"type":44,"tag":1660,"props":3077,"children":3078},{"style":1673},[3079],{"type":49,"value":2008},{"type":44,"tag":1660,"props":3081,"children":3082},{"style":1679},[3083],{"type":49,"value":1965},{"type":44,"tag":1660,"props":3085,"children":3086},{"style":1673},[3087],{"type":49,"value":3088}," diagramX",{"type":44,"tag":1660,"props":3090,"children":3091},{"style":1679},[3092],{"type":49,"value":1693},{"type":44,"tag":1660,"props":3094,"children":3095},{"class":1662,"line":1855},[3096,3100,3104,3108,3112,3117],{"type":44,"tag":1660,"props":3097,"children":3098},{"style":1673},[3099],{"type":49,"value":3071},{"type":44,"tag":1660,"props":3101,"children":3102},{"style":1679},[3103],{"type":49,"value":230},{"type":44,"tag":1660,"props":3105,"children":3106},{"style":1673},[3107],{"type":49,"value":2064},{"type":44,"tag":1660,"props":3109,"children":3110},{"style":1679},[3111],{"type":49,"value":1965},{"type":44,"tag":1660,"props":3113,"children":3114},{"style":1673},[3115],{"type":49,"value":3116}," y",{"type":44,"tag":1660,"props":3118,"children":3119},{"style":1679},[3120],{"type":49,"value":1693},{"type":44,"tag":1660,"props":3122,"children":3123},{"class":1662,"line":1919},[3124,3129,3134,3138,3142,3146,3150,3154,3158],{"type":44,"tag":1660,"props":3125,"children":3126},{"style":1673},[3127],{"type":49,"value":3128},"  y",{"type":44,"tag":1660,"props":3130,"children":3131},{"style":1679},[3132],{"type":49,"value":3133}," +=",{"type":44,"tag":1660,"props":3135,"children":3136},{"style":1673},[3137],{"type":49,"value":3025},{"type":44,"tag":1660,"props":3139,"children":3140},{"style":1679},[3141],{"type":49,"value":230},{"type":44,"tag":1660,"props":3143,"children":3144},{"style":1673},[3145],{"type":49,"value":2212},{"type":44,"tag":1660,"props":3147,"children":3148},{"style":1679},[3149],{"type":49,"value":2128},{"type":44,"tag":1660,"props":3151,"children":3152},{"style":1685},[3153],{"type":49,"value":1688},{"type":44,"tag":1660,"props":3155,"children":3156},{"style":1679},[3157],{"type":49,"value":2017},{"type":44,"tag":1660,"props":3159,"children":3160},{"style":1718},[3161],{"type":49,"value":3162},"                     \u002F\u002F 64px vertical gutter between stacked diagrams\n",{"type":44,"tag":1660,"props":3164,"children":3165},{"class":1662,"line":1954},[3166],{"type":44,"tag":1660,"props":3167,"children":3168},{"style":1679},[3169],{"type":49,"value":2229},{"type":44,"tag":595,"props":3171,"children":3173},{"id":3172},"vertical-spacing-strict",[3174],{"type":49,"value":3175},"Vertical spacing (STRICT)",{"type":44,"tag":292,"props":3177,"children":3178},{},[3179,3195],{"type":44,"tag":296,"props":3180,"children":3181},{},[3182],{"type":44,"tag":300,"props":3183,"children":3184},{},[3185,3190],{"type":44,"tag":304,"props":3186,"children":3187},{},[3188],{"type":49,"value":3189},"Between",{"type":44,"tag":304,"props":3191,"children":3192},{},[3193],{"type":49,"value":3194},"Gap",{"type":44,"tag":320,"props":3196,"children":3197},{},[3198,3211,3226,3241,3256,3271,3286],{"type":44,"tag":300,"props":3199,"children":3200},{},[3201,3206],{"type":44,"tag":327,"props":3202,"children":3203},{},[3204],{"type":49,"value":3205},"Section top edge → H2 (first child)",{"type":44,"tag":327,"props":3207,"children":3208},{},[3209],{"type":49,"value":3210},"32 (= padding)",{"type":44,"tag":300,"props":3212,"children":3213},{},[3214,3219],{"type":44,"tag":327,"props":3215,"children":3216},{},[3217],{"type":49,"value":3218},"H2 → next child (body \u002F intro callout \u002F H3 \u002F table \u002F first column)",{"type":44,"tag":327,"props":3220,"children":3221},{},[3222],{"type":44,"tag":67,"props":3223,"children":3224},{},[3225],{"type":49,"value":1163},{"type":44,"tag":300,"props":3227,"children":3228},{},[3229,3234],{"type":44,"tag":327,"props":3230,"children":3231},{},[3232],{"type":49,"value":3233},"Body paragraph → H3",{"type":44,"tag":327,"props":3235,"children":3236},{},[3237],{"type":44,"tag":67,"props":3238,"children":3239},{},[3240],{"type":49,"value":1163},{"type":44,"tag":300,"props":3242,"children":3243},{},[3244,3249],{"type":44,"tag":327,"props":3245,"children":3246},{},[3247],{"type":49,"value":3248},"H3 (any size: 40 \u002F 32 \u002F 24) → next child (body \u002F table \u002F list \u002F column content)",{"type":44,"tag":327,"props":3250,"children":3251},{},[3252],{"type":44,"tag":67,"props":3253,"children":3254},{},[3255],{"type":49,"value":1163},{"type":44,"tag":300,"props":3257,"children":3258},{},[3259,3264],{"type":44,"tag":327,"props":3260,"children":3261},{},[3262],{"type":49,"value":3263},"Body → body",{"type":44,"tag":327,"props":3265,"children":3266},{},[3267],{"type":44,"tag":67,"props":3268,"children":3269},{},[3270],{"type":49,"value":1163},{"type":44,"tag":300,"props":3272,"children":3273},{},[3274,3279],{"type":44,"tag":327,"props":3275,"children":3276},{},[3277],{"type":49,"value":3278},"List → next block",{"type":44,"tag":327,"props":3280,"children":3281},{},[3282],{"type":44,"tag":67,"props":3283,"children":3284},{},[3285],{"type":49,"value":1163},{"type":44,"tag":300,"props":3287,"children":3288},{},[3289,3294],{"type":44,"tag":327,"props":3290,"children":3291},{},[3292],{"type":49,"value":3293},"Last child bottom → section bottom edge",{"type":44,"tag":327,"props":3295,"children":3296},{},[3297],{"type":49,"value":3210},{"type":44,"tag":51,"props":3299,"children":3300},{},[3301,3312,3314,3320,3322,3328],{"type":44,"tag":67,"props":3302,"children":3303},{},[3304,3306],{"type":49,"value":3305},"Always position children using ",{"type":44,"tag":75,"props":3307,"children":3309},{"className":3308},[],[3310],{"type":49,"value":3311},"prevChild.y + prevChild.height + 24",{"type":49,"value":3313}," — never use a fixed offset like ",{"type":44,"tag":75,"props":3315,"children":3317},{"className":3316},[],[3318],{"type":49,"value":3319},"prevChild.y + 60",{"type":49,"value":3321},". The H3 has three different sizes (40 \u002F 32 \u002F 24), so a fixed offset is wrong by definition; always read ",{"type":44,"tag":75,"props":3323,"children":3325},{"className":3324},[],[3326],{"type":49,"value":3327},"prevChild.height",{"type":49,"value":3329}," after the font size is set.",{"type":44,"tag":51,"props":3331,"children":3332},{},[3333,3338,3340,3346,3348,3353],{"type":44,"tag":67,"props":3334,"children":3335},{},[3336],{"type":49,"value":3337},"When you change a header's font size after the fact, you MUST re-stack downstream children.",{"type":49,"value":3339}," Setting ",{"type":44,"tag":75,"props":3341,"children":3343},{"className":3342},[],[3344],{"type":49,"value":3345},"h3.fontSize = 40",{"type":49,"value":3347}," grows the node's height; if the next child's ",{"type":44,"tag":75,"props":3349,"children":3351},{"className":3350},[],[3352],{"type":49,"value":2064},{"type":49,"value":3354}," was computed before the resize, it will overlap.",{"type":44,"tag":595,"props":3356,"children":3358},{"id":3357},"tables",[3359],{"type":49,"value":3360},"Tables",{"type":44,"tag":84,"props":3362,"children":3363},{},[3364,3381,3393,3398],{"type":44,"tag":88,"props":3365,"children":3366},{},[3367,3372,3374,3379],{"type":44,"tag":67,"props":3368,"children":3369},{},[3370],{"type":49,"value":3371},"Both header AND body cells",{"type":49,"value":3373}," use ",{"type":44,"tag":75,"props":3375,"children":3377},{"className":3376},[],[3378],{"type":49,"value":1220},{"type":49,"value":3380}," 16px (NOT Medium).",{"type":44,"tag":88,"props":3382,"children":3383},{},[3384,3386,3391],{"type":49,"value":3385},"Header text is ",{"type":44,"tag":75,"props":3387,"children":3389},{"className":3388},[],[3390],{"type":49,"value":1068},{"type":49,"value":3392}," charcoal on a light fill (matching the section's hue).",{"type":44,"tag":88,"props":3394,"children":3395},{},[3396],{"type":49,"value":3397},"Body cells leave fill at default white; text is charcoal.",{"type":44,"tag":88,"props":3399,"children":3400},{},[3401],{"type":49,"value":3402},"Headers do NOT use white-on-dark — that's wrong for this board style.",{"type":44,"tag":595,"props":3404,"children":3406},{"id":3405},"diagrams-right-column",[3407],{"type":49,"value":3408},"Diagrams (right column)",{"type":44,"tag":51,"props":3410,"children":3411},{},[3412,3417,3419,3425,3427,3432],{"type":44,"tag":75,"props":3413,"children":3415},{"className":3414},[],[3416],{"type":49,"value":155},{"type":49,"value":3418}," with ",{"type":44,"tag":75,"props":3420,"children":3422},{"className":3421},[],[3423],{"type":49,"value":3424},"useArchitectureLayoutCode: \"FIGMA_DIAGRAM_2026\"",{"type":49,"value":3426}," produces ",{"type":44,"tag":67,"props":3428,"children":3429},{},[3430],{"type":49,"value":3431},"multiple page-level nodes",{"type":49,"value":3433}," (1–2 subgraph SECTIONs + bare SHAPE_WITH_TEXTs + CONNECTORs), NOT a single container. To wrap them in a section:",{"type":44,"tag":1494,"props":3435,"children":3436},{},[3437,3442,3447,3466,3471,3507],{"type":44,"tag":88,"props":3438,"children":3439},{},[3440],{"type":49,"value":3441},"Collect all new page-level nodes (exclude known plan-section IDs).",{"type":44,"tag":88,"props":3443,"children":3444},{},[3445],{"type":49,"value":3446},"Compute the bbox.",{"type":44,"tag":88,"props":3448,"children":3449},{},[3450,3452,3458,3460,3465],{"type":49,"value":3451},"Create a new SECTION sized to ",{"type":44,"tag":75,"props":3453,"children":3455},{"className":3454},[],[3456],{"type":49,"value":3457},"bboxW + 64 × bboxH + 64 + 64",{"type":49,"value":3459}," (HEADER_BLOCK = 40 H2 + 24 gap), fill ",{"type":44,"tag":75,"props":3461,"children":3463},{"className":3462},[],[3464],{"type":49,"value":1323},{"type":49,"value":230},{"type":44,"tag":88,"props":3467,"children":3468},{},[3469],{"type":49,"value":3470},"Reparent each diagram node, translating local coords to maintain visual layout.",{"type":44,"tag":88,"props":3472,"children":3473},{},[3474,3479,3481,3487,3489,3495,3497,3505],{"type":44,"tag":67,"props":3475,"children":3476},{},[3477],{"type":49,"value":3478},"CRITICAL — delete and recreate every connector after reparent.",{"type":49,"value":3480}," The assign-to-self trick (",{"type":44,"tag":75,"props":3482,"children":3484},{"className":3483},[],[3485],{"type":49,"value":3486},"c.connectorStart = c.connectorStart",{"type":49,"value":3488},") is NOT reliable: short connectors re-route fine, but long-bend connectors retain stale elbow waypoints and extend hundreds of pixels outside the section. Delete + ",{"type":44,"tag":75,"props":3490,"children":3492},{"className":3491},[],[3493],{"type":49,"value":3494},"figma.createConnector()",{"type":49,"value":3496}," from captured spec produces a clean route every time. See ",{"type":44,"tag":174,"props":3498,"children":3499},{"href":519},[3500],{"type":44,"tag":75,"props":3501,"children":3503},{"className":3502},[],[3504],{"type":49,"value":526},{"type":49,"value":3506}," for the spec-capture + recreate pattern.",{"type":44,"tag":88,"props":3508,"children":3509},{},[3510,3538,3540,3545,3547,3553,3554,3560,3561,3567,3568,3574,3576,3582,3584,3595,3597,3602,3604,3610],{"type":44,"tag":67,"props":3511,"children":3512},{},[3513,3515,3521,3523,3529,3530,3536],{"type":49,"value":3514},"Connector labels — explicit ",{"type":44,"tag":75,"props":3516,"children":3518},{"className":3517},[],[3519],{"type":49,"value":3520},"fontName",{"type":49,"value":3522}," + ",{"type":44,"tag":75,"props":3524,"children":3526},{"className":3525},[],[3527],{"type":49,"value":3528},"fontSize",{"type":49,"value":3522},{"type":44,"tag":75,"props":3531,"children":3533},{"className":3532},[],[3534],{"type":49,"value":3535},"fills",{"type":49,"value":3537}," ALL required.",{"type":49,"value":3539}," A fresh connector's ",{"type":44,"tag":75,"props":3541,"children":3543},{"className":3542},[],[3544],{"type":49,"value":49},{"type":49,"value":3546}," sublayer has no usable defaults. Set ALL FOUR: ",{"type":44,"tag":75,"props":3548,"children":3550},{"className":3549},[],[3551],{"type":49,"value":3552},"c.text.fontName = { family: 'Inter', style: 'Medium' }",{"type":49,"value":925},{"type":44,"tag":75,"props":3555,"children":3557},{"className":3556},[],[3558],{"type":49,"value":3559},"c.text.fontSize = 14",{"type":49,"value":925},{"type":44,"tag":75,"props":3562,"children":3564},{"className":3563},[],[3565],{"type":49,"value":3566},"c.text.characters = label",{"type":49,"value":925},{"type":44,"tag":75,"props":3569,"children":3571},{"className":3570},[],[3572],{"type":49,"value":3573},"c.text.fills = [{ type: 'SOLID', color: CHARCOAL }]",{"type":49,"value":3575},". Default ",{"type":44,"tag":75,"props":3577,"children":3579},{"className":3578},[],[3580],{"type":49,"value":3581},"text.fills",{"type":49,"value":3583}," is ",{"type":44,"tag":67,"props":3585,"children":3586},{},[3587,3593],{"type":44,"tag":75,"props":3588,"children":3590},{"className":3589},[],[3591],{"type":49,"value":3592},"[]",{"type":49,"value":3594}," (empty array)",{"type":49,"value":3596}," so the label renders ",{"type":44,"tag":67,"props":3598,"children":3599},{},[3600],{"type":49,"value":3601},"transparent",{"type":49,"value":3603}," and is invisible — read-back of ",{"type":44,"tag":75,"props":3605,"children":3607},{"className":3606},[],[3608],{"type":49,"value":3609},"c.text.characters",{"type":49,"value":3611}," lies; verify with a screenshot.",{"type":44,"tag":51,"props":3613,"children":3614},{},[3615,3617,3623],{"type":49,"value":3616},"Diagram-section convention: ",{"type":44,"tag":75,"props":3618,"children":3620},{"className":3619},[],[3621],{"type":49,"value":3622},"section.name = \"\"",{"type":49,"value":3624},", H2 text node inside as the title (matches the rest of the board).",{"type":44,"tag":595,"props":3626,"children":3628},{"id":3627},"what-not-to-use-common-wrong-defaults",[3629],{"type":49,"value":3630},"What NOT to use (common wrong defaults)",{"type":44,"tag":292,"props":3632,"children":3633},{},[3634,3655],{"type":44,"tag":296,"props":3635,"children":3636},{},[3637],{"type":44,"tag":300,"props":3638,"children":3639},{},[3640,3645,3650],{"type":44,"tag":304,"props":3641,"children":3642},{},[3643],{"type":49,"value":3644},"Don't use",{"type":44,"tag":304,"props":3646,"children":3647},{},[3648],{"type":49,"value":3649},"Use instead",{"type":44,"tag":304,"props":3651,"children":3652},{},[3653],{"type":49,"value":3654},"Why",{"type":44,"tag":320,"props":3656,"children":3657},{},[3658,3686,3721,3749,3772,3798,3825,3843,3882],{"type":44,"tag":300,"props":3659,"children":3660},{},[3661,3671,3681],{"type":44,"tag":327,"props":3662,"children":3663},{},[3664,3669],{"type":44,"tag":75,"props":3665,"children":3667},{"className":3666},[],[3668],{"type":49,"value":717},{"type":49,"value":3670}," (FigJam lightGreen) for section bg",{"type":44,"tag":327,"props":3672,"children":3673},{},[3674,3679],{"type":44,"tag":75,"props":3675,"children":3677},{"className":3676},[],[3678],{"type":49,"value":708},{"type":49,"value":3680}," (ARCH_PALE.green)",{"type":44,"tag":327,"props":3682,"children":3683},{},[3684],{"type":49,"value":3685},"Too saturated next to diagrams",{"type":44,"tag":300,"props":3687,"children":3688},{},[3689,3699,3716],{"type":44,"tag":327,"props":3690,"children":3691},{},[3692,3697],{"type":44,"tag":75,"props":3693,"children":3695},{"className":3694},[],[3696],{"type":49,"value":743},{"type":49,"value":3698}," (FigJam lightBlue) for section bg",{"type":44,"tag":327,"props":3700,"children":3701},{},[3702,3707,3709,3714],{"type":44,"tag":75,"props":3703,"children":3705},{"className":3704},[],[3706],{"type":49,"value":734},{"type":49,"value":3708}," or ",{"type":44,"tag":75,"props":3710,"children":3712},{"className":3711},[],[3713],{"type":49,"value":760},{"type":49,"value":3715}," (ARCH_PALE.blue \u002F blueLite)",{"type":44,"tag":327,"props":3717,"children":3718},{},[3719],{"type":49,"value":3720},"Same",{"type":44,"tag":300,"props":3722,"children":3723},{},[3724,3734,3744],{"type":44,"tag":327,"props":3725,"children":3726},{},[3727,3732],{"type":44,"tag":75,"props":3728,"children":3730},{"className":3729},[],[3731],{"type":49,"value":923},{"type":49,"value":3733}," (FigJam dark violet) for table header",{"type":44,"tag":327,"props":3735,"children":3736},{},[3737,3742],{"type":44,"tag":75,"props":3738,"children":3740},{"className":3739},[],[3741],{"type":49,"value":691},{"type":49,"value":3743}," (FigJam lightViolet)",{"type":44,"tag":327,"props":3745,"children":3746},{},[3747],{"type":49,"value":3748},"Reference uses light-on-pale, not dark-on-pale",{"type":44,"tag":300,"props":3750,"children":3751},{},[3752,3757,3767],{"type":44,"tag":327,"props":3753,"children":3754},{},[3755],{"type":49,"value":3756},"White text on dark table header",{"type":44,"tag":327,"props":3758,"children":3759},{},[3760,3765],{"type":44,"tag":75,"props":3761,"children":3763},{"className":3762},[],[3764],{"type":49,"value":1068},{"type":49,"value":3766}," charcoal text on light header",{"type":44,"tag":327,"props":3768,"children":3769},{},[3770],{"type":49,"value":3771},"Same — pale-on-pale convention",{"type":44,"tag":300,"props":3773,"children":3774},{},[3775,3785,3793],{"type":44,"tag":327,"props":3776,"children":3777},{},[3778,3783],{"type":44,"tag":75,"props":3779,"children":3781},{"className":3780},[],[3782],{"type":49,"value":1059},{"type":49,"value":3784}," for table cells",{"type":44,"tag":327,"props":3786,"children":3787},{},[3788],{"type":44,"tag":75,"props":3789,"children":3791},{"className":3790},[],[3792],{"type":49,"value":1220},{"type":44,"tag":327,"props":3794,"children":3795},{},[3796],{"type":49,"value":3797},"Reference uses Bold for all cells",{"type":44,"tag":300,"props":3799,"children":3800},{},[3801,3812,3820],{"type":44,"tag":327,"props":3802,"children":3803},{},[3804,3810],{"type":44,"tag":75,"props":3805,"children":3807},{"className":3806},[],[3808],{"type":49,"value":3809},"section.name = \"Goals\"",{"type":49,"value":3811}," (or any non-empty string)",{"type":44,"tag":327,"props":3813,"children":3814},{},[3815],{"type":44,"tag":75,"props":3816,"children":3818},{"className":3817},[],[3819],{"type":49,"value":3622},{"type":44,"tag":327,"props":3821,"children":3822},{},[3823],{"type":49,"value":3824},"Reference uses empty names; H2 inside is the title",{"type":44,"tag":300,"props":3826,"children":3827},{},[3828,3833,3838],{"type":44,"tag":327,"props":3829,"children":3830},{},[3831],{"type":49,"value":3832},"Reparenting only one subgraph from a generated diagram",{"type":44,"tag":327,"props":3834,"children":3835},{},[3836],{"type":49,"value":3837},"Reparent ALL page-level nodes (SECTIONs + SHAPEs + CONNECTORs)",{"type":44,"tag":327,"props":3839,"children":3840},{},[3841],{"type":49,"value":3842},"Architecture diagrams are not single nodes",{"type":44,"tag":300,"props":3844,"children":3845},{},[3846,3858,3870],{"type":44,"tag":327,"props":3847,"children":3848},{},[3849,3851,3856],{"type":49,"value":3850},"Trusting ",{"type":44,"tag":75,"props":3852,"children":3854},{"className":3853},[],[3855],{"type":49,"value":3486},{"type":49,"value":3857}," to re-route every connector",{"type":44,"tag":327,"props":3859,"children":3860},{},[3861,3863,3868],{"type":49,"value":3862},"After reparent, ",{"type":44,"tag":67,"props":3864,"children":3865},{},[3866],{"type":49,"value":3867},"delete and recreate every connector",{"type":49,"value":3869}," from a captured spec",{"type":44,"tag":327,"props":3871,"children":3872},{},[3873,3875,3880],{"type":49,"value":3874},"Long-bend connectors retain stale elbow waypoints; only ",{"type":44,"tag":75,"props":3876,"children":3878},{"className":3877},[],[3879],{"type":49,"value":3494},{"type":49,"value":3881}," produces a fresh route",{"type":44,"tag":300,"props":3883,"children":3884},{},[3885,3897,3929],{"type":44,"tag":327,"props":3886,"children":3887},{},[3888,3890,3895],{"type":49,"value":3889},"Setting only ",{"type":44,"tag":75,"props":3891,"children":3893},{"className":3892},[],[3894],{"type":49,"value":3566},{"type":49,"value":3896}," on a fresh connector",{"type":44,"tag":327,"props":3898,"children":3899},{},[3900,3902,3908,3909,3915,3916,3921,3923],{"type":49,"value":3901},"Set ",{"type":44,"tag":75,"props":3903,"children":3905},{"className":3904},[],[3906],{"type":49,"value":3907},"c.text.fontName",{"type":49,"value":925},{"type":44,"tag":75,"props":3910,"children":3912},{"className":3911},[],[3913],{"type":49,"value":3914},"c.text.fontSize",{"type":49,"value":925},{"type":44,"tag":75,"props":3917,"children":3919},{"className":3918},[],[3920],{"type":49,"value":3609},{"type":49,"value":3922},", AND ",{"type":44,"tag":75,"props":3924,"children":3926},{"className":3925},[],[3927],{"type":49,"value":3928},"c.text.fills",{"type":44,"tag":327,"props":3930,"children":3931},{},[3932,3934,3939],{"type":49,"value":3933},"Defaults: fontSize=missing, fills=",{"type":44,"tag":75,"props":3935,"children":3937},{"className":3936},[],[3938],{"type":49,"value":3592},{"type":49,"value":3940}," (empty array → transparent) → label invisible despite correct read-back",{"type":44,"tag":57,"props":3942,"children":3944},{"id":3943},"step-template",[3945],{"type":49,"value":3946},"Step template",{"type":44,"tag":51,"props":3948,"children":3949},{},[3950],{"type":49,"value":3951},"Every step below uses this shape. Read the step, then execute.",{"type":44,"tag":1649,"props":3953,"children":3957},{"className":3954,"code":3956,"language":49},[3955],"language-text","## Step N — \u003CName>  [Type: Research | Confirm | Write]\nInputs required: …\nAsk if missing: …\nTools \u002F refs loaded: …\nDo: (3–6 action bullets)\nCheckpoint: (Research → self-check; Confirm → AskUserQuestion; Write → screenshot + AskUserQuestion)\n",[3958],{"type":44,"tag":75,"props":3959,"children":3960},{"__ignoreMap":1654},[3961],{"type":49,"value":3956},{"type":44,"tag":51,"props":3963,"children":3964},{},[3965],{"type":49,"value":3966},"Three step types:",{"type":44,"tag":84,"props":3968,"children":3969},{},[3970,3979,3996],{"type":44,"tag":88,"props":3971,"children":3972},{},[3973,3977],{"type":44,"tag":67,"props":3974,"children":3975},{},[3976],{"type":49,"value":13},{"type":49,"value":3978}," — read-only; checkpoint = self-check list.",{"type":44,"tag":88,"props":3980,"children":3981},{},[3982,3987,3989,3995],{"type":44,"tag":67,"props":3983,"children":3984},{},[3985],{"type":49,"value":3986},"Confirm",{"type":49,"value":3988}," — no board writes, user decision gate; checkpoint = ",{"type":44,"tag":75,"props":3990,"children":3992},{"className":3991},[],[3993],{"type":49,"value":3994},"AskUserQuestion",{"type":49,"value":230},{"type":44,"tag":88,"props":3997,"children":3998},{},[3999,4004,4006,4011],{"type":44,"tag":67,"props":4000,"children":4001},{},[4002],{"type":49,"value":4003},"Write",{"type":49,"value":4005}," — creates\u002Fmutates FigJam; checkpoint = screenshot + ",{"type":44,"tag":75,"props":4007,"children":4009},{"className":4008},[],[4010],{"type":49,"value":3994},{"type":49,"value":230},{"type":44,"tag":4013,"props":4014,"children":4015},"hr",{},[],{"type":44,"tag":57,"props":4017,"children":4019},{"id":4018},"step-1-gather-context-research",[4020,4022],{"type":49,"value":4021},"Step 1 — Gather context  ",{"type":44,"tag":1660,"props":4023,"children":4024},{},[4025],{"type":49,"value":13},{"type":44,"tag":51,"props":4027,"children":4028},{},[4029],{"type":44,"tag":67,"props":4030,"children":4031},{},[4032],{"type":49,"value":4033},"Inputs required",{"type":44,"tag":84,"props":4035,"children":4036},{},[4037,4042],{"type":44,"tag":88,"props":4038,"children":4039},{},[4040],{"type":49,"value":4041},"PRD file path or pasted text.",{"type":44,"tag":88,"props":4043,"children":4044},{},[4045],{"type":49,"value":4046},"Optional: codebase entry points (file paths, service names, doc paths).",{"type":44,"tag":51,"props":4048,"children":4049},{},[4050],{"type":44,"tag":67,"props":4051,"children":4052},{},[4053],{"type":49,"value":4054},"Ask if missing",{"type":44,"tag":84,"props":4056,"children":4057},{},[4058,4063],{"type":44,"tag":88,"props":4059,"children":4060},{},[4061],{"type":49,"value":4062},"\"Where's the PRD? (path or paste).\"",{"type":44,"tag":88,"props":4064,"children":4065},{},[4066],{"type":49,"value":4067},"\"Any codebase entry points I should ground in? (paths \u002F services \u002F docs \u002F 'none').\"",{"type":44,"tag":51,"props":4069,"children":4070},{},[4071],{"type":44,"tag":67,"props":4072,"children":4073},{},[4074],{"type":49,"value":4075},"Tools \u002F refs loaded",{"type":44,"tag":84,"props":4077,"children":4078},{},[4079,4103],{"type":44,"tag":88,"props":4080,"children":4081},{},[4082,4088,4089,4095,4096,4102],{"type":44,"tag":75,"props":4083,"children":4085},{"className":4084},[],[4086],{"type":49,"value":4087},"Read",{"type":49,"value":925},{"type":44,"tag":75,"props":4090,"children":4092},{"className":4091},[],[4093],{"type":49,"value":4094},"Glob",{"type":49,"value":925},{"type":44,"tag":75,"props":4097,"children":4099},{"className":4098},[],[4100],{"type":49,"value":4101},"Grep",{"type":49,"value":230},{"type":44,"tag":88,"props":4104,"children":4105},{},[4106,4114],{"type":44,"tag":174,"props":4107,"children":4108},{"href":236},[4109],{"type":44,"tag":75,"props":4110,"children":4112},{"className":4111},[],[4113],{"type":49,"value":243},{"type":49,"value":230},{"type":44,"tag":51,"props":4116,"children":4117},{},[4118],{"type":44,"tag":67,"props":4119,"children":4120},{},[4121],{"type":49,"value":4122},"Do",{"type":44,"tag":1494,"props":4124,"children":4125},{},[4126,4131,4166],{"type":44,"tag":88,"props":4127,"children":4128},{},[4129],{"type":49,"value":4130},"Read the PRD. Extract: title, problem, goals, non-goals, owner, audience, success metrics, rollout hints, risks.",{"type":44,"tag":88,"props":4132,"children":4133},{},[4134,4136,4142,4144,4150,4152,4158,4159,4165],{"type":49,"value":4135},"If entry points provided: follow ",{"type":44,"tag":75,"props":4137,"children":4139},{"className":4138},[],[4140],{"type":49,"value":4141},"codebase-grounding.md",{"type":49,"value":4143}," — bounded 20-file cap, depth-1 imports, walk up to ",{"type":44,"tag":75,"props":4145,"children":4147},{"className":4146},[],[4148],{"type":49,"value":4149},"CLAUDE.md",{"type":49,"value":4151},"\u002F",{"type":44,"tag":75,"props":4153,"children":4155},{"className":4154},[],[4156],{"type":49,"value":4157},"ARCHITECTURE.md",{"type":49,"value":4151},{"type":44,"tag":75,"props":4160,"children":4162},{"className":4161},[],[4163],{"type":49,"value":4164},"OWNERS",{"type":49,"value":230},{"type":44,"tag":88,"props":4167,"children":4168},{},[4169,4171,4176,4178,4184,4185,4191,4192,4198,4199,4205,4206,4212,4213,4219,4220,4226],{"type":49,"value":4170},"Produce the ",{"type":44,"tag":67,"props":4172,"children":4173},{},[4174],{"type":49,"value":4175},"tech-context object",{"type":49,"value":4177},": ",{"type":44,"tag":75,"props":4179,"children":4181},{"className":4180},[],[4182],{"type":49,"value":4183},"files_read",{"type":49,"value":925},{"type":44,"tag":75,"props":4186,"children":4188},{"className":4187},[],[4189],{"type":49,"value":4190},"services",{"type":49,"value":925},{"type":44,"tag":75,"props":4193,"children":4195},{"className":4194},[],[4196],{"type":49,"value":4197},"external_deps",{"type":49,"value":925},{"type":44,"tag":75,"props":4200,"children":4202},{"className":4201},[],[4203],{"type":49,"value":4204},"key_modules",{"type":49,"value":925},{"type":44,"tag":75,"props":4207,"children":4209},{"className":4208},[],[4210],{"type":49,"value":4211},"architecture_notes",{"type":49,"value":925},{"type":44,"tag":75,"props":4214,"children":4216},{"className":4215},[],[4217],{"type":49,"value":4218},"ownership",{"type":49,"value":925},{"type":44,"tag":75,"props":4221,"children":4223},{"className":4222},[],[4224],{"type":49,"value":4225},"expansion_truncated",{"type":49,"value":230},{"type":44,"tag":51,"props":4228,"children":4229},{},[4230],{"type":44,"tag":67,"props":4231,"children":4232},{},[4233],{"type":49,"value":4234},"Self-check",{"type":44,"tag":84,"props":4236,"children":4237},{},[4238,4243],{"type":44,"tag":88,"props":4239,"children":4240},{},[4241],{"type":49,"value":4242},"Have: project title, problem statement, at least 1 concrete goal, owner (or \"TBD\"), services touched (or empty list with a reason).",{"type":44,"tag":88,"props":4244,"children":4245},{},[4246],{"type":49,"value":4247},"Enough signal to draft candidate section cards in Step 2. If not, loop back and ask.",{"type":44,"tag":4013,"props":4249,"children":4250},{},[],{"type":44,"tag":57,"props":4252,"children":4254},{"id":4253},"step-2-propose-candidate-sections-confirm",[4255,4257],{"type":49,"value":4256},"Step 2 — Propose candidate sections  ",{"type":44,"tag":1660,"props":4258,"children":4259},{},[4260],{"type":49,"value":3986},{"type":44,"tag":51,"props":4262,"children":4263},{},[4264],{"type":44,"tag":67,"props":4265,"children":4266},{},[4267],{"type":49,"value":4033},{"type":44,"tag":84,"props":4269,"children":4270},{},[4271],{"type":44,"tag":88,"props":4272,"children":4273},{},[4274],{"type":49,"value":4275},"Tech-context object from Step 1.",{"type":44,"tag":51,"props":4277,"children":4278},{},[4279],{"type":44,"tag":67,"props":4280,"children":4281},{},[4282],{"type":49,"value":4075},{"type":44,"tag":84,"props":4284,"children":4285},{},[4286,4298],{"type":44,"tag":88,"props":4287,"children":4288},{},[4289,4297],{"type":44,"tag":174,"props":4290,"children":4291},{"href":264},[4292],{"type":44,"tag":75,"props":4293,"children":4295},{"className":4294},[],[4296],{"type":49,"value":271},{"type":49,"value":230},{"type":44,"tag":88,"props":4299,"children":4300},{},[4301,4306],{"type":44,"tag":75,"props":4302,"children":4304},{"className":4303},[],[4305],{"type":49,"value":3994},{"type":49,"value":230},{"type":44,"tag":51,"props":4308,"children":4309},{},[4310],{"type":44,"tag":67,"props":4311,"children":4312},{},[4313],{"type":49,"value":4122},{"type":44,"tag":1494,"props":4315,"children":4316},{},[4317,4330,4378,4383],{"type":44,"tag":88,"props":4318,"children":4319},{},[4320,4322,4328],{"type":49,"value":4321},"For each section in the catalog, decide if there is ",{"type":44,"tag":4323,"props":4324,"children":4325},"em",{},[4326],{"type":49,"value":4327},"real content",{"type":49,"value":4329}," for it from Step 1. Skip catalog entries that would be empty or padding.",{"type":44,"tag":88,"props":4331,"children":4332},{},[4333,4335],{"type":49,"value":4334},"For each qualifying candidate, produce a card:\n",{"type":44,"tag":84,"props":4336,"children":4337},{},[4338,4348,4358,4368],{"type":44,"tag":88,"props":4339,"children":4340},{},[4341,4346],{"type":44,"tag":67,"props":4342,"children":4343},{},[4344],{"type":49,"value":4345},"Title",{"type":49,"value":4347}," (catalog name)",{"type":44,"tag":88,"props":4349,"children":4350},{},[4351,4356],{"type":44,"tag":67,"props":4352,"children":4353},{},[4354],{"type":49,"value":4355},"1-line description",{"type":49,"value":4357}," (what this section will contain, specific to the PRD)",{"type":44,"tag":88,"props":4359,"children":4360},{},[4361,4366],{"type":44,"tag":67,"props":4362,"children":4363},{},[4364],{"type":49,"value":4365},"Why suggested",{"type":49,"value":4367}," (which PRD facts or tech-context items justify it)",{"type":44,"tag":88,"props":4369,"children":4370},{},[4371,4376],{"type":44,"tag":67,"props":4372,"children":4373},{},[4374],{"type":49,"value":4375},"Default block shape",{"type":49,"value":4377}," (from the catalog)",{"type":44,"tag":88,"props":4379,"children":4380},{},[4381],{"type":49,"value":4382},"Print all cards to chat.",{"type":44,"tag":88,"props":4384,"children":4385},{},[4386,4388,4393,4395,4400],{"type":49,"value":4387},"Fire ",{"type":44,"tag":75,"props":4389,"children":4391},{"className":4390},[],[4392],{"type":49,"value":3994},{"type":49,"value":4394}," with a multiSelect question ",{"type":44,"tag":67,"props":4396,"children":4397},{},[4398],{"type":49,"value":4399},"per batch of ≤4 candidates",{"type":49,"value":4401}," (max 4 questions per call, 4 options each → up to 16 candidates per call). Each option's label is the section title; description is the 1-line summary.",{"type":44,"tag":51,"props":4403,"children":4404},{},[4405],{"type":44,"tag":67,"props":4406,"children":4407},{},[4408],{"type":49,"value":4409},"Checkpoint (AskUserQuestion)",{"type":44,"tag":84,"props":4411,"children":4412},{},[4413,4425],{"type":44,"tag":88,"props":4414,"children":4415},{},[4416,4418,4424],{"type":49,"value":4417},"The multiSelect questions above. User ticks the sections they want. Store the selected set as ",{"type":44,"tag":75,"props":4419,"children":4421},{"className":4420},[],[4422],{"type":49,"value":4423},"approved_sections",{"type":49,"value":230},{"type":44,"tag":88,"props":4426,"children":4427},{},[4428],{"type":49,"value":4429},"If zero sections selected → stop with a clean exit message. No file is created.",{"type":44,"tag":4013,"props":4431,"children":4432},{},[],{"type":44,"tag":57,"props":4434,"children":4436},{"id":4435},"step-3-per-section-deep-research-research",[4437,4439],{"type":49,"value":4438},"Step 3 — Per-section deep research  ",{"type":44,"tag":1660,"props":4440,"children":4441},{},[4442],{"type":49,"value":13},{"type":44,"tag":51,"props":4444,"children":4445},{},[4446],{"type":44,"tag":67,"props":4447,"children":4448},{},[4449],{"type":49,"value":4033},{"type":44,"tag":84,"props":4451,"children":4452},{},[4453],{"type":44,"tag":88,"props":4454,"children":4455},{},[4456,4461],{"type":44,"tag":75,"props":4457,"children":4459},{"className":4458},[],[4460],{"type":49,"value":4423},{"type":49,"value":4462}," from Step 2; tech-context from Step 1.",{"type":44,"tag":51,"props":4464,"children":4465},{},[4466],{"type":44,"tag":67,"props":4467,"children":4468},{},[4469],{"type":49,"value":4075},{"type":44,"tag":84,"props":4471,"children":4472},{},[4473],{"type":44,"tag":88,"props":4474,"children":4475},{},[4476,4481,4482,4487,4488,4493],{"type":44,"tag":75,"props":4477,"children":4479},{"className":4478},[],[4480],{"type":49,"value":4087},{"type":49,"value":925},{"type":44,"tag":75,"props":4483,"children":4485},{"className":4484},[],[4486],{"type":49,"value":4101},{"type":49,"value":925},{"type":44,"tag":75,"props":4489,"children":4491},{"className":4490},[],[4492],{"type":49,"value":4094},{"type":49,"value":4494}," (optional).",{"type":44,"tag":51,"props":4496,"children":4497},{},[4498],{"type":44,"tag":67,"props":4499,"children":4500},{},[4501],{"type":49,"value":4122},{"type":44,"tag":1494,"props":4503,"children":4504},{},[4505,4517,4522],{"type":44,"tag":88,"props":4506,"children":4507},{},[4508,4510,4515],{"type":49,"value":4509},"For each section in ",{"type":44,"tag":75,"props":4511,"children":4513},{"className":4512},[],[4514],{"type":49,"value":4423},{"type":49,"value":4516},", look up its catalog entry. The catalog declares what the section needs (e.g. Dependencies needs cross-team services + external deps + blockers).",{"type":44,"tag":88,"props":4518,"children":4519},{},[4520],{"type":49,"value":4521},"Compare what the section needs vs. what the tech-context has.",{"type":44,"tag":88,"props":4523,"children":4524},{},[4525,4527,4532],{"type":49,"value":4526},"Produce a ",{"type":44,"tag":67,"props":4528,"children":4529},{},[4530],{"type":49,"value":4531},"gap list per section",{"type":49,"value":4533},": specific facts the user must supply, framed as answerable questions (no \"figure it out yourself\" gaps).",{"type":44,"tag":51,"props":4535,"children":4536},{},[4537],{"type":44,"tag":67,"props":4538,"children":4539},{},[4540],{"type":49,"value":4234},{"type":44,"tag":84,"props":4542,"children":4543},{},[4544,4564],{"type":44,"tag":88,"props":4545,"children":4546},{},[4547,4549,4554,4556,4562],{"type":49,"value":4548},"Every ",{"type":44,"tag":75,"props":4550,"children":4552},{"className":4551},[],[4553],{"type":49,"value":4423},{"type":49,"value":4555}," entry has either ",{"type":44,"tag":75,"props":4557,"children":4559},{"className":4558},[],[4560],{"type":49,"value":4561},"ready",{"type":49,"value":4563}," (no gaps) or a specific non-empty gap list.",{"type":44,"tag":88,"props":4565,"children":4566},{},[4567],{"type":49,"value":4568},"Gaps are answerable — not vague prompts like \"tell me more about X.\"",{"type":44,"tag":4013,"props":4570,"children":4571},{},[],{"type":44,"tag":57,"props":4573,"children":4575},{"id":4574},"step-4-per-section-content-block-proposal-confirm",[4576,4578],{"type":49,"value":4577},"Step 4 — Per-section content + block proposal  ",{"type":44,"tag":1660,"props":4579,"children":4580},{},[4581],{"type":49,"value":3986},{"type":44,"tag":51,"props":4583,"children":4584},{},[4585],{"type":44,"tag":67,"props":4586,"children":4587},{},[4588],{"type":49,"value":4033},{"type":44,"tag":84,"props":4590,"children":4591},{},[4592],{"type":44,"tag":88,"props":4593,"children":4594},{},[4595],{"type":49,"value":4596},"Gap lists from Step 3.",{"type":44,"tag":51,"props":4598,"children":4599},{},[4600],{"type":44,"tag":67,"props":4601,"children":4602},{},[4603],{"type":49,"value":4075},{"type":44,"tag":84,"props":4605,"children":4606},{},[4607,4616,4628],{"type":44,"tag":88,"props":4608,"children":4609},{},[4610,4615],{"type":44,"tag":75,"props":4611,"children":4613},{"className":4612},[],[4614],{"type":49,"value":3994},{"type":49,"value":230},{"type":44,"tag":88,"props":4617,"children":4618},{},[4619,4627],{"type":44,"tag":174,"props":4620,"children":4621},{"href":264},[4622],{"type":44,"tag":75,"props":4623,"children":4625},{"className":4624},[],[4626],{"type":49,"value":271},{"type":49,"value":230},{"type":44,"tag":88,"props":4629,"children":4630},{},[4631,4633,4638],{"type":49,"value":4632},"Block reference(s) for the section's default shape (e.g. ",{"type":44,"tag":75,"props":4634,"children":4636},{"className":4635},[],[4637],{"type":49,"value":448},{"type":49,"value":4639}," for Dependencies).",{"type":44,"tag":51,"props":4641,"children":4642},{},[4643,4647],{"type":44,"tag":67,"props":4644,"children":4645},{},[4646],{"type":49,"value":4122},{"type":49,"value":4648},", per section (one at a time, or small batch if trivial):",{"type":44,"tag":1494,"props":4650,"children":4651},{},[4652,4664,4699,4704,4722],{"type":44,"tag":88,"props":4653,"children":4654},{},[4655,4657,4662],{"type":49,"value":4656},"Fill the gap list — free-text prompt for prose; ",{"type":44,"tag":75,"props":4658,"children":4660},{"className":4659},[],[4661],{"type":49,"value":3994},{"type":49,"value":4663}," for bounded choices.",{"type":44,"tag":88,"props":4665,"children":4666},{},[4667,4669],{"type":49,"value":4668},"Propose:\n",{"type":44,"tag":84,"props":4670,"children":4671},{},[4672,4682],{"type":44,"tag":88,"props":4673,"children":4674},{},[4675,4680],{"type":44,"tag":67,"props":4676,"children":4677},{},[4678],{"type":49,"value":4679},"Content",{"type":49,"value":4681},": the concrete bullets \u002F rows \u002F stickies that will appear.",{"type":44,"tag":88,"props":4683,"children":4684},{},[4685,4690,4692,4697],{"type":44,"tag":67,"props":4686,"children":4687},{},[4688],{"type":49,"value":4689},"Block shape",{"type":49,"value":4691},": the rendering block (body paragraph \u002F table \u002F multi-column \u002F sticky column \u002F …). Default from ",{"type":44,"tag":75,"props":4693,"children":4695},{"className":4694},[],[4696],{"type":49,"value":271},{"type":49,"value":4698},"; offer alternative shapes where sensible (e.g. \"As a table, or as a multi-column layout?\").",{"type":44,"tag":88,"props":4700,"children":4701},{},[4702],{"type":49,"value":4703},"Show a short preview — section title + first line of body + block type summary.",{"type":44,"tag":88,"props":4705,"children":4706},{},[4707,4708,4713,4715,4720],{"type":49,"value":4387},{"type":44,"tag":75,"props":4709,"children":4711},{"className":4710},[],[4712],{"type":49,"value":3994},{"type":49,"value":4714},": \"Use this content + shape? ",{"type":44,"tag":1660,"props":4716,"children":4717},{},[4718],{"type":49,"value":4719},"Yes \u002F Edit \u002F Skip this section",{"type":49,"value":4721},".\"",{"type":44,"tag":88,"props":4723,"children":4724},{},[4725,4727,4733],{"type":49,"value":4726},"Edit → accept free-text amendments, re-show, re-ask. Skip → mark the section as ",{"type":44,"tag":75,"props":4728,"children":4730},{"className":4729},[],[4731],{"type":49,"value":4732},"skipped",{"type":49,"value":4734},"; do not write it to the board.",{"type":44,"tag":51,"props":4736,"children":4737},{},[4738],{"type":44,"tag":67,"props":4739,"children":4740},{},[4741],{"type":49,"value":4742},"Checkpoint",{"type":44,"tag":84,"props":4744,"children":4745},{},[4746],{"type":44,"tag":88,"props":4747,"children":4748},{},[4749,4751,4757,4758,4764,4766,4771],{"type":49,"value":4750},"Every section is ",{"type":44,"tag":75,"props":4752,"children":4754},{"className":4753},[],[4755],{"type":49,"value":4756},"approved",{"type":49,"value":925},{"type":44,"tag":75,"props":4759,"children":4761},{"className":4760},[],[4762],{"type":49,"value":4763},"edited+approved",{"type":49,"value":4765},", or ",{"type":44,"tag":75,"props":4767,"children":4769},{"className":4768},[],[4770],{"type":49,"value":4732},{"type":49,"value":4772},". No board writes yet.",{"type":44,"tag":4013,"props":4774,"children":4775},{},[],{"type":44,"tag":57,"props":4777,"children":4779},{"id":4778},"step-5-create-figjam-file-write",[4780,4782],{"type":49,"value":4781},"Step 5 — Create FigJam file  ",{"type":44,"tag":1660,"props":4783,"children":4784},{},[4785],{"type":49,"value":4003},{"type":44,"tag":51,"props":4787,"children":4788},{},[4789],{"type":44,"tag":67,"props":4790,"children":4791},{},[4792],{"type":49,"value":4033},{"type":44,"tag":84,"props":4794,"children":4795},{},[4796],{"type":44,"tag":88,"props":4797,"children":4798},{},[4799,4804,4806,4812],{"type":44,"tag":75,"props":4800,"children":4802},{"className":4801},[],[4803],{"type":49,"value":4423},{"type":49,"value":4805}," (non-skipped); project title; ",{"type":44,"tag":75,"props":4807,"children":4809},{"className":4808},[],[4810],{"type":49,"value":4811},"planKey",{"type":49,"value":4813}," (Figma team plan).",{"type":44,"tag":51,"props":4815,"children":4816},{},[4817],{"type":44,"tag":67,"props":4818,"children":4819},{},[4820],{"type":49,"value":4075},{"type":44,"tag":84,"props":4822,"children":4823},{},[4824,4835,4853,4863,4873,4883],{"type":44,"tag":88,"props":4825,"children":4826},{},[4827,4833],{"type":44,"tag":75,"props":4828,"children":4830},{"className":4829},[],[4831],{"type":49,"value":4832},"create_new_file",{"type":49,"value":4834}," MCP tool.",{"type":44,"tag":88,"props":4836,"children":4837},{},[4838,4844,4846,4851],{"type":44,"tag":75,"props":4839,"children":4841},{"className":4840},[],[4842],{"type":49,"value":4843},"whoami",{"type":49,"value":4845}," MCP tool (for ",{"type":44,"tag":75,"props":4847,"children":4849},{"className":4848},[],[4850],{"type":49,"value":4811},{"type":49,"value":4852}," if not known).",{"type":44,"tag":88,"props":4854,"children":4855},{},[4856,4861],{"type":44,"tag":75,"props":4857,"children":4859},{"className":4858},[],[4860],{"type":49,"value":111},{"type":49,"value":4862}," (once).",{"type":44,"tag":88,"props":4864,"children":4865},{},[4866,4871],{"type":44,"tag":75,"props":4867,"children":4869},{"className":4868},[],[4870],{"type":49,"value":96},{"type":49,"value":4872}," (already in context from Step 5 onward).",{"type":44,"tag":88,"props":4874,"children":4875},{},[4876,4881],{"type":44,"tag":75,"props":4877,"children":4879},{"className":4878},[],[4880],{"type":49,"value":122},{"type":49,"value":4882}," (re-loaded for the probe).",{"type":44,"tag":88,"props":4884,"children":4885},{},[4886,4891],{"type":44,"tag":75,"props":4887,"children":4889},{"className":4888},[],[4890],{"type":49,"value":3994},{"type":49,"value":230},{"type":44,"tag":51,"props":4893,"children":4894},{},[4895],{"type":44,"tag":67,"props":4896,"children":4897},{},[4898],{"type":49,"value":4122},{"type":44,"tag":1494,"props":4900,"children":4901},{},[4902,4928,4961],{"type":44,"tag":88,"props":4903,"children":4904},{},[4905,4907,4912,4914,4919,4921,4926],{"type":49,"value":4906},"Resolve ",{"type":44,"tag":75,"props":4908,"children":4910},{"className":4909},[],[4911],{"type":49,"value":4811},{"type":49,"value":4913},": call ",{"type":44,"tag":75,"props":4915,"children":4917},{"className":4916},[],[4918],{"type":49,"value":4843},{"type":49,"value":4920},". If one plan → use it. If multiple → ",{"type":44,"tag":75,"props":4922,"children":4924},{"className":4923},[],[4925],{"type":49,"value":3994},{"type":49,"value":4927}," which team.",{"type":44,"tag":88,"props":4929,"children":4930},{},[4931,4933,4938,4939,4945,4947,4953,4954,4960],{"type":49,"value":4932},"Call ",{"type":44,"tag":75,"props":4934,"children":4936},{"className":4935},[],[4937],{"type":49,"value":4832},{"type":49,"value":3418},{"type":44,"tag":75,"props":4940,"children":4942},{"className":4941},[],[4943],{"type":49,"value":4944},"{ planKey, fileName: \"\u003Cproject title>\", editorType: \"figjam\" }",{"type":49,"value":4946},". Capture ",{"type":44,"tag":75,"props":4948,"children":4950},{"className":4949},[],[4951],{"type":49,"value":4952},"file_key",{"type":49,"value":3522},{"type":44,"tag":75,"props":4955,"children":4957},{"className":4956},[],[4958],{"type":49,"value":4959},"file_url",{"type":49,"value":230},{"type":44,"tag":88,"props":4962,"children":4963},{},[4964,4966,4971],{"type":49,"value":4965},"Run the first-run probe (",{"type":44,"tag":75,"props":4967,"children":4969},{"className":4968},[],[4970],{"type":49,"value":111},{"type":49,"value":82},{"type":44,"tag":1649,"props":4973,"children":4975},{"className":1651,"code":4974,"language":1653,"meta":1654,"style":1654},"const page = figma.currentPage;\nreturn {\n  rootName: figma.root.name,\n  editorType: figma.editorType,\n  pageCount: figma.root.children.length,\n  firstPageName: figma.root.children[0].name,\n  currentPageChildrenCount: page.children.length,\n};\n",[4976],{"type":44,"tag":75,"props":4977,"children":4978},{"__ignoreMap":1654},[4979,5012,5025,5063,5092,5138,5192,5229],{"type":44,"tag":1660,"props":4980,"children":4981},{"class":1662,"line":1663},[4982,4986,4991,4995,4999,5003,5008],{"type":44,"tag":1660,"props":4983,"children":4984},{"style":1667},[4985],{"type":49,"value":1670},{"type":44,"tag":1660,"props":4987,"children":4988},{"style":1673},[4989],{"type":49,"value":4990}," page ",{"type":44,"tag":1660,"props":4992,"children":4993},{"style":1679},[4994],{"type":49,"value":1682},{"type":44,"tag":1660,"props":4996,"children":4997},{"style":1673},[4998],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5000,"children":5001},{"style":1679},[5002],{"type":49,"value":230},{"type":44,"tag":1660,"props":5004,"children":5005},{"style":1673},[5006],{"type":49,"value":5007},"currentPage",{"type":44,"tag":1660,"props":5009,"children":5010},{"style":1679},[5011],{"type":49,"value":1693},{"type":44,"tag":1660,"props":5013,"children":5014},{"class":1662,"line":1696},[5015,5020],{"type":44,"tag":1660,"props":5016,"children":5017},{"style":1763},[5018],{"type":49,"value":5019},"return",{"type":44,"tag":1660,"props":5021,"children":5022},{"style":1679},[5023],{"type":49,"value":5024}," {\n",{"type":44,"tag":1660,"props":5026,"children":5027},{"class":1662,"line":1733},[5028,5033,5037,5041,5045,5049,5053,5058],{"type":44,"tag":1660,"props":5029,"children":5030},{"style":1982},[5031],{"type":49,"value":5032},"  rootName",{"type":44,"tag":1660,"props":5034,"children":5035},{"style":1679},[5036],{"type":49,"value":255},{"type":44,"tag":1660,"props":5038,"children":5039},{"style":1673},[5040],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5042,"children":5043},{"style":1679},[5044],{"type":49,"value":230},{"type":44,"tag":1660,"props":5046,"children":5047},{"style":1673},[5048],{"type":49,"value":41},{"type":44,"tag":1660,"props":5050,"children":5051},{"style":1679},[5052],{"type":49,"value":230},{"type":44,"tag":1660,"props":5054,"children":5055},{"style":1673},[5056],{"type":49,"value":5057},"name",{"type":44,"tag":1660,"props":5059,"children":5060},{"style":1679},[5061],{"type":49,"value":5062},",\n",{"type":44,"tag":1660,"props":5064,"children":5065},{"class":1662,"line":1759},[5066,5071,5075,5079,5083,5088],{"type":44,"tag":1660,"props":5067,"children":5068},{"style":1982},[5069],{"type":49,"value":5070},"  editorType",{"type":44,"tag":1660,"props":5072,"children":5073},{"style":1679},[5074],{"type":49,"value":255},{"type":44,"tag":1660,"props":5076,"children":5077},{"style":1673},[5078],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5080,"children":5081},{"style":1679},[5082],{"type":49,"value":230},{"type":44,"tag":1660,"props":5084,"children":5085},{"style":1673},[5086],{"type":49,"value":5087},"editorType",{"type":44,"tag":1660,"props":5089,"children":5090},{"style":1679},[5091],{"type":49,"value":5062},{"type":44,"tag":1660,"props":5093,"children":5094},{"class":1662,"line":1836},[5095,5100,5104,5108,5112,5116,5120,5125,5129,5134],{"type":44,"tag":1660,"props":5096,"children":5097},{"style":1982},[5098],{"type":49,"value":5099},"  pageCount",{"type":44,"tag":1660,"props":5101,"children":5102},{"style":1679},[5103],{"type":49,"value":255},{"type":44,"tag":1660,"props":5105,"children":5106},{"style":1673},[5107],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5109,"children":5110},{"style":1679},[5111],{"type":49,"value":230},{"type":44,"tag":1660,"props":5113,"children":5114},{"style":1673},[5115],{"type":49,"value":41},{"type":44,"tag":1660,"props":5117,"children":5118},{"style":1679},[5119],{"type":49,"value":230},{"type":44,"tag":1660,"props":5121,"children":5122},{"style":1673},[5123],{"type":49,"value":5124},"children",{"type":44,"tag":1660,"props":5126,"children":5127},{"style":1679},[5128],{"type":49,"value":230},{"type":44,"tag":1660,"props":5130,"children":5131},{"style":1673},[5132],{"type":49,"value":5133},"length",{"type":44,"tag":1660,"props":5135,"children":5136},{"style":1679},[5137],{"type":49,"value":5062},{"type":44,"tag":1660,"props":5139,"children":5140},{"class":1662,"line":1846},[5141,5146,5150,5154,5158,5162,5166,5171,5176,5180,5184,5188],{"type":44,"tag":1660,"props":5142,"children":5143},{"style":1982},[5144],{"type":49,"value":5145},"  firstPageName",{"type":44,"tag":1660,"props":5147,"children":5148},{"style":1679},[5149],{"type":49,"value":255},{"type":44,"tag":1660,"props":5151,"children":5152},{"style":1673},[5153],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5155,"children":5156},{"style":1679},[5157],{"type":49,"value":230},{"type":44,"tag":1660,"props":5159,"children":5160},{"style":1673},[5161],{"type":49,"value":41},{"type":44,"tag":1660,"props":5163,"children":5164},{"style":1679},[5165],{"type":49,"value":230},{"type":44,"tag":1660,"props":5167,"children":5168},{"style":1673},[5169],{"type":49,"value":5170},"children[",{"type":44,"tag":1660,"props":5172,"children":5173},{"style":1685},[5174],{"type":49,"value":5175},"0",{"type":44,"tag":1660,"props":5177,"children":5178},{"style":1673},[5179],{"type":49,"value":1726},{"type":44,"tag":1660,"props":5181,"children":5182},{"style":1679},[5183],{"type":49,"value":230},{"type":44,"tag":1660,"props":5185,"children":5186},{"style":1673},[5187],{"type":49,"value":5057},{"type":44,"tag":1660,"props":5189,"children":5190},{"style":1679},[5191],{"type":49,"value":5062},{"type":44,"tag":1660,"props":5193,"children":5194},{"class":1662,"line":1855},[5195,5200,5204,5209,5213,5217,5221,5225],{"type":44,"tag":1660,"props":5196,"children":5197},{"style":1982},[5198],{"type":49,"value":5199},"  currentPageChildrenCount",{"type":44,"tag":1660,"props":5201,"children":5202},{"style":1679},[5203],{"type":49,"value":255},{"type":44,"tag":1660,"props":5205,"children":5206},{"style":1673},[5207],{"type":49,"value":5208}," page",{"type":44,"tag":1660,"props":5210,"children":5211},{"style":1679},[5212],{"type":49,"value":230},{"type":44,"tag":1660,"props":5214,"children":5215},{"style":1673},[5216],{"type":49,"value":5124},{"type":44,"tag":1660,"props":5218,"children":5219},{"style":1679},[5220],{"type":49,"value":230},{"type":44,"tag":1660,"props":5222,"children":5223},{"style":1673},[5224],{"type":49,"value":5133},{"type":44,"tag":1660,"props":5226,"children":5227},{"style":1679},[5228],{"type":49,"value":5062},{"type":44,"tag":1660,"props":5230,"children":5231},{"class":1662,"line":1919},[5232],{"type":44,"tag":1660,"props":5233,"children":5234},{"style":1679},[5235],{"type":49,"value":5236},"};\n",{"type":44,"tag":51,"props":5238,"children":5239},{},[5240,5242,5248],{"type":49,"value":5241},"Expect ",{"type":44,"tag":75,"props":5243,"children":5245},{"className":5244},[],[5246],{"type":49,"value":5247},"editorType === \"figjam\"",{"type":49,"value":5249}," and empty page. If not, halt and report.",{"type":44,"tag":51,"props":5251,"children":5252},{},[5253],{"type":44,"tag":67,"props":5254,"children":5255},{},[5256],{"type":49,"value":5257},"Checkpoint (probe output + AskUserQuestion)",{"type":44,"tag":84,"props":5259,"children":5260},{},[5261,5272],{"type":44,"tag":88,"props":5262,"children":5263},{},[5264,5266,5271],{"type":49,"value":5265},"Print probe return + ",{"type":44,"tag":75,"props":5267,"children":5269},{"className":5268},[],[5270],{"type":49,"value":4959},{"type":49,"value":230},{"type":44,"tag":88,"props":5273,"children":5274},{},[5275,5277,5283,5285,5290],{"type":49,"value":5276},"AskUserQuestion: \"File created at ",{"type":44,"tag":75,"props":5278,"children":5280},{"className":5279},[],[5281],{"type":49,"value":5282},"\u003Cfile_url>",{"type":49,"value":5284}," — proceed to skeleton? ",{"type":44,"tag":1660,"props":5286,"children":5287},{},[5288],{"type":49,"value":5289},"Yes \u002F Cancel",{"type":49,"value":5291},".\" Cancel = stop, leave empty file.",{"type":44,"tag":4013,"props":5293,"children":5294},{},[],{"type":44,"tag":57,"props":5296,"children":5298},{"id":5297},"step-6-skeleton-pass-write",[5299,5301],{"type":49,"value":5300},"Step 6 — Skeleton pass  ",{"type":44,"tag":1660,"props":5302,"children":5303},{},[5304],{"type":49,"value":4003},{"type":44,"tag":51,"props":5306,"children":5307},{},[5308],{"type":44,"tag":67,"props":5309,"children":5310},{},[5311],{"type":49,"value":4033},{"type":44,"tag":84,"props":5313,"children":5314},{},[5315],{"type":44,"tag":88,"props":5316,"children":5317},{},[5318,5323,5325,5330,5332,5337],{"type":44,"tag":75,"props":5319,"children":5321},{"className":5320},[],[5322],{"type":49,"value":4423},{"type":49,"value":5324}," in taxonomy order; palette from ",{"type":44,"tag":75,"props":5326,"children":5328},{"className":5327},[],[5329],{"type":49,"value":183},{"type":49,"value":5331},"; layout constants from ",{"type":44,"tag":75,"props":5333,"children":5335},{"className":5334},[],[5336],{"type":49,"value":206},{"type":49,"value":230},{"type":44,"tag":51,"props":5339,"children":5340},{},[5341],{"type":44,"tag":67,"props":5342,"children":5343},{},[5344],{"type":49,"value":4075},{"type":44,"tag":84,"props":5346,"children":5347},{},[5348,5358,5370,5386],{"type":44,"tag":88,"props":5349,"children":5350},{},[5351,5356],{"type":44,"tag":75,"props":5352,"children":5354},{"className":5353},[],[5355],{"type":49,"value":111},{"type":49,"value":5357}," (one call).",{"type":44,"tag":88,"props":5359,"children":5360},{},[5361,5363,5369],{"type":49,"value":5362},"Re-load ",{"type":44,"tag":75,"props":5364,"children":5366},{"className":5365},[],[5367],{"type":49,"value":5368},"figma-use-figjam\u002FSKILL.md",{"type":49,"value":230},{"type":44,"tag":88,"props":5371,"children":5372},{},[5373,5374,5379,5380,5385],{"type":49,"value":5362},{"type":44,"tag":75,"props":5375,"children":5377},{"className":5376},[],[5378],{"type":49,"value":344},{"type":49,"value":945},{"type":44,"tag":75,"props":5381,"children":5383},{"className":5382},[],[5384],{"type":49,"value":552},{"type":49,"value":230},{"type":44,"tag":88,"props":5387,"children":5388},{},[5389,5397,5398,5406],{"type":44,"tag":174,"props":5390,"children":5391},{"href":176},[5392],{"type":44,"tag":75,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":49,"value":183},{"type":49,"value":925},{"type":44,"tag":174,"props":5399,"children":5400},{"href":199},[5401],{"type":44,"tag":75,"props":5402,"children":5404},{"className":5403},[],[5405],{"type":49,"value":206},{"type":49,"value":230},{"type":44,"tag":51,"props":5408,"children":5409},{},[5410],{"type":44,"tag":67,"props":5411,"children":5412},{},[5413],{"type":49,"value":4122},{"type":44,"tag":1494,"props":5415,"children":5416},{},[5417,5444,5485,5505,5533],{"type":44,"tag":88,"props":5418,"children":5419},{},[5420,5422,5427,5429,5435,5437,5443],{"type":49,"value":5421},"Create metadata strip per ",{"type":44,"tag":75,"props":5423,"children":5425},{"className":5424},[],[5426],{"type":49,"value":552},{"type":49,"value":5428}," (H1 + 4 body texts at board ",{"type":44,"tag":75,"props":5430,"children":5432},{"className":5431},[],[5433],{"type":49,"value":5434},"(0, 0)",{"type":49,"value":5436},"–",{"type":44,"tag":75,"props":5438,"children":5440},{"className":5439},[],[5441],{"type":49,"value":5442},"(0, ~100)",{"type":49,"value":193},{"type":44,"tag":88,"props":5445,"children":5446},{},[5447,5449,5454,5456,5461,5463,5468,5469,5475,5477,5483],{"type":49,"value":5448},"For each approved section, create a top-level SECTION per ",{"type":44,"tag":75,"props":5450,"children":5452},{"className":5451},[],[5453],{"type":49,"value":344},{"type":49,"value":5455}," — colored bg from ARCH_PALE, ",{"type":44,"tag":75,"props":5457,"children":5459},{"className":5458},[],[5460],{"type":49,"value":3622},{"type":49,"value":5462}," (no title-bar label — STRICT), ",{"type":44,"tag":75,"props":5464,"children":5466},{"className":5465},[],[5467],{"type":49,"value":1464},{"type":49,"value":925},{"type":44,"tag":75,"props":5470,"children":5472},{"className":5471},[],[5473],{"type":49,"value":5474},"resizeWithoutConstraints(LEFT_COL_W, DEFAULT_H)",{"type":49,"value":5476}," for left-column sections or ",{"type":44,"tag":75,"props":5478,"children":5480},{"className":5479},[],[5481],{"type":49,"value":5482},"resizeWithoutConstraints(RIGHT_COL_W_MIN, DEFAULT_H)",{"type":49,"value":5484}," for right-column diagram sections.",{"type":44,"tag":88,"props":5486,"children":5487},{},[5488,5490,5496,5498,5504],{"type":49,"value":5489},"Position each left-column section at ",{"type":44,"tag":75,"props":5491,"children":5493},{"className":5492},[],[5494],{"type":49,"value":5495},"(0, SECTION_TOP_Y + cumulative_y)",{"type":49,"value":5497},". Right-column sections at ",{"type":44,"tag":75,"props":5499,"children":5501},{"className":5500},[],[5502],{"type":49,"value":5503},"(832, SECTION_TOP_Y + cumulative_y_right)",{"type":49,"value":230},{"type":44,"tag":88,"props":5506,"children":5507},{},[5508,5510,5516,5518,5524,5526,5531],{"type":49,"value":5509},"Return all created node IDs: ",{"type":44,"tag":75,"props":5511,"children":5513},{"className":5512},[],[5514],{"type":49,"value":5515},"{ createdNodeIds: { metadataStrip: {...}, sections: { \u003Cslug>: \"\u003Cid>\", ... } }, status: \"skeleton-complete\" }",{"type":49,"value":5517},". (The ",{"type":44,"tag":75,"props":5519,"children":5521},{"className":5520},[],[5522],{"type":49,"value":5523},"slug",{"type":49,"value":5525}," is internal, used to look up palette + drive Step 7 fills. It is never written to ",{"type":44,"tag":75,"props":5527,"children":5529},{"className":5528},[],[5530],{"type":49,"value":1337},{"type":49,"value":5532},".)",{"type":44,"tag":88,"props":5534,"children":5535},{},[5536,5538,5544],{"type":49,"value":5537},"Take an inline screenshot at ",{"type":44,"tag":75,"props":5539,"children":5541},{"className":5540},[],[5542],{"type":49,"value":5543},"await figma.currentPage.screenshot({ scale: 0.3 })",{"type":49,"value":230},{"type":44,"tag":51,"props":5546,"children":5547},{},[5548],{"type":44,"tag":67,"props":5549,"children":5550},{},[5551],{"type":49,"value":5552},"Checkpoint (screenshot + AskUserQuestion)",{"type":44,"tag":84,"props":5554,"children":5555},{},[5556],{"type":44,"tag":88,"props":5557,"children":5558},{},[5559,5561,5566],{"type":49,"value":5560},"AskUserQuestion: \"Skeleton looks right? ",{"type":44,"tag":1660,"props":5562,"children":5563},{},[5564],{"type":49,"value":5565},"Yes \u002F Fix \u002F Cancel",{"type":49,"value":5567},".\" Fix = targeted fix script; Cancel = stop.",{"type":44,"tag":4013,"props":5569,"children":5570},{},[],{"type":44,"tag":57,"props":5572,"children":5574},{"id":5573},"step-7-fill-pass-one-call-per-section-write",[5575,5577],{"type":49,"value":5576},"Step 7 — Fill pass (one call per section)  ",{"type":44,"tag":1660,"props":5578,"children":5579},{},[5580],{"type":49,"value":4003},{"type":44,"tag":51,"props":5582,"children":5583},{},[5584],{"type":44,"tag":67,"props":5585,"children":5586},{},[5587],{"type":49,"value":4033},{"type":44,"tag":84,"props":5589,"children":5590},{},[5591],{"type":44,"tag":88,"props":5592,"children":5593},{},[5594],{"type":49,"value":5595},"Approved content + block shape for each section; section ID from Step 6.",{"type":44,"tag":51,"props":5597,"children":5598},{},[5599],{"type":44,"tag":67,"props":5600,"children":5601},{},[5602],{"type":49,"value":4075},{"type":44,"tag":84,"props":5604,"children":5605},{},[5606,5616,5626],{"type":44,"tag":88,"props":5607,"children":5608},{},[5609,5614],{"type":44,"tag":75,"props":5610,"children":5612},{"className":5611},[],[5613],{"type":49,"value":111},{"type":49,"value":5615}," (one call per section).",{"type":44,"tag":88,"props":5617,"children":5618},{},[5619,5620,5625],{"type":49,"value":5362},{"type":44,"tag":75,"props":5621,"children":5623},{"className":5622},[],[5624],{"type":49,"value":5368},{"type":49,"value":230},{"type":44,"tag":88,"props":5627,"children":5628},{},[5629,5631],{"type":49,"value":5630},"Re-load whichever block refs this section uses:\n",{"type":44,"tag":84,"props":5632,"children":5633},{},[5634,5644,5654,5664,5674,5684,5694],{"type":44,"tag":88,"props":5635,"children":5636},{},[5637,5642],{"type":44,"tag":75,"props":5638,"children":5640},{"className":5639},[],[5641],{"type":49,"value":344},{"type":49,"value":5643}," always.",{"type":44,"tag":88,"props":5645,"children":5646},{},[5647,5652],{"type":44,"tag":75,"props":5648,"children":5650},{"className":5649},[],[5651],{"type":49,"value":422},{"type":49,"value":5653}," if body\u002FH3\u002Flist.",{"type":44,"tag":88,"props":5655,"children":5656},{},[5657,5662],{"type":44,"tag":75,"props":5658,"children":5660},{"className":5659},[],[5661],{"type":49,"value":448},{"type":49,"value":5663}," if table.",{"type":44,"tag":88,"props":5665,"children":5666},{},[5667,5672],{"type":44,"tag":75,"props":5668,"children":5670},{"className":5669},[],[5671],{"type":49,"value":474},{"type":49,"value":5673}," if multi-column.",{"type":44,"tag":88,"props":5675,"children":5676},{},[5677,5682],{"type":44,"tag":75,"props":5678,"children":5680},{"className":5679},[],[5681],{"type":49,"value":370},{"type":49,"value":5683}," if nested subsections.",{"type":44,"tag":88,"props":5685,"children":5686},{},[5687,5692],{"type":44,"tag":75,"props":5688,"children":5690},{"className":5689},[],[5691],{"type":49,"value":396},{"type":49,"value":5693}," if highlighted intro.",{"type":44,"tag":88,"props":5695,"children":5696},{},[5697,5702],{"type":44,"tag":75,"props":5698,"children":5700},{"className":5699},[],[5701],{"type":49,"value":500},{"type":49,"value":5703}," if stickies.",{"type":44,"tag":51,"props":5705,"children":5706},{},[5707,5711],{"type":44,"tag":67,"props":5708,"children":5709},{},[5710],{"type":49,"value":4122},{"type":49,"value":5712},", per section:",{"type":44,"tag":1494,"props":5714,"children":5715},{},[5716,5727,5732,5743,5753,5763,5774],{"type":44,"tag":88,"props":5717,"children":5718},{},[5719,5725],{"type":44,"tag":75,"props":5720,"children":5722},{"className":5721},[],[5723],{"type":49,"value":5724},"await figma.getNodeByIdAsync(sectionId)",{"type":49,"value":5726}," — confirm type is SECTION.",{"type":44,"tag":88,"props":5728,"children":5729},{},[5730],{"type":49,"value":5731},"Build content: H2 header first, then children per approved block shape. Append to section FIRST, then set x\u002Fy.",{"type":44,"tag":88,"props":5733,"children":5734},{},[5735,5737,5742],{"type":49,"value":5736},"Two-pass measure for stickies per ",{"type":44,"tag":75,"props":5738,"children":5740},{"className":5739},[],[5741],{"type":49,"value":500},{"type":49,"value":230},{"type":44,"tag":88,"props":5744,"children":5745},{},[5746,5752],{"type":44,"tag":75,"props":5747,"children":5749},{"className":5748},[],[5750],{"type":49,"value":5751},"section.resizeWithoutConstraints(LEFT_COL_W, computed_height)",{"type":49,"value":230},{"type":44,"tag":88,"props":5754,"children":5755},{},[5756,5762],{"type":44,"tag":75,"props":5757,"children":5759},{"className":5758},[],[5760],{"type":49,"value":5761},"section.placeholder = false",{"type":49,"value":230},{"type":44,"tag":88,"props":5764,"children":5765},{},[5766,5772],{"type":44,"tag":75,"props":5767,"children":5769},{"className":5768},[],[5770],{"type":49,"value":5771},"await section.screenshot()",{"type":49,"value":5773}," inline.",{"type":44,"tag":88,"props":5775,"children":5776},{},[5777,5783],{"type":44,"tag":75,"props":5778,"children":5780},{"className":5779},[],[5781],{"type":49,"value":5782},"return { mutatedNodeIds: [...], sectionHeight, screenshotIncluded: true }",{"type":49,"value":230},{"type":44,"tag":51,"props":5785,"children":5786},{},[5787],{"type":44,"tag":67,"props":5788,"children":5789},{},[5790],{"type":49,"value":5552},{"type":44,"tag":84,"props":5792,"children":5793},{},[5794],{"type":44,"tag":88,"props":5795,"children":5796},{},[5797,5799,5805,5807,5812],{"type":49,"value":5798},"Per section: AskUserQuestion: \"Section ",{"type":44,"tag":75,"props":5800,"children":5802},{"className":5801},[],[5803],{"type":49,"value":5804},"\u003Cname>",{"type":49,"value":5806}," done? ",{"type":44,"tag":1660,"props":5808,"children":5809},{},[5810],{"type":49,"value":5811},"Yes \u002F Edit this section \u002F Skip rest",{"type":49,"value":5813},".\" Edit = targeted fix; Skip rest = exit fill loop (user will finalize manually).",{"type":44,"tag":51,"props":5815,"children":5816},{},[5817,5822,5824,5829],{"type":44,"tag":67,"props":5818,"children":5819},{},[5820],{"type":49,"value":5821},"After all left-column fills",{"type":49,"value":5823},": run the re-stack pass (single ",{"type":44,"tag":75,"props":5825,"children":5827},{"className":5826},[],[5828],{"type":49,"value":111},{"type":49,"value":5830},") to fix cumulative Y based on actual resized heights:",{"type":44,"tag":1649,"props":5832,"children":5834},{"className":1651,"code":5833,"language":1653,"meta":1654,"style":1654},"let y = SECTION_TOP_Y;\nfor (const id of leftColumnSectionIdsInOrder) {\n  const sec = await figma.getNodeByIdAsync(id);\n  sec.y = y;\n  sec.x = 0;\n  y += sec.height + 32;\n}\nreturn { mutatedNodeIds: leftColumnSectionIdsInOrder };\n",[5835],{"type":44,"tag":75,"props":5836,"children":5837},{"__ignoreMap":1654},[5838,5862,5894,5942,5970,5998,6034,6041],{"type":44,"tag":1660,"props":5839,"children":5840},{"class":1662,"line":1663},[5841,5845,5849,5853,5858],{"type":44,"tag":1660,"props":5842,"children":5843},{"style":1667},[5844],{"type":49,"value":1861},{"type":44,"tag":1660,"props":5846,"children":5847},{"style":1673},[5848],{"type":49,"value":2956},{"type":44,"tag":1660,"props":5850,"children":5851},{"style":1679},[5852],{"type":49,"value":1682},{"type":44,"tag":1660,"props":5854,"children":5855},{"style":1673},[5856],{"type":49,"value":5857}," SECTION_TOP_Y",{"type":44,"tag":1660,"props":5859,"children":5860},{"style":1679},[5861],{"type":49,"value":1693},{"type":44,"tag":1660,"props":5863,"children":5864},{"class":1662,"line":1696},[5865,5869,5873,5877,5881,5885,5890],{"type":44,"tag":1660,"props":5866,"children":5867},{"style":1763},[5868],{"type":49,"value":1766},{"type":44,"tag":1660,"props":5870,"children":5871},{"style":1673},[5872],{"type":49,"value":1771},{"type":44,"tag":1660,"props":5874,"children":5875},{"style":1667},[5876],{"type":49,"value":1670},{"type":44,"tag":1660,"props":5878,"children":5879},{"style":1673},[5880],{"type":49,"value":1780},{"type":44,"tag":1660,"props":5882,"children":5883},{"style":1679},[5884],{"type":49,"value":1785},{"type":44,"tag":1660,"props":5886,"children":5887},{"style":1673},[5888],{"type":49,"value":5889}," leftColumnSectionIdsInOrder) ",{"type":44,"tag":1660,"props":5891,"children":5892},{"style":1679},[5893],{"type":49,"value":1951},{"type":44,"tag":1660,"props":5895,"children":5896},{"class":1662,"line":1733},[5897,5901,5906,5910,5914,5918,5922,5926,5930,5934,5938],{"type":44,"tag":1660,"props":5898,"children":5899},{"style":1667},[5900],{"type":49,"value":2627},{"type":44,"tag":1660,"props":5902,"children":5903},{"style":1673},[5904],{"type":49,"value":5905}," sec",{"type":44,"tag":1660,"props":5907,"children":5908},{"style":1679},[5909],{"type":49,"value":1965},{"type":44,"tag":1660,"props":5911,"children":5912},{"style":1763},[5913],{"type":49,"value":3034},{"type":44,"tag":1660,"props":5915,"children":5916},{"style":1673},[5917],{"type":49,"value":1815},{"type":44,"tag":1660,"props":5919,"children":5920},{"style":1679},[5921],{"type":49,"value":230},{"type":44,"tag":1660,"props":5923,"children":5924},{"style":1797},[5925],{"type":49,"value":1824},{"type":44,"tag":1660,"props":5927,"children":5928},{"style":1982},[5929],{"type":49,"value":1805},{"type":44,"tag":1660,"props":5931,"children":5932},{"style":1673},[5933],{"type":49,"value":3055},{"type":44,"tag":1660,"props":5935,"children":5936},{"style":1982},[5937],{"type":49,"value":650},{"type":44,"tag":1660,"props":5939,"children":5940},{"style":1679},[5941],{"type":49,"value":1693},{"type":44,"tag":1660,"props":5943,"children":5944},{"class":1662,"line":1759},[5945,5950,5954,5958,5962,5966],{"type":44,"tag":1660,"props":5946,"children":5947},{"style":1673},[5948],{"type":49,"value":5949},"  sec",{"type":44,"tag":1660,"props":5951,"children":5952},{"style":1679},[5953],{"type":49,"value":230},{"type":44,"tag":1660,"props":5955,"children":5956},{"style":1673},[5957],{"type":49,"value":2064},{"type":44,"tag":1660,"props":5959,"children":5960},{"style":1679},[5961],{"type":49,"value":1965},{"type":44,"tag":1660,"props":5963,"children":5964},{"style":1673},[5965],{"type":49,"value":3116},{"type":44,"tag":1660,"props":5967,"children":5968},{"style":1679},[5969],{"type":49,"value":1693},{"type":44,"tag":1660,"props":5971,"children":5972},{"class":1662,"line":1836},[5973,5977,5981,5985,5989,5994],{"type":44,"tag":1660,"props":5974,"children":5975},{"style":1673},[5976],{"type":49,"value":5949},{"type":44,"tag":1660,"props":5978,"children":5979},{"style":1679},[5980],{"type":49,"value":230},{"type":44,"tag":1660,"props":5982,"children":5983},{"style":1673},[5984],{"type":49,"value":2008},{"type":44,"tag":1660,"props":5986,"children":5987},{"style":1679},[5988],{"type":49,"value":1965},{"type":44,"tag":1660,"props":5990,"children":5991},{"style":1685},[5992],{"type":49,"value":5993}," 0",{"type":44,"tag":1660,"props":5995,"children":5996},{"style":1679},[5997],{"type":49,"value":1693},{"type":44,"tag":1660,"props":5999,"children":6000},{"class":1662,"line":1846},[6001,6005,6009,6013,6017,6021,6025,6030],{"type":44,"tag":1660,"props":6002,"children":6003},{"style":1673},[6004],{"type":49,"value":3128},{"type":44,"tag":1660,"props":6006,"children":6007},{"style":1679},[6008],{"type":49,"value":3133},{"type":44,"tag":1660,"props":6010,"children":6011},{"style":1673},[6012],{"type":49,"value":5905},{"type":44,"tag":1660,"props":6014,"children":6015},{"style":1679},[6016],{"type":49,"value":230},{"type":44,"tag":1660,"props":6018,"children":6019},{"style":1673},[6020],{"type":49,"value":2212},{"type":44,"tag":1660,"props":6022,"children":6023},{"style":1679},[6024],{"type":49,"value":2128},{"type":44,"tag":1660,"props":6026,"children":6027},{"style":1685},[6028],{"type":49,"value":6029}," 32",{"type":44,"tag":1660,"props":6031,"children":6032},{"style":1679},[6033],{"type":49,"value":1693},{"type":44,"tag":1660,"props":6035,"children":6036},{"class":1662,"line":1855},[6037],{"type":44,"tag":1660,"props":6038,"children":6039},{"style":1679},[6040],{"type":49,"value":2229},{"type":44,"tag":1660,"props":6042,"children":6043},{"class":1662,"line":1919},[6044,6048,6053,6058,6062,6067],{"type":44,"tag":1660,"props":6045,"children":6046},{"style":1763},[6047],{"type":49,"value":5019},{"type":44,"tag":1660,"props":6049,"children":6050},{"style":1679},[6051],{"type":49,"value":6052}," {",{"type":44,"tag":1660,"props":6054,"children":6055},{"style":1982},[6056],{"type":49,"value":6057}," mutatedNodeIds",{"type":44,"tag":1660,"props":6059,"children":6060},{"style":1679},[6061],{"type":49,"value":255},{"type":44,"tag":1660,"props":6063,"children":6064},{"style":1673},[6065],{"type":49,"value":6066}," leftColumnSectionIdsInOrder ",{"type":44,"tag":1660,"props":6068,"children":6069},{"style":1679},[6070],{"type":49,"value":5236},{"type":44,"tag":51,"props":6072,"children":6073},{},[6074,6079,6081,6086],{"type":44,"tag":67,"props":6075,"children":6076},{},[6077],{"type":49,"value":6078},"Then run the outer-wrapper pass",{"type":49,"value":6080}," (single ",{"type":44,"tag":75,"props":6082,"children":6084},{"className":6083},[],[6085],{"type":49,"value":111},{"type":49,"value":6087},") — wrap all left-column sections in an unlabeled white outer SECTION (see \"Outer column wrapper\" in the visual conventions block above). This is STRICT; do not skip.",{"type":44,"tag":4013,"props":6089,"children":6090},{},[],{"type":44,"tag":57,"props":6092,"children":6094},{"id":6093},"step-8-diagrams-write",[6095,6097],{"type":49,"value":6096},"Step 8 — Diagrams  ",{"type":44,"tag":1660,"props":6098,"children":6099},{},[6100],{"type":49,"value":4003},{"type":44,"tag":51,"props":6102,"children":6103},{},[6104],{"type":44,"tag":67,"props":6105,"children":6106},{},[6107],{"type":49,"value":4033},{"type":44,"tag":84,"props":6109,"children":6110},{},[6111],{"type":44,"tag":88,"props":6112,"children":6113},{},[6114],{"type":49,"value":6115},"Diagram intents from Step 2\u002F4 (Current State, Target State, 0–N Key Flows); tech-context for Mermaid composition.",{"type":44,"tag":51,"props":6117,"children":6118},{},[6119],{"type":44,"tag":67,"props":6120,"children":6121},{},[6122],{"type":49,"value":4075},{"type":44,"tag":84,"props":6124,"children":6125},{},[6126,6144,6167],{"type":44,"tag":88,"props":6127,"children":6128},{},[6129,6130,6136,6138,6143],{"type":49,"value":5362},{"type":44,"tag":75,"props":6131,"children":6133},{"className":6132},[],[6134],{"type":49,"value":6135},"generate-diagram\u002FSKILL.md",{"type":49,"value":6137}," before each ",{"type":44,"tag":75,"props":6139,"children":6141},{"className":6140},[],[6142],{"type":49,"value":155},{"type":49,"value":135},{"type":44,"tag":88,"props":6145,"children":6146},{},[6147,6148,6153,6154,6159,6161,6166],{"type":49,"value":5362},{"type":44,"tag":75,"props":6149,"children":6151},{"className":6150},[],[6152],{"type":49,"value":5368},{"type":49,"value":3522},{"type":44,"tag":75,"props":6155,"children":6157},{"className":6156},[],[6158],{"type":49,"value":526},{"type":49,"value":6160}," before each reparent ",{"type":44,"tag":75,"props":6162,"children":6164},{"className":6163},[],[6165],{"type":49,"value":111},{"type":49,"value":135},{"type":44,"tag":88,"props":6168,"children":6169},{},[6170,6175,6177,6182],{"type":44,"tag":75,"props":6171,"children":6173},{"className":6172},[],[6174],{"type":49,"value":155},{"type":49,"value":6176}," MCP tool, ",{"type":44,"tag":75,"props":6178,"children":6180},{"className":6179},[],[6181],{"type":49,"value":111},{"type":49,"value":230},{"type":44,"tag":51,"props":6184,"children":6185},{},[6186,6190],{"type":44,"tag":67,"props":6187,"children":6188},{},[6189],{"type":49,"value":4122},{"type":49,"value":6191},", per diagram:",{"type":44,"tag":1494,"props":6193,"children":6194},{},[6195,6218,6234,6258],{"type":44,"tag":88,"props":6196,"children":6197},{},[6198,6203,6205,6210,6212,6217],{"type":44,"tag":75,"props":6199,"children":6201},{"className":6200},[],[6202],{"type":49,"value":111},{"type":49,"value":6204},": create the right-column section (white fill, H2 header, ",{"type":44,"tag":75,"props":6206,"children":6208},{"className":6207},[],[6209],{"type":49,"value":1464},{"type":49,"value":6211},") per ",{"type":44,"tag":75,"props":6213,"children":6215},{"className":6214},[],[6216],{"type":49,"value":526},{"type":49,"value":230},{"type":44,"tag":88,"props":6219,"children":6220},{},[6221,6226,6228,6233],{"type":44,"tag":75,"props":6222,"children":6224},{"className":6223},[],[6225],{"type":49,"value":155},{"type":49,"value":6227},": compose Mermaid from tech-context; architecture diagrams use ",{"type":44,"tag":75,"props":6229,"children":6231},{"className":6230},[],[6232],{"type":49,"value":3424},{"type":49,"value":230},{"type":44,"tag":88,"props":6235,"children":6236},{},[6237,6242,6244,6250,6252,6257],{"type":44,"tag":75,"props":6238,"children":6240},{"className":6239},[],[6241],{"type":49,"value":111},{"type":49,"value":6243},": locate the generated diagram node, reparent into the section (",{"type":44,"tag":75,"props":6245,"children":6247},{"className":6246},[],[6248],{"type":49,"value":6249},"section.appendChild(diag)",{"type":49,"value":6251},"), position below H2, resize section to fit. ",{"type":44,"tag":75,"props":6253,"children":6255},{"className":6254},[],[6256],{"type":49,"value":1472},{"type":49,"value":230},{"type":44,"tag":88,"props":6259,"children":6260},{},[6261,6266],{"type":44,"tag":75,"props":6262,"children":6264},{"className":6263},[],[6265],{"type":49,"value":5771},{"type":49,"value":230},{"type":44,"tag":51,"props":6268,"children":6269},{},[6270,6275,6277,6282,6284,6290],{"type":44,"tag":67,"props":6271,"children":6272},{},[6273],{"type":49,"value":6274},"Failure handling",{"type":49,"value":6276},": if ",{"type":44,"tag":75,"props":6278,"children":6280},{"className":6279},[],[6281],{"type":49,"value":155},{"type":49,"value":6283}," fails, leave a text placeholder in the section reading ",{"type":44,"tag":75,"props":6285,"children":6287},{"className":6286},[],[6288],{"type":49,"value":6289},"\"Diagram generation failed: \u003Cmessage>. Regenerate manually.\"",{"type":49,"value":6291}," Continue to the next diagram.",{"type":44,"tag":51,"props":6293,"children":6294},{},[6295],{"type":44,"tag":67,"props":6296,"children":6297},{},[6298],{"type":49,"value":5552},{"type":44,"tag":84,"props":6300,"children":6301},{},[6302],{"type":44,"tag":88,"props":6303,"children":6304},{},[6305,6307,6312,6314,6319],{"type":49,"value":6306},"Per diagram: AskUserQuestion: \"Diagram ",{"type":44,"tag":75,"props":6308,"children":6310},{"className":6309},[],[6311],{"type":49,"value":5804},{"type":49,"value":6313}," looks right? ",{"type":44,"tag":1660,"props":6315,"children":6316},{},[6317],{"type":49,"value":6318},"Yes \u002F Regenerate \u002F Skip",{"type":49,"value":4721},{"type":44,"tag":4013,"props":6321,"children":6322},{},[],{"type":44,"tag":57,"props":6324,"children":6326},{"id":6325},"step-9-final-review-report-write-then-read",[6327,6329],{"type":49,"value":6328},"Step 9 — Final review + report  ",{"type":44,"tag":1660,"props":6330,"children":6331},{},[6332],{"type":49,"value":6333},"Write, then Read",{"type":44,"tag":51,"props":6335,"children":6336},{},[6337],{"type":44,"tag":67,"props":6338,"children":6339},{},[6340],{"type":49,"value":4033},{"type":44,"tag":84,"props":6342,"children":6343},{},[6344],{"type":44,"tag":88,"props":6345,"children":6346},{},[6347,6352],{"type":44,"tag":75,"props":6348,"children":6350},{"className":6349},[],[6351],{"type":49,"value":4959},{"type":49,"value":6353}," from Step 5.",{"type":44,"tag":51,"props":6355,"children":6356},{},[6357],{"type":44,"tag":67,"props":6358,"children":6359},{},[6360],{"type":49,"value":4075},{"type":44,"tag":84,"props":6362,"children":6363},{},[6364],{"type":44,"tag":88,"props":6365,"children":6366},{},[6367,6372],{"type":44,"tag":75,"props":6368,"children":6370},{"className":6369},[],[6371],{"type":49,"value":111},{"type":49,"value":6373}," (one call for full-page screenshot).",{"type":44,"tag":51,"props":6375,"children":6376},{},[6377],{"type":44,"tag":67,"props":6378,"children":6379},{},[6380],{"type":49,"value":4122},{"type":44,"tag":1494,"props":6382,"children":6383},{},[6384,6395,6407,6426],{"type":44,"tag":88,"props":6385,"children":6386},{},[6387,6393],{"type":44,"tag":75,"props":6388,"children":6390},{"className":6389},[],[6391],{"type":49,"value":6392},"await figma.currentPage.screenshot({ scale: 0.25 })",{"type":49,"value":6394}," — full board.",{"type":44,"tag":88,"props":6396,"children":6397},{},[6398,6400,6405],{"type":49,"value":6399},"Inspect: two-column structure, no overlaps, no sections left with ",{"type":44,"tag":75,"props":6401,"children":6403},{"className":6402},[],[6404],{"type":49,"value":1464},{"type":49,"value":6406},", metadata strip visible.",{"type":44,"tag":88,"props":6408,"children":6409},{},[6410,6412,6417,6419,6424],{"type":49,"value":6411},"Fix any issues with a targeted ",{"type":44,"tag":75,"props":6413,"children":6415},{"className":6414},[],[6416],{"type":49,"value":111},{"type":49,"value":6418}," script. Do ",{"type":44,"tag":67,"props":6420,"children":6421},{},[6422],{"type":49,"value":6423},"not",{"type":49,"value":6425}," regenerate from scratch.",{"type":44,"tag":88,"props":6427,"children":6428},{},[6429],{"type":49,"value":6430},"Post to chat:",{"type":44,"tag":1649,"props":6432,"children":6435},{"className":6433,"code":6434,"language":49},[3955],"✅ Project plan written to FigJam.\nFile: \u003Cfile_url>\nSections: \u003CN text + N diagram>\nFiles referenced during grounding: \u003Ccount>\n",[6436],{"type":44,"tag":75,"props":6437,"children":6438},{"__ignoreMap":1654},[6439],{"type":49,"value":6434},{"type":44,"tag":51,"props":6441,"children":6442},{},[6443],{"type":44,"tag":67,"props":6444,"children":6445},{},[6446],{"type":49,"value":5552},{"type":44,"tag":84,"props":6448,"children":6449},{},[6450],{"type":44,"tag":88,"props":6451,"children":6452},{},[6453,6455,6460],{"type":49,"value":6454},"AskUserQuestion: \"Done, or tweak? ",{"type":44,"tag":1660,"props":6456,"children":6457},{},[6458],{"type":49,"value":6459},"Done \u002F Tweak",{"type":49,"value":6461},".\" Tweak = targeted fix script on user's request, not regeneration.",{"type":44,"tag":4013,"props":6463,"children":6464},{},[],{"type":44,"tag":57,"props":6466,"children":6468},{"id":6467},"operational-rules",[6469],{"type":49,"value":6470},"Operational rules",{"type":44,"tag":84,"props":6472,"children":6473},{},[6474,6485,6506,6524,6604,6635,6640],{"type":44,"tag":88,"props":6475,"children":6476},{},[6477,6479,6484],{"type":49,"value":6478},"≤10 logical operations per ",{"type":44,"tag":75,"props":6480,"children":6482},{"className":6481},[],[6483],{"type":49,"value":111},{"type":49,"value":135},{"type":44,"tag":88,"props":6486,"children":6487},{},[6488,6490,6496,6498,6504],{"type":49,"value":6489},"Always return ",{"type":44,"tag":75,"props":6491,"children":6493},{"className":6492},[],[6494],{"type":49,"value":6495},"createdNodeIds",{"type":49,"value":6497}," \u002F ",{"type":44,"tag":75,"props":6499,"children":6501},{"className":6500},[],[6502],{"type":49,"value":6503},"mutatedNodeIds",{"type":49,"value":6505}," from every write script.",{"type":44,"tag":88,"props":6507,"children":6508},{},[6509,6511,6516,6518,6523],{"type":49,"value":6510},"Use ",{"type":44,"tag":75,"props":6512,"children":6514},{"className":6513},[],[6515],{"type":49,"value":191},{"type":49,"value":6517}," notation for all palette colors (see ",{"type":44,"tag":75,"props":6519,"children":6521},{"className":6520},[],[6522],{"type":49,"value":183},{"type":49,"value":193},{"type":44,"tag":88,"props":6525,"children":6526},{},[6527,6539,6541,6546,6547,6552,6553,6558,6559,6564,6566,6571,6573,6578,6579,6584,6585,6590,6591,6596,6598,6603],{"type":44,"tag":67,"props":6528,"children":6529},{},[6530,6532,6537],{"type":49,"value":6531},"STRICT: section backgrounds use the ",{"type":44,"tag":75,"props":6533,"children":6535},{"className":6534},[],[6536],{"type":49,"value":618},{"type":49,"value":6538}," palette, NOT the FigJam standard SECTION palette.",{"type":49,"value":6540}," ARCH_PALE colors (",{"type":44,"tag":75,"props":6542,"children":6544},{"className":6543},[],[6545],{"type":49,"value":708},{"type":49,"value":925},{"type":44,"tag":75,"props":6548,"children":6550},{"className":6549},[],[6551],{"type":49,"value":682},{"type":49,"value":925},{"type":44,"tag":75,"props":6554,"children":6556},{"className":6555},[],[6557],{"type":49,"value":760},{"type":49,"value":925},{"type":44,"tag":75,"props":6560,"children":6562},{"className":6561},[],[6563],{"type":49,"value":787},{"type":49,"value":6565},", etc.) visually pair with the architecture-diagram subgraph wrappers that ",{"type":44,"tag":75,"props":6567,"children":6569},{"className":6568},[],[6570],{"type":49,"value":155},{"type":49,"value":6572}," produces. The FigJam SECTION palette (",{"type":44,"tag":75,"props":6574,"children":6576},{"className":6575},[],[6577],{"type":49,"value":717},{"type":49,"value":925},{"type":44,"tag":75,"props":6580,"children":6582},{"className":6581},[],[6583],{"type":49,"value":743},{"type":49,"value":925},{"type":44,"tag":75,"props":6586,"children":6588},{"className":6587},[],[6589],{"type":49,"value":691},{"type":49,"value":925},{"type":44,"tag":75,"props":6592,"children":6594},{"className":6593},[],[6595],{"type":49,"value":796},{"type":49,"value":6597},") is too saturated and causes visible color clash next to diagrams. See ",{"type":44,"tag":75,"props":6599,"children":6601},{"className":6600},[],[6602],{"type":49,"value":183},{"type":49,"value":230},{"type":44,"tag":88,"props":6605,"children":6606},{},[6607,6619,6621,6626,6628,6633],{"type":44,"tag":67,"props":6608,"children":6609},{},[6610,6612,6617],{"type":49,"value":6611},"STRICT: ",{"type":44,"tag":75,"props":6613,"children":6615},{"className":6614},[],[6616],{"type":49,"value":3622},{"type":49,"value":6618}," on every project-plan section (left-column, right-column, and nested children).",{"type":49,"value":6620}," The user-facing title is rendered as the H2 text node ",{"type":44,"tag":4323,"props":6622,"children":6623},{},[6624],{"type":49,"value":6625},"inside",{"type":49,"value":6627}," the section, NOT via FigJam's section title-bar label. The reference board uses empty section names; setting a non-empty ",{"type":44,"tag":75,"props":6629,"children":6631},{"className":6630},[],[6632],{"type":49,"value":5057},{"type":49,"value":6634}," produces a duplicate label that visually clutters the board.",{"type":44,"tag":88,"props":6636,"children":6637},{},[6638],{"type":49,"value":6639},"Read, edit, or cancel at every Confirm\u002FWrite checkpoint — never write past an unanswered AskUserQuestion.",{"type":44,"tag":88,"props":6641,"children":6642},{},[6643,6645,6650],{"type":49,"value":6644},"If a ",{"type":44,"tag":75,"props":6646,"children":6648},{"className":6647},[],[6649],{"type":49,"value":111},{"type":49,"value":6651}," script errors: atomic — no changes made. Read the error, fix, retry.",{"type":44,"tag":57,"props":6653,"children":6655},{"id":6654},"trigger-phrases",[6656],{"type":49,"value":6657},"Trigger phrases",{"type":44,"tag":51,"props":6659,"children":6660},{},[6661],{"type":49,"value":6662},"\"\u002Fgenerate-project-plan\", \"interactive project plan\", \"project plan\", \"make a FigJam project plan\", \"PRD to FigJam\".",{"type":44,"tag":6664,"props":6665,"children":6666},"style",{},[6667],{"type":49,"value":6668},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":6670,"total":2279},[6671,6689,6704,6715,6726,6741,6755,6768,6790,6799,6814,6825],{"slug":6672,"name":6672,"fn":6673,"description":6674,"org":6675,"tags":6676,"stars":26,"repoUrl":27,"updatedAt":6688},"figma-code-connect","map Figma components to code snippets","Creates and maintains Figma Code Connect template files that map Figma components to code snippets. Use when the user mentions Code Connect, Figma component mapping, design-to-code translation, or asks to create\u002Fupdate .figma.ts or .figma.js files.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6677,6678,6681,6682,6685],{"name":24,"slug":25,"type":15},{"name":6679,"slug":6680,"type":15},"Design System","design-system",{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},"Frontend","frontend",{"name":6686,"slug":6687,"type":15},"UI Components","ui-components","2026-07-31T05:52:30.590302",{"slug":6690,"name":6690,"fn":6691,"description":6692,"org":6693,"tags":6694,"stars":26,"repoUrl":27,"updatedAt":6703},"figma-create-new-file","create new Figma or FigJam files","**MANDATORY prerequisite** — you MUST invoke this skill BEFORE every `create_new_file` tool call. NEVER call `create_new_file` directly without loading this skill first. Trigger whenever the user wants a new blank Figma file — a new design, FigJam, or Slides file — or when you need a fresh file before calling `use_figma`. Usage — \u002Ffigma-create-new-file [editorType] [fileName] (e.g. \u002Ffigma-create-new-file figjam My Whiteboard, \u002Ffigma-create-new-file slides Q3 Review)",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6695,6696,6697,6700],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6698,"slug":6699,"type":15},"Ideation","ideation",{"name":6701,"slug":6702,"type":15},"MCP","mcp","2026-04-06T18:11:46.464282",{"slug":6705,"name":6705,"fn":6706,"description":6707,"org":6708,"tags":6709,"stars":26,"repoUrl":27,"updatedAt":6714},"figma-design-to-code","implement Figma designs as code","**MANDATORY prerequisite** — you MUST invoke this skill BEFORE calling the `get_design_context` Figma MCP tool. You MUST trigger this skill whenever the user wants to implement, build, port, or code up a Figma design as code. Example prompts (not exhaustive) are 'implement this Figma design', 'build this screen from Figma', 'turn this Figma into code', 'design to code'. This skill provides critical instructions and steps to the agent on how to correctly implement Figma designs in code and must NOT be skipped.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6710,6711,6712,6713],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6686,"slug":6687,"type":15},"2026-07-10T06:43:51.122606",{"slug":6716,"name":6716,"fn":6717,"description":6718,"org":6719,"tags":6720,"stars":26,"repoUrl":27,"updatedAt":6725},"figma-generate-design","translate code layouts into Figma","Use this skill alongside figma-use when the task involves translating an application page, view, or multi-section layout into Figma. Triggers: 'write to Figma', 'create in Figma from code', 'push page to Figma', 'take this app\u002Fpage and build it in Figma', 'create a screen', 'build a landing page in Figma', 'update the Figma screen to match code', 'convert this modal\u002Fdialog\u002Fdrawer\u002Fpanel to Figma'. This is the preferred workflow skill whenever the user wants to build or update a full page, modal, dialog, drawer, sidebar, panel, or any composed multi-section view in Figma from code or a description. Discovers design system components, variables, and styles from Code Connect files, existing screens, and library search, then imports them and assembles views incrementally section-by-section using design system tokens instead of hardcoded values.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6721,6722,6723,6724],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6686,"slug":6687,"type":15},"2026-04-06T18:11:48.952023",{"slug":144,"name":144,"fn":6727,"description":6728,"org":6729,"tags":6730,"stars":26,"repoUrl":27,"updatedAt":6740},"generate flowcharts and architecture diagrams in Figma","MANDATORY prerequisite — load this skill BEFORE every `generate_diagram` tool call. NEVER call `generate_diagram` directly without loading this skill first. Trigger whenever the user asks to create, generate, draw, render, sketch, or build a diagram — flowchart, architecture diagram, sequence diagram, ERD or entity-relationship diagram, state diagram or state machine, gantt chart, or timeline. Also trigger when the user mentions Mermaid syntax or wants a system architecture, decision tree, dependency graph, API call flow, auth handshake, schema, or pipeline visualized in FigJam. Routes to type-specific guidance, sets universal Mermaid constraints, and tells you when to use a different diagram type or skip the tool entirely (mindmaps, pie charts, class diagrams, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6731,6734,6735,6738,6739],{"name":6732,"slug":6733,"type":15},"Architecture","architecture",{"name":24,"slug":25,"type":15},{"name":6736,"slug":6737,"type":15},"Diagrams","diagrams",{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},"2026-04-28T05:43:52.834484",{"slug":6742,"name":6742,"fn":6743,"description":6744,"org":6745,"tags":6746,"stars":26,"repoUrl":27,"updatedAt":6754},"figma-generate-library","build Figma design systems from code","Build or update a professional-grade design system in Figma from a codebase. Use when the user wants to create variables\u002Ftokens, build component libraries, create individual components with proper variant sets and variable bindings, set up theming (light\u002Fdark modes), document foundations, or reconcile gaps between code and Figma. Also use when the user asks to create or generate any component in Figma — even a single one — since components require proper variable foundations, variant states, and design token bindings to be production-quality. This skill teaches WHAT to build and in WHAT ORDER — it complements the `figma-use` skill which teaches HOW to call the Plugin API. Both skills should be loaded together.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6747,6748,6749,6752,6753],{"name":24,"slug":25,"type":15},{"name":6679,"slug":6680,"type":15},{"name":6750,"slug":6751,"type":15},"Documentation","documentation",{"name":9,"slug":8,"type":15},{"name":6686,"slug":6687,"type":15},"2026-07-31T05:52:28.587088",{"slug":6756,"name":6756,"fn":6757,"description":6758,"org":6759,"tags":6760,"stars":26,"repoUrl":27,"updatedAt":6767},"figma-implement-motion","implement Figma animations in production code","Translates Figma motion and animations into production-ready application code. Use when implementing animation\u002Fmotion from a Figma design — user mentions \"implement this motion\", \"add animation from Figma\", \"animate this component\", provides a Figma URL whose node is animated, or when `get_design_context` returns motion data or instructs you to call `get_motion_context`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6761,6764,6765,6766],{"name":6762,"slug":6763,"type":15},"Animation","animation",{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},"2026-06-25T07:13:13.645254",{"slug":6769,"name":6769,"fn":6770,"description":6771,"org":6772,"tags":6773,"stars":26,"repoUrl":27,"updatedAt":6789},"figma-swiftui","translate between Figma designs and SwiftUI code","SwiftUI ↔ Figma translation. Use whenever the user mentions Swift, SwiftUI, iOS, iPhone, or iPad — in EITHER direction — translating a Figma design into SwiftUI (design → code), or pushing SwiftUI views \u002F screens \u002F tokens back into a Figma file (code → design). Triggers on phrases like 'implement this Figma design in SwiftUI', 'build this screen in Swift', 'push this SwiftUI view to Figma', 'mirror my Swift code in a Figma file', or whenever a Figma URL appears alongside `.swift` files \u002F an `.xcodeproj`. Routes to a direction-specific reference doc; loads alongside `figma-use` for the code → design path.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6774,6775,6776,6777,6780,6783,6786],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6778,"slug":6779,"type":15},"iOS","ios",{"name":6781,"slug":6782,"type":15},"Mobile","mobile",{"name":6784,"slug":6785,"type":15},"SwiftUI","swiftui",{"name":6787,"slug":6788,"type":15},"Visual Design","visual-design","2026-06-09T07:16:28.204756",{"slug":96,"name":96,"fn":6791,"description":6792,"org":6793,"tags":6794,"stars":26,"repoUrl":27,"updatedAt":6798},"initialize Figma tool usage","**MANDATORY prerequisite** — you MUST invoke this skill BEFORE every `use_figma` tool call. NEVER call `use_figma` directly without loading this skill first. Skipping it causes common, hard-to-debug failures. Trigger whenever the user wants to perform a write action or a unique read action that requires JavaScript execution in the Figma file context — e.g. create\u002Fedit\u002Fdelete nodes, set up variables or tokens, build components and variants, modify auto-layout or fills, bind variables to properties, or inspect file structure programmatically.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6795,6796,6797],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},"2026-07-31T05:52:29.57808",{"slug":122,"name":122,"fn":6800,"description":6801,"org":6802,"tags":6803,"stars":26,"repoUrl":27,"updatedAt":6813},"use Figma tools in FigJam context","This skill helps agents use Figma's use_figma MCP tool in the FigJam context. Can be used alongside figma-use which has foundational context for using the use_figma tool.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6804,6807,6808,6811,6812],{"name":6805,"slug":6806,"type":15},"Collaboration","collaboration",{"name":24,"slug":25,"type":15},{"name":6809,"slug":6810,"type":15},"FigJam","figjam",{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},"2026-04-28T05:43:51.600727",{"slug":6815,"name":6815,"fn":6816,"description":6817,"org":6818,"tags":6819,"stars":26,"repoUrl":27,"updatedAt":6824},"figma-use-motion","animate Figma nodes with motion tools","Motion \u002F animation context for the `use_figma` MCP tool — animating Figma nodes via manual keyframes, animation styles, easing, and timeline duration. Load alongside figma-use whenever a task involves adding, editing, or inspecting animation on a node.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6820,6821,6822,6823],{"name":6762,"slug":6763,"type":15},{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},"2026-06-25T07:13:12.398176",{"slug":6826,"name":6826,"fn":6827,"description":6828,"org":6829,"tags":6830,"stars":26,"repoUrl":27,"updatedAt":6837},"figma-use-slides","use Figma tools in Slides context","This skill helps agents use Figma's use_figma MCP tool in the Slides context. Can be used alongside figma-use which has foundational context for using the use_figma tool.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6831,6832,6833,6834],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},{"name":6835,"slug":6836,"type":15},"Presentations","presentations","2026-05-14T06:09:42.171824",{"items":6839,"total":2279},[6840,6848,6855,6862,6869,6877,6885],{"slug":6672,"name":6672,"fn":6673,"description":6674,"org":6841,"tags":6842,"stars":26,"repoUrl":27,"updatedAt":6688},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6843,6844,6845,6846,6847],{"name":24,"slug":25,"type":15},{"name":6679,"slug":6680,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6686,"slug":6687,"type":15},{"slug":6690,"name":6690,"fn":6691,"description":6692,"org":6849,"tags":6850,"stars":26,"repoUrl":27,"updatedAt":6703},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6851,6852,6853,6854],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6698,"slug":6699,"type":15},{"name":6701,"slug":6702,"type":15},{"slug":6705,"name":6705,"fn":6706,"description":6707,"org":6856,"tags":6857,"stars":26,"repoUrl":27,"updatedAt":6714},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6858,6859,6860,6861],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6686,"slug":6687,"type":15},{"slug":6716,"name":6716,"fn":6717,"description":6718,"org":6863,"tags":6864,"stars":26,"repoUrl":27,"updatedAt":6725},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6865,6866,6867,6868],{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15},{"name":6686,"slug":6687,"type":15},{"slug":144,"name":144,"fn":6727,"description":6728,"org":6870,"tags":6871,"stars":26,"repoUrl":27,"updatedAt":6740},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6872,6873,6874,6875,6876],{"name":6732,"slug":6733,"type":15},{"name":24,"slug":25,"type":15},{"name":6736,"slug":6737,"type":15},{"name":9,"slug":8,"type":15},{"name":6701,"slug":6702,"type":15},{"slug":6742,"name":6742,"fn":6743,"description":6744,"org":6878,"tags":6879,"stars":26,"repoUrl":27,"updatedAt":6754},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6880,6881,6882,6883,6884],{"name":24,"slug":25,"type":15},{"name":6679,"slug":6680,"type":15},{"name":6750,"slug":6751,"type":15},{"name":9,"slug":8,"type":15},{"name":6686,"slug":6687,"type":15},{"slug":6756,"name":6756,"fn":6757,"description":6758,"org":6886,"tags":6887,"stars":26,"repoUrl":27,"updatedAt":6767},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[6888,6889,6890,6891],{"name":6762,"slug":6763,"type":15},{"name":24,"slug":25,"type":15},{"name":9,"slug":8,"type":15},{"name":6683,"slug":6684,"type":15}]