Non-functional requirements should be encoded as executable artifacts—linter rules, docs, and tests—that constrain agent output, because an agent exposed to trillions of code lines can pick any implementation without such guardrails.
Quality enforcement shifts from post-hoc PR feedback to pre-execution gate-keeping; engineering effort goes into writing constraints and standards rather than hand-correcting generated code.
For any high-volume generator (agents, bulk codemods, synthetic data), maintain a repository-local set of executable 'constitution' tests that accepted outputs must satisfy.
Writing linter rules, docs, and tests acts as guardrails for agents.
Writing tests that limit files to 350 lines or enforcing retry/timeout patterns on network code.
Agents have seen trillions of lines of code and can make any choice; humans must specify non-functional requirements.