{"id":81555,"plugin_id":"plugin_asdk_app_6a2fcd20e8008191b0c688ca1bc7abb5","kind":"skill","collection_source":"plugin_package","comparison_source":null,"observed_at":"2026-11-05T00:12:44.304Z","digest":"f608f750650fe4ad2028302eab93649c6ad056536676d7830d9edc6a48e3a3a5","against":null,"payload":{"description":"Build or revise a CAD model with the hosted kernelCAD MCP — write .kcad.ts source, evaluate, review with design_loop until green. Use for any \"design / model / make a part\" request when the kernelcad MCP server is connected.","included_files":[],"name":"kernelcad-design-loop","skill_md_contents":"---\nname: kernelcad-design-loop\ndescription: Build or revise a CAD model with the hosted kernelCAD MCP — write .kcad.ts source, evaluate, review with design_loop until green. Use for any \"design / model / make a part\" request when the kernelcad MCP server is connected.\n---\n\n# kernelCAD design loop (hosted MCP)\n\nThe `kernelcad` MCP server (https://mcp.kernelcad.com/mcp) runs the OpenCASCADE\nkernel for you. Nothing needs to be installed locally. Discover the live tool\nlist from the server; tool availability depends on whether the user is signed in.\n\n## Loop\n\n1. Check for a canonical pattern first: `lookup_cookbook({ query })`\n   (see the `kernelcad-cookbooks` skill). Start from a hit when one exists.\n2. Write `.kcad.ts` source. Use `lookup_api({})` for the API surface instead of guessing.\n3. Iterate fast with `evaluate_script({ code, dryRun: true })`, then finish with a\n   full `evaluate_script({ code })`. A dry run is not evidence that the solid builds.\n4. For housings, mechanisms, gearboxes, robot arms and other production builds,\n   call `design_loop({ goal, attempts: [{ code }] })`. Apply its\n   `nextActionPrompt` / `revisionAssist` patches and repeat until `ok: true`\n   or `convergence.escalate` says to stop and ask the user.\n5. On failure, `why_did_this_fail({ code })` then `repair_script({ code })`.\n   `lookup_diagnostics({})` explains any diagnostic code.\n6. For assemblies that must be built, run\n   `verify({ check: 'assembly-path', sequence: true })`. Declare helical\n   fastener motion and press/snap fits on the fastened mate\n   (`{ fastener: { part?, axis, pitchMm?, tool? }, fit?: { kind, part? } }`);\n   the planner reports `helical`, `requires-force` and `tool-blocked` steps\n   instead of guessing. Add `stability: true` (with `gravity`/`fixtures` when\n   needed) to flag steps whose part cannot be proven to rest on an\n   already-stable part: read `sequence.needsHold` and `Step.heldBy`. That is an\n   approximate support projection, not physics. Tool reach is a swept\n   envelope, not a hardware check.\n7. Show the result once with `open_in_studio` (see `kernelcad-studio-paint`),\n   then export (see `kernelcad-export`).\n\n## Rules\n\n- Report the numbers the tools return (volumes, bbox, diagnostics); do not\n  describe geometry you have not evaluated.\n- Keep the source as the deliverable: give the user the final `.kcad.ts`.\n- If a tool says sign-in is required, tell the user to complete the OAuth\n  prompt their client shows for the `kernelcad` server.\n"},"changes":[],"summary":"First saved snapshot. No earlier version is available for comparison.","summary_kind":"deterministic","summary_metadata":{}}