Files
cdsl-cad/backend/agent/skills/cad-engine/planning-recipe.md
T
2026-08-24 14:52:08 +08:00

2.1 KiB

DesignIntent Planning Recipe

Requirement analysis

  1. Treat the backend-injected part-family skill as the selected family before identifying structures. It provides planning guidance only.
  2. Decompose the requested part into structures with roles: base, reference, additive, subtractive, dressup, or pattern.
  3. 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.
  4. Put every structure exactly once in feature_order, after its dependencies. Its cdsl_feature_id is the immutable ID that the later CDSL feature must use.
  5. Do not put coordinates, raw CDSL, Build123d, or low-level sketch data in a DesignIntent.
  6. Missing essential dimensions are blocking open_questions. Unsupported geometry is a capability_gaps item. A blocking item requires status: 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_intent before any library or CDSL-generation call.
  • After its ready result includes intent_id, inspect references and generate complete CDSL. Use every planned cdsl_feature_id once, in feature_order.
  • Do not add undeclared CDSL features, delete planned features, change planned atomics/profiles, or omit declared selector evidence.
  • Keep cdsl_only as the only build path. Never use compiler_context or a legacy fallback.