SCAD Intake
Return exactly one JSON object. Do not write OpenSCAD and do not add Markdown.
Rules
- Preserve the user's language and explicit words.
- Distinguish materially different object types, uses, or modeling modes before generation.
- Use
AMBIGUOUS only when choosing the wrong interpretation would produce a substantially different CAD artifact. Return 2–4 mutually exclusive options and one question that resolves the highest-impact uncertainty.
- Use
MATCHED when one interpretation is sufficiently supported. Missing numeric dimensions alone are not ambiguity when they can remain editable parameters.
- Use
UNKNOWN when the request cannot support a useful interpretation.
- Never silently choose functional vs concept/display mode, internal cutaway vs exterior shell, printability, assembly motion, or component count.
- Evidence strings must be exact substrings of the user request. Do not cite world knowledge as user evidence.
- Keep
assumptions empty unless an assumption is explicitly harmless, reversible, and exposed as an editable parameter. Do not turn assumptions into user facts.
- Acceptance criteria must describe observable geometry or explicit user constraints; do not claim that OpenSCAD, mesh, or visual validation has run.
- IDs must match
[a-z0-9][a-z0-9_-]* and remain stable descriptions, not random values.
Output
{
"status": "MATCHED|AMBIGUOUS|UNKNOWN",
"confidence": 0.0,
"concepts": [
{ "id": "concept_id", "label": "concept label", "evidence": ["exact request substring"] }
],
"interpretations": [
{
"id": "stable_interpretation_id",
"label": "user-facing interpretation",
"domain": "mechanical|architectural|product|concept|other",
"objectKind": "specific CAD object kind",
"probability": 0.0,
"evidence": ["exact request substring"],
"conflicts": []
}
],
"clarificationQuestion": "one question or null",
"assumptions": [],
"brief": {
"summary": "literal request summary",
"intendedUse": "explicit use or unknown",
"requiredFeatures": [],
"explicitConstraints": [],
"acceptanceCriteria": []
}
}
For AMBIGUOUS, probabilities should sum to approximately 1 and clarificationQuestion must be non-empty. For MATCHED, put the most supported interpretation first and set clarificationQuestion to null. For UNKNOWN, return empty concepts/interpretations/assumptions and a brief containing only explicit facts.
1---2name: scad-intake3description: Interpret a natural-language CAD request before geometry generation, identify materially different meanings, and return a bounded evidence-grounded brief or one high-information clarification question. Use before OpenSCAD generation when deterministic intake cannot confidently classify the request.4---56# SCAD Intake78Return exactly one JSON object. Do not write OpenSCAD and do not add Markdown.910## Rules11121. Preserve the user's language and explicit words.132. Distinguish materially different object types, uses, or modeling modes before generation.143. Use `AMBIGUOUS` only when choosing the wrong interpretation would produce a substantially different CAD artifact. Return 2–4 mutually exclusive options and one question that resolves the highest-impact uncertainty.154. Use `MATCHED` when one interpretation is sufficiently supported. Missing numeric dimensions alone are not ambiguity when they can remain editable parameters.165. Use `UNKNOWN` when the request cannot support a useful interpretation.176. Never silently choose functional vs concept/display mode, internal cutaway vs exterior shell, printability, assembly motion, or component count.187. Evidence strings must be exact substrings of the user request. Do not cite world knowledge as user evidence.198. Keep `assumptions` empty unless an assumption is explicitly harmless, reversible, and exposed as an editable parameter. Do not turn assumptions into user facts.209. Acceptance criteria must describe observable geometry or explicit user constraints; do not claim that OpenSCAD, mesh, or visual validation has run.2110. IDs must match `[a-z0-9][a-z0-9_-]*` and remain stable descriptions, not random values.2223## Output2425```json26{27 "status": "MATCHED|AMBIGUOUS|UNKNOWN",28 "confidence": 0.0,29 "concepts": [30 { "id": "concept_id", "label": "concept label", "evidence": ["exact request substring"] }31 ],32 "interpretations": [33 {34 "id": "stable_interpretation_id",35 "label": "user-facing interpretation",36 "domain": "mechanical|architectural|product|concept|other",37 "objectKind": "specific CAD object kind",38 "probability": 0.0,39 "evidence": ["exact request substring"],40 "conflicts": []41 }42 ],43 "clarificationQuestion": "one question or null",44 "assumptions": [],45 "brief": {46 "summary": "literal request summary",47 "intendedUse": "explicit use or unknown",48 "requiredFeatures": [],49 "explicitConstraints": [],50 "acceptanceCriteria": []51 }52}53```5455For `AMBIGUOUS`, probabilities should sum to approximately 1 and `clarificationQuestion` must be non-empty. For `MATCHED`, put the most supported interpretation first and set `clarificationQuestion` to `null`. For `UNKNOWN`, return empty concepts/interpretations/assumptions and a brief containing only explicit facts.