{
  "_README": "Every judgment heuristic is registered here, versioned, and explainable in ONE sentence. The methodology page is generated from this file so what we publish and what we ship can never diverge (BLUEPRINT.md §26, §38). A heuristic with an incomplete record MUST NOT ship. Promotion (estimated -> verified) is hard and slow; demotion is easy and fast (§26.7, §38.8). Heuristics may NEVER be based purely on anecdote, intuition, isolated edge cases, or unverifiable community claims (§38.3).",
  "schema_version": "1",
  "heuristics": [
    {
      "id": "autoload_oversize_v1",
      "purpose": "Flag total autoloaded options size above a threshold that degrades every page load.",
      "one_sentence_explanation": "We flag this because WordPress loads all autoloaded options on every request, and totals above ~800KB measurably slow page generation and can break object-cache single-value limits.",
      "provenance": "Documented host/core guidance (Kinsta, WPMU DEV, Pressable, Felix Arntz ~800KB-1MB) corroborated by internal fixture measurement.",
      "evidence_source": "documented_guidance_plus_fixture_measurement",
      "confidence_tier": "verified",
      "threshold": { "warn_kb": 800, "crit_kb": 1024 },
      "failure_modes": [
        "A single legitimately large option (e.g. a large settings blob) inflates the total and is read as bloat."
      ],
      "edge_cases": [
        "Object cache single-value limit interaction above ~1MB causes the option cache to fail entirely."
      ],
      "rollback": "Disable via filter: pba/heuristic/autoload_oversize_v1",
      "owner": "founder",
      "false_verified_guard": "Reports total size as Verified fact; does NOT claim a specific plugin 'caused slowness' — attribution of individual rows is reported separately and only by deterministic option-name prefix.",
      "changelog": [
        { "v": "v1", "date": "TBD", "note": "Initial. warn 800KB / crit 1024KB, per documented guidance + fixture validation." }
      ]
    }
  ]
}
