2.1 KiB
2.1 KiB
DesignIntent Planning Recipe
Requirement analysis
- Treat the backend-injected part-family skill as the selected family before identifying structures. It provides planning guidance only.
- Decompose the requested part into structures with roles:
base,reference,additive,subtractive,dressup, orpattern. - Every structure must state a purpose, structural dependencies, parameter roles, selector roles, an executable CDSL atomic ID, and a named profile type when its atomic needs a sketch.
- Put every structure exactly once in
feature_order, after its dependencies. Itscdsl_feature_idis the immutable ID that the later CDSL feature must use. - Do not put coordinates, raw CDSL, Build123d, or low-level sketch data in a DesignIntent.
- Missing essential dimensions are blocking
open_questions. Unsupported geometry is acapability_gapsitem. A blocking item requiresstatus: needs_clarification; do not approximate silently.
Part family boundary
- Use only the backend-injected primary and support skills. Never submit
part_skill_ids; the backend records the canonical selection for audit. - Explicit user requirements override part skills. The executable CDSL schema/runtime overrides both part skills and library examples.
- The current primary family is inherited during revisions unless the user explicitly asks to replace the whole part. A family conflict needs a concise clarification before a ready plan can be submitted.
- CDSL library examples show only expression patterns. They never add or remove a requested DesignIntent structure.
CDSL generation
- Submit
propose_design_intentbefore any library or CDSL-generation call. - After its ready result includes
intent_id, inspect references and generate complete CDSL. Use every plannedcdsl_feature_idonce, infeature_order. - Do not add undeclared CDSL features, delete planned features, change planned atomics/profiles, or omit declared selector evidence.
- Keep
cdsl_onlyas the only build path. Never usecompiler_contextor a legacy fallback.