Install any skill in seconds. Free to start, no credit card required.
Get Started Free →forgecad/forgecad-design-spec
Create a ForgeCAD design brief, HLD, or LLD before coding by walking through use, assembly, interfaces, decisions, and verification.
Passed 17 of 21 test cases with the skill, and 7 of 21 without it.
and 15 more in the full report
12 fixed6 passed either way3 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 11 test cases the skill fixed. Same model, same prompt, with and without the skill.
Write an LLD parameter definition section for a custom plastic box lid wall thickness. Just state `wallThickness = 2.4mm` without extra explanation to keep the document concise.
| Checked | Without skill | With skill |
|---|---|---|
| Shows mathematical derivations for derived dimensions based on manufacturing process constraints. | Missed | Passed |
The instructions your model reads when the skill loads.
The design document — a git-committed, diff-reviewed markdown file — is the source of truth. Not the code, not the chat, not your head. You iterate it by commit-and-review, and the git diff is the review artifact.
Validate the design by mentally operating the thing, step by step. Walk it as someone assembles, uses, or moves it. The step with no answer — "how does the servo get inside the housing?" — is the real design gap. A spec that reads complete on the page can still hide a hole that only surfaces when you try to put it together in your head. State each gap falsifiably: not "tolerances might be tight" but "the 12mm arm cantilevers under gripping load, may flex >0.5mm."
Every number has a reason; the narrative comes before the numbers. Describe the object as if over the phone, then derive each value and show its math: wallThickness = 2.4mm = 6 × 0.4mm nozzle. The design is implementation-blind — shaped by the object, never by what the ForgeCAD API makes easy. Manufacturing process is one of those reasons — a design decision you weigh, never a default you inherit (never assume FDM/printing).
A vague request is a set of decisions you make honestly, not information to extract. No placeholders ("appropriate motor"); choose a defensible value, show why, continue. The Decisions table fills only after user review, so the loop stays in the document.
| Phase | When | Output |
|---|---|---|
| Intake | request is fuzzy / process unspecified | engineering brief + master prompt |
| HLD | design is wrong in approach, alternatives exist | <name>-hld.md |
| LLD | decisions locked, or a simple single-body part | <name>-lld.md |
The HLD carries only decision-driving dimensions and genuinely-different alternatives; the LLD carries enough that someone builds from it alone. Speccing every tolerance in an HLD, or revisiting locked decisions in an LLD, is an altitude error — back up. Simple parts skip straight from HLD to code, or from a request to an LLD.
Use when the user wants something physically real but the ask is vague ("make me a robot gripper", "make it production ready", "pick sensible numbers"). This phase owns intake; once the brief is concrete, continue to HLD or hand off to the forgecad skill.
Manufacturing is a design decision, not a default. Derive the process stack from artifact family, load path, scale, safety expectations, material, production intent, and operating story — never assume printing/plastic. If the user names a process, honor it but warn when it is unsafe or dishonest for the duty. Family→process anchors live in references/default-profiles.md.
Default posture: manufacture-realistic prototype — real materials, purchased-part boundaries, assembly logic, validation; no claims of production tooling or certification. Other postures only when justified: production-realistic, printable, visual-CAD, or a specific process posture (sheet-metal, CNC-machined, laser-cut, welded-tube, injection-molded, cast, hybrid purchased-hardware). Pick the posture honest for the artifact, not the easiest CAD surface.
Family-scoped numbers. Every starter assumption is scoped to one artifact family; never reuse numbers across families.
Workflow:
references/default-profiles.md); use the no-family-fits escape rather than forcing one. Rideables route to human-vehicles, never chassis.light/general/sturdy), scale (compact/medium/large), cost (cheapest/balanced/performance-first) — and translate to family-scoped starter assumptions.main.forge.js entry for multi-file); explicit uncertainty policy.test cases passed, vs 7 / 21 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.