forgecad 0.9.15 → 0.10.0
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.
- package/dist/assets/{AdminPage-CDyGUinA.js → AdminPage-DwYHz72L.js} +1 -1
- package/dist/assets/{BenchmarkPage-DfPMY_-d.js → BenchmarkPage-a9_f-1US.js} +1 -1
- package/dist/assets/{BlogPage-kF0fkdJT.js → BlogPage-DodHpvmf.js} +1 -1
- package/dist/assets/{DocsPage-B954L3YN.js → DocsPage-B5LePEuj.js} +8 -858
- package/dist/assets/{EditorApp-CuDLxKqL.css → EditorApp-BpjZgzk0.css} +148 -0
- package/dist/assets/EditorApp-QXsAISLR.js +16307 -0
- package/dist/assets/{EmbedViewer-C77B-TrF.js → EmbedViewer-DdEHGUMU.js} +2 -2
- package/dist/assets/{LandingPageProofDriven-Cr6fXMDj.js → LandingPageProofDriven-yhhOodbf.js} +2 -2
- package/dist/assets/{LegalPage-Dzklqmmg.js → LegalPage-5RbKRGYK.js} +1 -1
- package/dist/assets/{PricingPage-zWXkvlwl.js → PricingPage-E3Rma7aV.js} +1 -1
- package/dist/assets/{SettingsPage-Bz0of4KQ.js → SettingsPage-BJZcM97j.js} +1 -1
- package/dist/assets/{app-D3kDkggg.js → app-DSYrDg0V.js} +1846 -352
- package/dist/assets/cli/{render-DSY3mMQa.js → render-ZMHR9HkV.js} +161 -70
- package/dist/assets/{constructionHistoryWorker-gpDo-uH2.js → constructionHistoryWorker-AwMMWSxg.js} +1104 -349
- package/dist/assets/{evalWorker-CU0Ke6DP.js → evalWorker-DbNs7Dkp.js} +5155 -3772
- package/dist/assets/{inspectWorker-COyp8XXA.js → inspectWorker-CZsCFtQT.js} +1415 -439
- package/dist/assets/{targets-B9sGB5nB.js → jointPose-DO6mnXn_.js} +71 -3
- package/dist/assets/{manifold-DNkrUWpA.js → manifold-BGlQBBH9.js} +1 -1
- package/dist/assets/{manifold-BRI5prcH.js → manifold-BU-tJwQh.js} +1 -1
- package/dist/assets/{manifold-C-3h2M7p.js → manifold-fy2MV7K1.js} +2 -2
- package/dist/assets/{reportWorker-CdBz5bNg.js → reportWorker-DO6hcQbh.js} +8474 -4549
- package/dist/assets/{scalar-sampling-budget-wJF98aY9.js → scalar-sampling-budget-o90NSNmF.js} +5347 -3906
- package/dist/assets/{scanProxyWorker-B-9VbLIs.js → scanProxyWorker-2GtDLk-R.js} +19 -6
- package/dist/assets/{javascript-1kQXfVaz.js → typescript-DBQ6RN5l.js} +874 -22
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +3 -3
- package/dist/docs-raw/AI/usage.md +3 -1
- package/dist/docs-raw/CLI.md +65 -239
- package/dist/docs-raw/README.md +6 -0
- package/dist/docs-raw/component-model.md +17 -150
- package/dist/docs-raw/generated/assembly.md +159 -520
- package/dist/docs-raw/generated/concepts.md +245 -3491
- package/dist/docs-raw/generated/core.md +277 -1251
- package/dist/docs-raw/generated/curves.md +387 -1608
- package/dist/docs-raw/generated/legacy.md +162 -0
- package/dist/docs-raw/generated/lib.md +238 -112
- package/dist/docs-raw/generated/output.md +51 -76
- package/dist/docs-raw/generated/runtime-names.md +30 -22
- package/dist/docs-raw/generated/sdf.md +68 -284
- package/dist/docs-raw/generated/sheet-metal.md +68 -335
- package/dist/docs-raw/generated/sketch.md +240 -1161
- package/dist/docs-raw/generated/viewport.md +75 -316
- package/dist/docs-raw/generated/wood.md +21 -49
- package/dist/docs-raw/guides/coordinate-system.md +4 -42
- package/dist/docs-raw/guides/inspection-bundles.md +44 -442
- package/dist/docs-raw/guides/joint-design.md +18 -79
- package/dist/docs-raw/guides/positioning.md +21 -143
- package/dist/docs-raw/guides/scene-presentation.md +89 -0
- package/dist/docs-raw/skills/forgecad-3d-reconstruction.md +25 -111
- package/dist/docs-raw/skills/forgecad-blockout-model.md +20 -117
- package/dist/docs-raw/skills/forgecad-component-model.md +23 -107
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +47 -155
- package/dist/docs-raw/skills/forgecad-image-replicator.md +26 -143
- package/dist/docs-raw/skills/forgecad-lld.md +19 -113
- package/dist/docs-raw/skills/forgecad-make-a-model.md +113 -532
- package/dist/docs-raw/skills/forgecad-model-grader.md +38 -108
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +24 -211
- package/dist/docs-raw/skills/forgecad-project.md +13 -129
- package/dist/docs-raw/skills/forgecad-reconstruction-benchmark.md +42 -134
- package/dist/docs-raw/skills/forgecad-render-inspect.md +27 -174
- package/dist/docs-raw/skills/forgecad-visual-spec.md +32 -112
- package/dist/docs-raw/skills/forgecad.md +19 -18
- package/dist/docs-raw/skills/index.md +2 -0
- package/dist/docs-raw/welcome.md +4 -2
- package/dist/index.html +1 -1
- package/dist/llms.txt +1 -2
- package/dist/sitemap.xml +13 -13
- package/dist-cli/{check-compiler-SDX5QIXI.js → check-compiler-JTVBITCR.js} +1 -1
- package/dist-cli/{check-query-propagation-EAYEFT77.js → check-query-propagation-3FFLSMVN.js} +1 -1
- package/dist-cli/{chunk-N4O47JLF.js → chunk-OAN5T4XD.js} +5722 -4287
- package/dist-cli/forgecad.js +2195 -656
- package/dist-skill/CONTEXT.md +1778 -7912
- package/dist-skill/SKILL.md +15 -15
- package/dist-skill/docs/API/core/concepts.md +27 -157
- package/dist-skill/docs/CLI.md +65 -239
- package/dist-skill/docs/generated/assembly.md +160 -493
- package/dist-skill/docs/generated/core.md +277 -1251
- package/dist-skill/docs/generated/curves.md +387 -1609
- package/dist-skill/docs/generated/lib.md +238 -112
- package/dist-skill/docs/generated/output.md +51 -76
- package/dist-skill/docs/generated/runtime-names.md +16 -22
- package/dist-skill/docs/generated/sdf.md +68 -284
- package/dist-skill/docs/generated/sheet-metal.md +68 -335
- package/dist-skill/docs/generated/sketch.md +240 -1160
- package/dist-skill/docs/generated/viewport.md +75 -223
- package/dist-skill/docs/generated/wood.md +21 -49
- package/dist-skill/docs/guides/coordinate-system.md +4 -42
- package/dist-skill/docs/guides/inspection-bundles.md +44 -442
- package/dist-skill/docs/guides/joint-design.md +18 -79
- package/dist-skill/docs/guides/positioning.md +21 -143
- package/dist-skill/docs/guides/scene-presentation.md +89 -0
- package/dist-skill/docs/guides/surface-members.md +26 -0
- package/dist-skill/library/forgecad-3d-reconstruction/SKILL.md +23 -111
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +18 -117
- package/dist-skill/library/forgecad-component-model/SKILL.md +21 -107
- package/dist-skill/library/forgecad-high-level-spec/SKILL.md +45 -155
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +24 -143
- package/dist-skill/library/forgecad-lld/SKILL.md +17 -113
- package/dist-skill/library/forgecad-make-a-model/SKILL.md +111 -532
- package/dist-skill/library/forgecad-model-grader/SKILL.md +36 -108
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +35 -224
- package/dist-skill/library/forgecad-prepare-prompt/references/default-profiles.md +43 -271
- package/dist-skill/library/forgecad-prepare-prompt/references/master-prompt.md +30 -99
- package/dist-skill/library/forgecad-project/SKILL.md +13 -131
- package/dist-skill/library/forgecad-reconstruction-benchmark/SKILL.md +29 -123
- package/dist-skill/library/forgecad-render-inspect/SKILL.md +25 -174
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +30 -111
- package/dist-skill/website/skills/forgecad-3d-reconstruction.md +58 -0
- package/dist-skill/website/skills/forgecad-blockout-model.md +49 -0
- package/dist-skill/website/skills/forgecad-component-model.md +53 -0
- package/dist-skill/website/skills/forgecad-high-level-spec.md +101 -0
- package/dist-skill/website/skills/forgecad-image-replicator.md +63 -0
- package/dist-skill/website/skills/forgecad-lld.md +41 -0
- package/dist-skill/website/skills/forgecad-make-a-model.md +186 -0
- package/dist-skill/website/skills/forgecad-model-grader.md +82 -0
- package/dist-skill/website/skills/forgecad-prepare-prompt.md +63 -0
- package/dist-skill/website/skills/forgecad-project.md +26 -0
- package/dist-skill/website/skills/forgecad-reconstruction-benchmark.md +60 -0
- package/dist-skill/website/skills/forgecad-render-inspect.md +80 -0
- package/dist-skill/website/skills/forgecad-visual-spec.md +71 -0
- package/dist-skill/website/skills/forgecad.md +122 -0
- package/dist-skill/website/skills/index.md +26 -0
- package/examples/api/comparison-imported-sphere-candidate.forge.js +1 -1
- package/examples/api/conformal-product-ribbon.forge.js +1 -1
- package/examples/api/exact-sheet-shell-assembly.forge.js +1 -1
- package/examples/api/extrude-options.forge.js +4 -2
- package/examples/api/field-loft-drive-tip.forge.js +40 -0
- package/examples/api/guided-loft-olive-oil-bottle.forge.js +1 -1
- package/examples/api/helix-basics.forge.js +2 -2
- package/examples/api/highlight-debug.forge.js +10 -10
- package/examples/api/mesh-import-slats.forge.js +1 -1
- package/examples/api/real-product-curves.forge.js +1 -1
- package/examples/api/route3d-elbow.forge.js +3 -0
- package/examples/api/sculpt-box-circle-booleans.forge.js +1 -1
- package/examples/api/sdf-shapes.forge.js +2 -5
- package/examples/api/sketch-rounding-strategies.forge.js +6 -6
- package/examples/api/surface-member-bottle-cage.forge.js +3 -3
- package/examples/api/surface-member-conformal-product-ribbon.forge.js +3 -3
- package/examples/api/surface-member-razor-inlay.forge.js +1 -1
- package/examples/api/variable-sweep-test.forge.js +4 -2
- package/examples/mechanical/airplane-propeller.forge.js +74 -39
- package/examples/nurbs-surface.forge.js +1 -1
- package/examples/products/iphone.forge.js +1 -1
- package/package.json +4 -1
- package/dist/assets/EditorApp-Beb-IZ0y.js +0 -14014
- package/dist/docs-raw/guides/geometry-conventions.md +0 -52
- package/dist/docs-raw/guides/modeling-recipes.md +0 -78
- package/dist-skill/docs/guides/geometry-conventions.md +0 -52
- package/dist-skill/docs/guides/modeling-recipes.md +0 -78
- package/dist-skill/library/forgecad-visual-spec/references/prompt-template.md +0 -79
- package/examples/api/bolted-service-cover.forge.js +0 -17
- package/examples/api/cable-gland-anchor.forge.js +0 -14
- package/examples/api/captured-cartridge-guide.forge.js +0 -14
- package/examples/api/captured-linear-slide.forge.js +0 -13
- package/examples/api/clevis-pin-joint.forge.js +0 -13
- package/examples/api/datum-enclosure.forge.js +0 -16
- package/examples/api/hose-barb-port.forge.js +0 -14
- package/examples/api/knuckled-hinge-assembly.forge.js +0 -15
- package/examples/api/living-hinge-cover.forge.js +0 -14
- package/examples/api/pcb-terminal-block.forge.js +0 -22
- package/examples/api/pinned-lever-pivot-stack.forge.js +0 -14
- package/examples/api/retained-shaft-knob-stack.forge.js +0 -15
- package/examples/api/routed-tube-clip.forge.js +0 -15
- package/examples/api/seated-bearing-stack.forge.js +0 -30
- package/examples/api/snap-latch-cover.forge.js +0 -14
- package/examples/api/thumb-screw-clamp.forge.js +0 -15
|
@@ -6,137 +6,65 @@ forgecad-public: true
|
|
|
6
6
|
|
|
7
7
|
# ForgeCAD Model Grader
|
|
8
8
|
|
|
9
|
-
Grade the delivered
|
|
10
|
-
|
|
11
|
-
This skill is an evaluator workflow. Do not edit the model unless the user explicitly asks for repairs; if repair is requested, first record the baseline grade, then make changes, then re-grade.
|
|
9
|
+
Grade the delivered model against the requirement, not against what could be fixed later. Never edit the model unless the user explicitly requests repairs — then record the baseline grade first, change, and re-grade.
|
|
12
10
|
|
|
13
11
|
## Workflow
|
|
14
12
|
|
|
15
|
-
1. Extract the requirement.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
3. Run the model.
|
|
22
|
-
In the ForgeCAD repo, use the local build:
|
|
23
|
-
|
|
24
|
-
```bash
|
|
25
|
-
node dist-cli/forgecad.js run path/to/model.forge.js
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
Outside the repo, use the installed CLI:
|
|
29
|
-
|
|
30
|
-
```bash
|
|
31
|
-
forgecad run path/to/model.forge.js
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
If the script fails to execute, stop normal grading and assign a capped score using the Evidence Caps section.
|
|
35
|
-
|
|
36
|
-
4. Render multiple views.
|
|
37
|
-
Use a scratch output directory such as `/tmp/<model-name>-grade`. Render at least `iso`, `front`, `right`, and `top`. Add `back`, `bottom`, close-up, section, or custom cameras when the model is asymmetric, hollow, mechanical, or likely to hide mistakes.
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
node dist-cli/forgecad.js render 3d path/to/model.forge.js /tmp/model-grade/view.png --camera iso --camera front --camera right --camera top --edges bold
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
If a multi-camera render does not emit separate useful PNGs, rerun one camera at a time with explicit output paths.
|
|
44
|
-
|
|
45
|
-
5. Visually inspect the PNGs.
|
|
46
|
-
Open the rendered images. Do not score from command output alone. Check silhouette, proportions, required visible features, part boundaries, material/color cues, seams, fasteners, interfaces, and whether the model reads as the requested artifact from more than one angle.
|
|
47
|
-
|
|
48
|
-
6. Run targeted inspections when the risk calls for them.
|
|
49
|
-
Use `forgecad-render-inspect` for inspection bundles. Minimum guidance:
|
|
50
|
-
|
|
51
|
-
- `inspect visual image` and `inspect visual objects`: visual sanity, object naming, and part identity.
|
|
52
|
-
- `inspect fit interference`: multi-part fit, interference, and assembled mechanisms.
|
|
53
|
-
- `inspect sections at|stack|sample` and `inspect manufacture thickness`: shells, enclosures, ribs, bosses, printability, and wall claims.
|
|
54
|
-
- `inspect physical components`: accidental fusion or disconnected solids.
|
|
55
|
-
- `inspect physical floating`: loose bodies without physical support.
|
|
56
|
-
- `inspect visual depth`, `inspect visual normals`, or `inspect surface zebra`: surface, occlusion, faceting, continuity, or strange protrusions.
|
|
57
|
-
|
|
58
|
-
Typical command:
|
|
59
|
-
|
|
60
|
-
```bash
|
|
61
|
-
node dist-cli/forgecad.js inspect fit interference path/to/model.forge.js /tmp/model-grade/collisions --camera iso --force --size 700
|
|
62
|
-
python agent-skill-library/forgecad-render-inspect/summarize_manifest.py /tmp/model-grade/collisions
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
Read the manifest and inspect the relevant evidence PNGs. Treat unexpected collisions, thin regions, missing sections, wrong component counts, floating bodies, and confusing object colors as evidence, not as warnings to wave away.
|
|
66
|
-
|
|
67
|
-
7. Score with evidence.
|
|
68
|
-
Fill the rubric, apply caps, then give a final 0-10 score. Use whole numbers or `.5` increments. Unknowns count against the score.
|
|
13
|
+
1. **Extract the requirement** into a checklist, must-haves separate from nice-to-haves. If the brief is vague, grade the most reasonable literal interpretation and mark unverifiable items `Unknown`.
|
|
14
|
+
2. **Run the model**: `forgecad run <model>.forge.js` (in the ForgeCAD repo use the local build, `node dist-cli/forgecad.js run ...`). If it fails to execute, stop and apply the caps.
|
|
15
|
+
3. **Render** at least `iso`, `front`, `right`, `top` to a scratch dir; add views (back, bottom, close-up, section) when the model is asymmetric, hollow, mechanical, or likely to hide mistakes.
|
|
16
|
+
4. **Open and look at every PNG** — never score from command output alone. Check silhouette, proportions, required features, part boundaries, interfaces, and whether the model reads as the requested artifact from more than one angle.
|
|
17
|
+
5. **Inspect** whenever hidden internals, fit, wall thickness, or assembly behavior are central to the brief — grading without inspecting them caps the score. Delegate evidence choice, commands, and manifest reading to the `forgecad-render-inspect` skill. Findings (unexpected collisions, thin regions, floating bodies, wrong component counts) are evidence, not warnings to wave away.
|
|
18
|
+
6. **Score**: fill the rubric, apply caps, give a final 0-10 in whole or `.5` increments. Unknowns count against the score.
|
|
69
19
|
|
|
70
20
|
## Rubric
|
|
71
21
|
|
|
72
|
-
Start from these dimensions, then apply the caps below:
|
|
73
|
-
|
|
74
22
|
| Dimension | Points | What To Look For |
|
|
75
23
|
| --- | ---: | --- |
|
|
76
|
-
| Requirement fit | 4 |
|
|
77
|
-
| Geometric completeness | 2 | Correct silhouette, proportions, visible details, part boundaries, internal structure when required,
|
|
78
|
-
| Mechanical/manufacturing plausibility | 2 | Believable materials/process, real interfaces, clear load paths, fasteners/seats/clearances where needed,
|
|
79
|
-
| Validation health | 1 | Runs cleanly, renders from multiple views,
|
|
80
|
-
| Code/model quality | 1 | Parametric clarity, readable organization, meaningful names, no debug junk,
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
| Score | Meaning |
|
|
85
|
-
| ---: | --- |
|
|
86
|
-
| 10 | Exceptional match; requirements are met with strong visual and inspection evidence, no meaningful defects found. |
|
|
87
|
-
| 9 | Excellent; one or two small gaps, but the artifact is clearly fit for the brief. |
|
|
88
|
-
| 7-8 | Good; recognizable and mostly complete, with fixable omissions or moderate mechanical/detail issues. |
|
|
89
|
-
| 5-6 | Partial; main idea is present, but major requirements, proportions, internals, or plausibility are missing. |
|
|
90
|
-
| 3-4 | Weak; model runs or renders but only loosely matches the request. |
|
|
91
|
-
| 1-2 | Barely useful; broken, mostly unrelated, or only a trivial placeholder. |
|
|
92
|
-
| 0 | No evaluable model or completely unrelated artifact. |
|
|
24
|
+
| Requirement fit | 4 | Satisfies the stated must-haves, captures the intended object/function, no drift into a generic substitute. |
|
|
25
|
+
| Geometric completeness | 2 | Correct silhouette, proportions, visible details, part boundaries, internal structure when required, no missing major components. |
|
|
26
|
+
| Mechanical/manufacturing plausibility | 2 | Believable materials/process, real interfaces, clear load paths, fasteners/seats/clearances where needed, no impossible assembly. |
|
|
27
|
+
| Validation health | 1 | Runs cleanly, renders from multiple views, targeted inspections reveal no major unaddressed issues. |
|
|
28
|
+
| Code/model quality | 1 | Parametric clarity, readable organization, meaningful names, no debug junk, appropriate ForgeCAD APIs. |
|
|
29
|
+
|
|
30
|
+
Anchors: 9-10 = evidence-backed match for the brief; 7-8 = recognizable and mostly complete, fixable gaps; 5-6 = main idea only; below 5 = broken or loosely related.
|
|
93
31
|
|
|
94
32
|
## Evidence Caps
|
|
95
33
|
|
|
96
|
-
|
|
34
|
+
Maximum scores, applied after the rubric:
|
|
97
35
|
|
|
98
|
-
-
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
104
|
-
-
|
|
105
|
-
-
|
|
106
|
-
-
|
|
36
|
+
- Model does not execute: max `2`.
|
|
37
|
+
- Executes but cannot be rendered: max `4`.
|
|
38
|
+
- No rendered images visually inspected: max `5`.
|
|
39
|
+
- Only one flattering view inspected: max `6`.
|
|
40
|
+
- A must-have requirement is absent: max `6`.
|
|
41
|
+
- Visually recognizable but physically impossible for the requested use: max `6`.
|
|
42
|
+
- Internals, fit, walls, or assembly central to the brief but uninspected: max `7`.
|
|
43
|
+
- Inspection finds unexpected collisions, floating bodies, critical thin walls, or wrong connectivity: max `6`; max `5` when the defect invalidates the main function.
|
|
44
|
+
- Delivered as a finished product/prototype but presented with default flat lighting (no `scene()` rig), a generically colorful or material-false palette, or teaching-diagram styling: max `8`. Does not apply when the brief asks for a blockout or bare technical study.
|
|
45
|
+
- Any score relying on an assumption the evidence cannot verify: mark it `Unknown`, never score above `8`.
|
|
107
46
|
|
|
108
47
|
## Report Format
|
|
109
48
|
|
|
110
|
-
Keep the report compact and evidence-first:
|
|
111
|
-
|
|
112
49
|
```markdown
|
|
113
|
-
Score:
|
|
50
|
+
Score: N / 10
|
|
114
51
|
|
|
115
52
|
Requirement checklist:
|
|
116
53
|
| Item | Result | Evidence |
|
|
117
54
|
| --- | --- | --- |
|
|
118
55
|
| ... | Pass/Partial/Fail/Unknown | render/inspection/file evidence |
|
|
119
56
|
|
|
120
|
-
Evidence reviewed:
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
Why this score:
|
|
126
|
-
Short paragraph explaining the decisive strengths and defects.
|
|
127
|
-
|
|
128
|
-
Caps applied:
|
|
129
|
-
List any cap that affected the final score, or `None`.
|
|
130
|
-
|
|
131
|
-
Next fixes:
|
|
132
|
-
The 2-5 highest-leverage improvements, only if useful.
|
|
57
|
+
Evidence reviewed: run outcome; views inspected; inspection highlights.
|
|
58
|
+
Why this score: decisive strengths and defects.
|
|
59
|
+
Caps applied: list, or `None`.
|
|
60
|
+
Next fixes: the 2-5 highest-leverage improvements.
|
|
133
61
|
```
|
|
134
62
|
|
|
135
63
|
## Grading Rules
|
|
136
64
|
|
|
137
|
-
-
|
|
138
|
-
- Grade the default returned model unless the user names a
|
|
139
|
-
-
|
|
140
|
-
-
|
|
141
|
-
-
|
|
142
|
-
-
|
|
65
|
+
- A beautiful render with missing functional geometry is not a high score.
|
|
66
|
+
- Grade the default returned model unless the user names a parameter set or variant.
|
|
67
|
+
- No points for comments, labels, or intentions absent from the geometry.
|
|
68
|
+
- Decorative screws, floating labels, and teaching-diagram callouts are not real mechanical interfaces.
|
|
69
|
+
- Cite which render or inspection finding drove the grade.
|
|
70
|
+
- When comparing models, use identical checklist, cameras, inspection evidence, and caps for all.
|
|
@@ -6,234 +6,45 @@ forgecad-public: true
|
|
|
6
6
|
|
|
7
7
|
# Prepare ForgeCAD Prompt
|
|
8
8
|
|
|
9
|
-
Use
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
## Core Rule
|
|
19
|
-
|
|
20
|
-
Do not start by asking raw engineering inputs like payload mass, torque, or tolerance unless the architecture truly depends on them and you cannot bracket them safely.
|
|
21
|
-
|
|
22
|
-
Manufacturing is a design decision, not a default.
|
|
23
|
-
Do not assume FDM, 3D printing, "printable", or plastic parts unless the user explicitly asks for that, the artifact family honestly points there, or the chosen process stack includes printed parts.
|
|
24
|
-
Choose the manufacturing/process stack from the artifact family, load path, scale, safety expectations, material properties, production intent, and operating story.
|
|
25
|
-
For example: scooters, bikes, skateboards, and rideable vehicles usually point toward metal/composite frames, wood/composite decks, urethane/rubber wheels, bearings, brakes, and standard hardware; furniture often points toward wood, sheet goods, tube, metal brackets, or conventional joinery; enclosures may point toward injection molding, sheet metal, CNC, or printing depending on quantity and ruggedness; fixtures may be machined, laser-cut, welded, printed, or hybrid.
|
|
26
|
-
If the user asks for "printable", "3D printed", "laser cut", "CNC", or another process, honor that process while still warning when it is unsafe or dishonest for the duty.
|
|
27
|
-
|
|
28
|
-
The default output posture is **manufacture-realistic prototype** unless the user asks for a different posture.
|
|
29
|
-
This means a serious prototype build candidate with real manufacturing cues, purchased-part boundaries, assembly logic, and validation loops. It is stronger than a visual concept or hobby sketch, but it does not claim final production tooling, certification, rider safety, medical compliance, or release-ready DFM.
|
|
30
|
-
Use `production-realistic` only when the user wants production intent, `printable` only when printing is actually the selected process, and `visual-CAD` only for visual/form studies.
|
|
31
|
-
|
|
32
|
-
Do not let the modeling prompt sound like a casual hobby sketch when the requested artifact belongs to a serious product domain.
|
|
33
|
-
Give the model a specific operating story: a named company or lab, named program, named prototype/revision, review moment, test setting, and concrete reason the part matters.
|
|
34
|
-
If the user did not provide this story, invent plausible non-famous names and details.
|
|
35
|
-
This should raise the specificity bar without pretending the user works for a real named company or copying proprietary designs.
|
|
36
|
-
Prefer bold, high-agency stories over modest lab exercises: product pilots, go/no-go reviews, investor demos, field trials, first-customer deployments, or ambitious internal programs with real schedule pressure.
|
|
37
|
-
|
|
38
|
-
Do not use one numeric default profile across unrelated artifact families.
|
|
39
|
-
The correct order is:
|
|
40
|
-
|
|
41
|
-
1. classify what kind of thing is being built
|
|
42
|
-
2. choose the manufacturing/process posture that fits the artifact
|
|
43
|
-
3. choose qualitative levers like duty / scale / cost posture
|
|
44
|
-
4. translate those into family-scoped starter assumptions
|
|
45
|
-
5. make those assumptions explicit in the final prompt
|
|
46
|
-
|
|
47
|
-
Instead:
|
|
48
|
-
|
|
49
|
-
1. Translate the request into plain-language build choices.
|
|
50
|
-
2. Classify the artifact family.
|
|
51
|
-
3. Choose a defensible manufacturing/process stack unless the user already specified one.
|
|
52
|
-
4. Offer a small set of common-sense option bundles.
|
|
53
|
-
5. Choose a defensible family-scoped starter assumption set if the user stays vague.
|
|
54
|
-
6. Produce one single ForgeCAD master prompt with explicit assumptions.
|
|
55
|
-
|
|
56
|
-
When a product naturally has multiple versions of the same object, treat those versions as selectable parameters, not simultaneous geometry.
|
|
57
|
-
The master prompt should ask for one selected variant to be rendered at a time through choice params such as `Variant`, `Preset`, `Style`, or `Configuration`.
|
|
58
|
-
Do not ask the modeling pass to show a lineup of all variants by default; if a comparison view is useful, make it an explicit non-default debug/presentation mode so final collision inspection still proves one real assembly.
|
|
59
|
-
|
|
60
|
-
## What Good Looks Like
|
|
61
|
-
|
|
62
|
-
By the end of this skill, there should be:
|
|
63
|
-
|
|
64
|
-
- a normalized statement of what is being built
|
|
65
|
-
- an artifact family classification
|
|
66
|
-
- an assumption bundle with units
|
|
67
|
-
- a clear build profile and manufacturing/process stack
|
|
68
|
-
- a stated output posture, defaulting to manufacture-realistic prototype unless the user chose otherwise
|
|
69
|
-
- a specific operating story
|
|
70
|
-
- a motion / load / size target
|
|
71
|
-
- a BOM boundary
|
|
72
|
-
- a validation boundary
|
|
73
|
-
- a variant-selection policy when the artifact has multiple sizes/styles/revisions
|
|
74
|
-
- a file-organization policy, including `main.forge.js` as the entry point for multi-file projects
|
|
75
|
-
- an artifact-first policy that forbids explanatory in-model text/callouts unless the user explicitly wants a teaching or presentation view
|
|
76
|
-
- one ready-to-copy master prompt for the modeling pass
|
|
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.
|
|
77
18
|
|
|
78
19
|
## Workflow
|
|
79
20
|
|
|
80
|
-
1. Normalize the ask.
|
|
81
|
-
If the user says something physically ambiguous, restate it in proper mechanism language.
|
|
82
|
-
Example: "6 DOF gripper" often means one of:
|
|
83
|
-
- a standalone gripper with finger joints
|
|
84
|
-
- a wrist plus gripper
|
|
85
|
-
- a full arm plus gripper
|
|
86
|
-
|
|
87
|
-
2. Build the specific operating story.
|
|
88
|
-
Convert the artifact into a concrete professional assignment.
|
|
89
|
-
Do not use vague prestige phrases like "frontier robotics startup" by themselves.
|
|
90
|
-
Do not make the story feel small unless the artifact genuinely calls for it.
|
|
91
|
-
The story should feel like a real ticket from a real team, even when the company and program names are invented.
|
|
92
|
-
Include:
|
|
93
|
-
- a fictional but specific company / lab / team name when no real organization was provided
|
|
94
|
-
- an ambitious company posture, such as a venture-backed robotics company, advanced hardware group, field deployment team, or first-customer pilot team
|
|
95
|
-
- a named project, prototype revision, or milestone
|
|
96
|
-
- the domain context, such as humanoid robotics, lab automation, field tooling, consumer hardware, workshop equipment, or medical-adjacent assistive prototyping
|
|
97
|
-
- the production reason, such as internal prototype review, next-iteration part evaluation, assembly rehearsal, manufacturability review, or validation rig
|
|
98
|
-
- the test setting, such as a named bench rig, demo cell, assembly fixture, or field trial setup
|
|
99
|
-
- the external or mission pressure, such as a pilot gate, demo date, reliability target, investor milestone, or customer deployment constraint
|
|
100
|
-
- what a generic solution would miss in this domain
|
|
101
|
-
- the level of seriousness expected from the deliverable
|
|
102
|
-
|
|
103
|
-
Good framing:
|
|
104
|
-
- "Use this operating story: Helix Handworks, a venture-backed humanoid robotics company preparing a warehouse-pilot manipulation stack, is reviewing the F2 index-finger module for its DEX-07 go/no-go gate. The module must bolt into Palm Mule V3, route a Bowden tendon cleanly through the MCP base, survive a 1,000-cycle curl test on Rig-3, and expose every wear surface before the customer demo cell build starts."
|
|
105
|
-
- "Use this operating story: 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."
|
|
106
|
-
- "Use this operating story: Northbay Instruments is preparing the EVB-12 field calibration kit for a launch-readiness review. The case has to protect two stacked boards, expose USB-C and probe ports, survive repeated lid removal, and be credible for a prototype manufacturing review."
|
|
107
|
-
|
|
108
|
-
Bad framing:
|
|
109
|
-
- "The user works at Tesla."
|
|
110
|
-
- "Treat this as a frontier humanoid robotics startup."
|
|
111
|
-
- "Copy the Optimus finger."
|
|
112
|
-
- "Make something inspired by a named proprietary product without changing the engineering problem."
|
|
113
|
-
|
|
114
|
-
Named companies, famous products, and competitor designs may be used only as public comparison anchors if the user provided them or they are needed to clarify the class of artifact.
|
|
115
|
-
Do not assert affiliation, privileged context, or proprietary requirements unless the user explicitly supplied them.
|
|
116
|
-
Invented organizations are allowed, but do not present them as the user's employer.
|
|
117
|
-
|
|
118
|
-
3. Classify the artifact family.
|
|
119
|
-
Read `references/default-profiles.md`.
|
|
120
|
-
Common families:
|
|
121
|
-
- grippers and small mechanisms
|
|
122
|
-
- fixtures, jigs, and holders
|
|
123
|
-
- enclosures and electronics housings
|
|
124
|
-
- furniture and load-bearing structures
|
|
125
|
-
- chassis and mobile robot structures
|
|
126
|
-
- human vehicles and rideable product forms
|
|
127
|
-
- custom / other
|
|
128
|
-
If no family fits cleanly, do not force one. Create a custom brief shape.
|
|
129
|
-
|
|
130
|
-
4. Choose manufacturing/process posture.
|
|
131
|
-
Treat process selection as part of the brief.
|
|
132
|
-
Default to `manufacture-realistic prototype`.
|
|
133
|
-
Use `production-realistic`, `prototype-realistic`, `printable`, `visual-CAD`, or a more specific process such as `sheet-metal`, `CNC-machined`, `laser-cut`, `welded tube`, `injection-molded`, `cast`, or `hybrid purchased-hardware` only when the brief justifies that more specific posture.
|
|
134
|
-
Choose the posture that is honest for the artifact rather than the easiest CAD surface to make.
|
|
135
|
-
|
|
136
|
-
5. Pick qualitative levers, not raw numbers.
|
|
137
|
-
Start from:
|
|
138
|
-
- duty level: `light-duty`, `general-duty`, `sturdy-duty`
|
|
139
|
-
- scale level: `compact`, `medium`, `large`
|
|
140
|
-
- cost posture: `cheapest`, `balanced`, `performance-first`
|
|
141
|
-
Then translate them into numbers only inside the chosen family.
|
|
142
|
-
|
|
143
|
-
6. Close only the critical gaps.
|
|
144
|
-
Ask at most 3 grouped questions.
|
|
145
|
-
Use choice menus, not blank forms.
|
|
146
|
-
Good grouped questions:
|
|
147
|
-
- for a gripper: object style, opening band, cost/performance posture
|
|
148
|
-
- for a table: use style, span band, load style
|
|
149
|
-
- for an enclosure: electronics size, ruggedness, cooling posture
|
|
150
|
-
- for an underspecified product: manufacture-realistic prototype, production-realistic, printable, or visual-CAD posture
|
|
151
|
-
|
|
152
|
-
7. Convert choices into an engineering brief.
|
|
153
|
-
The brief must include:
|
|
154
|
-
- target artifact
|
|
155
|
-
- artifact family
|
|
156
|
-
- specific operating story
|
|
157
|
-
- production reason
|
|
158
|
-
- test setting
|
|
159
|
-
- what generic output would miss
|
|
160
|
-
- output posture, defaulting to manufacture-realistic prototype unless changed by the user
|
|
161
|
-
- intended objects / loads
|
|
162
|
-
- rough size envelope
|
|
163
|
-
- motion style and degrees of freedom
|
|
164
|
-
- manufacturing/process stack and material defaults
|
|
165
|
-
- purchased-part boundary
|
|
166
|
-
- validation standard
|
|
167
|
-
- variant-selection policy when multiple versions of the same object are requested
|
|
168
|
-
- file-organization policy: if the implementation needs multiple files, the runnable ForgeCAD entry point must be `main.forge.js`; renderable parts/sub-assemblies belong in neighboring `.forge.js` files, while plain `.js` files are only for pure helpers/constants
|
|
169
|
-
- explicit uncertainty policy
|
|
170
|
-
|
|
171
|
-
8. Emit one master prompt.
|
|
172
|
-
Start from `references/master-prompt.md`.
|
|
173
|
-
Fill in the placeholders using the chosen profile and assumptions.
|
|
174
|
-
If the requested model is complex enough to split across files, include an explicit instruction that the project must use `main.forge.js` as the runnable entry point.
|
|
175
|
-
Return the finished prompt, not notes about the prompt.
|
|
176
|
-
|
|
177
|
-
9. If implementation continues immediately, hand off to `forgecad`.
|
|
178
|
-
For moving mechanisms, load:
|
|
179
|
-
- `~/.agents/skills/forgecad/SKILL.md`
|
|
180
|
-
- `docs/permanent/generated/assembly.md`
|
|
181
|
-
- `docs/permanent/generated/output.md`
|
|
182
|
-
- `docs/permanent/guides/joint-design.md`
|
|
183
|
-
- `docs/permanent/CLI.md`
|
|
184
|
-
|
|
185
|
-
## Question Style
|
|
186
|
-
|
|
187
|
-
Keep questions short and maker-friendly.
|
|
188
|
-
|
|
189
|
-
Good:
|
|
190
|
-
|
|
191
|
-
- "Which target feels closest: a light desk demo, a useful hobby tool, or a sturdier bench mechanism?"
|
|
192
|
-
- "Will it mostly handle soft/light things, mixed household parts, or rigid/tool-like objects?"
|
|
193
|
-
- "Should we bias for cheapest parts, balanced practicality, or stronger hardware?"
|
|
194
|
-
- "Should this be a manufacture-realistic prototype, production-realistic, printable, or just a visual CAD study?"
|
|
195
|
-
- "Is this more like a gripper, a fixture, an enclosure, a chassis, or furniture?"
|
|
196
|
-
- "Will the table mostly hold decor, laptop-and-books, or workshop abuse?"
|
|
197
|
-
|
|
198
|
-
Bad:
|
|
199
|
-
|
|
200
|
-
- "What payload mass?"
|
|
201
|
-
- "What torque budget?"
|
|
202
|
-
- "What joint backlash can you tolerate?"
|
|
203
|
-
|
|
204
|
-
## Default Behavior
|
|
205
|
-
|
|
206
|
-
If the user says "I don't know" or gives only a broad goal:
|
|
207
|
-
|
|
208
|
-
- infer the nearest artifact family from the request
|
|
209
|
-
- invent a specific operating story for the artifact
|
|
210
|
-
- infer the manufacturing/process stack from the artifact family and operating story
|
|
211
|
-
- default the output posture to `manufacture-realistic prototype`
|
|
212
|
-
- choose `general-duty`
|
|
213
|
-
- choose `medium`
|
|
214
|
-
- choose `balanced`
|
|
215
|
-
- use the family-specific starter assumptions from `references/default-profiles.md`
|
|
216
|
-
- do not copy assumptions from one family into another
|
|
217
|
-
- do not make the artifact printable unless the user asked for it or the chosen process stack includes printed parts
|
|
218
|
-
|
|
219
|
-
Examples:
|
|
220
|
-
|
|
221
|
-
- gripper request -> use gripper-specific object mass, opening, and actuator assumptions, plus a named robotics or automation prototype-review story
|
|
222
|
-
- table request -> use table-specific span, load, and leg/stiffness assumptions
|
|
223
|
-
- enclosure request -> use enclosure-specific board size, wall thickness, and thermal assumptions
|
|
224
|
-
|
|
225
|
-
Do not promise impossible honesty.
|
|
226
|
-
If the request pushes beyond the chosen profile, keep going but downgrade the final claim from "build-ready" to "best-effort build candidate".
|
|
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.
|
|
227
22
|
|
|
228
|
-
|
|
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.
|
|
229
33
|
|
|
230
|
-
|
|
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?"
|
|
231
35
|
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
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
|
|
238
49
|
|
|
239
|
-
Do not bury the prompt
|
|
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.
|