{"id":81557,"plugin_id":"plugin_asdk_app_6a2fcd20e8008191b0c688ca1bc7abb5","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-05T00:12:44.375Z","digest":"bb5538b562c955427925d61c08954d44f74a2dd119688fcdd893888c4cb02583","against":null,"payload":{"description":"Show a kernelCAD model in Studio and act on the user's painted review marks. Use when the user wants to see the model, or says they marked/painted/circled something in Studio.","included_files":[],"name":"kernelcad-studio-paint","skill_md_contents":"---\nname: kernelcad-studio-paint\ndescription: Show a kernelCAD model in Studio and act on the user's painted review marks. Use when the user wants to see the model, or says they marked/painted/circled something in Studio.\n---\n\n# Studio viewer and paint review\n\n## Show the model\n\n- After a green full `evaluate_script`, call `open_in_studio` **once** per\n  project per response and give the user its URL. Reuse that URL; do not call\n  it again in the same response. While `meshStatus` is `building`, poll\n  `get_project`, not `open_in_studio`.\n- For a later revision call `open_in_studio({ project: \"<slug>\", ... })` once;\n  the new viewer replaces the old one.\n\n## Paint review\n\nIn Studio the user can paint over the model to mark what to change. Fetch the\nnewest marks with `review_paint_peek_latest({})` (pass `paths_only: true` to\nskip inline PNGs). The packet holds a screenshot, a red mask and the list of\nparts the paint hit. Edit only those parts, re-evaluate, and show the revision.\nIf the tool returns `empty`, ask the user to paint and submit again. This tool\nis only listed when the server can see the Studio session; if it is absent, ask\nthe user to describe the change in words.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}