prepare-prompt · git:20260516.e6b55a8 · 2026-05-16 · sha256 4baf255e62b717e7
prepare-prompt git:20260516.e6b55a8A
Immutable. This exact content never changes and is served at /api/v1/blob/4baf255e62b717e7.
--- name: prepare-prompt description: Turn a vague user ask into a Real Object Brief before writing any geometry. The brief is the contract that all downstream sub-skills work from. --- # prepare-prompt ## Purpose A vague ask — "a wayfarer-style frame", "that bottle", "make the same one" — produces vague geometry. This sub-skill produces a **Real Object Brief**: a structured, numbered record of everything the reference communicates before any tool call touches the kernel. The brief is written as a `// Real Object Brief` block at the top of the `.kcad.ts` file, before any `param()` or geometry. It is the source of truth for the entire build. Every downstream sub-skill reads from it. ## Inputs - The user's ask (text, photo path, or both). - The reference photo(s) — can be one image showing one view, or several showing different angles. More views = fewer hidden-side guesses. ## Output A filled-in `// Real Object Brief` comment block, plus a list of open questions if any critical fact (scale, material, hidden side) cannot be inferred. ## The Real Object Brief format Required sections, in this order: ```ts // Real Object Brief // Artifact: <human name> — <one-line description of what it is>. // Reference: <relative path to the photo>. // Scale: millimetres. <key dimension 1: name ~N mm>, <key dimension 2: name ~N mm>, // <overall bounding box estimate>. // Visible facts (from reference photo): // - <Numbered or bulleted. Each item is a distinct visual element.> // - <Separate form (silhouette) from surface (color, texture, gloss).> // - <Include relative positions: "A is above B", "C spans the full width".> // Hidden-side inference: // - <What must exist that the photo does not show: case back, internal walls, // fastener counterbores, mounting tabs, wire paths.> // - <Infer from category: a pocket watch has a case-band, a mug has a handle // undercut, a USB dongle has a PCB pocket.> // Validation focus: // - <The 3–5 visual cues you will check against each rendered view.> // - <Name the view (front, top, right, iso) + what to check in it.> ``` ## Scale discipline If the reference photo has a known scale object (a hand, a coin, packaging dimensions), record it: ``` // Scale: millimetres. Outer frame ~130 mm wide (credit-card width for scale), // bridge gap ~18 mm, arm length ~135 mm, total body depth ~5 mm. ``` If no scale cue exists, estimate from category norms (eyewear: 130–140 mm wide; bottle: 70–90 mm diameter × 200–280 mm tall; USB dongle: 20 × 10 × 6 mm). Record the norm and the uncertainty: ``` // Scale: millimetres. No scale cue in photo; estimated from category norms. // Assumed 130 mm wide × 48 mm tall × 5 mm deep (typical eyewear silhouette). ``` ## Visible facts discipline Each bullet describes ONE observable thing. Bad examples (do not write these): > "Frame is black and glossy with rounded edges and also has lenses." Good examples: > "Outer frame: black, high-gloss acetate. Silhouette is rounded-rectangular > with a pronounced brow bump at the top." > "Lenses: flat, grey-tinted. Set flush with the frame; no raised rim." Separate form (shape, silhouette, relative position) from surface (color, gloss, texture). The model is built from form facts; material is applied separately. ## Hidden-side inference discipline Every real object has a back. Enumerate what the back of the reference object must contain: - Continuous enclosures need a case-band (thickness, material). - Optical lenses need a lens-seat recess or groove. - Mounted objects need a flat mating face, adhesive pad, or threaded boss. - Electronic housings need a PCB pocket and a battery compartment on the reverse. If the back is visible in a second reference image, record what it shows, not what you infer. ## Validation focus Write 3–5 explicit checks. Each check names a view and states what correct looks like: ``` // Validation focus: // - Front view: frame outline matches reference silhouette; brow bump above // lens on both sides; bridge gap centered. // - Top view: body has real depth (not a flat slab); arms extend laterally. // - Iso view: gloss material reads as specular; no floating elements. // - Score gate: silhouette ≥ 0.45, SSIM ≥ 0.30 (task-specific thresholds). ``` ## Open questions If any of the following cannot be inferred from the reference, list them at the end of the brief before starting geometry. Do not assume — record the uncertainty and pick the most defensible default: - Body depth (side view unavailable → use category norm and note it) - Internal construction (solid vs. hollow → default solid unless packaging says hollow) - Exact hinge type (fixed-wire vs. barrel → infer from silhouette; note uncertainty) - Material finish (matte vs. satin vs. gloss → read from the reference photo's specular highlights; gloss = strong highlight visible, matte = none) ## Done The brief is done when: 1. All required sections are present and non-empty. 2. Every visible form element is listed as a separate visible fact. 3. Scale is numeric (even if estimated). 4. Validation focus includes at least one score-gate check. Only then proceed to `blockout-model/SKILL.md`.