diff --git a/AGENTS.md b/AGENTS.md index f2716b8e0..a30ffe18e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -11,7 +11,7 @@ Each project lives in its own top-level directory; the [quest tree](quest/README - Pull the latest origin changes before working. - Dig into the root cause and fix it at the source. Never work around a fixable bug with a retry, sleep, or timeout, nor pass a flaky test by loosening its assertion. -- Fail loud and early. An unsupported construct or malformed input is an error with a source span, never a warning or a silent fallback. +- Fail loud and early. An unsupported construct or malformed input is a compile error with a source span, never a warning, a silent fallback, or a runtime failure. Generated code panics only where the Rust source does. - Generated output must match the source's semantics exactly: integer widths and overflow, drop order, laziness, and error paths. Prove it with differential tests against native Rust, not by inspection. - Reproduce bugs before fixing them. Tests must be worth their weight long-term: cover edge cases, not old bugs or trivial values. - Keep the PR to one problem: no unrelated refactors, formatting churn, or drive-by changes. Fix every instance of that problem in the same PR. @@ -31,7 +31,8 @@ Each project lives in its own top-level directory; the [quest tree](quest/README - Prefer upstream and maintained crates over hand-rolling. Measure before claiming an improvement over them. - Every change needs a consumer that uses it now and is worth its cost; name it in the PR. moq is the first consumer of every project here. -- Translators take stock crates as they are: no annotations, and no config beyond true platform boundaries. Each config key or source change a consumer needs is a gap to close. +- Everything is configless, with opinionated names and defaults. Translators take stock crates as they are: no annotations, and no config beyond true platform boundaries. Each config key or source change a consumer needs is a gap to close. +- A vanity rename, if ever supported, is opt-in and lives inline in source next to the item, never in a config file. - Deleting code is better than adding code. - Comments explain the non-obvious why, never the history. - New dependencies use the newest stable version. Do not bump package versions unless asked.