3.5 KiB
Backend and artifact contract
Router input
Capture these fields when known:
- Natural-language request and normalized part family.
- Units and dimensions.
- STEP is the fixed geometry artifact format.
- New model versus modification, and existing source/artifact paths.
- Part versus assembly, standard components, mating requirements, and motion relationships.
- Required parameter controls, replay, or semantic tags.
- Geometry and visual validation targets.
- Optional schema
2.0generalized experience library. Never pass a case DesignIR, teacher STEP, source dimensions, coordinates, or surface references to the selected backend. - For modification, accept only an explicitly supplied original model or editable generator plus the promoted library. Never inspect the parser input/output corpus or a private case JSON.
Route decision
Record:
selected_backend:build123dorsimplecadapi.- 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_refinementandvisual_repair. - Any explicit override and its reason.
operation: create or modify; for modification also record the explicit source path and whether the route uses native parameter editing, local feature rebuilding, or experience-guided semantic reconstruction.
Task manifest
Write cad-task.json beside the task artifacts with this minimum shape:
{
"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"],
"workflow_profiles": ["requirement_refinement", "visual_repair"]
},
"source": {
"path": "connecting_rod.py",
"format": "python",
"backend": "build123d"
},
"artifacts": [
{"path": "connecting_rod.step", "role": "primary"}
],
"parameters": {},
"experience": {
"library": "../../../designir-pipeline/output/library.json",
"context_kind": "generalized_cad_experience_query",
"methods_applied": []
},
"assumptions": [],
"validation": [],
"viewer_links": []
}
Paths are relative to the task directory unless an external input must remain absolute.
Do not store authoritative model parameters in cad-task.json. Every part must
have a sibling *.designir.json that owns its coordinate system, datums,
parameters, expressions, features, constraints, edit interface, and validation
contract. See designir-2.0.md.
For an uploaded STEP, keep teacher geometry in designir-pipeline/input/ and
all private evidence, DesignIR candidates, rebuilds, and acceptance reports in
designir-pipeline/runs/. The reconstruction task receives evidence but no
teacher STEP or imported B-Rep.
Backend adapter requirements
Any future executable adapter must:
- Accept an explicit task directory and explicit source/output paths.
- Never scan or generate an entire workspace implicitly.
- Preserve a human-editable source of truth.
- Report backend name and version.
- Return nonzero on generation failure.
- Emit machine-readable artifact paths and validation facts.
- Avoid importing code from sibling Skill directories; call installed tools or self-contained runtimes.
- Keep permanent CAD artifacts under the repository
models/root when working inside this repository. - Start CAD Viewer at the task directory, not the repository-wide examples directory.