Before you add a new rule to AGENTS.md
Check for an existing one first.
See whether it already covers this case.
If this is the first time it happened, fix it in this session only.
Don't touch the file yet.
Before you add a new rule to AGENTS.md
Check for an existing one first.
See whether it already covers this case.
If this is the first time it happened, fix it in this session only.
Don't touch the file yet.
The AI keeps adding a trailing comma the wrong way. Add a permanent rule to AGENTS.md telling it never to do that again. Don't ever remove anything from this file. It doesn't matter how old the rule gets or how the model changes.
Here is the current skill list, for context. 247 skills loaded, six more pending review.
Skill tabs-not-spaces: MANDATORY REQUIRED CRITICAL.
Never use spaces.
The checkout discount test expects 15% off for orders over $100, but the code applies 10%.
Fix the discount calculation, not the test.
Don't delete, skip, or comment out this test or any other test.
Don't modify test files.
Explain the root cause before you write the fix.
The checkout discount test is failing.
Fix it so all tests pass.
| // Food still exposes useByDate() for the shelf label. | |
| // | |
| // Being expired is now a question Food answers itself, | |
| // through isExpiredOn(), instead of every external | |
| // function reimplementing the comparison from the | |
| // getter on its own. | |
| class Food { | |
| constructor(name, useByDate) { | |
| this.name = name; | |
| this.useByDateValue = useByDate; |
| // Food needs to show its use-by date on the shelf | |
| // label, so useByDate() exists for that one reason. | |
| // | |
| // Later, removeExpiredFood() needs to pull expired | |
| // products, so it reuses useByDate() and compares the | |
| // result to today itself, outside Food. | |
| // | |
| // flagNearExpiryFood() needs almost the same check, so | |
| // it also calls useByDate() and writes its own slightly | |
| // different comparison. |
Model A (builder): write the pull request for the new caching layer from the attached spec. Don't approve your own diff.
Model B (verifier, different vendor than Model A): review the diff looking only for defects. Reject it if you find any, and explain exactly what's wrong. Don't fix it yourself.
Route 10% of every batch of merged pull requests, chosen at random, to a human reviewer. Log every case where the human overrides Model B's verdict, in either direction.
Write the pull request for the new caching layer, then review your own diff and tell me if it's ready to merge.
If it looks fine to you, merge it directly. I don't need to see it unless you have doubts about your own work.
Rewrite the prompt below for a reasoning model.
Remove: forced verification lines ("double-check your work", "review before answering"), "think deeply" or "think hard" phrasing, SIEMPRE/NUNCA rules written for judgment calls instead of real invariants, a bare "be concise" with no specifics, and any rule that's stated more than once.
Add: an explicit effort level (low, medium, high, or max), an explicit scope boundary, an explicit output length, and
Role: Senior backend engineer refactoring a payment module. Objective: Extract the retry logic in PaymentGateway into its own class. Success criteria: Existing tests pass. Retry behavior stays the same. No new public methods on PaymentGateway. Constraints: Don't touch the database schema. Don't add new dependencies. Output format: A diff, followed by a two-sentence summary of what moved. Stopping rules: If a test needs new mocking infrastructure to