{"path":"research/catching-a-proposal-made-unnecessary/report-formal-methods.md","content":"# Report: formal and institutional methods for detecting a rule whose reason has gone (verbatim, 2026-10-26)\n\n*A research helper's final report (Explore, Claude Sonnet, web search; it wrote no files), saved unchanged\nbefore it was read further. Every number carries its source and the helper's own read-status tag; none is\nrecomputed here. Brief: truth maintenance, design rationale, assumption management, requirements, law,\npolicy and software practice, each read for what must be recorded for \"the reason went away\" to be\ndetectable.*\n\n---\n\n# How a system detects that a proposal is \"made unnecessary\" by a settled item, or rests on a condition the design removes\n\nTags: [FULL TEXT] means I read the whole document. [PART] means I read substantial excerpts. [ABSTRACT] means the abstract or snippet only. [SECONDARY] means a summary, blog or encyclopedia. I invented no numbers. Where I found none, I say so.\n\n**The failure, in the vocabulary below.** The restriction \"a machine-written rule starts no wider than the links it came from\" had a purpose: stop over-wide rules while the graph is sparse. It also had a standing condition: the graph holds few links. Later rulings supplied other mechanisms for the same purpose, and they removed the condition. None of the later rulings contradicts the restriction. They strip its support. This matters because the two main families of belief-maintenance theory behave differently on exactly this case (section 1).\n\nTwo caveats first. I found no study that measures whether a reader can detect \"made unnecessary\" in a ledger of design rulings. Everything below is analogy from adjacent fields. Also, several of the web fetches returned only snippets, so I flag read-status on every number.\n\n---\n\n## 1. Truth maintenance systems (Doyle JTMS/RMS, de Kleer ATMS, dependency-directed backtracking, AGM versus foundations)\n\n**What the mechanism is.**\n- In a justification-based TMS, every belief is a node labelled IN or OUT. A node is IN if at least one justification is currently valid. Each node stores one \"support\", the specific reason holding it up right now.\n- A support-list justification has an IN-list and an OUT-list. It is valid when every IN-list node is IN and every OUT-list node is OUT. The OUT-list is what makes it nonmonotonic: \"believe X unless Y is believed\". [SECONDARY, explainer and an implementation: https://pisanuw.github.io/ltms/companion/ch06.html, https://github.com/benthomasson/ftl-reasons ]\n- Doyle's 1994 retrospective says the nonmonotonic justification was introduced in his 1976 and 1979 reason maintenance work. [ABSTRACT/SECONDARY: search digest of https://www.csc2.ncsu.edu/faculty/jdoyle2/publications/fi94.pdf, which returned HTTP 403 to me]\n\n**How a belief goes OUT when its justification loses support.**\n- Retraction runs in two strict phases. Phase 1 marks OUT every node whose current support runs through the retracted node. Phase 2 then looks for any other valid justification for each node just taken OUT, and re-installs it if found. [SECONDARY: https://pisanuw.github.io/ltms/companion/ch07.html]\n- The two phases are kept separate so that circular, mutually propping support cannot survive. This is the \"well-foundedness\" requirement.\n- A JTMS \"OUT\" means \"no current reason\", not \"false\". [SECONDARY, same source]\n\n**Multiple justifications (redundancy).**\n- A node with two independent reasons survives losing one. Only when phase 2 finds no alternative does it go OUT. [SECONDARY, same source]\n- Wikipedia's summary agrees: a statement stays in the belief set if it has at least one valid justification. [SECONDARY: https://en.wikipedia.org/wiki/Reason_maintenance]\n- Consequence for a ledger: if a rule carries two recorded reasons and one reason is removed by a later ruling, the rule survives on the other. A reader has to see which reason each rule actually rests on, not just that it has one.\n\n**ATMS (de Kleer).**\n- Each node carries a label: the set of minimal consistent environments (sets of assumptions) from which it follows.\n- Labels must be sound, consistent, complete and minimal. A node holds in a context if the context's assumptions are a superset of some label environment. [PART: https://dekleer.org/Publications/An%20Assumption-Based%20TMS.pdf and https://dekleer.org/Publications/Corrected%20AAAI88.pdf]\n- A \"nogood\" is an environment from which false follows. All its supersets are nogood too. [PART, same sources]\n- An empty label puts the node in the out set. Such a node can move back in if a new justification appears. [PART: https://dekleer.org/Publications/An%20Assumption-Based%20TMS.pdf]\n- The ATMS stores assumptions explicitly as first-class objects, so \"which assumption does this rest on\" is a lookup, not an inference. The cost is label growth: n assumptions give 2^n environments. [PART: https://dekleer.org/Publications/Problem%20Solving%20with%20the%20ATMS.pdf]\n\n**Dependency-directed backtracking.**\n- Stallman and Sussman's rule system threads each deduced fact with justifications naming the antecedent facts and the rule used. After a failure, those justifications let the system change only the facts that depend on the culprit. [PART: https://dspace.mit.edu/bitstream/handle/1721.1/6255/AIM-380.pdf]\n- This is the origin of the idea that the recorded reason for a belief is also the index for what must be revisited.\n\n**AGM versus foundations.**\n- Doyle's own framing: the foundations approach holds a belief if and only if the agent has a satisfactory reason for it, so beliefs change as reasons are adopted or abandoned. The coherence approach says pedigree does not matter. A belief is kept as long as it coheres with the others, and revisions follow minimal change. [ABSTRACT: https://doi.org/10.1017/cbo9780511526664.002]\n- Gärdenfors's chapter lists \"we discover that the reasons for some of our beliefs are invalid, and so we must give up those beliefs\" as a distinct kind of change, a contraction. [ABSTRACT: https://doi.org/10.1017/cbo9780511983474.023]\n- This is the sharpest point for your failure. A coherence/AGM-style store sees no inconsistency when later rulings arrive, so it keeps the restriction. Only a record of why the restriction was held can let a system retract it. That is also why \"no contradiction found\" is the wrong test for this case.\n\n**Transferable mechanism:** each ledger row must record (a) the purpose it serves, (b) the standing conditions it depends on, written as separate checkable assumptions, and (c) an \"unless\" clause naming what else would make it redundant, so that a later row can flip it OUT.\n\n---\n\n## 2. Design rationale systems (IBIS, QOC, DRL, SEURAT) and whether rationale helps maintainers\n\n**Representations.**\n- Lee's survey finds a generic layered structure: issue, argument, alternative, evaluation, criteria. The issue layer carries relations such as \"generates, depends-on, replaces\". [PART: https://users.cs.northwestern.edu/~paritosh/papers/sketch-to-models/LeeDesignRationaleSystems.pdf]\n- gIBIS represents mainly issue, position and argument. DRL adds a criteria layer. QOC (Questions, Options, Criteria) uses \"+/-\" links between options and criteria. It supports claims with data, theory or \"mini-theory\". It also has \"bridging criteria\", where a specific criterion derives its justification from a more general one. [PART: Lee and Lai, https://dspace.mit.edu/entities/publication/3d747206-b26a-4330-b2db-ca2d6e6760df and http://hdl.handle.net/1721.1/47039]\n- Lee and Lai criticise QOC for treating \"bridging criterion\" as a fixed type rather than a relation. [PART, same source]\n\n**SEURAT (Burge and Brown), the one tool with an explicit check of the kind you want.**\n- Rationale holds decisions, alternatives, and arguments for and against. Arguments can contain requirements, claims and assumptions.\n- \"For requirements and assumptions, the user can disable them and SEURAT will report which decisions may require re-examination.\" [PART: https://dl.acm.org/doi/pdf/10.1145/1368088.1368215]\n- Dissertation example: disabling the assumption \"standard working hours 8 to 6\" re-evaluates the alternative that refers to it and produces a warning on the decision \"schedule duration\". [PART: Burge dissertation, http://democritique.org/IT/Documents/Rationale/BurgeDissertation.pdf, section 9.2.2, read from the PDF text]\n- Other inference errors it reports: alternatives violating requirements, alternatives with no supporting arguments, tradeoff violations, unanswered questions. [PART: ACM link above]\n\n**Empirical results, with an important gap.**\n- SEURAT's controlled experiment had 20 subjects, split 10/10 between SEURAT and a control group, on three maintenance tasks. [PART: dissertation, section 10.1.3] The tasks measured finding the code to change. The \"disable assumption\" feature was demonstrated in section 9.2.2, not tested in the experiment. The experts using SEURAT took longer than the control experts. [PART: dissertation, section 10.2.1.5]\n- Bratthall et al. had 17 subjects on two embedded systems. For system A (57 completed change tasks) access to a design rationale document gave significantly better correctness and speed. For system B (20 tasks) the result was not significant. [PART: http://www.geocities.ws/docubase/PROFES00.pdf]\n- Falessi et al. (TOSEM 2013): two controlled experiments, 75 master's students. The value of a rationale item depends significantly on its category (assumptions are one category) and on the activity. A customised rationale holding items needed at least half the time is about half the size of a full one. [ABSTRACT: https://www.academia.edu/4211854/Design_Rationale_Systems_Understanding_the_Issues, which carries the abstract of \"The value of design rationale information\"]\n- Tang et al., 81 valid survey responses: design assumptions were documented at the top two frequency levels (4 or 5 of 5) by 25.9% plus 53.1% of respondents. 60.5% cited lack of time or budget as a barrier. [PART: https://aisel.aisnet.org/cgi/viewcontent.cgi?article=1113&context=sprouts_all]\n- I found no study that tests whether recorded rationale lets later maintainers notice an obsolete decision. The experiments above test change-impact prediction and code location.\n\n**Related practice, architecture decision records.**\n- Nygard's template has a Status field: proposed, accepted, deprecated, or superseded, with a reference to the replacement. \"If a decision is reversed, we will keep the old one around, but mark it as superseded.\" [PART: https://www.cognitect.com/blog/2011/11/15/documenting-architecture-decisions]\n- The UK GDS guidance requires the old record to carry \"Status: superseded\" and a link to the new one once accepted. [PART: https://gds-way.digital.cabinet-office.gov.uk/standards/architecture-decisions.html]\n\n**Transferable mechanism:** store assumptions as separate, individually switchable objects linked to the rulings that cite them, plus a status field and a mandatory forward link from an old row to the row that replaced or covered it.\n\n---\n\n## 3. Architectural assumption management (Lago and van Vliet; Yang, Liang, Avgeriou)\n\n**Lago and van Vliet (ICSE 2005).** [FULL TEXT: https://dl.acm.org/doi/pdf/10.1145/1062455.1062503]\n- Their core claim is that invariabilities (things assumed not to change) should be modelled as explicitly as variabilities.\n- Their examples are failures from a tacit assumption that stopped being true. One is a customs system built on \"one staff member per declaration\", justified by privacy rules. When parallel processing was later needed, the change touched almost all components.\n- Another is a social-security system built on a divisionalised organisation. The paper says this was partly due to \"the technical possibilities of the era\".\n- Metamodel: an assumption impacts features, completely or partially. Features realize assumptions. Assumptions also link to structural elements. Assumptions are classed as technical, organizational or managerial.\n- The links point in different directions for different purposes. From the assumption, you ask what is affected. From a concrete feature, you ask which assumption it depends on.\n- As published, the metamodel has no field for a validity condition, a status or a re-check date. That gap is what Yang's process later targets.\n\n**Yang, Liang, Avgeriou.**\n- Mapping study of 134 studies (2001 to 2015): assumptions maintenance got only \"moderate attention\", and most negative consequences came from invalid or implicit assumptions. [ABSTRACT: https://doi.org/10.1016/j.infsof.2017.10.003]\n- Survey of 112 practitioners: 49 identified assumptions, but only 22 recorded them. Assumptions mostly stay implicit. [PART: https://doi.org/10.1016/j.jss.2015.12.016]\n- The same survey's introduction describes a formerly valid assumption turning invalid when the context changes. Its example is \"external security is not a concern\", invalidated by a later requirement. [PART, same source]\n- Case study with 24 architects: assumptions are context-dependent and can turn invalid or valid during their lifecycle. [ABSTRACT: https://research.rug.nl/en/publications/architectural-assumptions-and-their-management-in-industry-an-exp/]\n- Assumption Management process with Making, Description, Evaluation and Maintenance activities, tested with 88 first-year master's students and five practitioners. The majority rated Evaluation the most helpful activity for making assumptions explicit and for identifying and reducing invalid ones. [ABSTRACT: https://doi.org/10.1016/j.scico.2018.08.002]\n- Tools: Assumption Miner found 94.92% (1,961 of 2,066) of keyword-marked assumption sentences in Keras and TensorFlow. [PART: https://arxiv.org/html/2303.06822v2] A classifier study got F1 0.9584 with ALBERT. Claude 3.5 Sonnet reached 0.8858 and the authors recommend against the general LLMs. [ABSTRACT: https://doi.org/10.48550/arxiv.2401.03653] Both tools identify assumptions. Neither judges whether an assumption is still valid.\n- SEI note (Lewis et al., 2004) lists three elements: record assumptions in real time, have someone with the knowledge declare each valid or invalid, and make them searchable. It also stresses that business, legal and operating environments change, \"rendering previously valid assumptions invalid\". [PART: https://insights.sei.cmu.edu/documents/2049/2004_004_001_14327.pdf]\n- Technical debt link: a 2025 paper classifies five types of assumption-driven requirements technical debt but gives no measured rates in the part I saw. [ABSTRACT: https://doi.org/10.3390/app15148028]\n\n**Transferable mechanism:** record, per assumption, who declared it, what it impacts (completely or partially), the condition under which it stays true, and who or what re-validates it when a neighbouring row changes.\n\n---\n\n## 4. Requirements engineering (redundant, subsumed, obsolete requirements)\n\n**Obsolete requirements, practitioner evidence.** Wnuk, Gorschek and Zahda (2013) surveyed 219 respondents, a response rate of about 8%. [PART: https://gorschek.com/wp-content/uploads/2019/11/Obsolete-software-requirements.pdf]\n- 84.3% called obsolete software requirements serious or somewhat serious.\n- 73.6% (159) said their process does not consider them.\n- Identification is mostly manual, with under 10% reporting any automated functionality.\n- More than 60% said obsolete requirements should be kept but tagged, not deleted, for reference and to avoid re-specifying them.\n- Requirements tied to standards and laws were least likely to go obsolete. Inconsistent and ambiguous ones were most likely.\n\n**Traceability-based detection.**\n- Outdated requirements found from code changes: 12 of 14 requirements-related changes detected, 79% precision, in one healthcare case study. The change is turned into keywords and traced to the specification. [PART: https://www.zora.uzh.ch/server/api/core/bitstreams/c1af79d9-28c5-43fc-8174-6201a08d2078/content]\n- LLM change-impact analysis (ProReFiCIA): 85.7% recall on an unseen industrial dataset, with engineers reviewing 3.0% of requirements. Adding retrieval of domain knowledge raised recall to 95.8% at 3.4% (ACM abstract); the arXiv v2 abstract says 95.7% at 3.6%. [ABSTRACT: https://dl.acm.org/doi/10.1145/3844507 and https://arxiv.org/html/2511.00262v2]\n- AIST (ASE 2026) on 40 historical requirement changes: precision 80.19%, recall 94.95%. [ABSTRACT: https://dl.acm.org/doi/10.1145/3832783.3834516]\n\n**Redundancy detection, with measured LLM numbers.** Hofmann et al. (REFSQ 2025) compared a graph method with two LLM methods on user stories. [PART: https://www.uni-marburg.de/de/fb12/arbeitsgruppen/swt/publikationen/dateien/2025/hofmannetal.pdf]\n- The LLM method over annotation graphs recovered 565 of 582 strict redundancies on the \"goal\" part of a story (97%) and 35 of 35 on \"benefit\". The text-only LLM method recovered 478 (87%) and 23 (66%).\n- Semantic (non-strict) redundancy is much larger: at least 2,346 pairs on goal and 446 on benefit, so strict redundancy is at most 0.25 and 0.08 of the total.\n- Precision of the annotation-based method fell from 0.91 (goal) to 0.67 (benefit). Its detection rate on benefit was 0.72 against 0.35 for the text-based method.\n- False positives came mainly from over-generalised descriptions, for example \"someone wants to know something\".\n- Lessons for your reader: structured annotation beat free text on the harder field, and LLMs find literal redundancy far more readily than semantic redundancy. The authors also flag run-to-run variability of LLMs.\n\n**Other numbers.**\n- Fulfilment checking, closest to \"purpose already met elsewhere\": GPT-4o and Claude 3.5 Sonnet reached F1 79% to 94% at identifying non-fulfilled requirements against a system specification. [ABSTRACT: https://arxiv.org/html/2411.11582]\n- A BERT-based redundancy pruning preprint reports F1 0.87 and recall 0.77. This is a preprint, so treat it as low confidence. [ABSTRACT: https://doi.org/10.36227/techrxiv.176053480.01524488/v1]\n\n**Goal models (KAOS, i*, Tropos).**\n- In KAOS, a refinement is complete when the subgoals plus domain properties entail the parent goal ({G1..Gn, Dom} |= G).\n- Domain properties split into invariants (hold in every state) and hypotheses (assumed in specific states). Obstacles are conditions that falsify a goal or an assumption. [PART: https://www.objectiver.com/fileadmin/download/documents/presentations/KaosCEE-AvL.pdf and https://webperso.info.ucl.ac.be/~avl/files/RE01.pdf]\n- My inference, not a quoted result: because refinement is defined as entailment, a requirement already entailed by others is detectably redundant. I found no source that states and tests that check as such.\n- Goal-model analysis procedures propagate satisfaction or denial labels forward (\"what is the effect of this alternative?\") or backward (\"can these goals be satisfied?\"). [PART: https://www.cs.utoronto.ca/~jenhork/Papers/SAC11_RE.pdf]\n- The i* AFSCR framework annotates goals with satisfaction conditions, reconciles them up the tree and raises \"entailment and/or consistency flags\". [ABSTRACT: https://ar5iv.labs.arxiv.org/html/1905.04777]\n\n**Transferable mechanism:** each row gets a machine-comparable statement of the goal it serves (the \"satisfaction condition\") plus the domain hypothesis it assumes, so a reader can test \"is this goal already entailed by an existing row?\" and \"has the hypothesis been falsified?\".\n\n---\n\n## 5. Law (implied repeal, desuetude, mootness, cessante ratione; legal NLP)\n\n**Doctrines, read as detection rules.**\n- Cessante ratione legis cessat ipsa lex: \"no law can survive the reason on which it is founded. It needs no statute to change it; it abrogates itself\" (Fox v. Snow, N.J. 1950, as quoted in a maxims compilation). [SECONDARY: http://student.manupatra.com/Academic/Maxims-and-Phrases/legal-maxims-phrases-judgments.htm]\n- Courts and commentators narrow it heavily:\n  - German commentary says a norm does not lapse merely because the circumstances that motivated it changed. Courts instead avoid applying it or reinterpret it. [SECONDARY: https://www.proverbia-iuris.de/cessante-ratione-legis-cessat-ipsa-lex/]\n  - A common-law dictionary entry says the hard part is agreeing what the rationale of the law is, and that the maxim clashes with stare decisis. [SECONDARY: https://law.en-academic.com/9294/cessante_ratione_legis_cessat_ipsa_lex]\n  - McKean notes that writers have misread the maxim as meaning obsolescence through non-use. [ABSTRACT: https://scholarship.law.unc.edu/nclr/vol4/iss3/4]\n- Implied repeal (Posadas v. National City Bank, 296 U.S. 497, 1936). [PART: https://supreme.justia.com/cases/federal/us/296/497/]\n  - \"Repeals by implication are not favored.\"\n  - Two categories: irreconcilable conflict, or a later act that \"covers the whole subject of the earlier one and is clearly intended as a substitute\". The second is exactly \"purpose already achieved by a later item\".\n  - The legislature's intention to repeal must be \"clear and manifest\".\n  - Radzanower v. Touche Ross adds that repeal is implied \"only if necessary to make the (later enacted law) work, and even then only to the minimum extent necessary\". [PART: https://www.law.cornell.edu/supremecourt/text/426/148]\n- Changed circumstances (Rufo v. Inmates of Suffolk County Jail, 1992). [PART: https://www.law.cornell.edu/supremecourt/text/502/367]\n  - The party seeking relief must show a significant change in fact or law and that the modification is suitably tailored to the change.\n  - Ordinarily no modification where the party relies on events actually anticipated when the decree was entered. This is relevant to your case: a condition the design itself anticipated removing is a weak ground.\n- Mootness: after voluntary cessation, a case is moot only if \"absolutely clear that the allegedly wrongful behavior could not reasonably be expected to recur\". The \"heavy burden\" sits with the party asserting mootness. [PART: https://www.law.cornell.edu/supct/html/98-822.ZO.html; reaffirmed in FBI v. Fikre (2024) per https://www.law.cornell.edu/constitution-conan/article-3/section-2/clause-1/voluntary-cessation-doctrine, SECONDARY]\n- Obsolescence (Calabresi, as summarised in a book review): a statute is obsolete when it no longer fits the legal landscape and lacks current legislative support. Two conditions, not one. [SECONDARY: https://repository.law.umich.edu/cgi/viewcontent.cgi?article=4673&context=mlr]\n- Desuetude: I did not retrieve a primary US source. McKean treats non-use obsolescence as a Scots-law idea.\n\n**Legal NLP numbers.**\n- LegalBench \"overruling\" asks whether a single sentence overrules a prior decision. Balanced accuracy: GPT-4 95.2, GPT-3.5 88.9, Claude-1 95.4. Open models: Flan 94.2, Llama-2 92.3, OPT 78.3, Vicuna 52.7, WizardLM 89.5. The task lists 2,400 samples and about 27.5 average tokens (I did not verify the column headers). [PART: appendix tables of https://arxiv.org/pdf/2308.11462]\n- The positive example is \"we overrule so much of kerwin as holds...\". It is a near-lexical cue, so this benchmark says little about detecting implicit supersession.\n- The earlier BERT work on the same dataset: BiLSTM baseline F1 0.910, Legal-BERT 0.963, custom Legal-BERT 0.974, described as the \"easiest\" task studied. [PART: https://dho.stanford.edu/wp-content/uploads/CaseHOLD.pdf]\n- When the whole opinion is given (236 U.S. Supreme Court case pairs): open identification of the overruled case reached 73.31% (Gemini-Pro) and 71.19% (GPT-5). A closed \"did A overrule B\" check reached 75.42% for GPT-5 but only 42.37% for Gemini-Pro, which abstained 131 times. GPT-5 on the oldest cases (1810 to 1881) scored 35.29%, against 82.47% on 1954 to 2025. Smaller models did near zero. [FULL TEXT: https://arxiv.org/html/2510.20941]\n- Precedent treatment classification (239 expert-annotated citations): best accuracy 79.1% (Gemini 2.5 Flash, high-level schema) and 67.7% (GPT-5-mini, fine-grained). The paper proposes a severity-weighted error because confusing \"invalidated\" with \"neutral\" is worse than confusing two negative labels. [PART: https://aclanthology.org/2025.nllp-1.13.pdf]\n- Commercial citators: Hellyer's study of 357 citing relationships found Shepard's and KeyCite missed or mislabeled about one third of the negative ones, and BCite over two thirds. [ABSTRACT: https://www.aallnet.org/wp-content/uploads/2018/12/LLJ_110n4_02_hellyer.pdf]\n- Free Law Project's citator experiment: Claude 3.5 Sonnet was the only model above 90% recall with F1 above 80%, and Mistral Large the only one above 80% precision. [SECONDARY, project blog: https://free.law/2025/05/01/citator/]\n- Superseded or amended provisions: LLM consolidation of German statutes got 50.3% exact match for single amendments and 20.51% for multi-step chains, although similarity scores were 93 to 99%. [ABSTRACT: https://aclanthology.org/2025.nllp-1.29.pdf] A German statutory QA benchmark of 312 questions found vanilla post-cutoff scores of 0.08 to 0.11 (Claude Sonnet 3.7) and 0.18 to 0.21 (ChatGPT 5.1), against 0.78 to 0.88 with retrieval that enforces temporal validity. [PART: https://arxiv.org/html/2605.23497]\n\n**What law adds:** it keeps \"made unnecessary\" mostly out of the reader's guesswork. It demands a declared intent (express repeal, an express \"supersedes\" clause), treats implied repeal as disfavoured, and places the burden on whoever claims the item is dead.\n\n**Transferable mechanism:** an express supersession or coverage declaration on the newer row, naming the older row and stating whether it replaces it wholly or in part. The reader's job then becomes checking a stated claim, not discovering an implied one.\n\n---\n\n## 6. Policy (sunset clauses, retrospective review, zero-based review)\n\n**Triggers (OECD, 2020).**\n- The type and timing of an ex post review \"are best determined at the time regulations are made\".\n- Three families: programmed reviews (review clauses, sunsets, post-implementation reviews at 1 to 2 years), ad hoc stocktakes, and ongoing stock management.\n- Just under half of OECD members have some sunsetting. Korea's review staff had \"just over one day on average\" per sunsetting regulation. [PART: https://www.oecd.org/en/publications/reviewing-the-stock-of-regulation_1a8f33bc-en/full-report/component-8.html]\n- Prioritisation: review where there is breadth, depth, and prima facie evidence of a problem, jointly. [PART: https://www.oecd.org/en/publications/reviewing-the-stock-of-regulation_1a8f33bc-en/full-report/component-13.html]\n\n**Effectiveness evidence is thin and mixed.**\n- Kearney (1990), via Daniels: sunset accounted for more than 325 terminated state entities. Florida terminated 90 and created 104. Twelve states repealed or suspended sunset review. [SECONDARY: https://doi.org/10.15763/issn.2374-7781.1994.15.0.507-518]\n- Across 11 states (Mercatus), 21% of examined boards or statutes were allowed to sunset, or about 11% without Ohio. Most renewals came with changes. [PART: https://www.mercatus.org/media/49601/download?attachment=]\n- Jones et al. (2025) say empirical studies have not found sunset to improve efficiency, and that agencies tend to be renewed through inertia. Their own causal GDP estimate is large (+$14,000 per capita, 59.8%) under a conditional parallel-trends assumption, and a synthetic-control check supports it only for Tennessee. I would not rely on that estimate. [ABSTRACT: https://link.springer.com/article/10.1007/s11149-025-09498-5]\n- RAND Europe for Bertelsmann concluded that sunset and review clauses have had only limited effects on regulatory burden. [ABSTRACT: https://www.bertelsmann-stiftung.de/fileadmin/files/BSt/Presse/imported/downloads/xcms_bst_dms_16216_16217_2.pdf]\n- Retrospective review (Aldy 2014): more than one third of 650+ planned reviews completed within two years, over 90% of those ending in amendments. But no more than about 10% of recent economically significant rules came from retrospective review, and none carried a plan for a future one. [PART: https://www.hks.harvard.edu/sites/default/files/centers/mrcbg/files/RPP_2014_28_Aldy.pdf]\n- UK National Audit Office: of 83 in-scope 2011 regulatory decisions, only two reviews were completed and independently assessed. None of 10 sampled impact assessments planned a post-implementation review. [PART: https://www.nao.org.uk/wp-content/uploads/2016/06/The-Business-Impact-Target-cutting-the-cost-of-regulation.pdf]\n- US Regulatory Flexibility Act section 610: in a 1998 GAO check of the Unified Agenda, 7 agencies listed 34 entries as section 610 reviews and only 3 met all notice requirements. [SECONDARY: https://www.legistorm.com/reports/view/gao/28322/Agencies_Use_of_the_October_1997_Unified_Agenda_Often_Did_Not_Satisfy_Notification_Requirements.html]\n- UK Red Tape Challenge: about 5,500 regulations reviewed. 3,095 provisions scrapped, but official reports count only 1,376 as of material benefit. [SECONDARY: https://www.unchecked.uk/wp-content/uploads/2020/06/The-2011-Red-Tape-Challenge-outcomes-effectiveness.pdf] A government statement said about half of announced changes had real benefit and the other half removed redundant or obsolete regulations or consolidated them. [PART: https://assets.publishing.service.gov.uk/media/5a79d4ece5274a18ba50f245/12-p96b-one-in-one-out-fourth-statement-new-regulation.pdf]\n- British Columbia's regulatory count fell 36.4% from 2001 to 2004 (baseline 360,295 requirements). [PART: https://www2.gov.bc.ca/assets/gov/government/about-the-bc-government/regulatory-reform/pdfs/rr_annual_report_2012_gcpe_final.pdf]\n\n**Zero-based review, current example.** US Executive Order 14270 (April 2025) requires covered energy regulations to carry a Conditional Sunset Date one year out. The regulation ceases unless the agency finds an extension warranted after a public comment opportunity. \"A request for information shall not automatically extend\" it. New rules get at most 5 years, and amendments do not reset the clock. [PART: https://www.federalregister.gov/documents/2025/04/15/2025-06466/zero-based-regulatory-budgeting-to-unleash-american-energy] FERC's implementing rule also adds sunset dates to rules it says are \"not being used or no longer serve their original purpose\". [PART: https://www.federalregister.gov/documents/2025/10/21/2025-19607/implementation-of-the-executive-order-entitled-zero-based-budgeting-to-unleash-american-energy] I found no outcome data for the order.\n\n**Pattern:** the evidence says time-triggered review alone mostly renews. Reviews that work are planned when the rule is written and owned by someone other than its author (Aldy). A default of expiry moves the burden of proof onto the item (EO 14270). Mootness law places that burden the other way.\n\n**Transferable mechanism:** at write time, each row records its review trigger (a date or an event), the evidence that would retire it, and a default (lapse or renew), so the burden of proof is fixed in advance.\n\n---\n\n## 7. Software practice (feature-flag cleanup, dead code, TODOs with conditions)\n\n**Stale flags: staleness is defined from structured state, not from reading the code.**\n- Uber's Piranha generated cleanup diffs for 1,381 flags (17% of total flags). 65% of diffs landed unchanged, over 85% compiled and passed tests, and developers processed over 88%. [ABSTRACT: https://doi.org/10.1145/3377813.3381350]\n- It takes a flag as stale only when a flag-management system says it is fully rolled out, and assigns the diff to the flag's recorded owner. [PART: https://siliconangle.com/2020/03/17/ubers-open-source-piranha-tool-hunts-redundant-application-code/, https://www.infoq.com/news/2020/04/uber-piranha-unreachable-code/]\n- Open-source flag lifetimes: half of flags removed within 15 months, 25% persisting beyond 8 years. Flags removed by their owner lived 189 days shorter. A linked cleanup issue had a negligible effect. [PART: https://doi.org/10.1145/3379597.3387463]\n- Kubernetes and GitLab: toggle removals lag additions by roughly 35% and 13%. Median lifespan is 734 versus 185 days. 1.33% and 0.73% became de facto permanent. [ABSTRACT: https://arxiv.org/html/2604.15872; the author metadata Exa returned looked wrong, so check before citing]\n- DoorDash (October 2026): 56,000+ flags, 1,659 stale. Stale means unmodified for 90 days, still referenced, not archived, and not excluded. An LLM agent produced usable pull requests for 45 of 50 stale flags (90%); 31 were accepted first time. Average cost was $4.79 and 13.8 minutes. [PART: https://arxiv.org/html/2610.31351] The agent must query live rollout state because \"the code default may differ from the production value\". The condition is read from the authoritative registry, not inferred from the code.\n\n**Dead code.** Meta's SCARF deleted over 104 million lines of code and removed data across 12.8 million assets in one year. Hack patch generation succeeded 97% of the time. Engineers can mark a product for deprecation that still has low non-zero usage and must find the remaining usage. [PART: https://dl.acm.org/doi/pdf/10.1145/3611643.3613871] Meta prefers false negatives to false positives when automating deletion. [SECONDARY: https://techreport.ngo/sre-ops/automating-dead-code-cleanup/]\n\n**Obsolete TODOs.** TDCleaner uses the triple (code change, TODO comment, commit message). Precision and recall: Python 82.6% and 86.8%, Java 86.2% and 84.4%, against baselines near 45 to 61% precision. In the wild, 9 of 18 reports were confirmed and removed. [PART: https://arxiv.org/html/2108.05846v1] Detection is triggered by a change event, not by scanning.\n\n**\"Remove when X\" annotations that tools check.** eslint-plugin-unicorn's `expiring-todo-comments` rule accepts conditions such as a date, the package's own version, `engine:node@>=8`, or a dependency being added or removed. Example: `// TODO [engine:node@>=8]: We can use async/await now.` It reports as soon as the condition is met. [PART: https://github.com/sindresorhus/eslint-plugin-unicorn/blob/main/docs/rules/expiring-todo-comments.md] I found no effectiveness data for it.\n\n**Comment staleness (adjacent to contradiction work, so brief).** A code-comment inconsistency detector reports F1 89.54%, and its authors found a substantial share of sampled data in existing datasets mislabeled. [ABSTRACT: https://arxiv.org/html/2506.20558]\n\n**Transferable mechanism:** a machine-checkable \"needed while\" condition on each row, bound to a source of truth the checker can query, plus a named owner who gets the cleanup task when the condition flips.\n\n---\n\n## Top 5 transferable mechanisms, ranked by how directly they catch your failure\n\n1. **Purpose plus \"unless covered elsewhere\" clause on every restriction (Doyle's OUT-list; section 1).** The rule is recorded as \"hold R to achieve purpose P, unless P is secured by another settled item\". Later rulings that secure P then flip R OUT by construction. It is also the only mechanism that works when nothing contradicts R, because coherence-style stores keep R. A reader checks each new ruling against recorded purposes, not against the whole ledger. This would have caught the failure in both senses, (a) and (b).\n2. **Standing conditions as separate, switchable assumption objects (SEURAT disable-assumption, ATMS environments, Lago and van Vliet impacts, KAOS domain hypotheses; sections 1 to 4).** \"The graph holds few links\" is stored once, with a link to every ruling that leans on it. A later ruling that removes the condition is tagged as doing so. A reader then checks \"which assumptions does this proposal rest on, and has any later ruling removed one?\" The same run to run, because it is a lookup.\n3. **A reverse \"affects\" declaration on the newer row, checked when it lands (change-triggered review: TDCleaner, ProReFiCIA, Piranha; sections 4 and 7).** The new ruling must list which standing rows' purposes or assumptions it touches. Detection happens at the event that causes obsolescence, not later when someone happens to reread. The measured recall (85.7% to 95.8%) shows LLMs can do the matching step if candidates are narrowed.\n4. **Express supersession or coverage link with a named predecessor and a whole/partial flag (ADR \"superseded by\", express repeal versus disfavoured implied repeal; sections 2 and 5).** Implied detection is error-prone (citators miss about a third of negative treatments; Gemini-Pro and GPT-5 scored 42% to 75% on a closed overruling check; the consolidation work got 20.51% exact match on amendment chains). A stated link turns discovery into verification, and a Posadas-style \"covers the whole subject and is clearly intended as a substitute\" test can be stated on the row.\n5. **Structured, checkable fields with a review trigger and a default (expiring TODOs, Piranha's registry state, DoorDash's live lookup, OECD triggers set at write time, EO 14270; sections 6 and 7).** Fix at write time what retires the row, who owns it, and whether it lapses or renews by default. The Hofmann result adds support: annotated structure beat free text on the harder field (detection 0.72 versus 0.35).\n\n**One design implication for the reader.** The evidence consistently says that structured fields plus targeted candidate narrowing (items 2, 3 and 5) beat asking an LLM to find obsolescence unaided from 60,000 words. Free-text discovery behaves like the semantic-redundancy and implied-supersession tasks above, where recall is weak and run-to-run variation is documented.\n"}