A civic data-migration transform keeps drifting until engineers attach two or three concrete input/output pairs. What lesson applies?
Select an answer to reveal the explanation.
Short Explanation
Vague "make the fields nicer" is a moving target; two sample rows in and out are a tape measure. Concrete I/O examples stop the transform from wandering.
Full Explanation
When a civic data-migration transform keeps drifting until engineers attach two or three concrete input/output pairs, the lesson is that concrete I/O examples stabilize behavior when prose is interpreted inconsistently. Examples pin field mappings, null handling, and formatting that adjectives leave ambiguous.
Concrete I/O works because transforms are evaluated against observable rows: given these inputs, produce these outputs. Two or three representative pairs—including an edge—give Claude an unambiguous target for municipal migration fields such as parcel IDs, dates, and address components. Prose can still explain intent, but examples adjudicate disagreements about what "normalize" means.
Prose-only briefs are not always more precise than examples for transforms; the scenario shows the opposite. Transforms should not be frozen against iteration once a first draft exists—refinement with examples is expected. Only Bash transcripts can describe expected field mappings is false; structured examples and tests are primary, and Bash logs are neither necessary nor sufficient as the sole specification.
Exam caveat: examples complement prose—they do not forbid iteration or require shell transcripts as the only medium. Operational check: when a civic transform drifts, attach two or three concrete I/O pairs, re-run the transform, and confirm outputs match the examples before further prose tweaks.