Pre-Send Checklist
□ Specified language and version
"Python 3.11" not just "Python"
□ Included function signature
Name, parameters, types, return type
□ Listed edge cases explicitly
None, empty, boundary values, errors
□ Specified dependencies
"Standard library only" or "can use X"
□ Asked for tests
Always. The model writes them for free.
□ Provided relevant context
Schema, related code, framework version
□ Defined "done"
What does correct output look like?
Post-Receive Checklist
□ Read the code before using it
Never copy-paste without reading
□ Run the tests
If they pass, the code probably works
If they fail, you found a bug early
□ Check edge cases manually
The model might have missed one
□ Verify no hallucinated APIs
Model sometimes invents function names
or uses deprecated APIs
□ Check security
SQL injection, XSS, hardcoded secrets
□ Verify it fits your codebase
Naming conventions, error handling
patterns, logging style
Key insight: Code prompting is a collaboration, not a delegation. The model writes the first draft; you review, test, and integrate. The best workflow: prompt with a spec → get code + tests → run tests → review for edge cases → integrate. This is faster than writing from scratch but safer than blind copy-paste.