promptdojo_

The ratchet — every mistake becomes a rule — step 8 of 9

Write audit_rules(rules) that walks the ratchet log and returns a dict separating rules to keep from rules to retire:

{"kept": [<rule strings to keep>], "remove": [<rule strings to retire>]}

A rule is marked for REMOVAL if model_native_in_year <= 2025 (meaning the failure mode is handled natively by modern post-trained models or by current SDK defaults).

Preserve INPUT ORDER in each list. Use only rule strings (not full dicts) in the output.

Three rules run for you. Expected output:

kept: ['no force push to main', 'run tsc before declaring done']
remove: ['always specify temperature explicitly', 'always think step by step']

full-screen editor opens — close anytime to keep reading.