---
title: "Repairing from a report"
description: "Errors first, warnings are judgement calls, re-emit the whole file, keep meta.id. What to paste back, and what to expect in return."
url: https://kaicad.barpom.xyz/docs/validation/repairing-from-a-report
schema: "0.1"
---

# Repairing from a report

The report stands alone on purpose: the model that wrote your design never sees kaicad, so
everything it needs to repair the file has to be in the text you paste.

## What to paste back

The report, and the document it is about. By the time you are repairing, the chat may well
have lost the file from its context, so send both — and say which schema version it is
written against.

## What to ask for

1. **Fix the errors.** They are not negotiable — the design does not compile, or it is
   physically wrong.
2. **Treat warnings as judgement calls and raise them with you.** A deflection warning on a
   shelf might be fine for photographs and wrong for books. The model should say what the
   trade-off is rather than silently changing your design.
3. **The whole file back**, one fenced block, same `meta.id`. A diff has to be applied by
   hand, and a hand-applied diff to a file you did not write is how a design quietly stops
   matching its report.
4. **No invented fix for a code it does not recognise.** An unknown code means it is working
   from something older than this build; the right move is to say so.

## A worked example

```
ERROR  FAS-003  /joints/4
  fixtures.wood_screw.4x40 into slat_cleat: 20 mm through + 20 mm engagement,
  but this fixture requires >= 25 mm engagement.
  Suggestion: fixtures.wood_screw.4x50 gives 30 mm.
```

Everything needed for the repair is in those four lines: which joint, which fixture, what the
rule requires, what the actual numbers are, and a specific fixture that satisfies it. The
model changes one field and re-emits.

Compare the version of that finding that most tools would produce — "insufficient screw
engagement" — which is a research task, not a repair.

## When a repair does not converge

If two rounds do not clear the errors, the usual cause is that the design wants something the
v1 vocabulary cannot express — doors, hinges, drawers and runners are v2 — and the model is
working around it. Say what you are actually trying to build; a schema gap is worth knowing
about and is a better answer than a workaround.
