forgecad 0.10.1 → 0.10.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (113) hide show
  1. package/README.md +7 -6
  2. package/dist/assets/{AdminPage-DcCnj0qo.js → AdminPage-CK7ObBz3.js} +1 -1
  3. package/dist/assets/{BenchmarkPage-BVEpJSVk.js → BenchmarkPage-Ds7Z2doN.js} +1 -1
  4. package/dist/assets/{BlogPage-DHaGP50_.js → BlogPage-DlPbpt6A.js} +1 -1
  5. package/dist/assets/{DocsPage-CDoxHkz8.js → DocsPage-vZb3b3Y0.js} +9 -14
  6. package/dist/assets/{EditorApp-BpjZgzk0.css → EditorApp-C5f24ZN9.css} +8 -0
  7. package/dist/assets/{EditorApp-BJ0Dloyh.js → EditorApp-HLoKfe15.js} +152 -21
  8. package/dist/assets/{EmbedViewer-CRKZbY0y.js → EmbedViewer--KnqBKrJ.js} +3 -3
  9. package/dist/assets/{LandingPageProofDriven-BxHkYRE7.js → LandingPageProofDriven-C_LssmnA.js} +1 -1
  10. package/dist/assets/{LegalPage-B-u6FrVv.js → LegalPage-DGsyo4n1.js} +1 -1
  11. package/dist/assets/{PricingPage-CzpZ6-Ce.js → PricingPage-BOE27B-R.js} +1 -1
  12. package/dist/assets/{SettingsPage-CIZSSAd0.js → SettingsPage-f47cnk39.js} +1 -1
  13. package/dist/assets/{app-DaTMg3nH.js → app-D6ccu2Xx.js} +7826 -7559
  14. package/dist/assets/{scalar-sampling-budget-prBw_s8t.js → backendInit-DbTkQN9J.js} +87141 -78777
  15. package/dist/assets/cli/{render-DPf4AYJK.js → render-BsngirjC.js} +147 -186
  16. package/dist/assets/{constructionHistoryWorker-AwMMWSxg.js → constructionHistoryWorker-PCwXrTDB.js} +8419 -1447
  17. package/dist/assets/{evalWorker-CjZZWRWW.js → evalWorker-CS63PfZu.js} +25501 -17997
  18. package/dist/assets/{forgecad_geometry-Dgceylq9.js → forgecad_geometry-CZ_IfuvA.js} +120 -9
  19. package/dist/assets/forgecad_geometry_bg-C3rQHfwg.wasm +0 -0
  20. package/dist/assets/{inspectWorker-CZsCFtQT.js → inspectWorker-Y4cOzNyA.js} +37208 -34464
  21. package/dist/assets/{jointPose-DzQOViQH.js → jointPose-AMvCywzS.js} +1 -1
  22. package/dist/assets/{manifold-DgXo0T5P.js → manifold-CBry38ly.js} +2 -2
  23. package/dist/assets/{manifold-K1SkarlQ.js → manifold-Crd_F2qx.js} +1 -1
  24. package/dist/assets/{manifold-BYlzU521.js → manifold-k2kRcc85.js} +1 -1
  25. package/dist/assets/{reportWorker-B9nWwSrB.js → reportWorker-CWvn0CEv.js} +46635 -44646
  26. package/dist/cli/render.html +1 -1
  27. package/dist/docs/index.html +2 -2
  28. package/dist/docs-raw/AI/usage.md +2 -4
  29. package/dist/docs-raw/CLI.md +34 -20
  30. package/dist/docs-raw/README.md +1 -1
  31. package/dist/docs-raw/component-model.md +1 -1
  32. package/dist/docs-raw/generated/assembly.md +2 -2
  33. package/dist/docs-raw/generated/concepts.md +6 -4
  34. package/dist/docs-raw/generated/core.md +71 -2
  35. package/dist/docs-raw/generated/curves.md +8 -1
  36. package/dist/docs-raw/generated/lib.md +1 -1
  37. package/dist/docs-raw/generated/output.md +0 -64
  38. package/dist/docs-raw/generated/runtime-names.md +6 -6
  39. package/dist/docs-raw/generated/sdf.md +2 -2
  40. package/dist/docs-raw/generated/viewport.md +3 -12
  41. package/dist/docs-raw/guides/inspection-bundles.md +1 -1
  42. package/dist/docs-raw/guides/simready-quickstart.md +3 -1
  43. package/dist/docs-raw/simulation-workflow.md +58 -0
  44. package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
  45. package/dist/docs-raw/skills/forgecad-image-replicator.md +2 -2
  46. package/dist/docs-raw/skills/forgecad-mujoco-verify.md +78 -0
  47. package/dist/docs-raw/skills/forgecad-spec-by-walking-through-it.md +145 -0
  48. package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
  49. package/dist/docs-raw/skills/forgecad.md +24 -24
  50. package/dist/docs-raw/skills/index.md +2 -3
  51. package/dist/index.html +1 -1
  52. package/dist/sitemap.xml +15 -15
  53. package/dist-cli/{check-compiler-II7NLPAB.js → check-compiler-HPF2T2FS.js} +1 -1
  54. package/dist-cli/{check-query-propagation-7462TR3R.js → check-query-propagation-HYSLTXAB.js} +1 -1
  55. package/dist-cli/{chunk-UWTJCGXF.js → chunk-WLUKAW3H.js} +51134 -43247
  56. package/dist-cli/forgecad.js +5467 -1451
  57. package/dist-cli/{forgecad_geometry-QOQIIP53.js → forgecad_geometry-2IMYCUWW.js} +119 -8
  58. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  59. package/dist-skill/CONTEXT.md +98 -86
  60. package/dist-skill/SKILL.md +1 -1
  61. package/dist-skill/docs/API/core/concepts.md +1 -1
  62. package/dist-skill/docs/CLI.md +34 -20
  63. package/dist-skill/docs/generated/assembly.md +2 -2
  64. package/dist-skill/docs/generated/core.md +71 -2
  65. package/dist-skill/docs/generated/curves.md +8 -1
  66. package/dist-skill/docs/generated/lib.md +1 -1
  67. package/dist-skill/docs/generated/output.md +0 -64
  68. package/dist-skill/docs/generated/runtime-names.md +6 -6
  69. package/dist-skill/docs/generated/sdf.md +2 -2
  70. package/dist-skill/docs/generated/viewport.md +3 -12
  71. package/dist-skill/docs/guides/inspection-bundles.md +1 -1
  72. package/dist-skill/library/README.md +2 -3
  73. package/dist-skill/library/forgecad-blockout-model/SKILL.md +1 -1
  74. package/dist-skill/library/forgecad-image-replicator/SKILL.md +2 -2
  75. package/dist-skill/library/forgecad-mujoco-verify/SKILL.md +66 -0
  76. package/dist-skill/library/forgecad-mujoco-verify/scripts/mujoco_verify.py +385 -0
  77. package/dist-skill/library/forgecad-spec-by-walking-through-it/SKILL.md +132 -0
  78. package/dist-skill/library/forgecad-visual-spec/SKILL.md +1 -1
  79. package/dist-skill/website/skills/forgecad-blockout-model.md +1 -1
  80. package/dist-skill/website/skills/forgecad-image-replicator.md +2 -2
  81. package/dist-skill/website/skills/forgecad-mujoco-verify.md +78 -0
  82. package/dist-skill/website/skills/forgecad-spec-by-walking-through-it.md +145 -0
  83. package/dist-skill/website/skills/forgecad-visual-spec.md +1 -1
  84. package/dist-skill/website/skills/forgecad.md +24 -24
  85. package/dist-skill/website/skills/index.md +2 -3
  86. package/examples/analysis/clearance-fit.forge.js +31 -0
  87. package/examples/analysis/lever-arm-actuator.forge.js +43 -0
  88. package/examples/analysis/tipping-tripod.forge.js +35 -0
  89. package/examples/api/gyroid-voronoi-blend.forge.js +1 -1
  90. package/examples/api/organic-noise-sculpture.forge.js +1 -1
  91. package/examples/api/sdf-circular-array-knurling.forge.js +1 -1
  92. package/examples/api/{sdf-custom-raymarch.forge.js → sdf-custom-field-mesh-preview.forge.js} +3 -4
  93. package/examples/api/sdf-materialize-tree.forge.js +2 -2
  94. package/examples/api/sdf-plain-return.forge.js +3 -2
  95. package/examples/api/sdf-shapes.forge.js +2 -2
  96. package/examples/api/sdf-surface-basket-weave.forge.js +2 -2
  97. package/examples/generative/twisted-lattice-tower.forge.js +1 -1
  98. package/examples/generative/voronoi-lampshade.forge.js +1 -1
  99. package/examples/products/sportscar.forge.js +77 -0
  100. package/package.json +2 -4
  101. package/dist/assets/forgecad_geometry_bg-dD4RNQF1.wasm +0 -0
  102. package/dist/assets/manifold-CzYf_iub.js +0 -3023
  103. package/dist/docs-raw/skills/forgecad-high-level-spec.md +0 -101
  104. package/dist/docs-raw/skills/forgecad-lld.md +0 -41
  105. package/dist/docs-raw/skills/forgecad-prepare-prompt.md +0 -63
  106. package/dist-skill/library/forgecad-high-level-spec/SKILL.md +0 -94
  107. package/dist-skill/library/forgecad-lld/SKILL.md +0 -34
  108. package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +0 -50
  109. package/dist-skill/website/skills/forgecad-high-level-spec.md +0 -101
  110. package/dist-skill/website/skills/forgecad-lld.md +0 -41
  111. package/dist-skill/website/skills/forgecad-prepare-prompt.md +0 -63
  112. /package/dist-skill/library/{forgecad-prepare-prompt → forgecad-spec-by-walking-through-it}/references/default-profiles.md +0 -0
  113. /package/dist-skill/library/{forgecad-prepare-prompt → forgecad-spec-by-walking-through-it}/references/master-prompt.md +0 -0
@@ -1,101 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-high-level-spec/SKILL.md instead. -->
2
-
3
- # forgecad-high-level-spec
4
-
5
- Write a high-level design document (HLD) for a model, mechanism, or assembly before detailed specification or coding. Use when starting a new design, rethinking an existing one, or when the user asks to spec out, plan, or think through a model at a high level. Works backwards from requirements — defines the problem, explores alternatives, records decisions. Produces a right-sized design document for review and iteration.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-high-level-spec/SKILL.md` |
11
-
12
- ---
13
-
14
- ## High-Level Design (HLD)
15
-
16
- The HLD aligns the user and the agent on *what* to build before anyone thinks about *how*. Every design concern, risk, and tradeoff lives in the document — not in conversation, not in the agent's head. Brevity is a readability tool, not a success metric: there is no page limit; include whatever evidence, diagrams, and dimensions a good decision needs. Decision-driving dimensions belong here; exhaustive construction dimensions belong in the LLD.
17
-
18
- Manufacturing process is a design decision, not a default — never assume 3D printing/FDM. If the user didn't specify a process, treat process choice as an HLD alternative (full posture taxonomy: `/forgecad-prepare-prompt`).
19
-
20
- Write an HLD before any LLD, and whenever an existing design is wrong in approach, not just in numbers. Output: `<name>-hld.md` beside the model files, or `hld.md` for a whole project.
21
-
22
- ### Document Structure
23
-
24
- The section order is the workflow — write it top to bottom, following the embedded instructions.
25
-
26
- ```markdown
27
- # [Name] — High-Level Design
28
-
29
- ## Problem
30
- What must this do? Hard requirements (must grip objects, fit a 60mm
31
- housing, use purchased bearings). State the problem without implying
32
- a solution. Unspecified process choice is an open design dimension.
33
-
34
- ## Approach
35
- How it works at a conceptual level. ASCII diagram of the key elements
36
- and their spatial relationships — diagram labels stay in this markdown;
37
- never carry them into CAD geometry unless the real artifact needs
38
- markings.
39
-
40
- ## Key Interfaces
41
- Every point where this touches another part or the outside world:
42
- mating surfaces, shared dimensions, coordination points. These are the
43
- contracts that constrain the design.
44
-
45
- ## Dictionary
46
- | Term | What it is |
47
- |------|-----------|
48
- Define every domain term in plain words, with dimensions where relevant.
49
- Write for a developer without a mechanical-engineering background.
50
-
51
- ## Alternatives
52
- | Option | Description | Tradeoff |
53
- |--------|-------------|----------|
54
- 2-3 genuinely different strategies, not minor variations. Enough detail
55
- per row to see why it fits or loses. Mark one recommended and say why.
56
- If there is honestly only one approach, say so and skip the table.
57
-
58
- ## Usage Guide
59
- The strongest validation: work backwards from how someone uses,
60
- assembles, or operates the thing, step by step (physical product:
61
- assembly steps, tools, what connects to what; mechanism: how it moves
62
- and what the user does). If a step doesn't make sense ("how does the
63
- servo get inside?"), the design has a gap — flag it inline with ⚠️ and
64
- promote it to Concerns.
65
-
66
- ## Concerns
67
- 1. Numbered, falsifiably specific — a reviewer must be able to say
68
- "real problem" or "fine, because…". "Tolerances might be tight" is
69
- useless; "the 12mm arm cantilevers under gripping load, may flex
70
- >0.5mm" is useful.
71
-
72
- ## Decisions
73
- | # | Decision | Rationale |
74
- |---|----------|-----------|
75
- Filled ONLY after user review — never pre-decide. Each row resolves a
76
- concern or alternative.
77
- ```
78
-
79
- ### Review via git
80
-
81
- HLDs and LLDs iterate through git, not conversation:
82
-
83
- - **Commit every version.** No drafts floating in chat. After writing, commit and tell the user it's ready for review.
84
- - **Feedback arrives as file edits** (inline comments, strikethroughs) **or chat — check both.** Read `git diff`: the diff is the review artifact.
85
- - **Update, commit, repeat** until the Decisions table is filled and the user says "go."
86
-
87
- ### Rules
88
-
89
- - If you're speccing every part, formula, tolerance, and fabrication step, you're writing an LLD — back up.
90
- - If you can't draw it, you don't understand it yet.
91
- - Tables are welcome where they clarify (interfaces, requirements, visible evidence); full parameter catalogs go to the LLD.
92
-
93
- ### Pipeline
94
-
95
- | Stage | Skill | Output |
96
- |-------|-------|--------|
97
- | 1. Explore the problem space | this skill | `*-hld.md` |
98
- | 2. Detailed design | `/forgecad-lld` | `*-lld.md` |
99
- | 3. Implementation | `/forgecad-make-a-model` + `/forgecad` | `.forge.js` |
100
-
101
- The Decisions table must be filled before writing the LLD. Simple models may skip straight from HLD to code.
@@ -1,41 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-lld/SKILL.md instead. -->
2
-
3
- # forgecad-lld
4
-
5
- Write a Low-Level Design (LLD) for a CAD model — exact dimensions, constraints, parameters, and verification criteria. Use after a High-Level Design (HLD) exists and decisions are locked, or for simple parts that don't need an HLD. The detailed design document that code implements.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-lld/SKILL.md` |
11
-
12
- ---
13
-
14
- ## Low-Level Design (LLD)
15
-
16
- ### When and prerequisites
17
-
18
- - An HLD (`/forgecad-high-level-spec`) with a filled Decisions table must exist. The LLD implements those decisions — it never revisits them.
19
- - Simple parts (single body, no alternatives to explore) skip the HLD and go straight to the LLD.
20
- - Output: `<name>-lld.md` next to the model files. Complex assemblies split into a numbered directory: overview, global constraints, per-component files, assembly, verification.
21
-
22
- ### What an LLD is
23
-
24
- - **Narrative first** — reads like describing the object over the phone: shape, behavior, purpose, proportions, feel.
25
- - **Authoritative** — the single source of truth that code implements.
26
- - **Implementation-blind** — the LLD knows nothing about ForgeCAD's capabilities; never let API convenience shape the design.
27
- - **Every number has a rationale** — each constraint and each parameter default/range gets an explicit reason; show the math (e.g. `wallThickness = 2.4mm = 6 × 0.4mm nozzle`).
28
-
29
- ### Required structure
30
-
31
- 1. **Narrative** — what it is, how it behaves and interacts, why it exists. Concrete comparisons ("about the size of a deck of cards"); no vague terms without grounding.
32
- 2. **Technical** — typed parameter table (length / angle / count / boolean / choice / ratio / clearance — this is design-document vocabulary, not the runtime `Param.*` API), always with units (mm and degrees are the defaults) and a rationale for every default and range; derived dimensions shown as math; geometry and constraints, each constraint with rationale.
33
- 3. **Verification** — mandatory checklist: dimensional checks, functional checks, printability checks.
34
-
35
- Don'ts: never open with a parameter list (story before numbers), never leave a constraint implicit, never skip verification.
36
-
37
- ### Process
38
-
39
- Iterate via git exactly as in `/forgecad-high-level-spec`: commit every version; the diff, not the conversation, is the review artifact.
40
-
41
- Completeness gate before presenting: Can someone build from this alone? Does it implement every HLD decision? Is every constraint explicit with rationale?
@@ -1,63 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-prepare-prompt/SKILL.md instead. -->
2
-
3
- # forgecad-prepare-prompt
4
-
5
- Turn a fuzzy physical product, mechanism, or CAD artifact request into a concrete manufacture-realistic prototype ForgeCAD build brief and a single master prompt for the modeling pass. Use when the engineering brief is incomplete, manufacturing/process choice is underspecified, or the work needs a specific operating story to avoid generic toy solutions.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-prepare-prompt/SKILL.md` |
11
-
12
- ---
13
-
14
- ## Prepare ForgeCAD Prompt
15
-
16
- Use before modeling when the user wants something physically real and buildable but the request is fuzzy ("make me a robot gripper", "make it production ready", "I don't know the numbers, make sensible choices"). This skill owns intake and prompt preparation; once the brief is concrete, hand off to the `forgecad` skill.
17
-
18
- ### Core Rules
19
-
20
- **Manufacturing is a design decision, not a default.** Never assume FDM, 3D printing, "printable", or plastic parts unless the user explicitly asked, the artifact family honestly points there, or the chosen process stack includes printed parts. Derive the process stack from artifact family, load path, scale, safety expectations, material properties, production intent, and operating story — family→process examples and all numeric anchors live in `references/default-profiles.md`. If the user names a process, honor it but warn when it is unsafe or dishonest for the duty.
21
-
22
- **Posture taxonomy.** Default output posture is **manufacture-realistic prototype**: a serious build candidate with real materials, purchased-part boundaries, assembly logic, and validation — no claims of production tooling, certification, rider safety, or release-ready DFM. Other postures only when the brief justifies them: `production-realistic` (explicit production intent), `printable` (printing is the selected process), `visual-CAD` (form study), or a specific process posture (`sheet-metal`, `CNC-machined`, `laser-cut`, `welded tube`, `injection-molded`, `cast`, `hybrid purchased-hardware`). Pick the posture that is honest for the artifact, not the easiest CAD surface.
23
-
24
- **Family-scoped numbers.** Every starter assumption is scoped to one artifact family. Never reuse numbers across families; never apply one default profile to unrelated artifacts.
25
-
26
- ### Workflow
27
-
28
- 1. **Normalize the ask** into plain mechanism language. "6 DOF gripper" usually means one of: standalone gripper with finger joints, wrist plus gripper, or full arm plus gripper.
29
-
30
- 2. **Build the specific operating story**: an invented specific (non-famous) org, a named program, a prototype revision, a review moment, a test setting, mission pressure (pilot gate, demo date, investor milestone, customer deployment), and the generic failure mode to avoid. Prefer bold high-agency stories — go/no-go gates, first-customer pilots, investor demos — over modest lab exercises.
31
- - Good: "RivetLine Automation is racing toward a first-customer kitting-cell pilot and needs the RG-4 gripper jaw for a live demo next Wednesday. The jaw must pick 40-90 mm plastic housings from a tray, use hardware the build tech can source this week, and make finger-pad replacement possible without rebuilding the linkage."
32
- - Bad: vague prestige labels ("frontier robotics startup") with no program/rig/milestone specifics.
33
- - Never assert the user works for a named real company unless they said so. Named real products only as public comparison anchors. Never clone proprietary designs — public-domain patterns and first-principles engineering only.
34
-
35
- 3. **Classify the artifact family** (`references/default-profiles.md`): grippers and small mechanisms; fixtures/jigs/holders; enclosures and electronics housings; furniture and load-bearing structures; chassis and mobile robot structures; human vehicles and rideable forms. Rideables always route to human-vehicles, never chassis. If no family fits, use the no-family-fits escape there — never force one.
36
-
37
- 4. **Choose the process posture** per the taxonomy above.
38
-
39
- 5. **Pick the qualitative levers** — duty: `light-duty`/`general-duty`/`sturdy-duty`; scale: `compact`/`medium`/`large`; cost: `cheapest`/`balanced`/`performance-first` — and translate them into family-scoped starter assumptions.
40
-
41
- 6. **Close only the critical gaps.** At most 3 grouped questions, always choice menus, never raw engineering inputs (payload mass, torque budget, backlash tolerance) unless the architecture truly depends on them and cannot be bracketed safely. Good: "Which feels closest: a light desk demo, a useful hobby tool, or a sturdier bench mechanism?" Bad: "What payload mass?"
42
-
43
- 7. **Write the engineering brief.** Required fields: artifact + family + normalized interpretation; operating story + production reason + test setting + generic failure mode to avoid; output posture; intended objects/loads, size envelope, motion style and DOF; process stack and material defaults; purchased-part (BOM) boundary; validation standard; variant policy — multiple versions of one object are selectable params (`Variant`/`Preset`/`Style`), one rendered at a time, a comparison lineup only as an explicit non-default debug mode so collision inspection proves one real assembly; file organization — `main.forge.js` entry point for multi-file projects (convention owned by `forgecad-make-a-model`); explicit uncertainty policy.
44
-
45
- 8. **Emit one master prompt.** Fill `references/master-prompt.md` from the chosen profile and assumptions. Return the finished prompt, not notes about it.
46
-
47
- 9. **Hand off** to the `forgecad` skill if implementation continues; for moving mechanisms its index routes to the assembly and joint-design docs.
48
-
49
- ### Defaults And Verdict
50
-
51
- If the user stays vague: `general-duty` / `medium` / `balanced`, invent the operating story, and use the family starter assumptions from `references/default-profiles.md`.
52
-
53
- The prompt must demand exactly `BUILD-READY` or `BEST-EFFORT BUILD CANDIDATE`. If the request outruns the chosen profile, downgrade the claim and keep going. No placeholders ("appropriate motor", "adjust as needed") — choose a defensible value, state it, continue. No follow-up questions unless the architecture would materially change and no safe assumption bundle exists. Human-bearing furniture and rideable vehicles usually end `BEST-EFFORT BUILD CANDIDATE`.
54
-
55
- ### Output Contract
56
-
57
- Reply with a short interpretation of the request, the chosen family + operating story + assumption bundle (compact, options menu only if truly needed), then the single filled master prompt last. Do not bury the prompt under theory.
58
-
59
-
60
- ## Bundled Files
61
-
62
- - `references/default-profiles.md`
63
- - `references/master-prompt.md`
@@ -1,94 +0,0 @@
1
- ---
2
- name: forgecad-high-level-spec
3
- description: Write a high-level design document (HLD) for a model, mechanism, or assembly before detailed specification or coding. Use when starting a new design, rethinking an existing one, or when the user asks to spec out, plan, or think through a model at a high level. Works backwards from requirements — defines the problem, explores alternatives, records decisions. Produces a right-sized design document for review and iteration.
4
- forgecad-public: true
5
- ---
6
-
7
- # High-Level Design (HLD)
8
-
9
- The HLD aligns the user and the agent on *what* to build before anyone thinks about *how*. Every design concern, risk, and tradeoff lives in the document — not in conversation, not in the agent's head. Brevity is a readability tool, not a success metric: there is no page limit; include whatever evidence, diagrams, and dimensions a good decision needs. Decision-driving dimensions belong here; exhaustive construction dimensions belong in the LLD.
10
-
11
- Manufacturing process is a design decision, not a default — never assume 3D printing/FDM. If the user didn't specify a process, treat process choice as an HLD alternative (full posture taxonomy: `/forgecad-prepare-prompt`).
12
-
13
- Write an HLD before any LLD, and whenever an existing design is wrong in approach, not just in numbers. Output: `<name>-hld.md` beside the model files, or `hld.md` for a whole project.
14
-
15
- ## Document Structure
16
-
17
- The section order is the workflow — write it top to bottom, following the embedded instructions.
18
-
19
- ```markdown
20
- # [Name] — High-Level Design
21
-
22
- ## Problem
23
- What must this do? Hard requirements (must grip objects, fit a 60mm
24
- housing, use purchased bearings). State the problem without implying
25
- a solution. Unspecified process choice is an open design dimension.
26
-
27
- ## Approach
28
- How it works at a conceptual level. ASCII diagram of the key elements
29
- and their spatial relationships — diagram labels stay in this markdown;
30
- never carry them into CAD geometry unless the real artifact needs
31
- markings.
32
-
33
- ## Key Interfaces
34
- Every point where this touches another part or the outside world:
35
- mating surfaces, shared dimensions, coordination points. These are the
36
- contracts that constrain the design.
37
-
38
- ## Dictionary
39
- | Term | What it is |
40
- |------|-----------|
41
- Define every domain term in plain words, with dimensions where relevant.
42
- Write for a developer without a mechanical-engineering background.
43
-
44
- ## Alternatives
45
- | Option | Description | Tradeoff |
46
- |--------|-------------|----------|
47
- 2-3 genuinely different strategies, not minor variations. Enough detail
48
- per row to see why it fits or loses. Mark one recommended and say why.
49
- If there is honestly only one approach, say so and skip the table.
50
-
51
- ## Usage Guide
52
- The strongest validation: work backwards from how someone uses,
53
- assembles, or operates the thing, step by step (physical product:
54
- assembly steps, tools, what connects to what; mechanism: how it moves
55
- and what the user does). If a step doesn't make sense ("how does the
56
- servo get inside?"), the design has a gap — flag it inline with ⚠️ and
57
- promote it to Concerns.
58
-
59
- ## Concerns
60
- 1. Numbered, falsifiably specific — a reviewer must be able to say
61
- "real problem" or "fine, because…". "Tolerances might be tight" is
62
- useless; "the 12mm arm cantilevers under gripping load, may flex
63
- >0.5mm" is useful.
64
-
65
- ## Decisions
66
- | # | Decision | Rationale |
67
- |---|----------|-----------|
68
- Filled ONLY after user review — never pre-decide. Each row resolves a
69
- concern or alternative.
70
- ```
71
-
72
- ## Review via git
73
-
74
- HLDs and LLDs iterate through git, not conversation:
75
-
76
- - **Commit every version.** No drafts floating in chat. After writing, commit and tell the user it's ready for review.
77
- - **Feedback arrives as file edits** (inline comments, strikethroughs) **or chat — check both.** Read `git diff`: the diff is the review artifact.
78
- - **Update, commit, repeat** until the Decisions table is filled and the user says "go."
79
-
80
- ## Rules
81
-
82
- - If you're speccing every part, formula, tolerance, and fabrication step, you're writing an LLD — back up.
83
- - If you can't draw it, you don't understand it yet.
84
- - Tables are welcome where they clarify (interfaces, requirements, visible evidence); full parameter catalogs go to the LLD.
85
-
86
- ## Pipeline
87
-
88
- | Stage | Skill | Output |
89
- |-------|-------|--------|
90
- | 1. Explore the problem space | this skill | `*-hld.md` |
91
- | 2. Detailed design | `/forgecad-lld` | `*-lld.md` |
92
- | 3. Implementation | `/forgecad-make-a-model` + `/forgecad` | `.forge.js` |
93
-
94
- The Decisions table must be filled before writing the LLD. Simple models may skip straight from HLD to code.
@@ -1,34 +0,0 @@
1
- ---
2
- name: forgecad-lld
3
- description: Write a Low-Level Design (LLD) for a CAD model — exact dimensions, constraints, parameters, and verification criteria. Use after a High-Level Design (HLD) exists and decisions are locked, or for simple parts that don't need an HLD. The detailed design document that code implements.
4
- forgecad-public: true
5
- ---
6
-
7
- # Low-Level Design (LLD)
8
-
9
- ## When and prerequisites
10
-
11
- - An HLD (`/forgecad-high-level-spec`) with a filled Decisions table must exist. The LLD implements those decisions — it never revisits them.
12
- - Simple parts (single body, no alternatives to explore) skip the HLD and go straight to the LLD.
13
- - Output: `<name>-lld.md` next to the model files. Complex assemblies split into a numbered directory: overview, global constraints, per-component files, assembly, verification.
14
-
15
- ## What an LLD is
16
-
17
- - **Narrative first** — reads like describing the object over the phone: shape, behavior, purpose, proportions, feel.
18
- - **Authoritative** — the single source of truth that code implements.
19
- - **Implementation-blind** — the LLD knows nothing about ForgeCAD's capabilities; never let API convenience shape the design.
20
- - **Every number has a rationale** — each constraint and each parameter default/range gets an explicit reason; show the math (e.g. `wallThickness = 2.4mm = 6 × 0.4mm nozzle`).
21
-
22
- ## Required structure
23
-
24
- 1. **Narrative** — what it is, how it behaves and interacts, why it exists. Concrete comparisons ("about the size of a deck of cards"); no vague terms without grounding.
25
- 2. **Technical** — typed parameter table (length / angle / count / boolean / choice / ratio / clearance — this is design-document vocabulary, not the runtime `Param.*` API), always with units (mm and degrees are the defaults) and a rationale for every default and range; derived dimensions shown as math; geometry and constraints, each constraint with rationale.
26
- 3. **Verification** — mandatory checklist: dimensional checks, functional checks, printability checks.
27
-
28
- Don'ts: never open with a parameter list (story before numbers), never leave a constraint implicit, never skip verification.
29
-
30
- ## Process
31
-
32
- Iterate via git exactly as in `/forgecad-high-level-spec`: commit every version; the diff, not the conversation, is the review artifact.
33
-
34
- Completeness gate before presenting: Can someone build from this alone? Does it implement every HLD decision? Is every constraint explicit with rationale?
@@ -1,50 +0,0 @@
1
- ---
2
- name: forgecad-prepare-prompt
3
- description: Turn a fuzzy physical product, mechanism, or CAD artifact request into a concrete manufacture-realistic prototype ForgeCAD build brief and a single master prompt for the modeling pass. Use when the engineering brief is incomplete, manufacturing/process choice is underspecified, or the work needs a specific operating story to avoid generic toy solutions.
4
- forgecad-public: true
5
- ---
6
-
7
- # Prepare ForgeCAD Prompt
8
-
9
- Use before modeling when the user wants something physically real and buildable but the request is fuzzy ("make me a robot gripper", "make it production ready", "I don't know the numbers, make sensible choices"). This skill owns intake and prompt preparation; once the brief is concrete, hand off to the `forgecad` skill.
10
-
11
- ## Core Rules
12
-
13
- **Manufacturing is a design decision, not a default.** Never assume FDM, 3D printing, "printable", or plastic parts unless the user explicitly asked, the artifact family honestly points there, or the chosen process stack includes printed parts. Derive the process stack from artifact family, load path, scale, safety expectations, material properties, production intent, and operating story — family→process examples and all numeric anchors live in `references/default-profiles.md`. If the user names a process, honor it but warn when it is unsafe or dishonest for the duty.
14
-
15
- **Posture taxonomy.** Default output posture is **manufacture-realistic prototype**: a serious build candidate with real materials, purchased-part boundaries, assembly logic, and validation — no claims of production tooling, certification, rider safety, or release-ready DFM. Other postures only when the brief justifies them: `production-realistic` (explicit production intent), `printable` (printing is the selected process), `visual-CAD` (form study), or a specific process posture (`sheet-metal`, `CNC-machined`, `laser-cut`, `welded tube`, `injection-molded`, `cast`, `hybrid purchased-hardware`). Pick the posture that is honest for the artifact, not the easiest CAD surface.
16
-
17
- **Family-scoped numbers.** Every starter assumption is scoped to one artifact family. Never reuse numbers across families; never apply one default profile to unrelated artifacts.
18
-
19
- ## Workflow
20
-
21
- 1. **Normalize the ask** into plain mechanism language. "6 DOF gripper" usually means one of: standalone gripper with finger joints, wrist plus gripper, or full arm plus gripper.
22
-
23
- 2. **Build the specific operating story**: an invented specific (non-famous) org, a named program, a prototype revision, a review moment, a test setting, mission pressure (pilot gate, demo date, investor milestone, customer deployment), and the generic failure mode to avoid. Prefer bold high-agency stories — go/no-go gates, first-customer pilots, investor demos — over modest lab exercises.
24
- - Good: "RivetLine Automation is racing toward a first-customer kitting-cell pilot and needs the RG-4 gripper jaw for a live demo next Wednesday. The jaw must pick 40-90 mm plastic housings from a tray, use hardware the build tech can source this week, and make finger-pad replacement possible without rebuilding the linkage."
25
- - Bad: vague prestige labels ("frontier robotics startup") with no program/rig/milestone specifics.
26
- - Never assert the user works for a named real company unless they said so. Named real products only as public comparison anchors. Never clone proprietary designs — public-domain patterns and first-principles engineering only.
27
-
28
- 3. **Classify the artifact family** (`references/default-profiles.md`): grippers and small mechanisms; fixtures/jigs/holders; enclosures and electronics housings; furniture and load-bearing structures; chassis and mobile robot structures; human vehicles and rideable forms. Rideables always route to human-vehicles, never chassis. If no family fits, use the no-family-fits escape there — never force one.
29
-
30
- 4. **Choose the process posture** per the taxonomy above.
31
-
32
- 5. **Pick the qualitative levers** — duty: `light-duty`/`general-duty`/`sturdy-duty`; scale: `compact`/`medium`/`large`; cost: `cheapest`/`balanced`/`performance-first` — and translate them into family-scoped starter assumptions.
33
-
34
- 6. **Close only the critical gaps.** At most 3 grouped questions, always choice menus, never raw engineering inputs (payload mass, torque budget, backlash tolerance) unless the architecture truly depends on them and cannot be bracketed safely. Good: "Which feels closest: a light desk demo, a useful hobby tool, or a sturdier bench mechanism?" Bad: "What payload mass?"
35
-
36
- 7. **Write the engineering brief.** Required fields: artifact + family + normalized interpretation; operating story + production reason + test setting + generic failure mode to avoid; output posture; intended objects/loads, size envelope, motion style and DOF; process stack and material defaults; purchased-part (BOM) boundary; validation standard; variant policy — multiple versions of one object are selectable params (`Variant`/`Preset`/`Style`), one rendered at a time, a comparison lineup only as an explicit non-default debug mode so collision inspection proves one real assembly; file organization — `main.forge.js` entry point for multi-file projects (convention owned by `forgecad-make-a-model`); explicit uncertainty policy.
37
-
38
- 8. **Emit one master prompt.** Fill `references/master-prompt.md` from the chosen profile and assumptions. Return the finished prompt, not notes about it.
39
-
40
- 9. **Hand off** to the `forgecad` skill if implementation continues; for moving mechanisms its index routes to the assembly and joint-design docs.
41
-
42
- ## Defaults And Verdict
43
-
44
- If the user stays vague: `general-duty` / `medium` / `balanced`, invent the operating story, and use the family starter assumptions from `references/default-profiles.md`.
45
-
46
- The prompt must demand exactly `BUILD-READY` or `BEST-EFFORT BUILD CANDIDATE`. If the request outruns the chosen profile, downgrade the claim and keep going. No placeholders ("appropriate motor", "adjust as needed") — choose a defensible value, state it, continue. No follow-up questions unless the architecture would materially change and no safe assumption bundle exists. Human-bearing furniture and rideable vehicles usually end `BEST-EFFORT BUILD CANDIDATE`.
47
-
48
- ## Output Contract
49
-
50
- Reply with a short interpretation of the request, the chosen family + operating story + assumption bundle (compact, options menu only if truly needed), then the single filled master prompt last. Do not bury the prompt under theory.
@@ -1,101 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-high-level-spec/SKILL.md instead. -->
2
-
3
- # forgecad-high-level-spec
4
-
5
- Write a high-level design document (HLD) for a model, mechanism, or assembly before detailed specification or coding. Use when starting a new design, rethinking an existing one, or when the user asks to spec out, plan, or think through a model at a high level. Works backwards from requirements — defines the problem, explores alternatives, records decisions. Produces a right-sized design document for review and iteration.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-high-level-spec/SKILL.md` |
11
-
12
- ---
13
-
14
- ## High-Level Design (HLD)
15
-
16
- The HLD aligns the user and the agent on *what* to build before anyone thinks about *how*. Every design concern, risk, and tradeoff lives in the document — not in conversation, not in the agent's head. Brevity is a readability tool, not a success metric: there is no page limit; include whatever evidence, diagrams, and dimensions a good decision needs. Decision-driving dimensions belong here; exhaustive construction dimensions belong in the LLD.
17
-
18
- Manufacturing process is a design decision, not a default — never assume 3D printing/FDM. If the user didn't specify a process, treat process choice as an HLD alternative (full posture taxonomy: `/forgecad-prepare-prompt`).
19
-
20
- Write an HLD before any LLD, and whenever an existing design is wrong in approach, not just in numbers. Output: `<name>-hld.md` beside the model files, or `hld.md` for a whole project.
21
-
22
- ### Document Structure
23
-
24
- The section order is the workflow — write it top to bottom, following the embedded instructions.
25
-
26
- ```markdown
27
- # [Name] — High-Level Design
28
-
29
- ## Problem
30
- What must this do? Hard requirements (must grip objects, fit a 60mm
31
- housing, use purchased bearings). State the problem without implying
32
- a solution. Unspecified process choice is an open design dimension.
33
-
34
- ## Approach
35
- How it works at a conceptual level. ASCII diagram of the key elements
36
- and their spatial relationships — diagram labels stay in this markdown;
37
- never carry them into CAD geometry unless the real artifact needs
38
- markings.
39
-
40
- ## Key Interfaces
41
- Every point where this touches another part or the outside world:
42
- mating surfaces, shared dimensions, coordination points. These are the
43
- contracts that constrain the design.
44
-
45
- ## Dictionary
46
- | Term | What it is |
47
- |------|-----------|
48
- Define every domain term in plain words, with dimensions where relevant.
49
- Write for a developer without a mechanical-engineering background.
50
-
51
- ## Alternatives
52
- | Option | Description | Tradeoff |
53
- |--------|-------------|----------|
54
- 2-3 genuinely different strategies, not minor variations. Enough detail
55
- per row to see why it fits or loses. Mark one recommended and say why.
56
- If there is honestly only one approach, say so and skip the table.
57
-
58
- ## Usage Guide
59
- The strongest validation: work backwards from how someone uses,
60
- assembles, or operates the thing, step by step (physical product:
61
- assembly steps, tools, what connects to what; mechanism: how it moves
62
- and what the user does). If a step doesn't make sense ("how does the
63
- servo get inside?"), the design has a gap — flag it inline with ⚠️ and
64
- promote it to Concerns.
65
-
66
- ## Concerns
67
- 1. Numbered, falsifiably specific — a reviewer must be able to say
68
- "real problem" or "fine, because…". "Tolerances might be tight" is
69
- useless; "the 12mm arm cantilevers under gripping load, may flex
70
- >0.5mm" is useful.
71
-
72
- ## Decisions
73
- | # | Decision | Rationale |
74
- |---|----------|-----------|
75
- Filled ONLY after user review — never pre-decide. Each row resolves a
76
- concern or alternative.
77
- ```
78
-
79
- ### Review via git
80
-
81
- HLDs and LLDs iterate through git, not conversation:
82
-
83
- - **Commit every version.** No drafts floating in chat. After writing, commit and tell the user it's ready for review.
84
- - **Feedback arrives as file edits** (inline comments, strikethroughs) **or chat — check both.** Read `git diff`: the diff is the review artifact.
85
- - **Update, commit, repeat** until the Decisions table is filled and the user says "go."
86
-
87
- ### Rules
88
-
89
- - If you're speccing every part, formula, tolerance, and fabrication step, you're writing an LLD — back up.
90
- - If you can't draw it, you don't understand it yet.
91
- - Tables are welcome where they clarify (interfaces, requirements, visible evidence); full parameter catalogs go to the LLD.
92
-
93
- ### Pipeline
94
-
95
- | Stage | Skill | Output |
96
- |-------|-------|--------|
97
- | 1. Explore the problem space | this skill | `*-hld.md` |
98
- | 2. Detailed design | `/forgecad-lld` | `*-lld.md` |
99
- | 3. Implementation | `/forgecad-make-a-model` + `/forgecad` | `.forge.js` |
100
-
101
- The Decisions table must be filled before writing the LLD. Simple models may skip straight from HLD to code.
@@ -1,41 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-lld/SKILL.md instead. -->
2
-
3
- # forgecad-lld
4
-
5
- Write a Low-Level Design (LLD) for a CAD model — exact dimensions, constraints, parameters, and verification criteria. Use after a High-Level Design (HLD) exists and decisions are locked, or for simple parts that don't need an HLD. The detailed design document that code implements.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-lld/SKILL.md` |
11
-
12
- ---
13
-
14
- ## Low-Level Design (LLD)
15
-
16
- ### When and prerequisites
17
-
18
- - An HLD (`/forgecad-high-level-spec`) with a filled Decisions table must exist. The LLD implements those decisions — it never revisits them.
19
- - Simple parts (single body, no alternatives to explore) skip the HLD and go straight to the LLD.
20
- - Output: `<name>-lld.md` next to the model files. Complex assemblies split into a numbered directory: overview, global constraints, per-component files, assembly, verification.
21
-
22
- ### What an LLD is
23
-
24
- - **Narrative first** — reads like describing the object over the phone: shape, behavior, purpose, proportions, feel.
25
- - **Authoritative** — the single source of truth that code implements.
26
- - **Implementation-blind** — the LLD knows nothing about ForgeCAD's capabilities; never let API convenience shape the design.
27
- - **Every number has a rationale** — each constraint and each parameter default/range gets an explicit reason; show the math (e.g. `wallThickness = 2.4mm = 6 × 0.4mm nozzle`).
28
-
29
- ### Required structure
30
-
31
- 1. **Narrative** — what it is, how it behaves and interacts, why it exists. Concrete comparisons ("about the size of a deck of cards"); no vague terms without grounding.
32
- 2. **Technical** — typed parameter table (length / angle / count / boolean / choice / ratio / clearance — this is design-document vocabulary, not the runtime `Param.*` API), always with units (mm and degrees are the defaults) and a rationale for every default and range; derived dimensions shown as math; geometry and constraints, each constraint with rationale.
33
- 3. **Verification** — mandatory checklist: dimensional checks, functional checks, printability checks.
34
-
35
- Don'ts: never open with a parameter list (story before numbers), never leave a constraint implicit, never skip verification.
36
-
37
- ### Process
38
-
39
- Iterate via git exactly as in `/forgecad-high-level-spec`: commit every version; the diff, not the conversation, is the review artifact.
40
-
41
- Completeness gate before presenting: Can someone build from this alone? Does it implement every HLD decision? Is every constraint explicit with rationale?
@@ -1,63 +0,0 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-prepare-prompt/SKILL.md instead. -->
2
-
3
- # forgecad-prepare-prompt
4
-
5
- Turn a fuzzy physical product, mechanism, or CAD artifact request into a concrete manufacture-realistic prototype ForgeCAD build brief and a single master prompt for the modeling pass. Use when the engineering brief is incomplete, manufacturing/process choice is underspecified, or the work needs a specific operating story to avoid generic toy solutions.
6
-
7
- | Field | Value |
8
- | --- | --- |
9
- | Installed by | `forgecad skill install` |
10
- | Source | `agent-skill-library/forgecad-prepare-prompt/SKILL.md` |
11
-
12
- ---
13
-
14
- ## Prepare ForgeCAD Prompt
15
-
16
- Use before modeling when the user wants something physically real and buildable but the request is fuzzy ("make me a robot gripper", "make it production ready", "I don't know the numbers, make sensible choices"). This skill owns intake and prompt preparation; once the brief is concrete, hand off to the `forgecad` skill.
17
-
18
- ### Core Rules
19
-
20
- **Manufacturing is a design decision, not a default.** Never assume FDM, 3D printing, "printable", or plastic parts unless the user explicitly asked, the artifact family honestly points there, or the chosen process stack includes printed parts. Derive the process stack from artifact family, load path, scale, safety expectations, material properties, production intent, and operating story — family→process examples and all numeric anchors live in `references/default-profiles.md`. If the user names a process, honor it but warn when it is unsafe or dishonest for the duty.
21
-
22
- **Posture taxonomy.** Default output posture is **manufacture-realistic prototype**: a serious build candidate with real materials, purchased-part boundaries, assembly logic, and validation — no claims of production tooling, certification, rider safety, or release-ready DFM. Other postures only when the brief justifies them: `production-realistic` (explicit production intent), `printable` (printing is the selected process), `visual-CAD` (form study), or a specific process posture (`sheet-metal`, `CNC-machined`, `laser-cut`, `welded tube`, `injection-molded`, `cast`, `hybrid purchased-hardware`). Pick the posture that is honest for the artifact, not the easiest CAD surface.
23
-
24
- **Family-scoped numbers.** Every starter assumption is scoped to one artifact family. Never reuse numbers across families; never apply one default profile to unrelated artifacts.
25
-
26
- ### Workflow
27
-
28
- 1. **Normalize the ask** into plain mechanism language. "6 DOF gripper" usually means one of: standalone gripper with finger joints, wrist plus gripper, or full arm plus gripper.
29
-
30
- 2. **Build the specific operating story**: an invented specific (non-famous) org, a named program, a prototype revision, a review moment, a test setting, mission pressure (pilot gate, demo date, investor milestone, customer deployment), and the generic failure mode to avoid. Prefer bold high-agency stories — go/no-go gates, first-customer pilots, investor demos — over modest lab exercises.
31
- - Good: "RivetLine Automation is racing toward a first-customer kitting-cell pilot and needs the RG-4 gripper jaw for a live demo next Wednesday. The jaw must pick 40-90 mm plastic housings from a tray, use hardware the build tech can source this week, and make finger-pad replacement possible without rebuilding the linkage."
32
- - Bad: vague prestige labels ("frontier robotics startup") with no program/rig/milestone specifics.
33
- - Never assert the user works for a named real company unless they said so. Named real products only as public comparison anchors. Never clone proprietary designs — public-domain patterns and first-principles engineering only.
34
-
35
- 3. **Classify the artifact family** (`references/default-profiles.md`): grippers and small mechanisms; fixtures/jigs/holders; enclosures and electronics housings; furniture and load-bearing structures; chassis and mobile robot structures; human vehicles and rideable forms. Rideables always route to human-vehicles, never chassis. If no family fits, use the no-family-fits escape there — never force one.
36
-
37
- 4. **Choose the process posture** per the taxonomy above.
38
-
39
- 5. **Pick the qualitative levers** — duty: `light-duty`/`general-duty`/`sturdy-duty`; scale: `compact`/`medium`/`large`; cost: `cheapest`/`balanced`/`performance-first` — and translate them into family-scoped starter assumptions.
40
-
41
- 6. **Close only the critical gaps.** At most 3 grouped questions, always choice menus, never raw engineering inputs (payload mass, torque budget, backlash tolerance) unless the architecture truly depends on them and cannot be bracketed safely. Good: "Which feels closest: a light desk demo, a useful hobby tool, or a sturdier bench mechanism?" Bad: "What payload mass?"
42
-
43
- 7. **Write the engineering brief.** Required fields: artifact + family + normalized interpretation; operating story + production reason + test setting + generic failure mode to avoid; output posture; intended objects/loads, size envelope, motion style and DOF; process stack and material defaults; purchased-part (BOM) boundary; validation standard; variant policy — multiple versions of one object are selectable params (`Variant`/`Preset`/`Style`), one rendered at a time, a comparison lineup only as an explicit non-default debug mode so collision inspection proves one real assembly; file organization — `main.forge.js` entry point for multi-file projects (convention owned by `forgecad-make-a-model`); explicit uncertainty policy.
44
-
45
- 8. **Emit one master prompt.** Fill `references/master-prompt.md` from the chosen profile and assumptions. Return the finished prompt, not notes about it.
46
-
47
- 9. **Hand off** to the `forgecad` skill if implementation continues; for moving mechanisms its index routes to the assembly and joint-design docs.
48
-
49
- ### Defaults And Verdict
50
-
51
- If the user stays vague: `general-duty` / `medium` / `balanced`, invent the operating story, and use the family starter assumptions from `references/default-profiles.md`.
52
-
53
- The prompt must demand exactly `BUILD-READY` or `BEST-EFFORT BUILD CANDIDATE`. If the request outruns the chosen profile, downgrade the claim and keep going. No placeholders ("appropriate motor", "adjust as needed") — choose a defensible value, state it, continue. No follow-up questions unless the architecture would materially change and no safe assumption bundle exists. Human-bearing furniture and rideable vehicles usually end `BEST-EFFORT BUILD CANDIDATE`.
54
-
55
- ### Output Contract
56
-
57
- Reply with a short interpretation of the request, the chosen family + operating story + assumption bundle (compact, options menu only if truly needed), then the single filled master prompt last. Do not bury the prompt under theory.
58
-
59
-
60
- ## Bundled Files
61
-
62
- - `references/default-profiles.md`
63
- - `references/master-prompt.md`