Import CAD projects and cad-router v1
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
# Backend and artifact contract
|
||||
|
||||
## Router input
|
||||
|
||||
Capture these fields when known:
|
||||
|
||||
- Natural-language request and normalized part family.
|
||||
- Units and dimensions.
|
||||
- Manufacturing intent: machining, printing, laser cutting, simulation, or concept.
|
||||
- Required primary and secondary output formats.
|
||||
- New model versus modification, and existing source/artifact paths.
|
||||
- Part versus assembly, standard components, mating requirements, and motion relationships.
|
||||
- Required parameter controls, replay, semantic tags, or FreeCAD interchange.
|
||||
- Geometry and visual validation targets.
|
||||
|
||||
## Route decision
|
||||
|
||||
Record:
|
||||
|
||||
- `selected_backend`: `build123d`, `simplecadapi`, or `cadam`.
|
||||
- Origin project and optional executable adapter.
|
||||
- `runner_skill`: installed Skill responsible for generation.
|
||||
- Ranked backend scores and human-readable reasons.
|
||||
- Fallback order.
|
||||
- Workflow profiles such as `requirement_refinement` and `visual_repair`.
|
||||
- Focused downstream Skills.
|
||||
- Any explicit override and its reason.
|
||||
|
||||
## Task manifest
|
||||
|
||||
Write `cad-task.json` beside the task artifacts with this minimum shape:
|
||||
|
||||
```json
|
||||
{
|
||||
"schema_version": "1.0",
|
||||
"request": "Create a 120 mm connecting rod",
|
||||
"route": {
|
||||
"selected_backend": "build123d",
|
||||
"runner_skill": "cad",
|
||||
"project": "text-to-cad",
|
||||
"fallback_order": ["simplecadapi", "cadam"],
|
||||
"workflow_profiles": ["caddesigner_ecip"]
|
||||
},
|
||||
"source": {
|
||||
"path": "connecting_rod.py",
|
||||
"format": "python",
|
||||
"backend": "build123d"
|
||||
},
|
||||
"artifacts": [
|
||||
{"path": "connecting_rod.step", "role": "primary"},
|
||||
{"path": "connecting_rod.stl", "role": "secondary"}
|
||||
],
|
||||
"parameters": {},
|
||||
"assumptions": [],
|
||||
"validation": [],
|
||||
"viewer_links": []
|
||||
}
|
||||
```
|
||||
|
||||
Paths are relative to the task directory unless an external input must remain absolute.
|
||||
|
||||
## Backend adapter requirements
|
||||
|
||||
Any future executable adapter must:
|
||||
|
||||
1. Accept an explicit task directory and explicit source/output paths.
|
||||
2. Never scan or generate an entire workspace implicitly.
|
||||
3. Preserve a human-editable source of truth.
|
||||
4. Report backend name and version.
|
||||
5. Return nonzero on generation failure.
|
||||
6. Emit machine-readable artifact paths and validation facts.
|
||||
7. Avoid importing code from sibling Skill directories; call installed tools or self-contained runtimes.
|
||||
8. Keep permanent CAD artifacts under the repository `models/` root when working inside this repository.
|
||||
9. Start CAD Viewer at the task directory, not the repository-wide examples directory.
|
||||
Reference in New Issue
Block a user