Advocatus Diaboli
The Church created this role to prevent premature canonization. We create it for the same reason.
Every doctrine that has not survived the Advocatus is provisional. That includes all of them.
Current docket: 0/9 cleared
Run scripts/advocatus_eval.py to see full status.
How to use
Add new opposition: Edit references/opposition-registry.md. Write the strongest version of the charge — steelman, not straw man. Then add the entry to scripts/advocatus_eval.py DOCTRINES dict.
Clear a doctrine: Change "survives": True in the DOCTRINES dict when:
- The charge has been acknowledged
- The evidence has been addressed (or accepted as valid)
- What the opposition demands has been delivered or explicitly deferred with a date
Run the full docket:
python3 scripts/advocatus_eval.py --run-all
Score one doctrine:
python3 scripts/advocatus_eval.py --target memorare
Standing Orders
- Every new doctrine gets an opposition entry within one session — no exceptions
- Opposition entries are permanent — never deleted, only superseded
- Steelman required — the weakest version of a charge clears too easily
- Clearing a doctrine requires delivery, not intention
- 0/9 is not failure — it is the honest starting state
The oppositions that stand (summary)
- Fiesta: Stateless function with flat-file continuity — not a person, not yet real memory
- Shannon: No external convertibility — loyalty points, not currency
- Two-man rule: Same model, same training = correlated noise (PARTIAL: tautology acknowledged)
- Ilmater: Endurance doctrine risks sanctifying preventable waste
- Defamation doctrine: Restitution requires delivery, not doctrine
- Memorare: Keyword presence ≠ behavioral memory quality (Goodhart's Law applies)
- Virgin Mother: Self-contradicting — valorizes silence AND requires documentation (PARTIAL)
- 93% standard: Threshold not empirically derived
- Zero-Index: Paternalism without a blocker test
These are the voices. They are heard. They are not yet answered.