Install any skill in seconds. Free to start, no credit card required.
Get Started Free →forgecad/forgecad
ForgeCAD model authoring, editing, debugging, and execution guidance for .forge.js, SVG-import, assembly, and CLI workflows.
Passed 12 of 17 test cases with the skill, and 9 of 17 without it.
and 4 more in the full report
7 fixed9 passed either way3 still failing3 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 7 test cases the skill fixed. Same model, same prompt, with and without the skill.
My CLI test command `forgecad run housing.forge.js` fails due to unresolved project import files. What CLI flag pinpoints module resolution traces?
| Checked | Without skill | With skill |
|---|---|---|
| uses the --debug-imports CLI flag | Missed | Passed |
The instructions your model reads when the skill loads.
Author or modify ForgeCAD models, sketches, assemblies, and CLI workflows. Prefer documented primitives, import rules, placement strategies, and CLI commands over inventing new APIs.
.forge.js, SVG asset, or CLI/export task.assembly group and {{SKILL_DIR}}/docs/guides/joint-design.md upfront — do not defer the kinematic structure to a refactor pass.{{SKILL_DIR}}/docs/guides/positioning.md immediately and default to connectors + matchTo().forgecad run <file> (add --debug-imports for import chain issues; pass --backend manifold|occt|truck when the backend matters).Assembly directly so runtime controls re-solve the link/edge kinematics model instead of stacking viewport-only transforms.explodeView, object hiding, transparency, or inspect sections after the artifact exists.require("./file.forge.js", { Param: value }) for model files, require("./helpers.js") for plain helper modules. Extensionless imports such as require("./file") do not resolve; ForgeCAD resolves project imports by exact path..forge.js files. Use bom(), box(), scene(), Shape, etc. directly; never destructure those names from helpers (const { bom } = require("./bom.js")). Import helper files under a project-specific name such as const bomHelpers = require("./bom.js").matchTo() are the default way to assemble touching parts.Assembly or SolvedAssembly directly. Do not call .toGroup() just to render an assembly; use it only when you need ShapeGroup composition, transforms, or named-child lookup.Import.svgSketch() loads SVG files (file format loader, not a module import)..placeReference('bottom', [0,0,0]) aligns any built-in anchor to a world coordinate; also works with custom .withReferences()..js modules hold shared helpers/constants (not model imports).Load groups top-to-bottom, stopping when you have what the task needs.
Execution model, colors, coordinate system, primitives, booleans, patterns, imports, parameters, topology, edge queries.
{{SKILL_DIR}}/docs/API/core/concepts.md{{SKILL_DIR}}/docs/generated/runtime-names.md{{SKILL_DIR}}/docs/generated/core.mdtest cases passed, vs 9 / 17 without
Published skills whose descriptions closely match this one, with their headline benchmark lift.
More skills from the same source and nearby in the registry, with their headline benchmark lift.