forgecad 0.10.2 → 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 (95) hide show
  1. package/README.md +7 -6
  2. package/dist/assets/{AdminPage-CHY6ZN-p.js → AdminPage-CK7ObBz3.js} +1 -1
  3. package/dist/assets/{BenchmarkPage-BcRT5iGN.js → BenchmarkPage-Ds7Z2doN.js} +1 -1
  4. package/dist/assets/{BlogPage-BssBbnb-.js → BlogPage-DlPbpt6A.js} +1 -1
  5. package/dist/assets/{DocsPage-DsvdiRNK.js → DocsPage-vZb3b3Y0.js} +9 -14
  6. package/dist/assets/{EditorApp-BpjZgzk0.css → EditorApp-C5f24ZN9.css} +8 -0
  7. package/dist/assets/{EditorApp-Bfd3jbtC.js → EditorApp-HLoKfe15.js} +141 -12
  8. package/dist/assets/{EmbedViewer-D5t8WamV.js → EmbedViewer--KnqBKrJ.js} +2 -2
  9. package/dist/assets/{LandingPageProofDriven-DbN7o-Be.js → LandingPageProofDriven-C_LssmnA.js} +1 -1
  10. package/dist/assets/{LegalPage-DNGrrY0p.js → LegalPage-DGsyo4n1.js} +1 -1
  11. package/dist/assets/{PricingPage-Nczr3pRz.js → PricingPage-BOE27B-R.js} +1 -1
  12. package/dist/assets/{SettingsPage-DZlyu4d4.js → SettingsPage-f47cnk39.js} +1 -1
  13. package/dist/assets/{app-C9ct2hRD.js → app-D6ccu2Xx.js} +6854 -7373
  14. package/dist/assets/{backendInit-ymjonyQp.js → backendInit-DbTkQN9J.js} +2557 -809
  15. package/dist/assets/cli/{render-B_0lQwKU.js → render-BsngirjC.js} +114 -9
  16. package/dist/assets/{constructionHistoryWorker-CZ42Dksy.js → constructionHistoryWorker-PCwXrTDB.js} +175 -36
  17. package/dist/assets/{evalWorker-C2pm8LHP.js → evalWorker-CS63PfZu.js} +1125 -447
  18. package/dist/assets/{forgecad_geometry-BlMtqluF.js → forgecad_geometry-CZ_IfuvA.js} +1 -9
  19. package/dist/assets/{forgecad_geometry_bg-BllP_WiL.wasm → forgecad_geometry_bg-C3rQHfwg.wasm} +0 -0
  20. package/dist/assets/{inspectWorker-D5T5VbfK.js → inspectWorker-Y4cOzNyA.js} +4345 -373
  21. package/dist/assets/{jointPose-4r8ed8_5.js → jointPose-AMvCywzS.js} +1 -1
  22. package/dist/assets/{manifold-C4r6B-XY.js → manifold-CBry38ly.js} +2 -2
  23. package/dist/assets/{manifold-5PP1eGLN.js → manifold-Crd_F2qx.js} +1 -1
  24. package/dist/assets/{manifold-DjBkyIc8.js → manifold-k2kRcc85.js} +1 -1
  25. package/dist/assets/{reportWorker-CwenM7wB.js → reportWorker-CWvn0CEv.js} +1095 -400
  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 +9 -7
  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 +1 -1
  33. package/dist/docs-raw/generated/concepts.md +5 -3
  34. package/dist/docs-raw/generated/core.md +70 -1
  35. package/dist/docs-raw/generated/curves.md +8 -1
  36. package/dist/docs-raw/generated/output.md +0 -64
  37. package/dist/docs-raw/generated/runtime-names.md +6 -6
  38. package/dist/docs-raw/generated/viewport.md +3 -12
  39. package/dist/docs-raw/guides/inspection-bundles.md +1 -1
  40. package/dist/docs-raw/simulation-workflow.md +58 -0
  41. package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
  42. package/dist/docs-raw/skills/forgecad-image-replicator.md +2 -2
  43. package/dist/docs-raw/skills/forgecad-mujoco-verify.md +78 -0
  44. package/dist/docs-raw/skills/forgecad-spec-by-walking-through-it.md +145 -0
  45. package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
  46. package/dist/docs-raw/skills/forgecad.md +24 -24
  47. package/dist/docs-raw/skills/index.md +2 -3
  48. package/dist/index.html +1 -1
  49. package/dist/sitemap.xml +15 -15
  50. package/dist-cli/{check-compiler-SP7FAL7R.js → check-compiler-HPF2T2FS.js} +1 -1
  51. package/dist-cli/{check-query-propagation-BRLSHP22.js → check-query-propagation-HYSLTXAB.js} +1 -1
  52. package/dist-cli/{chunk-RQQ42YCP.js → chunk-WLUKAW3H.js} +1025 -158
  53. package/dist-cli/forgecad.js +2621 -232
  54. package/dist-cli/{forgecad_geometry-7TVSNVUB.js → forgecad_geometry-2IMYCUWW.js} +0 -8
  55. package/dist-cli/forgecad_geometry_bg.wasm +0 -0
  56. package/dist-skill/CONTEXT.md +85 -73
  57. package/dist-skill/SKILL.md +1 -1
  58. package/dist-skill/docs/CLI.md +9 -7
  59. package/dist-skill/docs/generated/assembly.md +1 -1
  60. package/dist-skill/docs/generated/core.md +70 -1
  61. package/dist-skill/docs/generated/curves.md +8 -1
  62. package/dist-skill/docs/generated/output.md +0 -64
  63. package/dist-skill/docs/generated/runtime-names.md +6 -6
  64. package/dist-skill/docs/generated/viewport.md +3 -12
  65. package/dist-skill/docs/guides/inspection-bundles.md +1 -1
  66. package/dist-skill/library/README.md +2 -3
  67. package/dist-skill/library/forgecad-blockout-model/SKILL.md +1 -1
  68. package/dist-skill/library/forgecad-image-replicator/SKILL.md +2 -2
  69. package/dist-skill/library/forgecad-mujoco-verify/SKILL.md +66 -0
  70. package/dist-skill/library/forgecad-mujoco-verify/scripts/mujoco_verify.py +385 -0
  71. package/dist-skill/library/forgecad-spec-by-walking-through-it/SKILL.md +132 -0
  72. package/dist-skill/library/forgecad-visual-spec/SKILL.md +1 -1
  73. package/dist-skill/website/skills/forgecad-blockout-model.md +1 -1
  74. package/dist-skill/website/skills/forgecad-image-replicator.md +2 -2
  75. package/dist-skill/website/skills/forgecad-mujoco-verify.md +78 -0
  76. package/dist-skill/website/skills/forgecad-spec-by-walking-through-it.md +145 -0
  77. package/dist-skill/website/skills/forgecad-visual-spec.md +1 -1
  78. package/dist-skill/website/skills/forgecad.md +24 -24
  79. package/dist-skill/website/skills/index.md +2 -3
  80. package/examples/analysis/clearance-fit.forge.js +31 -0
  81. package/examples/analysis/lever-arm-actuator.forge.js +43 -0
  82. package/examples/analysis/tipping-tripod.forge.js +35 -0
  83. package/examples/products/sportscar.forge.js +77 -0
  84. package/package.json +1 -3
  85. package/dist/docs-raw/skills/forgecad-high-level-spec.md +0 -101
  86. package/dist/docs-raw/skills/forgecad-lld.md +0 -41
  87. package/dist/docs-raw/skills/forgecad-prepare-prompt.md +0 -63
  88. package/dist-skill/library/forgecad-high-level-spec/SKILL.md +0 -94
  89. package/dist-skill/library/forgecad-lld/SKILL.md +0 -34
  90. package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +0 -50
  91. package/dist-skill/website/skills/forgecad-high-level-spec.md +0 -101
  92. package/dist-skill/website/skills/forgecad-lld.md +0 -41
  93. package/dist-skill/website/skills/forgecad-prepare-prompt.md +0 -63
  94. /package/dist-skill/library/{forgecad-prepare-prompt → forgecad-spec-by-walking-through-it}/references/default-profiles.md +0 -0
  95. /package/dist-skill/library/{forgecad-prepare-prompt → forgecad-spec-by-walking-through-it}/references/master-prompt.md +0 -0
@@ -0,0 +1,145 @@
1
+ <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit agent-skill-library/forgecad-spec-by-walking-through-it/SKILL.md instead. -->
2
+
3
+ # forgecad-spec-by-walking-through-it
4
+
5
+ Design a ForgeCAD model, mechanism, or assembly by fixing WHAT before HOW in a git-reviewed design document, validated by mentally operating the thing step by step. Covers fuzzy-request intake and process choice, high-level design (HLD), and low-level design (LLD). Use on "spec this out", "plan the design", "write the HLD/LLD", a vague build request that needs concrete decisions, or any moment the right move is a reviewable spec before code.
6
+
7
+ | Field | Value |
8
+ | --- | --- |
9
+ | Installed by | `forgecad skill install` |
10
+ | Source | `agent-skill-library/forgecad-spec-by-walking-through-it/SKILL.md` |
11
+
12
+ ---
13
+
14
+ ## Spec by Walking Through It
15
+
16
+ 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.
17
+
18
+ **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."
19
+
20
+ **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).
21
+
22
+ **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.
23
+
24
+ ### Altitude — three phases, one document trail
25
+
26
+ | Phase | When | Output |
27
+ |-------|------|--------|
28
+ | Intake | request is fuzzy / process unspecified | engineering brief + master prompt |
29
+ | HLD | design is wrong in *approach*, alternatives exist | `<name>-hld.md` |
30
+ | LLD | decisions locked, or a simple single-body part | `<name>-lld.md` |
31
+
32
+ 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.
33
+
34
+ ---
35
+
36
+ ### Phase 1 — Intake (fuzzy request → concrete brief)
37
+
38
+ 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.
39
+
40
+ **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`.
41
+
42
+ **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.
43
+
44
+ **Family-scoped numbers.** Every starter assumption is scoped to one artifact family; never reuse numbers across families.
45
+
46
+ Workflow:
47
+ 1. **Normalize the ask** into plain mechanism language ("6 DOF gripper" → standalone gripper, wrist+gripper, or arm+gripper).
48
+ 2. **Build a specific operating story** — invented (non-famous) org, named program, prototype revision, review moment, mission pressure (pilot gate, demo date, investor milestone), and the generic failure mode to avoid. Prefer bold high-agency stories over modest lab exercises. Never assert the user works for a named real company; use real products only as public comparison anchors; never clone proprietary designs.
49
+ 3. **Classify the artifact family** (`references/default-profiles.md`); use the no-family-fits escape rather than forcing one. Rideables route to human-vehicles, never chassis.
50
+ 4. **Choose the process posture** per the taxonomy above.
51
+ 5. **Pick qualitative levers** — duty (`light`/`general`/`sturdy`), scale (`compact`/`medium`/`large`), cost (`cheapest`/`balanced`/`performance-first`) — and translate to family-scoped starter assumptions.
52
+ 6. **Close only critical gaps** — at most 3 grouped questions, always choice menus, never raw engineering inputs unless the architecture truly depends on them. Good: "light desk demo, useful hobby tool, or sturdier bench mechanism?" Bad: "What payload mass?"
53
+ 7. **Write the engineering brief**: artifact + family + normalized interpretation; operating story + production reason + test setting + failure mode to avoid; output posture; intended loads, size envelope, motion/DOF; process stack + material defaults; purchased-part (BOM) boundary; validation standard; variant policy (versions are selectable params, one rendered at a time); file organization (`main.forge.js` entry for multi-file); explicit uncertainty policy.
54
+ 8. **Emit one master prompt** — fill `references/master-prompt.md`; return the finished prompt, not notes about it. It must demand exactly `BUILD-READY` or `BEST-EFFORT BUILD CANDIDATE` (human-bearing furniture and rideables usually end the latter).
55
+
56
+ Defaults if the user stays vague: `general-duty` / `medium` / `balanced`, invent the operating story, use family starter assumptions.
57
+
58
+ ---
59
+
60
+ ### Phase 2 — High-Level Design (HLD)
61
+
62
+ Aligns user and agent on *what* to build before *how*. Brevity is a readability tool, not a metric — include whatever evidence, diagrams, and dimensions a good decision needs. Write the sections top to bottom; the order is the workflow.
63
+
64
+ ```markdown
65
+ # [Name] — High-Level Design
66
+
67
+ ## Problem
68
+ What must this do? Hard requirements (grip 40-90mm objects, fit a 60mm
69
+ housing, use purchased bearings). State the problem without implying a
70
+ solution. Unspecified process choice is an open design dimension.
71
+
72
+ ## Approach
73
+ How it works conceptually. ASCII diagram of key elements and their
74
+ spatial relationships — diagram labels stay in this markdown, never
75
+ carried into CAD geometry unless the real artifact needs markings.
76
+
77
+ ## Key Interfaces
78
+ Every point where this touches another part or the outside world:
79
+ mating surfaces, shared dimensions, coordination points. These are the
80
+ contracts that constrain the design.
81
+
82
+ ## Dictionary
83
+ | Term | What it is |
84
+ Define every domain term in plain words, with dimensions where relevant.
85
+ Write for a developer without a mechanical-engineering background.
86
+
87
+ ## Alternatives
88
+ | Option | Description | Tradeoff |
89
+ 2-3 genuinely different strategies, not minor variations. Mark one
90
+ recommended and say why. If there is honestly one approach, say so.
91
+
92
+ ## Usage Guide
93
+ Work backwards from how someone uses, assembles, or operates the thing,
94
+ step by step. If a step doesn't make sense ("how does the servo get
95
+ inside?"), flag it inline with ⚠️ and promote it to Concerns.
96
+
97
+ ## Concerns
98
+ 1. Numbered, falsifiably specific — a reviewer must be able to say "real
99
+ problem" or "fine, because…".
100
+
101
+ ## Decisions
102
+ | # | Decision | Rationale |
103
+ Filled ONLY after user review — never pre-decide. Each row resolves a
104
+ concern or alternative.
105
+ ```
106
+
107
+ Rules: if you're speccing every part, formula, and tolerance, you're writing an LLD — back up. If you can't draw it, you don't understand it yet.
108
+
109
+ ---
110
+
111
+ ### Phase 3 — Low-Level Design (LLD)
112
+
113
+ Implements the HLD's locked Decisions table; it never revisits those decisions. Simple single-body parts skip the HLD and start here. Complex assemblies split into a numbered directory: overview, global constraints, per-component files, assembly, verification.
114
+
115
+ An LLD is **narrative-first** (reads like describing the object over the phone), **authoritative** (the single source code implements), **implementation-blind**, and shows **every number's rationale**.
116
+
117
+ Required structure:
118
+ 1. **Narrative** — what it is, how it behaves and interacts, why it exists. Concrete comparisons ("about the size of a deck of cards"); no ungrounded vague terms.
119
+ 2. **Technical** — typed parameter table (length / angle / count / boolean / choice / ratio / clearance — design-document vocabulary, not the runtime `Param.*` API), always with units (mm, degrees default) and a rationale for every default and range; derived dimensions shown as math; geometry and constraints, each constraint with a rationale.
120
+ 3. **Verification** — mandatory checklist: dimensional, functional, printability/process checks.
121
+
122
+ Don'ts: never open with a parameter list (story before numbers), never leave a constraint implicit, never skip verification. Completeness gate before presenting: can someone build from this alone? Does it implement every HLD decision? Is every constraint explicit with a rationale?
123
+
124
+ ---
125
+
126
+ ### Review via git
127
+
128
+ HLDs and LLDs iterate through git, not conversation:
129
+ - **Commit every version.** No drafts floating in chat. After writing, commit and tell the user it's ready for review.
130
+ - **Feedback arrives as file edits (inline comments, strikethroughs) or chat — check both.** Read `git diff`: the diff is the review artifact.
131
+ - **Update, commit, repeat** until the Decisions table is filled and the user says "go."
132
+
133
+ ### Pipeline
134
+
135
+ | Stage | This skill's phase | Output | Next |
136
+ |-------|--------------------|--------|------|
137
+ | Explore a fuzzy ask | Intake | engineering brief + master prompt | HLD |
138
+ | Decide *what* to build | HLD | `*-hld.md` (Decisions filled) | LLD |
139
+ | Detail *how* to build | LLD | `*-lld.md` | `forgecad-make-a-model` + `forgecad` → `.forge.js` |
140
+
141
+
142
+ ## Bundled Files
143
+
144
+ - `references/default-profiles.md`
145
+ - `references/master-prompt.md`
@@ -15,7 +15,7 @@ Turn a concrete ForgeCAD artifact, build brief, HLD, or existing model into buil
15
15
 
16
16
  ### Scope
17
17
 
18
- Only for artifacts already concrete enough to visualize (a specific `.forge.js` model, build brief, or HLD); route vague briefs to `forgecad-prepare-prompt` first. Read minimum context — entry `.forge.js`, one key helper if it delegates geometry, brief/HLD — and capture what must survive the image model: artifact type and scale, major subassemblies, actuation style, visible mechanisms, material and color cues.
18
+ Only for artifacts already concrete enough to visualize (a specific `.forge.js` model, build brief, or HLD); route vague briefs to `forgecad-spec-by-walking-through-it` first. Read minimum context — entry `.forge.js`, one key helper if it delegates geometry, brief/HLD — and capture what must survive the image model: artifact type and scale, major subassemblies, actuation style, visible mechanisms, material and color cues.
19
19
 
20
20
  ### Core Rule
21
21
 
@@ -1,4 +1,4 @@
1
- <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit docs/permanent/ instead. -->
1
+ <!-- Generated by scripts/build-forgecad-skill.mjs — do not edit. Edit docs/skill/ instead. -->
2
2
 
3
3
  # forgecad
4
4
 
@@ -7,7 +7,7 @@ ForgeCAD model authoring, editing, debugging, and execution guidance for .forge.
7
7
  | Field | Value |
8
8
  | --- | --- |
9
9
  | Installed by | `forgecad skill install` |
10
- | Source | Generated from `docs/permanent/` by `scripts/build-forgecad-skill.mjs` |
10
+ | Source | Generated from `docs/skill/` by `scripts/build-forgecad-skill.mjs` |
11
11
 
12
12
  ---
13
13
 
@@ -18,9 +18,9 @@ Author or modify ForgeCAD models, sketches, assemblies, and CLI workflows. Prefe
18
18
  ### Workflow
19
19
 
20
20
  1. Identify the artifact: `.forge.js`, SVG asset, or CLI/export task.
21
- 2. **If the model has any moving parts, load the `assembly` group and `docs/permanent/guides/joint-design.md` upfront** — do not defer the kinematic structure to a refactor pass.
21
+ 2. **If the model has any moving parts, load the `assembly` group and `docs/skill/guides/joint-design.md` upfront** — do not defer the kinematic structure to a refactor pass.
22
22
  3. Load only the docs the task needs (see Source Map below). Start from the top group, add others as needed, and prefer these docs and recipes over ad-hoc repo examples.
23
- 4. If any two parts are intended to touch or mate in the final model, load `docs/permanent/guides/positioning.md` immediately and default to connectors + `matchTo()`.
23
+ 4. If any two parts are intended to touch or mate in the final model, load `docs/skill/guides/positioning.md` immediately and default to connectors + `matchTo()`.
24
24
  5. Default to a concrete first pass — easy iteration beats speculative design review.
25
25
  6. If an existing model is broken, replace the weak structure rather than preserving bad architecture.
26
26
  7. Validate with `forgecad run <file>` (add `--debug-imports` for import chain issues; pass `--backend manifold|occt|truck` when the backend matters).
@@ -46,77 +46,77 @@ Load groups top-to-bottom, stopping when you have what the task needs.
46
46
 
47
47
  Execution model, colors, coordinate system, primitives, booleans, patterns, imports, parameters, topology, edge queries.
48
48
 
49
- - `docs/permanent/API/core/concepts.md`
50
- - `docs/permanent/generated/runtime-names.md`
51
- - `docs/permanent/generated/core.md`
49
+ - `docs/skill/API/core/concepts.md`
50
+ - `docs/skill/generated/runtime-names.md`
51
+ - `docs/skill/generated/core.md`
52
52
 
53
53
  #### 2. Static Assembly and Positioning (for any multi-part model)
54
54
 
55
55
  Axis conventions, winding rules, and placement strategy. If parts should touch in the final model, read this group before writing placement code. Connectors + `matchTo()` are the default for mating interfaces; raw `translate()` and `rotate()` are for free offsets, not assembly contracts.
56
56
 
57
- - `docs/permanent/guides/coordinate-system.md`
58
- - `docs/permanent/guides/positioning.md`
57
+ - `docs/skill/guides/coordinate-system.md`
58
+ - `docs/skill/guides/positioning.md`
59
59
 
60
60
  #### 3. Sketch APIs
61
61
 
62
62
  2D construction, transforms, booleans, paths, on-face sketching, extrusion, anchors, text, regions.
63
63
 
64
- - `docs/permanent/generated/sketch.md`
64
+ - `docs/skill/generated/sketch.md`
65
65
 
66
66
  #### 4. Curves and Surfacing (for lofts, sweeps, splines)
67
67
 
68
68
  Smooth curves, Hermite splines, lofted and swept solids. For straps, inlays, guards, brace members, vents, or physical bands that live on a carrier surface, use `Carrier` + `SurfaceBody` surface-member primitives before reaching for `variableSweep`, SDF sculpting, or manual boolean overlap recipes.
69
69
 
70
- - `docs/permanent/guides/surface-members.md`
71
- - `docs/permanent/generated/curves.md`
70
+ - `docs/skill/guides/surface-members.md`
71
+ - `docs/skill/generated/curves.md`
72
72
 
73
73
  #### 5. Assemblies and Mechanisms (for joints or kinematics)
74
74
 
75
- Assembly graph, joint types, couplings, validation, robot export.
75
+ Assembly graph, joint types, couplings, validation, and simulation export.
76
76
 
77
- - `docs/permanent/generated/assembly.md`
77
+ - `docs/skill/generated/assembly.md`
78
78
 
79
79
  #### 6. Sheet Metal (for bent parts, K-factor, flat patterns)
80
80
 
81
81
  Bend operations, flat pattern unfolding, K-factor configuration.
82
82
 
83
- - `docs/permanent/generated/sheet-metal.md`
83
+ - `docs/skill/generated/sheet-metal.md`
84
84
 
85
85
  #### 7. Output and Export (for STL/3MF/STEP, BOM, dimensions)
86
86
 
87
87
  Mesh export, exact geometry export, bill of materials, dimension annotations.
88
88
 
89
- - `docs/permanent/generated/output.md`
89
+ - `docs/skill/generated/output.md`
90
90
 
91
91
  #### 8. Toolbox (fasteners and standard parts)
92
92
 
93
93
  Parametric bolts, nuts, washers, standard hardware, gears, pipes, and structural profiles.
94
94
 
95
- - `docs/permanent/generated/lib.md`
96
- - `docs/permanent/generated/wood.md`
95
+ - `docs/skill/generated/lib.md`
96
+ - `docs/skill/generated/wood.md`
97
97
 
98
98
  #### 9. Runtime Viewport APIs (for cut planes, exploded views, hiding, and animation playback)
99
99
 
100
100
  Viewer-only APIs such as cutPlane, explodeView, render labels, comparison references, and runtime display behavior.
101
101
 
102
- - `docs/permanent/generated/viewport.md`
102
+ - `docs/skill/generated/viewport.md`
103
103
 
104
104
  #### 10. Recipes and Debugging (for patterns and troubleshooting)
105
105
 
106
106
  Modeling patterns, debugging tactics, copyable snippets.
107
107
 
108
- - `docs/permanent/guides/scene-presentation.md`
109
- - `docs/permanent/guides/joint-design.md`
108
+ - `docs/skill/guides/scene-presentation.md`
109
+ - `docs/skill/guides/joint-design.md`
110
110
 
111
111
  #### 11. CLI (for validation/render/export tasks)
112
112
 
113
113
  Test-run, export pipelines, debug flags.
114
114
 
115
- - `docs/permanent/CLI.md`
116
- - `docs/permanent/guides/inspection-bundles.md`
115
+ - `docs/skill/CLI.md`
116
+ - `docs/skill/guides/inspection-bundles.md`
117
117
 
118
118
  #### SDF Modeling (smooth booleans, TPMS, deformations, fromFunction)
119
119
 
120
120
  Primitives, smooth booleans, TPMS lattices, twist/bend/displace, morph, custom functions, gotchas. The doc preamble's precision caution applies to every SDF workflow.
121
121
 
122
- - `docs/permanent/generated/sdf.md`
122
+ - `docs/skill/generated/sdf.md`
@@ -14,13 +14,12 @@ forgecad skill install
14
14
  | [forgecad-3d-reconstruction](/docs/skills/forgecad-3d-reconstruction) | `forgecad skill install` | Reconstruct a parametric ForgeCAD model from an existing 3D CAD or mesh file such as STL, OBJ, 3MF, STEP, or STP; inspect the source asset directly, author real ForgeCAD geometry, and iteratively compare the candidate with `forgecad compare 3d`. |
15
15
  | [forgecad-blockout-model](/docs/skills/forgecad-blockout-model) | `forgecad skill install` | Create rough high-level ForgeCAD concept models from simple primitives to explore layout, proportions, motion, and part relationships without production detail. Use when asked for a quick model sketch, blockout, spatial mockup, or intuitive low-detail 3D concept. |
16
16
  | [forgecad-component-model](/docs/skills/forgecad-component-model) | `forgecad skill install` | Enforce the ForgeCAD Component Model when building multi-part assemblies. Parts build at origin, connectors position them, data flows down from parent. Use when building or reviewing any multi-file ForgeCAD project. |
17
- | [forgecad-high-level-spec](/docs/skills/forgecad-high-level-spec) | `forgecad skill install` | 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. |
18
17
  | [forgecad-image-replicator](/docs/skills/forgecad-image-replicator) | `forgecad skill install` | Build real ForgeCAD geometry from one or more reference images by treating images as evidence, inferring the object, then validating against both reference-matched and canonical views. |
19
- | [forgecad-lld](/docs/skills/forgecad-lld) | `forgecad skill install` | 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. |
20
18
  | [forgecad-make-a-model](/docs/skills/forgecad-make-a-model) | `forgecad skill install` | Create manufacture-realistic prototype ForgeCAD (.forge.js) models in the active CAD project. Handles file placement, invokes the forgecad skill for API guidance, and validates the result. |
21
19
  | [forgecad-model-grader](/docs/skills/forgecad-model-grader) | `forgecad skill install` | Analyze, verify, and grade ForgeCAD or CAD-as-code models against a user requirement, design brief, prompt, reference, or acceptance criteria. Use when asked to evaluate, judge, QA, benchmark, score, rate, or compare a CAD model; render it from multiple angles, run targeted inspections when needed, visually verify the evidence, and produce a 0-10 score with concise justification. |
22
- | [forgecad-prepare-prompt](/docs/skills/forgecad-prepare-prompt) | `forgecad skill install` | 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. |
20
+ | [forgecad-mujoco-verify](/docs/skills/forgecad-mujoco-verify) | `forgecad skill install` | Verify ForgeCAD MJCF exports in MuJoCo with real dynamics, contacts, root behavior, controls, required joint travel, and rendered evidence before calling a model simulation-ready. Use when making a ForgeCAD assembly sim-ready, debugging MJCF contacts, checking why a body falls through the floor, validating actuator motion, or proving a mechanism moved through the intended range. |
23
21
  | [forgecad-project](/docs/skills/forgecad-project) | `forgecad skill install` | ForgeCAD project CLI workflow — creating, managing, syncing projects and files on forgecad.io. Covers init, push, pull, file operations, member management, publishing, and sharing. |
24
22
  | [forgecad-reconstruction-benchmark](/docs/skills/forgecad-reconstruction-benchmark) | `forgecad skill install` | Solve ForgeCAD CAD reconstruction benchmark or RL episodes in a prepared workspace by rebuilding a visible reference asset as readable parametric ForgeCAD in the fixed submission path, using visual and geometric self-checks while respecting sandbox limits. |
25
23
  | [forgecad-render-inspect](/docs/skills/forgecad-render-inspect) | `forgecad skill install` | Run and interpret ForgeCAD inspection bundles for model verification. Use when asked to inspect a ForgeCAD model, analyze an inspection bundle, validate collisions, wall thickness, connectivity, floating bodies, sections, masks, depth, normals, or Zebra stripes. |
24
+ | [forgecad-spec-by-walking-through-it](/docs/skills/forgecad-spec-by-walking-through-it) | `forgecad skill install` | Design a ForgeCAD model, mechanism, or assembly by fixing WHAT before HOW in a git-reviewed design document, validated by mentally operating the thing step by step. Covers fuzzy-request intake and process choice, high-level design (HLD), and low-level design (LLD). Use on "spec this out", "plan the design", "write the HLD/LLD", a vague build request that needs concrete decisions, or any moment the right move is a reviewable spec before code. |
26
25
  | [forgecad-visual-spec](/docs/skills/forgecad-visual-spec) | `forgecad skill install` | Turn a concrete ForgeCAD artifact, build brief, HLD, or existing model into builder-honest image prompts for AI image models. Use when the user wants visual-spec renders that show the final product while keeping mechanisms, seams, hardware, and build cues visible instead of drifting into concept art. |
package/dist/index.html CHANGED
@@ -83,7 +83,7 @@
83
83
  * { margin: 0; padding: 0; box-sizing: border-box; }
84
84
  html, body, #root { width: 100%; min-height: 100%; background: var(--fc-bg); color: var(--fc-text); font-family: system-ui, -apple-system, sans-serif; }
85
85
  </style>
86
- <script type="module" crossorigin src="/assets/app-C9ct2hRD.js"></script>
86
+ <script type="module" crossorigin src="/assets/app-D6ccu2Xx.js"></script>
87
87
  <link rel="stylesheet" crossorigin href="/assets/app-CjsbDlb7.css">
88
88
  </head>
89
89
  <body>
package/dist/sitemap.xml CHANGED
@@ -2,91 +2,91 @@
2
2
  <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
3
3
  <url>
4
4
  <loc>https://forgecad.io/</loc>
5
- <lastmod>2026-06-12</lastmod>
5
+ <lastmod>2026-06-14</lastmod>
6
6
  <changefreq>weekly</changefreq>
7
7
  <priority>1.0</priority>
8
8
  </url>
9
9
  <url>
10
10
  <loc>https://forgecad.io/docs</loc>
11
- <lastmod>2026-06-12</lastmod>
11
+ <lastmod>2026-06-14</lastmod>
12
12
  <changefreq>weekly</changefreq>
13
13
  <priority>0.8</priority>
14
14
  </url>
15
15
  <url>
16
16
  <loc>https://forgecad.io/docs/ai-native-cad</loc>
17
- <lastmod>2026-06-12</lastmod>
17
+ <lastmod>2026-06-14</lastmod>
18
18
  <changefreq>weekly</changefreq>
19
19
  <priority>0.9</priority>
20
20
  </url>
21
21
  <url>
22
22
  <loc>https://forgecad.io/docs/ai-usage</loc>
23
- <lastmod>2026-06-12</lastmod>
23
+ <lastmod>2026-06-14</lastmod>
24
24
  <changefreq>weekly</changefreq>
25
25
  <priority>0.8</priority>
26
26
  </url>
27
27
  <url>
28
28
  <loc>https://forgecad.io/docs/cli</loc>
29
- <lastmod>2026-06-12</lastmod>
29
+ <lastmod>2026-06-14</lastmod>
30
30
  <changefreq>weekly</changefreq>
31
31
  <priority>0.7</priority>
32
32
  </url>
33
33
  <url>
34
34
  <loc>https://forgecad.io/docs/simready-quickstart</loc>
35
- <lastmod>2026-06-12</lastmod>
35
+ <lastmod>2026-06-14</lastmod>
36
36
  <changefreq>weekly</changefreq>
37
37
  <priority>0.8</priority>
38
38
  </url>
39
39
  <url>
40
40
  <loc>https://forgecad.io/docs/simulation-workflow</loc>
41
- <lastmod>2026-06-12</lastmod>
41
+ <lastmod>2026-06-14</lastmod>
42
42
  <changefreq>weekly</changefreq>
43
43
  <priority>0.8</priority>
44
44
  </url>
45
45
  <url>
46
46
  <loc>https://forgecad.io/docs/skills/forgecad-make-a-model</loc>
47
- <lastmod>2026-06-12</lastmod>
47
+ <lastmod>2026-06-14</lastmod>
48
48
  <changefreq>weekly</changefreq>
49
49
  <priority>0.7</priority>
50
50
  </url>
51
51
  <url>
52
52
  <loc>https://forgecad.io/benchmark</loc>
53
- <lastmod>2026-06-12</lastmod>
53
+ <lastmod>2026-06-14</lastmod>
54
54
  <changefreq>weekly</changefreq>
55
55
  <priority>0.7</priority>
56
56
  </url>
57
57
  <url>
58
58
  <loc>https://forgecad.io/blog</loc>
59
- <lastmod>2026-06-12</lastmod>
59
+ <lastmod>2026-06-14</lastmod>
60
60
  <changefreq>weekly</changefreq>
61
61
  <priority>0.6</priority>
62
62
  </url>
63
63
  <url>
64
64
  <loc>https://forgecad.io/pricing</loc>
65
- <lastmod>2026-06-12</lastmod>
65
+ <lastmod>2026-06-14</lastmod>
66
66
  <changefreq>monthly</changefreq>
67
67
  <priority>0.5</priority>
68
68
  </url>
69
69
  <url>
70
70
  <loc>https://forgecad.io/terms</loc>
71
- <lastmod>2026-06-12</lastmod>
71
+ <lastmod>2026-06-14</lastmod>
72
72
  <changefreq>yearly</changefreq>
73
73
  <priority>0.3</priority>
74
74
  </url>
75
75
  <url>
76
76
  <loc>https://forgecad.io/privacy</loc>
77
- <lastmod>2026-06-12</lastmod>
77
+ <lastmod>2026-06-14</lastmod>
78
78
  <changefreq>yearly</changefreq>
79
79
  <priority>0.3</priority>
80
80
  </url>
81
81
  <url>
82
82
  <loc>https://forgecad.io/license</loc>
83
- <lastmod>2026-06-12</lastmod>
83
+ <lastmod>2026-06-14</lastmod>
84
84
  <changefreq>yearly</changefreq>
85
85
  <priority>0.3</priority>
86
86
  </url>
87
87
  <url>
88
88
  <loc>https://forgecad.io/blog/hello-forgecad-io</loc>
89
- <lastmod>2026-06-12</lastmod>
89
+ <lastmod>2026-06-14</lastmod>
90
90
  <changefreq>monthly</changefreq>
91
91
  <priority>0.5</priority>
92
92
  </url>
@@ -9,7 +9,7 @@ import {
9
9
  resolvePackagePath,
10
10
  runDirectCliMain,
11
11
  setActiveBackend
12
- } from "./chunk-RQQ42YCP.js";
12
+ } from "./chunk-WLUKAW3H.js";
13
13
 
14
14
  // cli/check-compiler.ts
15
15
  import assert from "assert/strict";
@@ -12,7 +12,7 @@ import {
12
12
  resolvePackagePath,
13
13
  runDirectCliMain,
14
14
  setActiveBackend
15
- } from "./chunk-RQQ42YCP.js";
15
+ } from "./chunk-WLUKAW3H.js";
16
16
 
17
17
  // cli/check-query-propagation.ts
18
18
  import assert from "assert/strict";