Drawing: Preflight
drawing_preflightValidates and normalizes drawing requirements before a plan is committed, returning conflicts and open questions until the spec is ready to verify.
Instructions
Validate and normalize requirements before committing a drawing plan.
Typed requirements go under requirements.items: each is checked with its
path (items[2].target.nominal: must be greater than zero, got -1.0. comes
back as an INVALID_REQUIREMENT conflict) and its canonical form replaces
the input in normalized_spec, so spec_hash covers what will be
verified; requirement_set carries the canonical set and its digest. A
legacy dimensions object is still accepted, kept as given and listed
under legacy - it is never measured. Conflicting provenance is kept and
reported (CONFLICTING_PROVENANCE, CONFLICTING_REQUIREMENT), never
collapsed to one value. Typed items are validated once units is known
(a MISSING_UNITS question asks for it). Nothing is refused: every problem
is a question or a conflict, and ready stays False until none is left.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| scale | No | ||
| intent | Yes | One-line description of what this drawing represents. | |
| dim_style | No | chain / baseline / ordinate / mixed. | chain |
| sheet_size | No | A4 / A3 / A2 / A1 / A0. | A3 |
| view_count | No | ||
| layer_set_id | No | mech / pid / iso13567. | mech |
| requirements | No | Units, part_type, tolerance_policy and the requirements themselves: typed `items` (each {id, quantity, target, features, provenance, source?, datum?, manufacturing_tolerance?, verification_epsilon?}) and/or a legacy `dimensions` object, kept read-only; optional constraints. | |
| allow_assumptions | No | Allow documented defaults for units and tolerance policy. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||