---
title: "The loop, end to end"
description: "The round trip — write the YAML with an LLM, compile it in the browser, read the report, paste it back — and what has to be true at each step."
url: https://kaicad.barpom.xyz/docs/start-here/the-loop
schema: "0.1"
---

# The loop, end to end

```
 ① describe your piece to Claude or ChatGPT
 ② it emits design.yaml       one fenced block, complete
 ③ paste it into kaicad       compiles in your browser, no backend
 ④ 3D · cut list · BOM · validation report
        └─ errors? copy the report, paste it back, return to ②
```

Only one of those steps is geometry. The rest is the handover between a chat window and a
compiler, which is where this kind of tool usually breaks.

## ① — asking

There is no agent in the product, so the model you already use is the one that writes the
document. A good brief is short: what you are building, what drives its size, where it goes,
what timber, what tools you have, and whether it has to come apart.

A model asked for "a queen platform bed in walnut that comes apart" will under-specify around
forty parameters. Most of them have defaults, and the ones that do not are the ones worth
asking you about. It should never ask you about pilot-hole diameters — that is the
validator's job, and asking implies you are responsible for something you are not.

## ② — the file

One `design.yaml` per piece, complete and self-contained, in a single fenced block with
nothing but YAML inside it. Commentary — the assumptions it made, what to check, what to say
if you want it changed — belongs outside the fence, so that selecting the block and copying
it gives you a file that works.

YAML comments are welcome. They are part of the document, they survive into the app, and
they are how the reasoning behind a dimension stays attached to it.

## ③ — getting it in

Paste is the primary input, not a fallback. Selecting a code block and hitting copy is easy;
extracting a file from a chat is not. kaicad also accepts a dropped `.yaml` file, and a
shared `#d=` link — a design travels in the URL fragment, which is never sent to any server.

The compile happens in a Web Worker in your browser. Nothing is uploaded, and there is
nothing to sign into.

## ④ — the report

The compile produces the model and the takeoff, and the validation report alongside them. The
report is written for the reader who will repair it: stable codes, JSON Pointer paths,
computed suggestions, errors before warnings, in a deterministic order so that two runs are
diffable.

Copy it, paste it back into the same chat, and ask for the whole file again with the same
`meta.id`. That is the loop.

[Reading a report](/docs/validation/reading-a-report) ·
[Repairing from one](/docs/validation/repairing-from-a-report).
