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.
- package/README.md +7 -6
- package/dist/assets/{AdminPage-DcCnj0qo.js → AdminPage-CK7ObBz3.js} +1 -1
- package/dist/assets/{BenchmarkPage-BVEpJSVk.js → BenchmarkPage-Ds7Z2doN.js} +1 -1
- package/dist/assets/{BlogPage-DHaGP50_.js → BlogPage-DlPbpt6A.js} +1 -1
- package/dist/assets/{DocsPage-CDoxHkz8.js → DocsPage-vZb3b3Y0.js} +9 -14
- package/dist/assets/{EditorApp-BpjZgzk0.css → EditorApp-C5f24ZN9.css} +8 -0
- package/dist/assets/{EditorApp-BJ0Dloyh.js → EditorApp-HLoKfe15.js} +152 -21
- package/dist/assets/{EmbedViewer-CRKZbY0y.js → EmbedViewer--KnqBKrJ.js} +3 -3
- package/dist/assets/{LandingPageProofDriven-BxHkYRE7.js → LandingPageProofDriven-C_LssmnA.js} +1 -1
- package/dist/assets/{LegalPage-B-u6FrVv.js → LegalPage-DGsyo4n1.js} +1 -1
- package/dist/assets/{PricingPage-CzpZ6-Ce.js → PricingPage-BOE27B-R.js} +1 -1
- package/dist/assets/{SettingsPage-CIZSSAd0.js → SettingsPage-f47cnk39.js} +1 -1
- package/dist/assets/{app-DaTMg3nH.js → app-D6ccu2Xx.js} +7826 -7559
- package/dist/assets/{scalar-sampling-budget-prBw_s8t.js → backendInit-DbTkQN9J.js} +87141 -78777
- package/dist/assets/cli/{render-DPf4AYJK.js → render-BsngirjC.js} +147 -186
- package/dist/assets/{constructionHistoryWorker-AwMMWSxg.js → constructionHistoryWorker-PCwXrTDB.js} +8419 -1447
- package/dist/assets/{evalWorker-CjZZWRWW.js → evalWorker-CS63PfZu.js} +25501 -17997
- package/dist/assets/{forgecad_geometry-Dgceylq9.js → forgecad_geometry-CZ_IfuvA.js} +120 -9
- package/dist/assets/forgecad_geometry_bg-C3rQHfwg.wasm +0 -0
- package/dist/assets/{inspectWorker-CZsCFtQT.js → inspectWorker-Y4cOzNyA.js} +37208 -34464
- package/dist/assets/{jointPose-DzQOViQH.js → jointPose-AMvCywzS.js} +1 -1
- package/dist/assets/{manifold-DgXo0T5P.js → manifold-CBry38ly.js} +2 -2
- package/dist/assets/{manifold-K1SkarlQ.js → manifold-Crd_F2qx.js} +1 -1
- package/dist/assets/{manifold-BYlzU521.js → manifold-k2kRcc85.js} +1 -1
- package/dist/assets/{reportWorker-B9nWwSrB.js → reportWorker-CWvn0CEv.js} +46635 -44646
- package/dist/cli/render.html +1 -1
- package/dist/docs/index.html +2 -2
- package/dist/docs-raw/AI/usage.md +2 -4
- package/dist/docs-raw/CLI.md +34 -20
- package/dist/docs-raw/README.md +1 -1
- package/dist/docs-raw/component-model.md +1 -1
- package/dist/docs-raw/generated/assembly.md +2 -2
- package/dist/docs-raw/generated/concepts.md +6 -4
- package/dist/docs-raw/generated/core.md +71 -2
- package/dist/docs-raw/generated/curves.md +8 -1
- package/dist/docs-raw/generated/lib.md +1 -1
- package/dist/docs-raw/generated/output.md +0 -64
- package/dist/docs-raw/generated/runtime-names.md +6 -6
- package/dist/docs-raw/generated/sdf.md +2 -2
- package/dist/docs-raw/generated/viewport.md +3 -12
- package/dist/docs-raw/guides/inspection-bundles.md +1 -1
- package/dist/docs-raw/guides/simready-quickstart.md +3 -1
- package/dist/docs-raw/simulation-workflow.md +58 -0
- package/dist/docs-raw/skills/forgecad-blockout-model.md +1 -1
- package/dist/docs-raw/skills/forgecad-image-replicator.md +2 -2
- package/dist/docs-raw/skills/forgecad-mujoco-verify.md +78 -0
- package/dist/docs-raw/skills/forgecad-spec-by-walking-through-it.md +145 -0
- package/dist/docs-raw/skills/forgecad-visual-spec.md +1 -1
- package/dist/docs-raw/skills/forgecad.md +24 -24
- package/dist/docs-raw/skills/index.md +2 -3
- package/dist/index.html +1 -1
- package/dist/sitemap.xml +15 -15
- package/dist-cli/{check-compiler-II7NLPAB.js → check-compiler-HPF2T2FS.js} +1 -1
- package/dist-cli/{check-query-propagation-7462TR3R.js → check-query-propagation-HYSLTXAB.js} +1 -1
- package/dist-cli/{chunk-UWTJCGXF.js → chunk-WLUKAW3H.js} +51134 -43247
- package/dist-cli/forgecad.js +5467 -1451
- package/dist-cli/{forgecad_geometry-QOQIIP53.js → forgecad_geometry-2IMYCUWW.js} +119 -8
- package/dist-cli/forgecad_geometry_bg.wasm +0 -0
- package/dist-skill/CONTEXT.md +98 -86
- package/dist-skill/SKILL.md +1 -1
- package/dist-skill/docs/API/core/concepts.md +1 -1
- package/dist-skill/docs/CLI.md +34 -20
- package/dist-skill/docs/generated/assembly.md +2 -2
- package/dist-skill/docs/generated/core.md +71 -2
- package/dist-skill/docs/generated/curves.md +8 -1
- package/dist-skill/docs/generated/lib.md +1 -1
- package/dist-skill/docs/generated/output.md +0 -64
- package/dist-skill/docs/generated/runtime-names.md +6 -6
- package/dist-skill/docs/generated/sdf.md +2 -2
- package/dist-skill/docs/generated/viewport.md +3 -12
- package/dist-skill/docs/guides/inspection-bundles.md +1 -1
- package/dist-skill/library/README.md +2 -3
- package/dist-skill/library/forgecad-blockout-model/SKILL.md +1 -1
- package/dist-skill/library/forgecad-image-replicator/SKILL.md +2 -2
- package/dist-skill/library/forgecad-mujoco-verify/SKILL.md +66 -0
- package/dist-skill/library/forgecad-mujoco-verify/scripts/mujoco_verify.py +385 -0
- package/dist-skill/library/forgecad-spec-by-walking-through-it/SKILL.md +132 -0
- package/dist-skill/library/forgecad-visual-spec/SKILL.md +1 -1
- package/dist-skill/website/skills/forgecad-blockout-model.md +1 -1
- package/dist-skill/website/skills/forgecad-image-replicator.md +2 -2
- package/dist-skill/website/skills/forgecad-mujoco-verify.md +78 -0
- package/dist-skill/website/skills/forgecad-spec-by-walking-through-it.md +145 -0
- package/dist-skill/website/skills/forgecad-visual-spec.md +1 -1
- package/dist-skill/website/skills/forgecad.md +24 -24
- package/dist-skill/website/skills/index.md +2 -3
- package/examples/analysis/clearance-fit.forge.js +31 -0
- package/examples/analysis/lever-arm-actuator.forge.js +43 -0
- package/examples/analysis/tipping-tripod.forge.js +35 -0
- package/examples/api/gyroid-voronoi-blend.forge.js +1 -1
- package/examples/api/organic-noise-sculpture.forge.js +1 -1
- package/examples/api/sdf-circular-array-knurling.forge.js +1 -1
- package/examples/api/{sdf-custom-raymarch.forge.js → sdf-custom-field-mesh-preview.forge.js} +3 -4
- package/examples/api/sdf-materialize-tree.forge.js +2 -2
- package/examples/api/sdf-plain-return.forge.js +3 -2
- package/examples/api/sdf-shapes.forge.js +2 -2
- package/examples/api/sdf-surface-basket-weave.forge.js +2 -2
- package/examples/generative/twisted-lattice-tower.forge.js +1 -1
- package/examples/generative/voronoi-lampshade.forge.js +1 -1
- package/examples/products/sportscar.forge.js +77 -0
- package/package.json +2 -4
- package/dist/assets/forgecad_geometry_bg-dD4RNQF1.wasm +0 -0
- package/dist/assets/manifold-CzYf_iub.js +0 -3023
- package/dist/docs-raw/skills/forgecad-high-level-spec.md +0 -101
- package/dist/docs-raw/skills/forgecad-lld.md +0 -41
- package/dist/docs-raw/skills/forgecad-prepare-prompt.md +0 -63
- package/dist-skill/library/forgecad-high-level-spec/SKILL.md +0 -94
- package/dist-skill/library/forgecad-lld/SKILL.md +0 -34
- package/dist-skill/library/forgecad-prepare-prompt/SKILL.md +0 -50
- package/dist-skill/website/skills/forgecad-high-level-spec.md +0 -101
- package/dist-skill/website/skills/forgecad-lld.md +0 -41
- package/dist-skill/website/skills/forgecad-prepare-prompt.md +0 -63
- /package/dist-skill/library/{forgecad-prepare-prompt → forgecad-spec-by-walking-through-it}/references/default-profiles.md +0 -0
- /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`
|
|
File without changes
|