solidcraft-delivery-gate · git:20261030.73e6ec0 · 2026-10-30 · sha256 590123af2425751d

solidcraft-delivery-gate git:20261030.73e6ec0A

Immutable. This exact content never changes and is served at /api/v1/blob/590123af2425751d.

---
name: solidcraft-delivery-gate
description: Use before telling the user that a SolidCraft model, export or drawing is finished, ready to print or ready to send: checks that final files are fresh, non-empty and match the last measured design, re-checks holes, pockets and gears against the reference values, and separates verified from unverified claims.
---

# Delivery gate

An export that succeeded only proves a file was written. Check the final files, not the working design, before saying "done".

(Idea source: the final-verification, artifact-inspection and evidence-ledger gates of capwitf/mechanical-cad-skills, MIT. Rewritten for SolidCraft; no text copied.)

## Checks on the final files

| Check | How |
|---|---|
| Exists and is fresh | every promised file is in the model's folder and newer than the last design change; no leftovers from an earlier version (new versions get a new name, e.g. `_v2`) |
| Non-empty | size > 0; STL: triangle count > 0 and a bounding box; DXF: entity count by type and layer names; PDF: page count; STEP: header and entity count |
| Matches the design | bounding box and volume of the export (re-open the STEP in SolidCraft, or parse the STL/DXF) agree with the last `measure`, in mm |
| Final look | `screenshot` of the model (iso, plus top or underside when features hide there) and send it to the user |
| Source can regenerate | the saved `.solidcraft` or the parameter list is next to the exports |

Limits to remember:
- Reading a STEP as text proves a STEP container with entities, not valid solid geometry. Re-open it to confirm.
- STL triangle count and bounding box do not prove a watertight, printable mesh.
- DXF entity counts do not prove dimensions or layers are right; compare with the flat size you computed.
- A PDF or screenshot never proves the native design is healthy.

## Extra checks for holes, pockets and gears
When the final design has screw holes, tapped holes, counterbores, slots, pockets or spur gears, re-check them on the final geometry against the values in `solidcraft-hole-fastener-rules`:
- smallest hole edge distance, web between holes, wall, and remaining floor under pockets and counterbores (measured from the model, a section or a top-view screenshot);
- hole type per hole (clearance, counterbore or tapped) and, for tapped holes, whether the model carries the thread or only the tap drill;
- for a gear: single solid, bounding box equal to the tip diameter, bore diameter, face width.

A value measured on the final design is **Verified**. A value taken from the build parameters is **Inferred**. A value with no known process or load behind its limit is **Unverified**: say which starting value was used and that it still needs confirming.

## Optional manifest
For files that go to other people, write `<model>_manifest.json` next to them: file name, size, modified time, SHA-256, the source design, tool versions, checks actually run, and the three claim lists below. Only record checks that really ran.

## Report shape
Keep it short:
1. Final files (names, in the model's folder).
2. **Verified**: checked directly on the final files.
3. **Inferred**: likely from the build logic, not measured.
4. **Unverified**: not checked or blocked, with the next smallest action.
5. Open risks.

Do not write "all good" unless every required check passed.

## When a check fails
Name the check, classify the cause (stale file, export failed, blank result, wrong format, geometry, missing tool), fix the design rather than the preview, re-export, and re-check from the new file.