{"id":68043,"plugin_id":"plugin_asdk_app_6acd70e6df788191aa68f53d41d82ac7","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-10-28T13:12:16.308Z","digest":"4397aca42a16ba9bbc9fe1a8a2567a132ce3587ace64e91921c61cabbaa89d67","against":null,"payload":{"description":"Arrange and tidy diagrams on Whiteboard by Lumin with readable spacing, alignment, groups, and connectors. Use for crowded boards, flowcharts, system diagrams, and visual organization; preserve the meaning and scope of existing content.","included_files":[],"name":"whiteboard-layout","skill_md_contents":"---\nname: whiteboard-layout\ndescription: Arrange and tidy diagrams on Whiteboard by Lumin with readable spacing, alignment, groups, and connectors. Use for crowded boards, flowcharts, system diagrams, and visual organization; preserve the meaning and scope of existing content.\n---\n\n# Layout and organization\n\nFollow [Whiteboard operations](../whiteboard/SKILL.md) before changing a file. Use [Visual storytelling](../whiteboard-storytelling/SKILL.md) if the message or diagram structure is still undecided.\n\n## Arrange the content\n\nRead the current elements and their bounds first. For an addition, find nearby empty space and preserve existing positions. For a requested cleanup, keep related IDs and relationships intact while moving the smallest useful group. Do not reorder steps merely for symmetry.\n\nPick one main reading direction. Align items that play the same role; use consistent dimensions for comparable nodes. Group related items with proximity first, then a section heading or subtle container when needed. Let whitespace separate groups. A container goes behind its contents in element order; group IDs help move a set together but do not replace connector or text bindings.\n\nAs a starting point at normal zoom, use 20–24 px labels, approximately 20 px internal padding, and 48–80 px between nodes. Adapt to content and the existing scale. Wrap labels at meaningful phrases and enlarge boxes before reducing text size. Handwritten text needs room, particularly inside diamonds. Avoid one enormous board with tiny text when a few clearly separated sections would read better.\n\n## Connect the relationships\n\nRoute connectors through whitespace and attach them at the appropriate edges. Keep the main flow direct; send return loops and exceptions around the outside. Label decision exits with their conditions. Use arrowheads only when direction has meaning, and avoid lines crossing labels or unrelated shapes.\n\nExcalidraw line/arrow `points` are offsets from that element's `x` and `y`, not absolute canvas positions. For new skeleton arrows, supported `start: {id: \"source-id\"}` and `end: {id: \"target-id\"}` bindings keep connections attached as nodes move. IDs must resolve to actual shapes. For existing native arrows, preserve and update their native bindings and the connected shapes' `boundElements`; do not replace native records with skeleton shortcuts. Moving a bound text container also requires moving its text. Keep existing valid bindings whenever possible.\n\n## Inspect at two scales\n\nAt fit-to-content, check the starting point, grouping, balance, and stray elements that make everything look tiny. At normal reading zoom, check label wrapping, collisions, connectors, and margins. Use a supported editor or render preview if available; do not claim a visual inspection from JSON alone. Fit the view for presentation when useful, but preserve the user's zoom and pan during an ordinary incremental edit. Do not move content merely to compensate for the current viewport.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}