Specific prompts name values, signals, and bounds. Long prompts with adjectives but no numbers stay vague.
Added length helps only when each sentence removes an ambiguity. More words without more facts add cost without gain.
Vague line | Specific rewrite | What changed |
|---|---|---|
|
| Names the keys and the parameter. |
|
| Names the artifact and the check. |
|
| Names the fields and the grouping. |
Numbers state depth, width, counts, and limits. Adjectives like fast or robust state no test.
A number also bounds review. A claim with a count can be checked against the source.
Ask for lines, keys, or tables a script can split. Fixed keys with one separator parse with a few lines of code.
Name the keys, the separator, and the row order. One example line shows the shape exactly.
import sys
def is_record(line):
if ": " not in line:
return False
key, value = line.split(": ", 1)
return key.strip() != "" and value.strip() != "" and key == key.upper()
def main():
lines = [
"FUNCTION: store UART bytes",
"DEPTH: 8 entries",
"SIGNALS: full empty rd_en wr_en",
]
loose = [
"store UART bytes",
"depth: 8 entries",
]
good = 0
for line in lines:
if not is_record(line):
print("FAIL: good line set aside")
sys.exit(1)
good = good + 1
for line in loose:
if is_record(line):
print("FAIL: loose line kept as record")
sys.exit(1)
if good != 3:
print("FAIL: count not 3")
sys.exit(1)
print("PASS: 3 records parsed, 2 loose lines set aside")
main()The checker above is a plain format gate. It proves that fixed KEY: VALUE lines split cleanly and loose lines do not pass.
It calls no model. Format discipline is checked by code, not by reading.
Every answer needs a full reading to check. Fixed keys would turn part of that review into a script.
Its key is not all uppercase. The gate requires KEY: VALUE with an uppercase key and a colon separator.