{
  "schema_version": 1,
  "state": "integrated",
  "review_date": "2026-09-27",
  "baseline_revision": "35cab052456a320358e998c12416687d69cae142",
  "baseline_entries": 137,
  "baseline_counts": {
    "needs-evidence": 84,
    "needs-code": 27,
    "model-choice": 5,
    "out-of-scope": 1,
    "resolved": 20
  },
  "scope": "Research adjudications, not engine changes or refreshed benchmark results. Stable register IDs are retained. A supported answer can expose implementation work instead of removing it.",
  "stage_definitions": {
    "current-beta": "An experiment possible at the current level-20 cap, subject to the listed item/ability prerequisites.",
    "level30": "An experiment possible by level 30, not an assertion that the cap has already increased.",
    "launch": "Requires access beyond the announced level-30 beta or max-level content. Reclassify if later beta access is announced.",
    "offline": "Client data, source research, code inspection or simulator testing; no game experiment is required."
  },
  "entries": {
    "DATA-001": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Rank coefficients are readable in the client and already used by the engine. The current Forever downranking calculator independently reads build 70009 and likewise warns that hidden server penalties are unconfirmed. Tooltip-based online claims do not measure that missing server term.",
      "remaining": "Whether an additional penalty depends on player level versus the spell's learned level; especially the level-60 use of very low ranks.",
      "implementation": "Retain captured coefficients, not an imported Classic/TBC penalty. This remains material to low-rank fillers even after their base damage and costs are sourced.",
      "sources": [
        "https://www.60.tools/downrank-calculator",
        "docs/build_updates.md",
        "docs/check_dispositions.md",
        "sim/mage/frostfire_bolt.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Two learned ranks of a caster damage spell, controlled SP-only gear changes, fixed target level/resistance and no changing damage talents.",
          "measure": "Compare the damage slope per SP at each rank, not their raw hit sizes. Record exact player level and exclude crits; repeat after leveling if possible."
        },
        {
          "stage": "level30",
          "requires": "The same spell/rank and controls at level 30.",
          "measure": "Check whether its SP slope changes as the player outlevels the rank. This extends the low-level test, not the level-60 conclusion."
        },
        {
          "stage": "launch",
          "requires": "Level 60 and the actual downranked spells used by the retained APLs.",
          "measure": "Repeat the two-SP slope comparison for low and maximum ranks; separate learned-level base growth from the coefficient."
        }
      ]
    },
    "DATA-002": {
      "disposition": "model-choice",
      "confidence": "high",
      "answer": "The gear-generation proof reproduces the captured armor/weapon quantity tables, but the allocation exponent, stat prices, Stamina shares and passive-trinket budget are explicit modeling choices. Equal modeled cost is not evidence of equal real-world gearing opportunity or equal DPS. Current requests contain projected equipment, not hidden real-item procs or a paid-hit conversion.",
      "remaining": "Representativeness of the chosen budget and templates, not an unknown combat mechanic.",
      "implementation": "Keep the spreadsheet, per-item allocation proofs and legal armor constraints visible. Assess alternative prices as separate scenarios; replace assumptions only when enough current item observations constrain them.",
      "sources": [
        "docs/modelled_gear.md",
        "assets/db_inputs/forever_synthetic_gear_v2.json",
        "artifacts/modelled_gear/proposed_gear.xlsx",
        "artifacts/modelled_gear/gear_equity.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A proposed alternative budget or additional sourced crafted/PvP items.",
          "measure": "Fit out-of-sample items and compare total selected stat budgets by role; do not judge equivalence from the final DPS ranking."
        }
      ],
      "proposed_status": "model-choice"
    },
    "DATA-003": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Unresolved real catalog records are not equipped in the current projected-item benchmark. They cannot explain its damage, threat or survival. Acquisition and stat completeness remain real requirements for enabling those records in a real-gear scenario.",
      "remaining": "A catalog-import backlog, not a mandatory current-beta combat experiment.",
      "implementation": "Keep unresolved records excluded and preserve vendor-overlap precedence. Reopen individual records when a real-gear scenario needs them rather than treating the whole catalog as a current mechanics blocker.",
      "sources": [
        "docs/forever_gear_data.md",
        "assets/db_inputs/forever_gear_catalog.json",
        "docs/modelled_gear.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current vendor exports, acquisition records and item/effect tables for a specific excluded item.",
          "measure": "Resolve stats, weapon range, availability and unique/faction restrictions independently before making it selectable."
        }
      ],
      "proposed_status": "out-of-scope"
    },
    "DATA-004": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Current projected items have no ordinary set membership. The unsupported ordinary thresholds are intentionally blocked, while supported passive thresholds use actual equipped piece counts. These omitted procs do not affect the forced role Tier 1 scenario, which is a separate mechanism.",
      "remaining": "Per-threshold implementation work if ordinary real sets are enabled.",
      "implementation": "Do not enable a legacy handler merely because a set name matches. Maintain threshold-level supported/unsupported records and leave the forced Tier override independent.",
      "sources": [
        "sim/core/forever_equipment_sets.go",
        "sim/core/forever_equipment_sets_generated.go",
        "docs/forever_gear_data.md",
        "docs/forever_tier1.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A specific ordinary set selected for support and its complete effect/trigger chain.",
          "measure": "Separate sourced passive amounts from unknown proc conditions, then check exact piece counts and duplicate suppression."
        }
      ],
      "proposed_status": "out-of-scope"
    },
    "DATA-005": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Nature's Bounty is not equipped or activated by the current synthetic loadouts. The retained fallback's 2% rate is an assumption, and checking whether a Druid has a resource bar does not establish an active-form restriction. Neither is evidence of the live set's behavior.",
      "remaining": "A dormant real-set handler; probability and form routing are unresolved if this set is brought into scope.",
      "implementation": "Keep its catalog proc threshold disabled. Resource tick timing already has client support and need not be conflated with the unknown chance.",
      "sources": [
        "sim/common/item_sets/natures_bounty.go",
        "sim/core/forever_equipment_sets.go",
        "docs/weekly_review.md"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    },
    "DATA-006": {
      "code_ready": "Add Crusader's sourced self-heal and stop the Strength formula increasing below level 60; leave PPM and proc eligibility separately qualified.",
      "disposition": "partial",
      "confidence": "high",
      "answer": "This is material even with synthetic weapons: current requests equip 120 Crusader enchant copies and 28 Fiery copies. Crusader's client spell explicitly contains a 75–125 self-heal alongside 100 Strength for 15 seconds, but the handler implements only Strength. Its unbounded below-60 formula also grants more than 100 Strength at lower levels. Fiery's 40 base damage is sourced; its 6 PPM and Crusader's 1 PPM are not established by those effect amounts.",
      "remaining": "Effective proc frequency, special/extra-attack eligibility, form handling and healing resolution/threat. Legacy real-item amount updates remain a separate dormant catalog backlog.",
      "implementation": "Add the sourced Crusader heal and correct the below-60 Strength arithmetic with targeted regressions before a later affected tank refresh. Lifestealing's health-leech effect is also reduced to damage-only, but no current profile equips it. Do not interpret a proc wrapper's 100% field as a 100%-per-swing rate.",
      "sources": [
        "sim/common/enchant_effects.go",
        "sim/common/item_effects.go",
        "docs/mythicsim_review.md",
        "artifacts/question_review/scenario_data_evidence.json",
        "https://www.wowhead.com/forever/spell=20007/holy-strength"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Crusader enchant 1900 → spell 20007; fixed proc events at levels 20 and 60.",
          "measure": "Check 100 Strength, the sourced self-heal range, health capping and damage/threat separation. Verify Lifestealing's heal separately if that enchant is enabled."
        },
        {
          "stage": "launch",
          "requires": "Actual Crusader/Fiery enchants, fixed-speed weapons and separate white-only, special-attack and extra-swing samples. Move earlier only if the beta supplies these high-skill enchants.",
          "measure": "Estimate probability by eligible event type and weapon speed; record haste, handedness and form. A triggered spell's coefficient does not establish its PPM."
        }
      ],
      "related": [
        "DRU-011",
        "SCEN-002"
      ]
    },
    "DATA-007": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Eskhandar, the item Core Hound and Dragon's Call Whelp are not summoned by the current fixed-stat projected gear. Their approximate stats cannot affect this benchmark. This does not close the separate, active Summon Hawk talent question.",
      "remaining": "Item-specific guardian research if the corresponding real items become legal selected candidates.",
      "implementation": "Do not merge item guardians with Hunter/Warlock pets or infer all guardians from one summon.",
      "sources": [
        "sim/common/guardians/eskhandar.go",
        "sim/common/guardians/core_hound.go",
        "sim/common/guardians/emerald_dragon_whelp.go",
        "docs/modelled_gear.md"
      ],
      "tests": [],
      "related": [
        "HUN-004"
      ],
      "proposed_status": "out-of-scope"
    },
    "DATA-008": {
      "code_ready": "Implement Defender's Grip's ordinary outside-city 8% Block for 15 seconds; do not invent the other items' script behavior.",
      "disposition": "partial",
      "confidence": "high",
      "answer": "The client supplies more than placeholder names. Adaptive Combat Assistant has a 450-point, 15-second all-school absorb and a separate 90–110 Nature explosion. Defender's Grip Stabilizer grants 8% Block for 15 seconds, doubled in Strongholds/Cities; its ordinary outside-city branch is source-ready. Totem of the Storm says Lightning Bolt can trigger Maelstrom at a 50% reduced chance. All three remain absent from the current synthetic equipment.",
      "remaining": "Assistant's early-removal/depletion trigger and Totem's effective spell proc probability; explicit location handling if city/Stronghold scenarios are introduced.",
      "implementation": "Defender's ordinary raid branch does not need a future game test before implementation. Assistant first needs the finite absorb infrastructure. Do not give the Totem a free stat bonus or invent a spell-normalization denominator from its dummy aura.",
      "sources": [
        "docs/forever_gear_data.md",
        "assets/db_inputs/forever_gear_catalog.json",
        "artifacts/question_review/scenario_data_evidence.json",
        "https://www.wowhead.com/forever/item=272437/adaptive-combat-assistant"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Items 272437/272440/272432, their use/equip records and spells 1291097/1291099/1291105/1291078.",
          "measure": "Implement only explicitly supported branches, preserving item cooldowns and shared use categories."
        },
        {
          "stage": "launch",
          "requires": "Level-60 vendor items; controlled damage into Assistant, and Maelstrom-talented Shaman with the Totem.",
          "measure": "Separate shield depletion, normal expiry and dispel; count explosion events. For Totem, compare Lightning Bolt proc rate with independently measured melee eligibility, holding talent rank fixed."
        }
      ],
      "related": [
        "SHA-001",
        "SCEN-005"
      ]
    },
    "DATA-010": {
      "code_ready": "Represent raw haste rating separately from flat percentages, using the sourced level-60 conversion of 10 rating per percent.",
      "disposition": "implementation",
      "confidence": "high",
      "answer": "The captured level-60 combat table explicitly gives 10 raw haste rating per percent. The missing work is representing raw rating separately from flat percentages throughout import/UI/engine, not discovering that conversion in game. The current synthetic pool does not add a new raw-haste-rating stat.",
      "remaining": "A typed data/engine migration before raw rating-bearing equipment is supported.",
      "implementation": "Preserve general haste versus attack/cast-speed-only scopes and test one conversion at the boundary. Do not divide existing flat-percent enchants by ten.",
      "sources": [
        "docs/speed_audit.md",
        "assets/db_inputs/forever_combat_ratings.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Separate raw-rating and flat-percent fixtures at level 60.",
          "measure": "Ten raw rating must yield 1%; an explicit 1% effect must remain 1%. Check native, web and export/import paths and their affected timers."
        }
      ],
      "proposed_status": "needs-code"
    },
    "DATA-011": {
      "code_ready": "Project shared equipment crit/hit into picker valuation exactly once, preserving explicitly scoped exceptions.",
      "disposition": "implementation",
      "confidence": "high",
      "answer": "The picker still directly dot-products the stored item stats against EP weights. The engine first shares equipment crit/hit between physical and spell fields. A caster with zero MeleeCrit weight therefore can undervalue an item whose generic crit is stored there. This is a reproducible valuation mismatch, not missing caster crit in combat.",
      "remaining": "Picker valuation/cache alignment with the actual equipment projection, including enchants and random suffixes.",
      "implementation": "Use the same shared-stat semantics once and retain scope-specific exceptions such as ranged scopes. Simulator-driven gear searches are not using this picker EP as their DPS result.",
      "sources": [
        "ui/core/player.ts",
        "sim/core/ruleset.go",
        "docs/crit_model.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Generic-crit equipment with only a SpellCrit EP weight, plus ranged-only scope control.",
          "measure": "Compare predicted picker deltas to the projected equipment stats. Check that sharing is neither omitted nor applied twice."
        }
      ],
      "proposed_status": "needs-code"
    },
    "DATA-012": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "The active scoped exception is already explicit: SAF-T enchant 8720 routes spell 1310308's bow/gun/crossbow-restricted 2% crit to ranged attacks, rather than generic equipment crit. Current projected items use intentionally generic stat fields. The earlier real-item audit is not evidence for every future proc, but no unresolved generic/scoped contradiction was found in these current flat-stat loadouts.",
      "remaining": "Reopen only for a particular imported effect with a contradictory mask; legacy proc coverage stays under DATA-006.",
      "implementation": "No broad crit rewrite is warranted. Fix the separate picker projection without widening ability, talent, school or ranged-only bonuses.",
      "sources": [
        "sim/common/forever_enchants.go",
        "tools/database/enchant_overrides.go",
        "docs/forever_gear_data.md",
        "docs/crit_model.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "DATA-011",
        "DATA-006"
      ]
    },
    "DATA-013": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "The stored inventory distinguishes 151 candidate families: 91 registered, 12 aliases, 10 conditional, 18 not used, six unimplemented, eight awaiting pet data and six awaiting acquisition. It is a historical sampled-runtime inventory, not proof that every current rank/tank/talent path is covered. Several dispositions are stale: current tanks register shield/Bear abilities, and Wrack has since entered the Affliction profile. Felfire is an unproven Mage record, not a missing Warlock spell.",
      "remaining": "Refresh the coverage census for current supported contexts and preserve acquisition holds for Black Arrow, active Hunter Lacerate, Felfire, Lava Breath, Hammer of the Righteous and Victory Rush. Their names/class association alone do not authorize implementation.",
      "implementation": "Update runtime sampling and per-family dispositions separately from static source-ID coverage. Keep real missing abilities, teaching aliases and inactive talent paths distinct. Victory Rush also lacks a qualifying kill in the current encounter.",
      "sources": [
        "docs/spell_coverage.md",
        "artifacts/spell_coverage.json",
        "assets/spell_coverage_dispositions.json",
        "sim/spell_sources_test.go",
        "artifacts/question_review/scenario_data_evidence.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current SkillLineAbility/trait/teaching records plus legal runtime contexts for each supported class, tank and selectable pet.",
          "measure": "Reconcile each learned rank and alias against registration; do not treat a source-code number match as full ability coverage. Seek an actual acquisition chain before promoting held records."
        }
      ],
      "proposed_status": "needs-code",
      "related": [
        "HUN-007",
        "SCEN-008"
      ]
    },
    "DATA-014": {
      "register_update": {
        "current_model": "Current selectable trees use the later client-backed removals, rank curves and September 24 official position changes. Retired video-extraction JSON and earlier audit verdicts are not the active tree."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "The September 17 audit contains a later reversal that supersedes its earlier rejection: the crawl was old BlizzCon material, not an independent reading of that beta. The live UI trees already remove Balance of Nature/Vitality, use Flawless Execution/Wrack, remove Aggression's old prerequisite and use the revised Shaman layout. Moonglow 8/17/25, Moonfury 2/4/6/8/10, Lethality 4/8/12/16/20 and Stings 6/13/20 are already in UI and engine. September 24's official Focused Rage/Bastion swap supersedes the older positions still present in the captured node table.",
      "remaining": "The retired video-extraction trees and old audit sections are historical inputs, not current selectable defaults. Individual newly found effect-scope questions remain under their class IDs.",
      "implementation": "Close the stale conflict list; preserve its reversal and raw-table/version distinction. Do not regenerate current trees from the older extraction JSON or blindly restore the pre-patch node coordinates.",
      "sources": [
        "docs/talent-check-2026-09-17.md",
        "docs/talent-values-2026-09-17.md",
        "ui/core/talents/trees/warrior.json",
        "ui/core/talents/trees/shaman.json",
        "ui/core/talents/trees/druid.json",
        "ui/core/talents/trees/rogue.json",
        "ui/core/talents/trees/hunter.json",
        "ui/core/talents/trees/warlock.json",
        "sim/core/forever_talent_tree_test.go",
        "https://us.forums.blizzard.com/en/wow/t/wow-forever-beta-development-notes-%E2%80%93-updated-september-24/2360696"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "SCEN-001": {
      "disposition": "model-choice",
      "confidence": "high",
      "answer": "The incoming-damage and healing values are explicit controlled workloads, not claims about a known raid boss. The single workload is 300 seconds with one 3000-base/2-second attacker and 1500 external HPS; the multi workload is 90 seconds with three 1500-base/2-second attackers and 2500 HPS. There is no unique game-mechanics experiment that can prove these are the representative encounter.",
      "remaining": "Which workloads are useful comparisons, and future measured encounter inputs.",
      "implementation": "Keep exact requests and per-target threat/survival outputs. Older tables in the original tank document describe superseded models; current request artifacts are authoritative.",
      "sources": [
        "tools/forever_tanks/main.go",
        "artifacts/tank_support/validation.json",
        "artifacts/protection_sunder/validation.json",
        "docs/tank_benchmark.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A chosen workload or credible raid-log encounter specification.",
          "measure": "Change damage/healing assumptions as a separately labeled scenario and compare matched inputs, rather than silently redefining the tank benchmark."
        }
      ],
      "proposed_status": "model-choice"
    },
    "SCEN-002": {
      "disposition": "model-choice",
      "confidence": "high",
      "answer": "Non-tanking Life Tap deliberately does not debit health; tanking Life Tap pays the sourced health cost. Death and consumable self-hits are excluded from enemy DPS, while health depletion follows the core's configured survival model. The non-tank benchmark therefore assumes health support; it does not establish sustainable healer burden or survival.",
      "remaining": "Whether to add a finite-healing DPS scenario, not whether self-damage should be counted as boss damage.",
      "implementation": "Expose the health-support abstraction and preserve self-damage accounting. A constrained healer budget would be a new scenario and could alter resource-limited rotations.",
      "sources": [
        "sim/warlock/lifetap.go",
        "sim/priest/shadow_word_death.go",
        "docs/upstream_elliot_review.md",
        "docs/forever-70009.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "An explicit incoming-damage/healer-resource model and failure condition for non-tanks.",
          "measure": "Compare paid health, effective healing, overheal and deaths separately from outgoing enemy damage."
        }
      ],
      "proposed_status": "model-choice"
    },
    "SCEN-003": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "This is an APL capability gap, not unknown game behavior. The available unit references do not provide a lowest-threat target selector. Saved multi-target tank results demonstrate why total TPS cannot substitute for the weakest add's threat.",
      "remaining": "Explicit target selection/cycling with target-local debuffs and threat coverage.",
      "implementation": "Define a selector policy and use target-specific state; preserve self-maintained Sunder on the intended target. Do not infer raid aggro control solely from one player's total threat.",
      "sources": [
        "proto/apl.proto",
        "sim/core/apl_helpers.go",
        "artifacts/protection_sunder/validation.json",
        "docs/tank_benchmark.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A three-target fixture with deliberately unequal per-target threat and debuff durations.",
          "measure": "Check selection, switching, maintenance and minimum target TPS; ensure current-target lookups do not accidentally read the first target's aura."
        }
      ],
      "proposed_status": "needs-code"
    },
    "SCEN-004": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "No new complete gear/talent selection was performed after the queue and shared-support corrections. Current tank results are fixed-loadout correctness replays; the invalid direct-cast Warrior search and unequal-support selection controls remain superseded. This is known workflow scope, not an unanswered game mechanic.",
      "remaining": "A separately scoped tank-selection campaign under current mechanics, if requested.",
      "implementation": "Do not call fixed corrected loadouts an optimum. Future selection must use current support, legal queued attacks, both workloads and disjoint confirmation ranges.",
      "sources": [
        "docs/protection_queue.md",
        "docs/tank_selection.md",
        "docs/tank_support.md",
        "artifacts/tanks/shared_support_controls.json",
        "tools/forever_bench/tank_search.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "An authorized selection pass with current frozen controls and survival/threat constraints.",
          "measure": "Retain only validated gains under corrected mechanics; do not compare against historical invalid controls."
        }
      ],
      "proposed_status": "needs-code",
      "related": [
        "SCEN-016"
      ]
    },
    "SCEN-005": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Delivered damage now depletes finite all-school absorb pools after mitigation; dry damage probes do not consume them. Native/web metrics distinguish generated, absorbed and unused shielding. Bulwark probe isolation and delivery controls pass.",
      "remaining": "Shielding threat and overlap priority remain unresolved; application-order consumption is an explicit simulator convention. This is not a school-filtered shield or complete heal/absorb engine.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/core/shield.go",
        "sim/paladin/templars_bulwark.go",
        "docs/weekly_review.md",
        "sim/core/spell_result.go",
        "proto/api.proto"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A shield with a sourced amount/duration and sequential controlled incoming hits.",
          "measure": "Verify partial and full consumption, expiry, overwrites and ordering without converting unconsumed capacity into effective healing."
        },
        {
          "stage": "current-beta",
          "requires": "Priest with Power Word: Shield, a cooperating player and a controlled hostile target with threat observation.",
          "measure": "Separate threat on shield application, actual absorption and unused expiry; do not attribute incidental healing or damage threat to the shield."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Delivered damage now depletes finite all-school absorb pools after mitigation; dry damage probes do not consume them. Native/web metrics distinguish generated, absorbed and unused shielding. Bulwark probe isolation and delivery controls pass."
      }
    },
    "SCEN-008": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "Hellfire and Chastise are specific supported missing damage families, not evidence that all unregistered database records are player spells. Chastise's Humanoid-only restriction prevents use on the Dragonkin reference target. Hellfire requires a different range/AoE scenario than the current 20-yard Warlock profiles. Mage area spells are already present.",
      "remaining": "Optional in-range/appropriate-target implementations and refreshed inventory dispositions; current simulated tank mitigation must not be inferred from absent reactive utility.",
      "implementation": "Implement sourced ranks, costs, channels and restrictions when their scenario is supported. Leave unproven acquisition records under DATA-013 rather than adopting them as missing abilities.",
      "sources": [
        "docs/spell_coverage.md",
        "assets/spell_coverage_dispositions.json",
        "sim/mage/frost_area.go",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current Hellfire/Chastise effect chains and explicit in-range or Humanoid targets.",
          "measure": "Verify enemy versus self-damage, rank availability, target restrictions and range; the present Dragonkin/20-yard controls must not gain free damage."
        }
      ],
      "proposed_status": "needs-code",
      "related": [
        "DATA-013"
      ]
    },
    "SCEN-010": {
      "disposition": "model-choice",
      "confidence": "high",
      "answer": "The three sensitivity scenarios already have a precise mathematical interpretation. Tier-off removes the role override, and +10%/+50% multiply item stats and weapon damage while keeping other inputs fixed. Amplification divides the equal-race-weight +50% gain by five times the +10% gain; it rejects negligible/noisy/nonpositive denominators. This measures finite-range curvature, not isolated synergy or exponential growth.",
      "remaining": "These controlled scenarios do not forecast future loot mixtures, cap changes, proc gear or reoptimized rotations.",
      "implementation": "Retain paired requests and hash-checked baseline association. A new gearing distribution is a new scenario, not a reinterpretation of the current column.",
      "sources": [
        "tools/forever_bench/sensitivity.py",
        "docs/forever_tier1.md",
        "docs/modelled_gear.md",
        "sim/core/equipment_scaling_test.go"
      ],
      "tests": [],
      "proposed_status": "model-choice"
    },
    "SCEN-011": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Blizzard explicitly supports Windfury Totem benefits in Cat/Bear forms. Form eligibility is implemented; this does not establish every proc amount/charge rule, which remains under PAL-003.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "docs/forever-70009.md",
        "sim/core/buffs.go",
        "https://us.forums.blizzard.com/en/wow/t/wow-forever-beta-development-notes-%E2%80%93-updated-september-24/2360696",
        "https://news.blizzard.com/en-us/article/24301515/world-of-warcraft-forever-class-deep-dives-hunter-and-druid"
      ],
      "tests": [],
      "related": [
        "DRU-011"
      ],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Blizzard explicitly supports Windfury Totem benefits in Cat/Bear forms. Form eligibility is implemented; this does not establish every proc amount/charge rule, which remains under PAL-003."
      }
    },
    "SCEN-012": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "This catch-all mixes optional encounter support with already separately tracked effects. The stationary benchmarks have no interruptible casts, taunt swaps or moving enemies. Counterspell/Feint control behavior is therefore not a blocking uncertainty for them. Pet Screech's omitted AP reduction is a specific sourced implementation gap under HUN-009, not something to lose inside this umbrella.",
      "remaining": "Utility encounter support when those actors and events are introduced; exact current threat/accounting defects remain active under narrower IDs.",
      "implementation": "Use explicit per-effect tasks instead of a permanent 'tank completeness' question. Hurricane slow requires a channeling Druid in range; it is not a free raid debuff.",
      "sources": [
        "docs/beta-pass/druid.md",
        "sim/mage/counterspell.go",
        "sim/core/target.go",
        "docs/tank_benchmark.md"
      ],
      "tests": [],
      "related": [
        "HUN-009",
        "SCEN-003",
        "ROG-006"
      ],
      "proposed_status": "out-of-scope"
    },
    "SCEN-013": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Owned Power Infusion can target a selected friendly unit. Omitted target defaults to self; explicitly unassigned disables it. The magic-damage/healing bonus and mana reduction do not stack with another PI provider. Native target and overlap checks pass.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/priest/power_infusion.go",
        "sim/core/buffs.go",
        "docs/beta-pass/priest.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Owned Power Infusion can target a selected friendly unit. Omitted target defaults to self; explicitly unassigned disables it. The magic-damage/healing bonus and mana reduction do not stack with another PI provider. Native target and overlap checks pass."
      }
    },
    "SCEN-014": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Five reproduced legacy metadata checks now pass: current sourced rank fixtures, declaration-order talent mapping, legal selectable presets, the review-portal landing redirect and current fallback-menu names. The same check uncovered and corrected the real Hunter Careful Aim/Lethal Attacks decode swap. This is not a claim that every inherited suite or unsupported healer scenario is complete.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        ".github/workflows/deploy.yml",
        "sim/confirmed_talents_test.go",
        "sim/talents_test.go",
        "sim/core/simsignals/api_test.go",
        "sim/paladin/paladin.go",
        "ui/elemental_shaman/presets.ts",
        "artifacts/question_review/scenario_data_evidence.json",
        "proto/hunter.proto",
        "ui/core/community_builds.ts",
        "ui/holy_paladin/presets.ts"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Five reproduced legacy metadata checks now pass: current sourced rank fixtures, declaration-order talent mapping, legal selectable presets, the review-portal landing redirect and current fallback-menu names. The same check uncovered and corrected the real Hunter Careful Aim/Lethal Attacks decode swap. This is not a claim that every inherited suite or unsupported healer scenario is complete."
      }
    },
    "SCEN-015": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The shared support definition and all 17 tank profiles contain the intended common support, preserving self-maintained duties. Paladin's supported oil and primary Titans flask are present. This question is closed; overlapping historical confirmations concern statistical independence, not whether those request fields exist.",
      "remaining": "No new tank-support discrepancy identified here. DPS Improved Imp/Blood Pact is a separate issue and not selected by these tanks.",
      "implementation": "Retain exact support/default regressions; do not reopen solved request plumbing because a different mechanic remains uncertain.",
      "sources": [
        "sim/core/forever_tank_support.json",
        "docs/tank_support.md",
        "artifacts/tank_support/validation.json"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "SCEN-016",
        "SCEN-006"
      ]
    },
    "SCEN-016": {
      "disposition": "partial",
      "confidence": "moderate",
      "proposed_priority": "high",
      "answer": "New validation guards compare complete iteration-seed intervals, not only distinct starting seeds. Historical overlapping cohorts retain raw means and requests but must not be called independent; conservative interval qualification is implemented locally.",
      "remaining": "Regenerate affected historical summary qualifications and verify every retained public interval label before closing the integration work.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/core/sim.go",
        "tools/forever_bench/validate_gear.py",
        "artifacts/question_review/seed_ranges.json",
        "artifacts/protection_sunder/validation.json",
        "docs/protection_sunder.md",
        "tools/forever_bench/seed_intervals.py"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Saved requests/iteration counts and the explicit seed-range inventory.",
          "measure": "Reject overlap within claimed independent replications. Recalculate uncertainty from unique iterations where available, or repeat only material decisions with disjoint ranges; do not rewrite archived raw evidence."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "New validation guards compare complete iteration-seed intervals, not only distinct starting seeds. Historical overlapping cohorts retain raw means and requests but must not be called independent; conservative interval qualification is implemented locally."
      }
    },
    "DONE-001": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The generic healing-to-damage fallback is absent from current equipment compilation. Hybrid healing/damage effects retain separate sourced values, including enchants and supported set effects.",
      "remaining": "Only item-specific contradictory evidence would reopen this question.",
      "implementation": "No blanket conversion or stripping of legitimate hybrid bonuses is warranted.",
      "sources": [
        "tools/database/compile_forever_equipment.py",
        "tools/database/import_forever_effect_audit.py",
        "docs/forever_gear_data.md",
        "tools/forever_bench/enchants_test.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-002": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Hot Streak is consumed by completed Pyroblast and Clearcasting consumption checks underlying paid cost. The old permanent-proc defects are not present in current code.",
      "remaining": "Proc ordering and in-flight edge cases are narrower MAG-004/MAG-005 questions, not the same fixed bug.",
      "implementation": "Keep the existing consumption regressions; do not preserve Hot Streak indefinitely to increase Fire damage.",
      "sources": [
        "sim/mage/talents.go",
        "tools/forever_bench/mage_test.go",
        "docs/mechanics_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "MAG-004",
        "MAG-005"
      ]
    },
    "DONE-003": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "All four learned Death ranks and Early Demise are registered. Penance has an immediate first bolt and two subsequent one-second intervals before its channel modifiers; the timing regression covers the immediate bolt.",
      "remaining": "Death's separate backlash/server-script and talent-scope questions remain in their active Priest entries.",
      "implementation": "Do not reopen the missing-spell or evenly-spaced-Penance defects.",
      "sources": [
        "sim/priest/shadow_word_death.go",
        "sim/priest/talents.go",
        "sim/priest/penance.go",
        "tools/forever_bench/priest_death_test.go",
        "tools/forever_bench/channel_haste_test.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-004": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Current Mage Armor uses its supported casting-regeneration effect. Innervate's extra regeneration is separately accounted, and its external activation threshold considers expected regeneration/missing mana rather than a fixed 85% gate.",
      "remaining": "The optional MP5 interpretation and any future source-specific regeneration correction are separate questions.",
      "implementation": "Preserve the repaired default mode; an assumed fivefold MP5 mode is not required to fix Innervate.",
      "sources": [
        "sim/mage/armors.go",
        "sim/core/buffs.go",
        "sim/core/mana_regen_test.go",
        "tools/forever_bench/mage_armor_test.go",
        "docs/mana_regeneration.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-005": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The raid crit auras share one global benefit; incompatible air buffs are exclusive. Windfury Weapon is Shaman-only, and nonweapon/empty slots do not receive weapon imbues. The current checks cover these configuration rules.",
      "remaining": "Windfury's detailed attack resolution and animal-form eligibility remain separate evidence questions.",
      "implementation": "No second crit-aura benefit or non-Shaman weapon proc should be reintroduced.",
      "sources": [
        "sim/core/buffs.go",
        "sim/core/equipment_validation.go",
        "sim/core/forever_consumes_test.go",
        "tools/forever_bench/crit_aura_test.go",
        "docs/forever-70009.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-006": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Druid armor ceilings are enforced natively, shield base Block is imported, active Shield Block recasts replenish charges, and Bulwark consumes a finite eight-second pool instead of granting unlimited reduction.",
      "remaining": "The generic Shield helper and other unimplemented tank effects are separate from these corrected paths.",
      "implementation": "Preserve armor legality and finite-pool regressions; do not equate the remaining generic-shield gap with a broken Bulwark.",
      "sources": [
        "sim/core/equipment_validation.go",
        "sim/warrior/shield_block.go",
        "sim/paladin/templars_bulwark.go",
        "tools/forever_bench/warrior_shields_test.go",
        "docs/weekly_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "SCEN-005"
      ]
    },
    "DONE-007": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Life Tap uses the sourced Spirit conversion with mana-only Tier multiplication; Moonfury affects full Arcane/Nature damage; the explicit Demonic Knowledge and Focused Fire pet effects are present. These are distinct from unresolved general pet-inheritance coefficients.",
      "remaining": "No reversal of these supported corrections; Imp-specific new findings are tracked separately.",
      "implementation": "Keep the existing class-effect regressions and provider lifecycle checks.",
      "sources": [
        "sim/warlock/lifetap.go",
        "sim/druid/talents.go",
        "tools/forever_bench/upstream_followup_test.go",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-008": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The no-Pact sacrifice coexistence lead was disproved by the full reset/enable sequence and zero combat benefit. Reading only owner Reset was incomplete.",
      "remaining": "None for that alleged defect.",
      "implementation": "Keep the retraction and do not add a redundant behavior-changing guard based on the old partial trace.",
      "sources": [
        "sim/warlock/warlock.go",
        "sim/warlock/pet.go",
        "docs/mythicsim_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-009": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The unsupported Lightning Shield personal-timer reset was removed. The shared shock timer had already prevented a demonstrated extra Earth Shock, so the historical finding is not evidence of a former large DPS exploit.",
      "remaining": "Normal Maelstrom and shield behavior have separate questions.",
      "implementation": "Retain the real-cast/shared-cooldown regression and the qualified historical account.",
      "sources": [
        "sim/shaman/lightning_shield.go",
        "docs/mythicsim_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-010": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Seal of Command's personal SP contribution already passes through its 0.7 damage multiplier. The upstream placement change therefore does not establish an omitted multiplier here. Target Holy bonus is a separate later calculation.",
      "remaining": "Independent seal trigger/scaling questions do not justify multiplying personal SP by 0.7 twice.",
      "implementation": "No correction to this traced multiplier-placement claim.",
      "sources": [
        "sim/paladin/soc.go",
        "sim/core/spell_result.go",
        "docs/upstream-forever-followup-2026-09-23.md",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-011": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The ranked Mage area spells and owned Mana Tide cast/pulses are implemented. Mage damage checks use ten-yard proximity and do not grant boss roots/Shatter; Mana Tide replaces the relevant water effect.",
      "remaining": "Owned Mana Spring and movement/control geometry are distinct gaps.",
      "implementation": "Do not retain these completed spell additions in the unresolved queue.",
      "sources": [
        "sim/mage/frost_area.go",
        "sim/shaman/water_totems.go",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-012": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Removed/unavailable choices are excluded from supported defaults and legality checks. Retained legacy records do not make Sanctity, Molten Armor, Cat Mangle, raid campfire effects or Shaman dual wield valid.",
      "remaining": "A specific current acquisition source is required to reopen an availability exclusion.",
      "implementation": "Keep exclusions explicit rather than reactivating a spell from its name or old ID.",
      "sources": [
        "docs/mechanics_review.md",
        "docs/forever-70009.md",
        "docs/spell_coverage.md",
        "sim/core/equipment_validation.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DONE-013": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Self-target damage does not contribute to enemy DPS/threat. Demonic Rune and Sapper retain their self-cost/resource behavior under the configured health model.",
      "remaining": "Finite non-tank healing support is a scenario question, not an unresolved DPS aggregation bug.",
      "implementation": "Preserve the enemy/self-target accounting regression and the health-support qualification.",
      "sources": [
        "sim/core/spell_result.go",
        "docs/forever-70009.md",
        "docs/weekly_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "SCEN-002"
      ]
    },
    "DONE-014": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Expose Prey's current attack mask excludes generic trap spell hits. Audited rank families share cooldown timers, and Holy Shield requires an actual shield. These concrete fixes remain present.",
      "remaining": "Mongoose's first incoming-dodge listener and unreviewed utility categories remain separate, narrower tasks.",
      "implementation": "Keep the scoped regressions rather than reopening all Hunter trigger/cooldown behavior.",
      "sources": [
        "tools/forever_bench/hunter_expose_prey_test.go",
        "docs/mechanics_review.md",
        "docs/history_review.md",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "HUN-008"
      ]
    },
    "SCEN-006": {
      "register_update": {
        "title": "Blood Pact talent bonus and pet-provider lifecycle",
        "question": "Does the current Improved Imp talent still increase Blood Pact, and do owned pet transitions update party buffs?",
        "current_model": "Forever Blood Pact uses sourced base Stamina without the inherited talent bonus. Owned Imp support follows pet enable/disable, sacrifice and reset; external support remains independent, party-scoped and non-duplicating. Native lifecycle and initial-health checks pass."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Forever Blood Pact uses sourced base Stamina without the inherited talent bonus. Owned Imp support follows pet enable/disable, sacrifice and reset; external support remains independent, party-scoped and non-duplicating. Native lifecycle and initial-health checks pass.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/warlock/warlock.go",
        "sim/core/buffs.go",
        "tools/forever_bench/blood_pact_test.go",
        "ui/core/components/inputs/buffs_debuffs.ts",
        "https://www.wowhead.com/forever/spell=18694/improved-imp",
        "artifacts/question_review/class_evidence.json",
        "sim/warlock/imp.go"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "WL-006",
        "WL-008"
      ]
    },
    "HUN-004": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The current client explicitly allows two Hawks, supplies a separate summon chain and specifies 5% RAP for the opening dive. One refreshed six-tick DoT cannot represent two independently expiring guardians. The remaining unknown is the sustained guardian attack profile, not whether two summons are permitted.",
      "remaining": "Sustained attacks, inheritance, crit, target switching and replacement of the oldest guardian.",
      "implementation": "Separate the sourced opening hit and two guardian lifetimes from the unmeasured sustained formula. Do not present the current surrogate as a complete implementation or substitute the wiki's differently rendered opening numbers for raw rank values.",
      "sources": [
        "sim/hunter/summon_hawk.go",
        "https://www.wowhead.com/forever/spell=1293241/summon-hawk",
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level 25+ Hunter with Summon Hawk; fixed target, RAP and pet settings.",
          "measure": "Summon once, twice and a third time before expiry. Separate opening damage from each guardian's later events and record despawns. Repeat with different owner RAP/crit without changing the target."
        },
        {
          "stage": "launch",
          "requires": "Higher Hawk ranks and the actual role Tier effects.",
          "measure": "Verify rank progression and Tier interactions after the low-rank guardian model is established."
        }
      ]
    },
    "HUN-007": {
      "disposition": "implementation",
      "confidence": "moderate",
      "answer": "Carrion-only active Screech ranks and AP debuff are corrected locally. Canonical Cats retain Bite/Claw. The complete article-point inventory identifies missing Fox support and unique Bat/Bear/Bird/Boar/Cat/Crab/Crocolisk/Gorilla/Hyena/Raptor/Spider/Tallstrider/Turtle/Wolf abilities; existing Scorpid Poison and Lightning Breath are not new omissions. This does not validate every family’s base stats or damage coefficient.",
      "remaining": "Known pet-family implementation gaps and the exact active rank, cooldown, resource, damage/scaling and family-baseline prerequisites. Dash/Dive movement is immaterial to a stationary uptime benchmark but not implemented travel coverage.",
      "implementation": "Implement a family only after its active spell/rank/effects and baseline can be joined. Do not infer all families from Cats or import NPC/teaching records as player-castable damage spells. Screech is a partial completion, not all-family coverage.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "https://github.com/classic-hunter/forever-hunter/issues/23",
        "https://github.com/classic-hunter/forever-hunter/issues/39",
        "sim/hunter/pet_abilities.go",
        "docs/spell_coverage.md",
        "artifacts/question_review/correctness_followup.json",
        "https://news.blizzard.com/en-us/article/24301515/world-of-warcraft-forever-class-deep-dives-hunter-and-druid"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current family, teaching, child-spell, cost and cooldown records.",
          "measure": "Produce one supported-rank matrix per family and implement only joined learning paths. Separate direct values from scripted behavior."
        },
        {
          "stage": "current-beta",
          "requires": "A family actually tameable by level 20 and its first trained rank.",
          "measure": "Confirm learning, resource cost and damage/cooldown for that family. This does not establish higher-rank availability."
        }
      ],
      "proposed_status": "needs-code"
    },
    "HUN-008": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "An always-active dodge listener can open the first Mongoose Bite window; previously the listener was trapped inside its initially inactive window. The first-dodge regression now passes. The un-attacked reference Hunter does not exercise this trigger.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/hunter/mongoose_bite.go",
        "sim/hunter/talents.go",
        "sim/core/aura.go"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "An always-active dodge listener can open the first Mongoose Bite window; previously the listener was trapped inside its initially inactive window. The first-dodge regression now passes. The un-attacked reference Hunter does not exercise this trigger."
      }
    },
    "HUN-009": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Carrion-only Screech now uses active learned ranks and a separate nearby AP debuff. Sourced level-60 AP reduction is 204; damage, Focus, cooldown, expiry and strongest-effect controls pass. Teaching IDs are not cast IDs.",
      "remaining": "Linked-area avoidance behavior, lower-level rounding and higher-level non-stacking need confirmation. Other pet unique abilities are not completed by Screech.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/hunter/pet_abilities.go",
        "artifacts/question_review/class_evidence.json",
        "https://www.wowhead.com/forever/spell=24579/demoralizing-screech",
        "sim/hunter/demoralizing_screech.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Screech pet and controlled target AP with another AP-reduction provider.",
          "measure": "Check rank-level growth, 30-second expiry, area coverage and strongest-effect handling; verify that disabling the selected pet removes only its effect."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Carrion-only Screech now uses active learned ranks and a separate nearby AP debuff. Sourced level-60 AP reduction is 204; damage, Focus, cooldown, expiry and strongest-effect controls pass. Teaching IDs are not cast IDs."
      }
    },
    "MAG-002": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The current proc records establish charge counts and duration, but not the treatment of a cast already underway when the preceding projectile lands. The code deliberately excludes that cast from Shatter and charge consumption. Neither client flags nor an unrelated expansion's 'ghost charge' behavior establishes that decision for Forever.",
      "remaining": "Cast-start versus impact/consumption ordering.",
      "implementation": "Keep the interpretation disclosed; do not promote it to a verified property of Arcane–Frost.",
      "sources": [
        "sim/mage/talents.go",
        "ui/core/talents/trees/mage.json",
        "https://www.wowhead.com/forever/spell=400647/fingers-of-frost"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level 30, one point in Fingers, Frostbolt and precise cast/impact/aura timestamps.",
          "measure": "Compare waiting for impact with immediately starting the next cast, at short and long range. Count charge removal and Shatter outcomes for the already-started cast."
        },
        {
          "stage": "launch",
          "requires": "Level 31 for the second charge, unless later beta access is announced.",
          "measure": "Repeat with two charges; do not assume the one-charge observation establishes simultaneous refresh behavior."
        }
      ]
    },
    "MAG-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "This should not remain a blanket 'does Frostfire work with talents?' question. The client and existing implementation explicitly include Improved Fireball, Fire/Frost school matching, Hot Streak and the named Missile Barrage/Fingers Tier additions. Improved Frostbolt is not granted as a second cast-time reduction. The unresolved portion is scripted interaction and proc ordering beyond these explicit inclusions.",
      "remaining": "Any claimed interaction without a matching current family mask or named Tier effect, and interactions with unresolved Fingers timing.",
      "implementation": "Keep a per-effect inclusion table rather than retesting all known school/mask matches. Audit exact masks offline before requesting an experiment; do not use old low-rank research as proof of all interactions.",
      "sources": [
        "sim/mage/frostfire_bolt.go",
        "sim/mage/talents.go",
        "docs/forever_tier1.md",
        "docs/build_updates.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current spell-family masks and the individual role Tier descriptions.",
          "measure": "Enumerate each proposed Frostfire modifier and its positive/negative mask match; isolate genuine script-only gaps."
        },
        {
          "stage": "launch",
          "requires": "Frostfire first learned at level 40 and each disputed talent/Tier effect.",
          "measure": "Test only the remaining script interactions independently at full rank with fixed school power."
        }
      ],
      "related": [
        "MAG-002",
        "DATA-001"
      ]
    },
    "MAG-004": {
      "code_ready": "Update Hot Streak's stale 15-second talent description to the sourced 20 seconds already used by the engine.",
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Completed-Pyro consumption is already supported and fixed. The current client child 400625 has one proc charge, three stack capacity and a 20-second duration; the engine's 20 seconds agrees, while the UI's 15-second talent description is stale. Interrupt retention is irrelevant to an uninterrupted reference fight, but an earlier projectile creating a new stack during Pyro can occur there.",
      "remaining": "Whether a newly earned in-flight stack is also consumed; interrupted casts matter only for interruption scenarios.",
      "implementation": "Correct the stale display text separately. Do not undo completed-Pyro consumption or call the narrow ordering question a persistent-Hot-Streak uncertainty.",
      "sources": [
        "sim/mage/talents.go",
        "ui/core/talents/trees/mage.json",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/92",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level 25+ Hot Streak/Pyro build and cast/impact/aura logs.",
          "measure": "Start accelerated Pyro while an earlier Fire projectile is in flight; compare aura stacks at impact and completion. Separately cancel Pyro if interruption support is being evaluated."
        }
      ]
    },
    "MAG-005": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The question combines two access levels. Arcane Concentration and ordinary Arcane Missiles are testable now; Missile Barrage is a level-25 talent and does not require max-level access. Current code excludes Arcane Missiles from the ordinary Clearcasting proc callback and consumes eligible Clearcasting at cast-complete. Client percentages alone do not resolve the channel's proc opportunity or ordering.",
      "remaining": "Whether/how Missiles proc Clearcasting, and consumption when Barrage makes a channel free or another proc arrives during it.",
      "implementation": "Separate channel proc opportunity from the already repaired persistent-Clearcasting bug. Do not infer a Classic 1.5%-per-tick rule from the commented-out code.",
      "sources": [
        "sim/mage/talents.go",
        "sim/mage/arcane_missiles.go",
        "ui/core/talents/trees/mage.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Arcane Concentration, Arcane Missiles and mana/aura/tick logging without other proc talents.",
          "measure": "Cast isolated complete and cancelled channels; count Clearcasting procs and identify whether a pre-existing proc is spent at channel start or completion."
        },
        {
          "stage": "level30",
          "requires": "Level 25+ Missile Barrage, controlled proc state.",
          "measure": "Compare channels with Clearcasting only, Barrage only and both, including a new proc during the channel. Record actual mana debit rather than tooltip cost."
        }
      ]
    },
    "MAG-006": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "The open question is per-target charge handling for one area cast. The current Fire reference is single-target and does not use Flamestrike. The implementation TODO does not establish a defect in that reference DPS result.",
      "remaining": "Multi-target Fire behavior, if a Fire AoE workload is added.",
      "implementation": "Remove this from the current benchmark-blocking queue while retaining it as an explicit AoE coverage limit.",
      "sources": [
        "sim/mage/talents.go",
        "artifacts/forever_input_profiles.json"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level 40 Combustion and a future multi-target Fire scenario.",
          "measure": "Compare aura charge changes for one Flamestrike hitting one versus several enemies; distinguish noncritical hits, critical hits and periodic ticks."
        }
      ],
      "proposed_status": "out-of-scope"
    },
    "PRI-001": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The raw record identifies 150 specifically as effect type 77 (script effect), separate from direct damage and the 10% backlash dummy. It is not a 150% damage modifier in the client effect system. Neither the current tooltip nor the reviewed public evidence supplies its server script.",
      "remaining": "What script 77 does, if anything material beyond the described Death behavior.",
      "implementation": "Continue omitting an invented execute multiplier. This is a concrete script gap, not missing rank/cost/coefficient data.",
      "sources": [
        "sim/priest/shadow_word_death.go",
        "docs/spell_coverage.md",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Death rank one at level 32; fixed SP, talents and target mitigation.",
          "measure": "Compare damage and backlash above/below execute thresholds, lethal/nonlethal hits and cooldown behavior. Subtract ordinary Early Demise and damage-range effects before attributing anything to 150."
        }
      ]
    },
    "PRI-002": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Self-hits are already excluded from enemy DPS. The current unlimited-healing DPS scenario does not rank Priests by surviving their self-costs, so exact backlash mitigation is not a direct DPS multiplier. Dark Sacrifice's actual health-to-mana return still matters to resources and is a distinct, earlier-access test.",
      "remaining": "Self-cost mitigation/absorb/lethality for survival support, and any Dark Sacrifice resource dependence on effective damage.",
      "implementation": "Keep the sourced noncrit/unmodified interpretation as a disclosed model; do not fold self-damage into DPS or dismiss mana-return behavior as immaterial.",
      "sources": [
        "sim/priest/shadow_word_death.go",
        "sim/priest/dark_sacrifice.go",
        "docs/forever-70009.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 Undead Priest with Dark Sacrifice, fixed maximum health and Spirit, uncapped mana, with/without a controlled absorb.",
          "measure": "Record each health and mana delta, then repeat near mana cap and low health. Separate periodic dummy returns from ordinary Spirit regeneration."
        },
        {
          "stage": "launch",
          "requires": "Death at level 32+, and controlled resistance/absorb/damage-reduction states.",
          "measure": "Measure nonlethal, killing-blow and avoided-hit backlash; include lethal self-cost only when evaluating finite-healing survival."
        }
      ],
      "related": [
        "SCEN-002",
        "PRI-001"
      ]
    },
    "PRI-004": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Blizzard's official Deep Dive recap explicitly says Divine Spirit, Blessing of Kings and Improved Mark of the Wild are baseline. This resolves intended Divine Spirit availability without requiring a future trainer screenshot. Current client ranks separately give 17/23/33/40 Spirit at levels 30/40/50/60.",
      "remaining": "A live trainer omission would be a beta implementation bug, not evidence that a Discipline talent is required.",
      "implementation": "Retain the sourced external 40 Spirit at level 60. Close the general availability question; do not retain obsolete improvement talents or add their multiplier again.",
      "sources": [
        "https://news.blizzard.com/en-us/article/24303313/world-of-warcraft-forever-deep-dive-panel-recap",
        "sim/core/buffs.go",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "ROG-001": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Cold Blood's current family modifier covers the Mutilate family and has one proc charge; Mutilate dispatches two child attacks. That establishes eligibility but not whether the server holds the guaranteed crit for both children before consuming it. The off-hand's weapon-plus-flat ordering likewise cannot be established from a parent dummy description alone.",
      "remaining": "Paired-child charge consumption and off-hand flat-component penalty.",
      "implementation": "Keep the current MH-only Cold Blood interpretation disclosed. Do not use an inherited expansion's paired-strike behavior as a Forever answer.",
      "sources": [
        "sim/rogue/mutilate.go",
        "sim/rogue/talents.go",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level 30 Mutilate/Cold Blood allocation, two known daggers, fixed AP and target armor.",
          "measure": "Record both child hit/crit outcomes with and without Cold Blood. Swap hand placements and vary AP independently to distinguish flat bonus from weapon contribution."
        },
        {
          "stage": "launch",
          "requires": "Higher Mutilate ranks.",
          "measure": "Verify that the higher flat component follows the low-rank ordering; do not repeat already settled proc timing unless a patch changes it."
        }
      ]
    },
    "ROG-003": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "Charge counts are available: current top-rank Instant and Deadly give 175 and 180. Existing 300-second results average at most 92.29 Instant attempts and 96.05 Deadly applications across the three Rogue builds/races. That is substantial headroom, not a proof that no individual long or unusually fast fight can deplete a coating.",
      "remaining": "Per-iteration tails, per-hand attribution and reapplication behavior for long fights.",
      "implementation": "Lower the immediate benchmark priority. Charge depletion is an offline accounting task with known limits; it does not require launch access to begin. Count poison applications, not Deadly tick events.",
      "sources": [
        "sim/rogue/poisons.go",
        "artifacts/forever_dps_5min.json",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Per-hand application counters and current coating limits.",
          "measure": "Record per-iteration maxima for baseline and fastest sensitivity scenarios; add finite charges/reapplication before claiming coverage of arbitrarily long encounters."
        },
        {
          "stage": "current-beta",
          "requires": "A low-rank finite coating and combat/charge logging.",
          "measure": "Only if consumption semantics remain unclear: distinguish eligible weapon swings, proc attempts and landed poison hits, including resisted applications."
        }
      ],
      "proposed_status": "needs-code"
    },
    "ROG-004": {
      "disposition": "source-gap",
      "confidence": "low",
      "answer": "Current spell/item records establish Deadly Poison V's existence and values, not its obtainable recipe. The public item page still carries older damage/charge text and is not a current trainer or loot-source confirmation. Normalized equipment does not settle spell acquisition.",
      "remaining": "A current trainer, vendor, recipe or loot source for rank five in the allowed content.",
      "implementation": "Retain the availability caveat rather than treating the item database as a learning path. Resolve through source data first; if unavailable at launch, use the highest actually learnable rank.",
      "sources": [
        "https://www.wowhead.com/forever/item=20844/deadly-poison-v",
        "sim/rogue/poisons.go",
        "docs/check_dispositions.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current trainer/vendor/recipe or loot-source export.",
          "measure": "Join the learned recipe to an obtainable source; distinguish the crafted poison item from its recipe."
        },
        {
          "stage": "launch",
          "requires": "Level-60 Rogue and relevant trainer/vendor/content access if no source export resolves it first.",
          "measure": "Confirm acquisition without an unavailable raid book and record the obtainable rank."
        }
      ]
    },
    "ROG-005": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The 200-ms ICD is explicitly present in SpellAuraOptions for both parent 13960 and triggered aura 1290312. It is no longer merely an inherited assumption. Dagger/fist and mace child auras also have equipped-weapon masks; those masks do not alone settle every mixed-hand, character-wide application.",
      "remaining": "Mixed-hand crit and armor-ignore scope, not the sourced ICD.",
      "implementation": "Retain the 200-ms gate. Narrow the experiment to mixed weapons and any observed contradiction; do not spend a large sample re-estimating a value already supplied by the current client.",
      "sources": [
        "sim/rogue/hack_and_slash.go",
        "artifacts/question_review/class_evidence.json",
        "https://www.wowhead.com/forever/spell=1290312/hack-and-slash"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "One point in Hack and Slash at level 30; matched dagger/fist, mace and sword pairs.",
          "measure": "Swap MH/OH placement. Compare each hand's crit and armor-sensitive damage, plus a non-weapon spell control; separate a displayed character-sheet bonus from hand-specific outcomes."
        },
        {
          "stage": "launch",
          "requires": "Level 34 for all five ranks, if no expanded beta access.",
          "measure": "Verify full-rank magnitude only if the one-point hand-scope test leaves nonlinear behavior unresolved."
        }
      ]
    },
    "ROG-006": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "These are known missing implementations, not unknown game rules. Current Rogue damage requests do not use Feint or intentionally hold prepull Premeditation points past their expiry; their damage ranking is not threat-limited. Neither omission presently explains the benchmark order.",
      "remaining": "Temporary-point expiry and Feint's negative threat for future long-idle or threat-constrained setups.",
      "implementation": "Retain both in the implementation backlog, outside the current in-game test queue. A Feint implementation also needs to avoid granting damage-proc eligibility merely because its placeholder uses a melee proc mask.",
      "sources": [
        "sim/rogue/premeditation.go",
        "sim/rogue/feint.go",
        "artifacts/forever_input_profiles.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Temporary CP ownership/expiry and explicit threat accounting.",
          "measure": "Verify spending before expiry, expiration without erasing unrelated points, target/reset behavior and an actual threat decrease from Feint without damage/proc inflation."
        }
      ],
      "proposed_status": "out-of-scope"
    },
    "ROG-007": {
      "disposition": "experiment",
      "confidence": "moderate",
      "answer": "The code path does reapply ordinary modifiers: it removes only the first target's resistance multiplier from copied damage, then passes that value through another normal damage calculation. The current client parent is a proc aura and does not supply a copied-damage formula. This identifies the risk precisely but does not establish the intended server exception. One-target reference results never exercise the copy.",
      "remaining": "Which attacker and target multipliers belong on the copied hit.",
      "implementation": "Do not claim a verified correction from the TODO alone. Keep the question in two-target Rogue coverage, not as a blocker for single-target results.",
      "sources": [
        "sim/rogue/talents.go",
        "sim/core/spell_result.go",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level-30 Blade Flurry, two controlled targets and a removable damage modifier.",
          "measure": "Compare primary and copied hits against equal and different armor. Toggle one attacker modifier and one target modifier separately; compare ratios rather than unrelated DPS totals."
        }
      ]
    },
    "SHA-003": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "Following the actual enchant chain resolves the cooldown: Windfury enchants 283/284/525/1669 point to aura 439431, whose current ProcCategoryRecovery is 1500 ms and ProcChance is 20. Its effect is a server dummy. Looking only at legacy extra-attack spell 8233 would miss that active path. The one-and-a-half-second ICD is supported; the yellow-versus-white resolution remains unmeasured.",
      "remaining": "The dummy's generated attack outcome table, swing timing, recursion and rank/AP routing.",
      "implementation": "Retain the sourced chance and ICD. Keep special-attack resolution qualified; neither blindly restore Classic white attacks nor cite a SoD resemblance as proof.",
      "sources": [
        "sim/shaman/windfury_weapon.go",
        "https://www.wowhead.com/forever/spell=439431/windfury-weapon",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level-30 Windfury Weapon, a known two-handed or one-handed MH weapon, no other extra-attack effect.",
          "measure": "Record the proc's two damage events, misses/crits/glances, regular swing timing and proc spacing. Change AP independently and keep the initial rank distinct from its max-scaled tooltip."
        },
        {
          "stage": "launch",
          "requires": "Later imbue ranks and the actual Windfury Totem provider.",
          "measure": "Confirm rank/AP routing and that an own Windfury weapon excludes the separate Totem benefit."
        }
      ]
    },
    "SHA-004": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "This is a provider-model gap with available rank data. Owned Windfury currently creates a tracking aura rather than the rank-correct functional buff; owned Mana Spring likewise does not supply its recorded regeneration. External raid settings are a separate source and must not be silently replaced or duplicated.",
      "remaining": "An implementation that tracks owned versus external providers and their expiry/replacement independently.",
      "implementation": "Use shared functional buff implementations with provider ownership, current ranks and exclusive categories. Preserve externally supplied reference support; do not grant both Windfury and Grace merely because one source is an APL totem.",
      "sources": [
        "sim/shaman/air_totems.go",
        "sim/shaman/water_totems.go",
        "sim/core/buffs.go",
        "docs/upstream_elliot_review.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Owned low/high-rank totems plus independent external providers.",
          "measure": "Check actual stats/resource returns, replacement, expiry and recall. Removing an owned provider must not delete a surviving external provider or leave its own effect permanent."
        }
      ],
      "proposed_status": "needs-code"
    },
    "SHA-005": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "The unresolved issue is threat ownership, not Nova damage or its owned-Fire-totem requirement. No current Shaman tank row is ranked, and stationary Shaman DPS has no aggro constraint. Changing ownership would not alter that damage comparison.",
      "remaining": "Threat attribution for a future Shaman tank or aggro-constrained workload.",
      "implementation": "Keep the limitation visible but remove it from the current DPS-blocking queue. Do not change the verified live-totem requirement.",
      "sources": [
        "sim/shaman/fire_totems.go",
        "artifacts/forever_input_profiles.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Fire Nova and a live Fire totem, an isolated enemy and a threat API observer.",
          "measure": "When threat-constrained support is needed, measure owner and totem threat before/after Nova with no other damage; repeat after totem replacement."
        }
      ],
      "proposed_status": "out-of-scope"
    },
    "WL-001": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Description variables explicitly provide the level term and 0.078 school-power term; child records are always-hit Fire and Shadow spells. Those records do not specify whose runtime power the script reads, an exact 3x threat multiplier or a blanket cannot-crit flag. The model's unconditional noncrit and 3x threat remain interpretations, not extracted constants.",
      "remaining": "Owner-versus-demon power source, crit eligibility and actual threat/attribution.",
      "implementation": "Keep the sourced formula separate from its runtime context. Do not require max-level access for the first useful test: Brand is available from level 25.",
      "sources": [
        "sim/warlock/talents.go",
        "https://www.wowhead.com/forever/spell=1293697/demonic-brand",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Level 25+ Brand, Imp and a melee demon, controlled owner school power and pet modifiers.",
          "measure": "Separate normal pet attacks from Brand events. Vary owner power, record Brand crits and threat, and test a second target without a Brand."
        },
        {
          "stage": "launch",
          "requires": "Max-level pet ranks and relevant Tier effects.",
          "measure": "Verify the level extrapolation and Tier interactions rather than rediscovering the basic power owner."
        }
      ]
    },
    "WL-002": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The current client encodes the Immolate bonus as a 25-valued dummy, not a standard final-damage multiplier. The engine multiplies only the random base before adding SP. The public tooltip repeats the bonus but does not resolve that ordering; no controlled Forever result was found in the reviewed public sources.",
      "remaining": "Base-only versus full-hit multiplier.",
      "implementation": "Do not import another expansion's formula. A two-SP-level comparison can settle this directly.",
      "sources": [
        "sim/warlock/incinerate.go",
        "https://www.wowhead.com/forever/spell=412758/incinerate",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-40 Incinerate and two known SP totals on the same target.",
          "measure": "Measure with/without Immolate at each SP total. Compare the slopes, not just one tooltip-range average; retain identical damage talents and mitigation."
        }
      ]
    },
    "WL-003": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Wrack amplification is confined to the caster’s sourced Corruption/Curse of Agony family; unrelated or another owner’s DoTs do not gain the modifier. Native ownership, family and cancellation controls pass; learn-level metadata is 40.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/warlock/wrack.go",
        "https://www.wowhead.com/forever/spell=1316697/wrack",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Wrack amplification is confined to the caster’s sourced Corruption/Curse of Agony family; unrelated or another owner’s DoTs do not gain the modifier. Native ownership, family and cancellation controls pass; learn-level metadata is 40."
      }
    },
    "WL-004": {
      "disposition": "credible-answer",
      "confidence": "moderate",
      "answer": "The captured effect uses school mask 36, explicitly Fire plus Shadow, and the implementation follows it. This is a defensible data-led answer despite narrower prose; no current saved profile selects Spellstone. A stale pre-Forever off-hand Spellstone page is not evidence against the new weapon enchant.",
      "remaining": "Only a contrary server observation or later corrected effect would require reopening the selected mask.",
      "implementation": "Retain the client mask and document the tooltip conflict. Remove this from the required benchmark experiment queue rather than waiting for launch to approve a sourced optional effect.",
      "sources": [
        "sim/warlock/talents.go",
        "docs/history_review.md",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "WL-005": {
      "disposition": "source-gap",
      "confidence": "moderate",
      "answer": "Fel Armor 403619 survives as a rune-era spell/skill record, but no verified ordinary learning path was found. Current public spellbook coverage instead lists Demon Armor. The absence of a known source is not proof that Fel Armor can never be added, but it is sufficient reason not to grant it in this benchmark.",
      "remaining": "A new verified Forever acquisition path, if one appears.",
      "implementation": "Keep it excluded and the duplicate selector removed. Move this to a source-watch list, not a mandatory launch experiment for every Warlock.",
      "sources": [
        "docs/history_review.md",
        "docs/spell_coverage.md",
        "sim/warlock/warlock.go",
        "https://www.warcrafttavern.com/forever/guides/warlock/"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A current trainer/quest/skill-path source identifying this spell, not just a same-name retained row.",
          "measure": "Reopen only when that acquisition chain exists; then verify effects and exclusivity before adding a selectable option."
        }
      ]
    },
    "WL-006": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The active trait does contain the -300/-700/-1000 dummy, but neither current prose nor effect type identifies its script. It cannot be safely converted into cast-time milliseconds. Separately, the documented Firebolt bonus is a normal damage modifier, while the code scales only base damage; that distinct implementation issue is recorded as WL-008.",
      "remaining": "The dummy's actual effect and the live Imp's cast/recast behavior.",
      "implementation": "Do not invent a cast-speed change from the negative numbers. Keep the documented damage-scope correction separate from this unresolved script.",
      "sources": [
        "sim/warlock/imp.go",
        "https://www.wowhead.com/forever/spell=18694/improved-imp",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "A live Imp, ranks 0/1/2/3 of Improved Imp, fixed owner/pet haste and mana.",
          "measure": "Record Firebolt cast start/end and the interval before the next cast. Distinguish a shorter cast from removal of the engine's artificial 200-ms recast delay."
        }
      ],
      "related": [
        "WL-008"
      ]
    },
    "WL-007": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "Finite shards and qualifying kills are absent engine resources/events, not an unknown damage coefficient. Current reference comparisons effectively assume adequate starting shards and do not model add kills or repeated resummon depletion. That assumption can be made explicit without a live raid test.",
      "remaining": "Inventory bounds and kill/refund events for shard-constrained or resummoning scenarios.",
      "implementation": "First count shard-spending casts in saved profiles against a declared starting inventory. Add costs/refunds before claiming long-fight or repeated-summon support; do not derive free shards from a target that never dies.",
      "sources": [
        "sim/warlock/warlock.go",
        "docs/beta-pass/warlock.md",
        "https://www.warcrafttavern.com/forever/guides/warlock/"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Declared starting shards and sourced per-spell reagent/refund rules.",
          "measure": "Check inventory conservation, cast eligibility at zero, reset and exact qualifying kill events; keep assumed unlimited-shard reference results clearly labeled."
        }
      ],
      "proposed_status": "needs-code"
    },
    "CORE-001": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The updated attack-table issue now includes initial +3-level results consistent with the Classic table. Its proposed percentages and sample-size plan are not a completed level-63 test. The report explicitly excludes currently broken glancing damage.",
      "remaining": "Boss-level tables, suppression and glancing damage after the beta fix.",
      "implementation": "Do not tune to the acknowledged glancing-damage bug or treat the issue's hypothetical table as measured coefficients.",
      "sources": [
        "https://github.com/magey/forever-warrior/issues/1",
        "sim/core/attack.go",
        "sim/core/spell_result.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Known skill/hit, an equal-level and a +3-level target, recorded facing.",
          "measure": "Count white/special/ranged outcomes separately; compare queued and unqueued attacks. This supplies a low-level table, not a level-63 certification."
        },
        {
          "stage": "launch",
          "requires": "Level-60 characters and level-63 targets on a build without the known glancing defect.",
          "measure": "Repeat outcome and crit-suppression counts; compare damage of glances with ordinary hits at fixed AP."
        }
      ]
    },
    "CORE-002": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "PowerType establishes the base 10 Energy/sec, not the haste coefficient. The previously analyzed 1% sample spans both 10 and 10.1/sec within endpoint quantization error. No new controlled source in the reviewed issue collections settles the distinction.",
      "remaining": "General-haste scaling, distinct from attack-speed effects.",
      "implementation": "Keep the existing haste multiplier explicitly provisional; do not import retail resource rules as a fact.",
      "sources": [
        "docs/energy_audit.md",
        "docs/check_dispositions.md",
        "sim/core/energy.go",
        "https://wago.tools/db2/PowerType?build=1.60.1.69977"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Two known general-haste totals, identical resource talents, uncapped recovery windows and precise resource timestamps.",
          "measure": "Repeat matched recovery cycles from low Energy to below the cap, with no attacks or refunds. Aggregate endpoint uncertainty; a single rounded 1% window is insufficient. Run an attack-speed-only control separately."
        }
      ]
    },
    "CORE-006": {
      "disposition": "credible-answer",
      "confidence": "high",
      "answer": "The beta report supplies 0/2/4 gear-MP5 controls, a combat-log attachment and video; a project contributor acknowledges an engineering bug. It explicitly reports normal five-second behavior for Blessing of Wisdom and Mageblood. This is evidence for a gear-specific beta defect, not a universal redefinition of MP5.",
      "remaining": "Whether the gear bug has been deployed as fixed on a later build. That is a beta-version watch, not a prerequisite for the intended ordinary-MP5 benchmark.",
      "implementation": "The default MP5/5 rule remains appropriate for the intended model. The optional uniform fivefold setting is a hypothetical sensitivity mode, not a faithful emulation of the reported gear-only bug; its description should say so.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/54",
        "sim/core/mana.go",
        "docs/mana_regeneration.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Only if reproducing a particular live beta build is needed; gear with a known MP5 delta and a separate Wisdom/Mageblood control.",
          "measure": "Compare uncapped regeneration while continuously spending mana. Keep Spirit fixed and record the exact client build; distinguish item MP5 from buff MP5."
        }
      ],
      "proposed_status": "resolved"
    },
    "CORE-008": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The Forever Hunter wiki explicitly describes dynamic Sting RAP and periodic crit. Public reports also distinguish intended dynamic Thorns/Ret Aura scaling from their beta snapshot bug. These support the ordinary no-snapshot rule, but not every charged-cast or proc-payload exception.",
      "remaining": "Narrow cast-specific exceptions belong to Eureka, Inner Focus and the individual proc records, not a blanket retest of every ordinary DoT.",
      "implementation": "Keep ordinary dynamic periodic damage as the reference rule. Do not multiply an already calculated Ignite/Deep Wounds payload again merely because ordinary DoTs are dynamic.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/117",
        "sim/core/dot.go",
        "sim/warrior/deep_wounds.go"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "related": [
        "CORE-009",
        "PRI-003",
        "PAL-010"
      ]
    },
    "CORE-012": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "All 31 current Tea profiles select Tea as their sole conjured item; the registration switch allows one selected conjured consumable. Their five-minute scenario has no Tea prepull, and Tea's own five-minute cooldown prevents another use within the fight. The speculative cross-conjured cooldown does not constrain these requests.",
      "remaining": "Shared-category behavior matters only for a future mixed-conjured or different prepull setup.",
      "implementation": "Keep the sourced Tea amount and personal cooldown. Move the cross-item interaction out of the current benchmark test queue; do not call its actual server category measured.",
      "sources": [
        "artifacts/forever_input_profiles.json",
        "sim/core/consumes.go",
        "docs/mechanics_review.md"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    },
    "CORE-014": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "There is a public resource/healing-threat report with API observations and a video. Both its observed grouped allocation and its expected even allocation distribute a finite total; neither adds the full total independently to every enemy. The current AddMana/ApplyAOEThreat path does the latter. Source exemptions and ownership are separate questions.",
      "remaining": "Source-specific threat amounts/exemptions and whether live mixed-creature grouping has been fixed. The supplied report is community evidence, not an official statement of the complete threat system.",
      "implementation": "Treat multi-target resource-threat duplication as a source-supported correction candidate, with a focused total-conservation test before changing tank results. Do not copy the reported creature-grouping bug into the benchmark.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/66",
        "sim/core/mana.go",
        "sim/core/spell.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "A mana user, effective mana potions, threat API readings and one versus several engaged enemies.",
          "measure": "Measure total and per-enemy threat from one isolated return, including same-type and mixed-type packs. A mana-capped use is the wasted-resource control."
        }
      ]
    },
    "WAR-001": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "Newer public logs extend the evidence beyond the original captures, and the no-extra-rage-on-crit report was explicitly answered as intended behavior. Speed-based damage-independent rage is well supported at tested beta levels; max-level extrapolation remains a distinct assumption.",
      "remaining": "The level-60 rate, not the already answered low-level damage-versus-rage question.",
      "implementation": "No change to the current base-speed rule. Do not spend another current-beta experiment rediscovering the same damage independence.",
      "sources": [
        "https://ppach-warriorcompendium.share.connect.posit.cloud/rage.html",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/47",
        "sim/core/rage.go"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "A known weapon retained across levels and no other rage gains.",
          "measure": "Optional extrapolation checkpoint: compare uncapped rage per landed swing before and after leveling. This does not certify level 60."
        },
        {
          "stage": "launch",
          "requires": "Level 60 and known one- and two-handed base speeds.",
          "measure": "Measure uncapped ordinary swings while varying damage independently; test the existing 4.5 and 4.5/1.3 rates rather than fitting a damage formula anew."
        }
      ]
    },
    "WAR-002": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The half-rate off-hand rule now has Forever log support, not just a Cataclysm analogy. An independently inspected public dual-wield sample has dominant clusters of 3.2878 rage with reported 1.9 speed and 6.91 with 2.0 speed: approximately 1.7304 and 3.455 rage per weapon-second. The public analysis reports additional matching weapon pairs.",
      "remaining": "Proc-generated extra swings, the Dual Wield Specialization interaction, and max-level extrapolation are not established by ordinary low-level off-hand samples.",
      "implementation": "Retain the half-rate model, upgrading its evidence status only for ordinary tested off-hand swings. Do not describe all extra-attack rage as verified.",
      "sources": [
        "https://ppach-warriorcompendium.share.connect.posit.cloud/rage.html",
        "https://github.com/ppach/marrow.github.io/tree/master/eternal/data",
        "sim/core/rage.go"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "A sourced extra-attack effect actually available by level 30, and separate MH/OH events.",
          "measure": "Isolate extra swings from regular autos and energizes. If no suitable effect is obtainable, defer that subtest rather than substituting ordinary swings."
        },
        {
          "stage": "launch",
          "requires": "Relevant talent ranks and the actual raid Windfury buff.",
          "measure": "Repeat the off-hand ratio with the rage talent and test proc-generated swings, independently of damage and crit."
        }
      ]
    },
    "WAR-006": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The linked Flurry issue and current compendium chapter explicitly remain a model/testing plan. The active Warrior tree puts the first rank behind 25 points: level 35, with rank five at 39. Ordinary haste retaining rage per swing is supported elsewhere, but does not establish every Flurry charge rule.",
      "remaining": "White/queued/extra-swing consumption, multi-target Cleave, refresh order and mid-swing timing.",
      "implementation": "Retain the current disclosed model; no source justifies changing charge logic in this research pass.",
      "sources": [
        "https://github.com/magey/forever-warrior/issues/12",
        "https://ppach-warriorcompendium.share.connect.posit.cloud/flurry.html",
        "ui/core/talents/trees/warrior.json",
        "sim/warrior/talents.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Warrior level 35+ for the first rank; level 39 for rank five. Later beta access could move this earlier.",
          "measure": "Record aura stack changes and swing times for crits, avoided swings, paired MH/OH swings, HS and multi-target Cleave. Verify refresh/consumption ordering without assuming a 500-ms gate."
        }
      ]
    },
    "WAR-007": {
      "disposition": "credible-answer",
      "confidence": "high",
      "answer": "The public report distinguishes the measured beta under-proc from the intended 12%-per-point rate and documents white-hit eligibility. A contributor says the fix is for a future build, specifically not the next one. The intended simulation rule is answered; the issue's Closed label does not prove the live fix was shipped.",
      "remaining": "Only deployment status and separately unmeasured proc-extra-swing eligibility.",
      "implementation": "Keep intended 12% per point and the documented HS/Cleave exclusion. Do not reduce the model to reproduce an acknowledged transient bug.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/105",
        "sim/warrior/talents.go",
        "docs/protection_sunder.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Only if matching a specific live beta build is necessary; known UW rank and ordinary landed autos.",
          "measure": "Count energize events, including capped zero-gain events, against eligible swings. Record the build; do not count HS/Cleave as white swings."
        }
      ],
      "proposed_status": "resolved"
    },
    "DRU-002": {
      "register_update": {
        "current_model": "Furor caps carried Cat Energy by invested rank and preserves elapsed regeneration; it does not add a flat Energy grant on each shift or change Bear form resource rules. Focused carryover/regen/reset checks pass."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Furor caps carried Cat Energy by invested rank and preserves elapsed regeneration; it does not add a flat Energy grant on each shift or change Bear form resource rules. Focused carryover/regen/reset checks pass.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/druid/forms.go",
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "https://wago.tools/db2/TraitDefinitionEffectPoints?build=1.60.1.69977",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/127"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DRU-004": {
      "register_update": {
        "current_model": "Thick Hide uses the exact sourced rank-dependent Defense coefficient rather than a linear extrapolation. Native rank controls pass."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Thick Hide uses the exact sourced rank-dependent Defense coefficient rather than a linear extrapolation. Native rank controls pass.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/druid/talents.go",
        "https://wago.tools/db2/TraitDefinitionEffectPoints?build=1.60.1.69977",
        "https://wago.tools/db2/CurvePoint?build=1.60.1.69977",
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/151"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "DRU-007": {
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Improved Moonfire increases the full direct and periodic damage, including their SP contribution, once; its separate crit bonus remains. Native coefficient controls pass.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/druid/talents.go",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "https://wago.tools/db2/TraitDefinitionEffectPoints?build=1.60.1.69977",
        "docs/check_dispositions.md",
        "sim/druid/moonfire.go"
      ],
      "tests": [],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Improved Moonfire increases the full direct and periodic damage, including their SP contribution, once; its separate crit bonus remains. Native coefficient controls pass."
      }
    },
    "HUN-001": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Accept the Forever-specific wiki's measured Hunter inheritance as credible working evidence, rather than leaving every listed coefficient as an unanswered question. The older Classic pages do not rebut it. Full owner-hit transfer and extending all coefficients to Warlock demons remain narrower assumptions because the client scaling auras do not export those values.",
      "remaining": "Warlock-specific power/mana coefficients, full hit-transfer magnitude and dynamic update behavior.",
      "implementation": "No blanket removal of pet inheritance. Separate answered Hunter coefficients from extrapolated demon coefficients in the register.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/48",
        "sim/core/forever_pet_stats.go",
        "docs/check_dispositions.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Hunter or Warlock pet, one isolated owner-stat change and pet API/damage observations.",
          "measure": "Prioritize demon AP/SP/mana and pet update timing; keep owner and external pet buffs distinct. Do not repeat every accepted Hunter coefficient merely because a server script is hidden."
        }
      ]
    },
    "HUN-002": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The Forever-specific wiki and pet-speed issue agree that different speeds currently retain unnormalized per-hit damage. This is adequate evidence for the present equal-hit convention. It does not settle the owner-AP slope at different speeds or establish that the behavior will remain unchanged at launch.",
      "remaining": "The AP-added portion of the hit, especially the fixed two-second reference conversion, and future intended normalization.",
      "implementation": "Retain differing pet speeds and the supported equal-base-hit behavior. Narrow the unknown to AP scaling instead of repeatedly asking whether fast pets exist.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/31",
        "sim/core/forever_pet_stats.go",
        "sim/hunter/pet.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Two same-family/same-level pets of different speeds and two owner AP totals.",
          "measure": "Compare the change in pet damage per hit across the AP delta for each speed; control happiness and training. This separates an AP coefficient from the already observed base-speed difference."
        }
      ]
    },
    "HUN-003": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The no-external-buffs question is answered for both Hunter and Warlock pets by a direct report and an explicit Not A Bug response explaining the removal of pet buff upkeep. Focus base regeneration/cap are already client-backed. Pet AI scheduling is a separate simulation approximation, not missing evidence that pets need buffs.",
      "remaining": "Ability scheduling/resource waste, and any explicitly targeted pet-only exceptions.",
      "implementation": "Close the generic external-buff question. Retain AI cadence as a named model approximation with optional sensitivity checks, not a mandatory repeat of buff eligibility tests.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/27",
        "sim/core/pet.go",
        "sim/hunter/pet.go",
        "docs/check_dispositions.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Only if pet cadence sensitivity proves material; a trained damage ability and a resource trace.",
          "measure": "Compare ability use when resource-limited versus resource-capped. Do not mix this with owner inheritance or ordinary spell cooldowns."
        }
      ]
    },
    "HUN-005": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The Forever-specific wiki reports removal of Classic SP scaling from Arcane Shot and Serpent Sting, with RAP scaling instead. This is credible contrary evidence to the retained SP coefficients and should become a source-backed code audit, not stay an undirected coefficient question. The same source explicitly leaves Volley's coefficient undetermined.",
      "remaining": "Volley's coefficient and a source/code check of the two direct correction candidates.",
      "implementation": "Check the live Arcane Shot and Sting calculations against the documented RAP terms and removal of SP; retain Volley as an independent question. Do not infer Volley from Sting.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "sim/hunter/arcane_shot.go",
        "sim/hunter/serpent_sting.go",
        "sim/hunter/volley.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Volley access above level 30, plus independent SP and RAP changes.",
          "measure": "Measure each tick under separate SP/RAP deltas, keeping talents and target resistance fixed."
        }
      ]
    },
    "HUN-006": {
      "disposition": "model-choice",
      "confidence": "moderate",
      "answer": "Classic Auto Shot is the explicit reference implementation. The wiki and open beta issues still describe current-beta overlaps and retry behavior, so they do not establish that the reference model exactly reproduces every live beta edge. This is a declared intended-model choice, not a reason to keep a generic mandatory timing experiment on the main list.",
      "remaining": "Version-specific timing only if the project chooses to emulate the live beta behavior or obtains confirmed intended changes.",
      "implementation": "Keep the restored reference path and its regressions; do not alternate implementations based on an unresolved sound/retry report.",
      "sources": [
        "docs/auto_attack_audit.md",
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/43",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/76",
        "sim/core/attack.go"
      ],
      "tests": [],
      "proposed_status": "model-choice"
    },
    "MAG-001": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The current active talent tree makes Ice Lance available at level 20. The native action's legacy ID and RequiredLevel=60 describe this engine registration, not when a player can first learn the talent. The source still does not settle the assumed SP coefficient.",
      "remaining": "SP slope and the frozen multiplier's scope. Rank progression remains a separate max-level check.",
      "implementation": "Move the basic coefficient experiment into the current-beta queue. Do not infer game accessibility from a max-rank-only native registration.",
      "sources": [
        "ui/core/talents/trees/mage.json",
        "sim/mage/ice_lance.go",
        "docs/beta-pass/mage.md",
        "docs/talent-check-2026-09-17.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 Mage with Ice Lance, two SP totals and a rootable controlled target.",
          "measure": "Compare noncrit damage slopes while unfrozen and frozen. Keep rank, target level and other talents fixed; distinguish a whole-hit multiplier from base-only damage."
        },
        {
          "stage": "launch",
          "requires": "Higher learned ranks if their coefficients differ from the tested rank.",
          "measure": "Repeat only the unresolved rank-scaling part, not the entire frozen test."
        }
      ]
    },
    "PAL-011": {
      "disposition": "credible-answer",
      "confidence": "moderate",
      "answer": "The active Redoubt definition supplies 6/12/18/24/30 block and a second 2/4/6/8/10 curve, matching the top-rank 10% proc field and the current model. This is sufficient support for the working rank curve, though the second effect's proc interpretation is not independently measured. Redoubt is available at levels 10–14, not only later beta access.",
      "remaining": "No mandatory test for the adopted source-backed curve; a contradictory current-build observation would reopen proc semantics.",
      "implementation": "Retain the curve rather than flagging every lower rank as an urgent unknown. Preserve the evidence qualification.",
      "sources": [
        "https://wago.tools/db2/TraitDefinitionEffectPoints?build=1.60.1.69977",
        "https://wago.tools/db2/CurvePoint?build=1.60.1.69977",
        "https://wago.tools/db2/SpellAuraOptions?build=1.60.1.69977",
        "ui/core/talents/trees/paladin.json",
        "sim/paladin/talents.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "PRI-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "A new public controlled low-crit test reports dynamic Inner Focus crit on existing DoTs while the aura remains active, and loss of the bonus after consumption. This is useful current-beta evidence, but the reporter's preferred snapshot behavior is explicitly an expectation, not a confirmed intended rule. The test is possible now because Inner Focus is a level-20 talent.",
      "remaining": "Intended charged-DoT handling and current-build confirmation; the small reported tick sample is not a precise coefficient estimate.",
      "implementation": "Do not silently turn a reported beta exploit into a permanent uncapped DoT-crit strategy. Keep the client crit eligibility mask separate from cost eligibility.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/137",
        "sim/priest/talents.go",
        "ui/core/talents/trees/priest.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 Priest with Inner Focus and a DoT in its crit mask.",
          "measure": "Compare three arms: no aura, aura activated after the DoT and held, and aura consumed by applying the DoT. Record enough ticks and the exact build; separate live observation from intended design."
        }
      ]
    },
    "ROG-002": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The public developer response gives base AP ratios 0.5% for Instant and 0.45% for Deadly. Instant’s missing direct-hit 0.005 AP term is now implemented for Forever and a matched native AP-delta regression passes; Classic is unchanged. Ordinary damage/crit/resistance multipliers apply once after the term. This is a sourced ratio, not independent level-60 damage measurement.",
      "remaining": "Deadly’s per-tick/per-stack coefficient placement and the separate finisher/bleed formulas remain unresolved. The Instant correction does not settle those questions.",
      "implementation": "Instant’s source-supported correction is complete locally; replace affected Rogue scenarios before publication. Do not add the Deadly ratio at an inferred placement.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/100",
        "sim/rogue/poisons.go",
        "sim/rogue/rupture.go",
        "sim/rogue/eviscerate.go",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/100#issuecomment-5804701503",
        "tools/forever_bench/evidence_corrections_test.go"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Deadly Poison access and a controlled AP delta.",
          "measure": "Measure one-stack ticks and then five-stack ticks to locate the 0.0045 ratio. Audit finishers in separate AP/CP controls rather than mixing poison proc counts with their damage."
        }
      ],
      "register_update": {
        "current_model": "The public developer response gives base AP ratios 0.5% for Instant and 0.45% for Deadly. Instant’s missing direct-hit 0.005 AP term is now implemented for Forever and a matched native AP-delta regression passes; Classic is unchanged. Ordinary damage/crit/resistance multipliers apply once after the term. This is a sourced ratio, not independent level-60 damage measurement."
      }
    },
    "SHA-001": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The latest captured effect chain still separates the per-rank Lightning Bolt cast/cost reduction from proc frequency. No exported PPM record settles the retained 2 PPM per point. The active tree requires 25 prior points: first rank at level 35 and maximum rank at 39, not level 30.",
      "remaining": "Proc frequency and event eligibility.",
      "implementation": "Keep the proc model explicit; correct the obsolete level-30 test instruction. Chain Lightning remains outside the captured spender mask.",
      "sources": [
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "https://wago.tools/db2/SpellAuraOptions?build=1.60.1.69977",
        "ui/core/talents/trees/shaman.json",
        "sim/shaman/talents.go",
        "docs/check_dispositions.md"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level 35+ Enhancement; known rank, weapon speed and extra-attack sources.",
          "measure": "Count eligible landed swings/specials and added stacks; compare weapon speeds and talent ranks, recording Windfury separately. Move earlier only if beta access expands beyond 30."
        }
      ]
    },
    "SHA-002": {
      "disposition": "credible-answer",
      "confidence": "moderate",
      "answer": "The recent beta evidence supports instant Lightning Bolt preserving melee swings. Instant LB/CL no longer reset a full swing; positive-time casts still defer melee to cast end plus a full swing, with no melee during casts. Maelstrom only discounts/consumes on Lightning Bolt. Native instant/hardcast controls pass.",
      "remaining": "Confirm instant versus partial-stack timing with a combat trace at a level where Maelstrom is available; earlier reset-based Enhancement results are historical, not validation of this corrected assumption.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/shaman/lightning_bolt.go",
        "ui/core/talents/trees/shaman.json",
        "docs/auto_attack_audit.md",
        "sim/shaman/chain_lightning.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-39+ Shaman with five-point Maelstrom and a recorded swing timer.",
          "measure": "Cast five-stack Bolt at multiple points in the swing cycle, then compare ordinary and partial-stack casts. Record start, completion and next auto, not only aggregate DPS."
        }
      ],
      "proposed_status": "provisional",
      "register_update": {
        "current_model": "The recent beta evidence supports instant Lightning Bolt preserving melee swings. Instant LB/CL no longer reset a full swing; positive-time casts still defer melee to cast end plus a full swing, with no melee during casts. Maelstrom only discounts/consumes on Lightning Bolt. Native instant/hardcast controls pass."
      }
    },
    "DATA-009": {
      "disposition": "model-choice",
      "confidence": "high",
      "answer": "Each Arcanum supplies 1% attack speed, not general Energy haste. The competing two-copy totals are 1.02 and 1.0201: only 0.009804% relative swing-speed difference. Exact stacking is not worth a standing high-effort gameplay test for this benchmark; that numerical bound is not a claim that every possible thresholded rotation has identical DPS.",
      "remaining": "The exact server stacking law remains unmeasured. Reopen if a stronger stacking effect or demonstrated material timing threshold depends on it.",
      "implementation": "Retain the additive convention as a negligible-range model choice, not a verified multiplicative-aura rule.",
      "sources": [
        "sim/common/forever_enchants.go",
        "docs/forever_gear_data.md"
      ],
      "tests": [],
      "proposed_status": "model-choice"
    },
    "SCEN-007": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Healer-only/CC-only coverage is a product boundary, not an unanswered DPS experiment. Tank-relevant healing, shields and mitigation retain their own active entries.",
      "remaining": "None for the current supported workload; reopen when a healer or relevant control encounter is added.",
      "implementation": "Keep in a capabilities backlog, out of the mandatory game-test queue.",
      "sources": [
        "docs/tank_benchmark.md",
        "docs/forever_tier1.md",
        "docs/beta-pass/priest.md",
        "docs/beta-pass/shaman.md"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    },
    "CORE-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The captured client distinguishes builders from finishers: Sinister Strike, Claw and Rake have the discount-on-miss attribute bit that Eviscerate, Rupture, Rip and Ferocious Bite lack. This supports the existing distinction, not a universal refund. It does not supply the server's refund percentage. Ferocious Bite first becomes available at 32, not in either announced beta cap.",
      "remaining": "The paid-cost refund fraction and combo-point retention for each affected family.",
      "implementation": "Retain the builder/finisher distinction. Compare actual paid cost after talents or Clearcasting, not nominal tooltip cost.",
      "sources": [
        "https://wago.tools/db2/SpellMisc?build=1.60.1.70009",
        "sim/core/energy.go",
        "sim/rogue/eviscerate.go",
        "sim/druid/ferocious_bite.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "A Rogue with builders/Eviscerate/Rupture, or a level-20 Cat with Claw/Rake/Rip; uncapped Energy and an avoidance-producing target.",
          "measure": "Pair resource changes and combo points with each avoided action; subtract independently measured regeneration. Test builders and finishers separately."
        },
        {
          "stage": "launch",
          "requires": "Level-32+ Cat with Ferocious Bite.",
          "measure": "Separate initial cost, excess-Energy spending, refund and combo-point retention on avoided Bites."
        }
      ]
    },
    "CORE-004": {
      "disposition": "credible-answer",
      "confidence": "moderate",
      "answer": "The consistently applied physical-school versus magical-school rule is a reasonable accepted working model, corroborated by the pinned WoWSims parser. The client gives category 133 and 1500 ms for both shocks and Mortal Strike, so those fields cannot independently prove which GCDs scale. This is not a remaining per-spell implementation hunt.",
      "remaining": "An optional empirical check of the shared rule and one-second floor; not separate tests for every spell with the same classification.",
      "implementation": "Keep the adopted rule and its regression coverage. Preserve the distinction between damage school and melee/ranged hit table.",
      "sources": [
        "docs/speed_audit.md",
        "sim/core/cast.go",
        "sim/core/spell.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Known casting-speed modifier, one magical instant and one physical 1.5-second action; client cooldown timestamps.",
          "measure": "Compare GCD duration independently of cast time. Only test the floor when enough haste is actually available; a 1% modifier cannot establish it."
        }
      ],
      "proposed_status": "model-choice"
    },
    "CORE-005": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The Berserking/Arcane Missiles observation and separate client attack/cast-speed auras support the current casting-speed versus channel-speed distinction. Current selected equipment has no raw SpellHaste source; the unverified general-haste channel multiplier therefore is not an unexplained benefit currently supplied by gear. This does not establish that every effect called haste behaves identically.",
      "remaining": "Channel behavior of a specifically identified general-haste source, and extrapolation beyond the observed Berserking case.",
      "implementation": "Do not merge casting speed into SpellHaste. Keep future raw-rating support under DATA-010.",
      "sources": [
        "docs/speed_audit.md",
        "docs/check_dispositions.md",
        "sim/mage/arcane_missiles.go",
        "sim/priest/mind_flay.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Arcane Missiles and separately isolated Berserking or Wind Blessed; all missile timestamps.",
          "measure": "Compare complete channel duration and tick spacing with a no-modifier control, excluding Missile Barrage."
        },
        {
          "stage": "offline",
          "requires": "A concrete obtainable general-haste effect or rating-bearing item.",
          "measure": "Identify its aura types before scheduling a gameplay test. Acquisition is not established merely by the hypothetical SpellHaste stat; move to launch only if the chosen source requires it."
        }
      ]
    },
    "CORE-007": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The mana amount is sourced: effect 698050 returns 59 at the highest rank. The proc probability is not settled by Wowhead's displayed 50%: all three captured SpellAuraOptions versions instead have 100% on the parent, which triggers dummy intermediate spell 1826. A server filter can exist behind that intermediate. Neither field proves the complete proc rule.",
      "remaining": "Effective proc chance, avoided-white eligibility, periodic/proc eligibility and ICD.",
      "implementation": "Keep 50% explicitly provisional; do not replace it with 100% merely from the parent. The current code even allows avoided white swings, which needs its own event-category check.",
      "sources": [
        "https://www.wowhead.com/forever/spell=20186/judgement-of-wisdom",
        "https://wago.tools/db2/SpellAuraOptions?build=1.60.1.69977",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/core/debuffs.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "A level-38+ Paladin with Seal/Judgement of Wisdom, uncapped mana recipients and isolated event sources.",
          "measure": "Count mana returns per white hit, avoided white, special, direct spell, periodic tick and triggered effect. Compare event intervals to distinguish chance from ICD; the level-30 cap does not grant this seal."
        }
      ]
    },
    "CORE-009": {
      "register_update": {
        "current_model": "The wrapper preserves tagged channel-child bonuses. Ordinary dynamic DoTs are not covered by that wrapper; current resource discounts are 10%, with the engine's additive cost convention."
      },
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Public reports describe already-running DoTs gaining Eureka's bonus dynamically and channels consuming charges per tick; these are unresolved beta reports, not confirmation of the intended charged-cast model. The current client still has explicit direct and periodic damage modifiers. Code preserves tagged channel-child bonuses, but the ordinary dynamic-DoT path is not covered by that wrapper. The older claim that all charged DoTs retain a snapshot is no longer accurate.",
      "remaining": "Intended versus live-beta charge consumption and periodic bonus lifetime.",
      "implementation": "Correct the documentation, then reproduce ordinary DoT and channel behavior separately before choosing an engine correction. Current patch costs are 10% for every class, not the old class-specific discounts in the historical racial document.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/35",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/90",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/core/forever_gnome.go",
        "sim/core/spell_result.go",
        "docs/forever_races.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current engine, a Gnome DoT caster and a channel caster.",
          "measure": "Record tick damage with Eureka before application, after application, and on the last charge. Establish which effects the current wrapper actually preserves."
        },
        {
          "stage": "current-beta",
          "requires": "Gnome Mage/Warlock/Priest with a low-rank DoT or channel; exact build and buff-stack timestamps.",
          "measure": "Repeat those three cases in game. Do not infer intended behavior from an open bug report or conflate the old mana-discount amount with current values."
        }
      ]
    },
    "CORE-010": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Location and duration are answered by the source chain: the ordinary Energized buff lasts 15 seconds; a ley line grants 15 minutes. Both carry +100% mana/power and health regeneration auras. A current public Hunter report explicitly observes mana regeneration in combat, contradicting generic guides that dismiss the racial as purely out-of-combat utility. It does not isolate Spirit versus flat MP5.",
      "remaining": "Which regeneration components the power-regen aura scales and how casting suppression interacts with it.",
      "implementation": "The short-duration version is a meaningful missing active even without assuming a nearby ley line. Do not grant the 15-minute version for free, or dismiss the whole racial because location is absent.",
      "sources": [
        "https://www.wowhead.com/forever/spell=1259705/read-ley-line",
        "https://us.forums.blizzard.com/en/wow/t/alliance-skybourne-racial-feedback/2362168",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/core/racials.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "High Order mana user; fixed Spirit, a known MP5 item delta, uncapped mana and no other temporary regen.",
          "measure": "Compare idle and continuous-spending recovery with the short buff. Record application/expiration and test the long location buff separately if needed."
        }
      ]
    },
    "CORE-011": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Rating conversions are not all unknown: the captured level-60 CombatRatings table supplies 14 crit rating and 10 hit/haste rating per percentage point. Those are distinct from Agility/Intellect conversion slopes and naked race/class base attributes. The latter are still inherited and are not established by the rating file or by low-level character examples.",
      "remaining": "Level-60 naked attributes, base crit and class-specific attribute slopes.",
      "implementation": "Do not use equal item budgets or a correct generic-crit import as proof that base stat tables are correct. Avoid importing another fork's level-70 rows.",
      "sources": [
        "assets/db_inputs/forever_combat_ratings.json",
        "docs/crit_model.md",
        "sim/core/base_stats.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "An authoritative matching-build base-stat/conversion table, if obtainable.",
          "measure": "Compare exact level-60 rows and units to engine values; CombatRatings alone does not provide them."
        },
        {
          "stage": "launch",
          "requires": "Naked level-60 characters with racial/talent bonuses accounted for, plus isolated Agility/Intellect gear deltas.",
          "measure": "Record base attributes, health/mana and crit slopes for each class; race pairs isolate racial offsets."
        }
      ]
    },
    "CORE-013": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "The current production spell registrations contain no Physical-plus-magic school combination; the explicit combination found is in a core test. Frostfire's two magic schools are not this case. The unresolved armor-versus-resistance threshold therefore has no demonstrated caller in the current benchmark.",
      "remaining": "Reopen when an actual supported Physical-plus-magic ability is introduced.",
      "implementation": "Keep as a conditional engine capability issue, not a required gameplay experiment or a reason to alter single-school mitigation.",
      "sources": [
        "sim/core/spell_school.go",
        "sim/core/spell_resistances.go",
        "sim/core/spell_school_test.go"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    },
    "WAR-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Public evidence confirms that receiving damage through one's own Priest shield still generates Warrior rage. It does not settle the amount: the incoming-rage issue contains both a damage/conversion-factor hypothesis and a pre-armor/max-health fit with an unexplained low-armor doubling. A developer response says incoming generation is under investigation. These are not interchangeable verified formulas.",
      "remaining": "Incoming-rage amount, armor/health dependence and high-level extrapolation.",
      "implementation": "Retain the explicit provisional formula; preserve incoming absorb behavior separately from the PvP rule for attacking someone else's shield.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/72#issuecomment-5777200313",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/72#issuecomment-5808179814",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/78#issuecomment-5786631000",
        "sim/core/rage.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Nonattacking Warrior, fixed enemy, independent armor and maximum-health changes; no concurrent rage abilities.",
          "measure": "Compare uncapped rage per pre-armor and post-armor damage across the reported threshold. Include shielded and unshielded hits without changing the other stats."
        },
        {
          "stage": "launch",
          "requires": "Level-60 Warrior and known incoming attacks.",
          "measure": "Repeat the selected low-level model at max level before certifying tank resource scaling."
        }
      ]
    },
    "WAR-004": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "Spell 18499 states extra incoming rage but its captured effects supply fear/incapacitate immunity, not a numeric rage rule. Its first learned level is 32. Neither a borrowed doubling rule nor the inherited +2/damage-based split is established by that text.",
      "remaining": "The additional rage rule on melee versus spell damage.",
      "implementation": "Retain the inherited rule as an explicit assumption; this cannot be a level-30 test.",
      "sources": [
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "https://wago.tools/db2/SpellLevels?build=1.60.1.69977",
        "sim/warrior/berserker_rage.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-32+ Warrior, several known incoming hit sizes, fixed armor/health and no outgoing attacks.",
          "measure": "Compare rage with and without Berserker Rage separately for melee and spells; distinguish a constant bonus from a multiplier."
        }
      ]
    },
    "WAR-005": {
      "disposition": "credible-answer",
      "confidence": "moderate",
      "answer": "The public queued-attack report supports removal of the off-hand dual-wield penalty while Heroic Strike/Cleave is queued, matching the current implementation. That is sufficient to retain the mechanic as a working answer rather than repeatedly asking whether it exists. Its precise boss-level table is part of the broader attack-table question.",
      "remaining": "Level-63 miss rates and cancel-before-main-hand edge cases, not the basic existence of the observed queue effect.",
      "implementation": "Keep queue semantics; do not convert these abilities into instant attacks.",
      "sources": [
        "https://github.com/magey/forever-warrior/issues/2",
        "sim/warrior/heroic_strike_cleave.go",
        "docs/upstream-forever-review-2026-09-23.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 dual wield, known weapon skill and isolated queued/unqueued periods.",
          "measure": "Optional cancellation test: cancel before the main-hand swing and measure only off-hand events occurring inside the queue window."
        },
        {
          "stage": "launch",
          "requires": "Level-60 Warrior against a level-63 target.",
          "measure": "Include queued off-hand events in CORE-001's table measurement rather than commissioning a duplicate full test."
        }
      ],
      "proposed_status": "resolved",
      "related": [
        "CORE-001"
      ]
    },
    "WAR-008": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "A competing implementation changing shield proc masks is not evidence of main-hand effect eligibility. The early test and the actual tank damage ability have different access: Shield Bash can be checked now, Shield Slam requires 40, and Windfury Totem requires a level-32 Shaman. A level-20 shield test cannot use Totem as its proc source.",
      "remaining": "Shield-attack eligibility for specific equipped-weapon effects and Totem.",
      "implementation": "Do not change Shield Slam's mask without an event-level source. Keep missing Shield Bash registration separate.",
      "sources": [
        "sim/warrior/shield_slam.go",
        "sim/warrior/warrior.go",
        "docs/upstream_elliot_review.md",
        "ui/core/talents/trees/warrior.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Shield Bash, shield and an actually obtainable known weapon proc; autos stopped.",
          "measure": "Count proc events following isolated Bashes. This is a partial test, not certification of Shield Slam or Windfury."
        },
        {
          "stage": "launch",
          "requires": "Level-40 Shield Slam and access to the exact proc source, including level-32+ Windfury Totem where relevant.",
          "measure": "Repeat isolated attacks, separating landed/avoided outcomes and weapon versus shield effects."
        }
      ]
    },
    "WAR-009": {
      "disposition": "partial",
      "confidence": "high",
      "answer": "The client supplies the patched flat rank threats, including rank-5 206, but retains a zero AP coefficient in the exported threat effect despite development-note wording about AP. No numeric server-script coefficient was found. This uncertainty is about threat, not armor removal or damage, and still matters for tanks.",
      "remaining": "The effective AP coefficient, if any.",
      "implementation": "Do not infer a coefficient from the phrase 'small increase'. Preserve the sourced flat values.",
      "sources": [
        "docs/forever-70009.md",
        "sim/warrior/sunder_armor.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Same Sunder rank, stance/talents and enemy; two known AP values and precise threat API readings.",
          "measure": "Compare threat slopes over multiple applications, separating first application and refresh. No damage-based proxy is needed."
        },
        {
          "stage": "launch",
          "requires": "Rank-5 Sunder if low-rank results establish a nonzero slope.",
          "measure": "Verify whether the slope is rank-independent before applying it at level 60."
        }
      ]
    },
    "WAR-010": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The active Weaponmaster tree grants its first point at level 30; the full five-point effect requires 34. The talent text's weapon conditions do not settle whether an off-hand mace grants an owner-wide armor discount. That hand-specific question is genuinely testable in the level-30 beta at one point.",
      "remaining": "Hand scope and stacking of the mace armor-ignore effect.",
      "implementation": "Keep the current gate provisional; do not replace it solely with another fork's main-hand-only rule.",
      "sources": [
        "ui/core/talents/trees/warrior.json",
        "sim/warrior/talents.go",
        "docs/upstream-forever-review-2026-09-23.md"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "One-point Weaponmaster, comparable mace/non-mace weapons, matched AP and controlled target armor.",
          "measure": "Move the mace between hands and measure main-hand damage changes; separate the weapon's own damage change and sword extra attacks."
        },
        {
          "stage": "launch",
          "requires": "Full talent rank and relevant armor-ignore combinations.",
          "measure": "Confirm rank scaling and stacking if the one-point hand test finds an effect."
        }
      ]
    },
    "DRU-001": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The current captured Omen row really does specify a ten-second proc cooldown, 100% chance and no PPM reference, while the description says 'a chance'. That makes the literal implementation transparent, not experimentally established. Search results include stale localized pre-Forever tooltips; those are not evidence for reverting to a Classic melee-only PPM rule.",
      "remaining": "Effective chance and eligible events after the cooldown.",
      "implementation": "Keep the explicit provisional interpretation. Consumption exclusions for Wrath/resource-free actions are separately sourced and need not be reopened to test proc frequency.",
      "sources": [
        "https://wago.tools/db2/SpellAuraOptions?build=1.60.1.69977",
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "sim/druid/omen_of_clarity.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 Druid with trained Omen, no other Clearcasting sources and event timestamps.",
          "measure": "After each ten-second cooldown, count direct eligible events before the next proc. Compare autos, direct spells and heals; do not count periodic ticks as direct casts."
        }
      ]
    },
    "DRU-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Officially supported equipped weapon DPS, stones and striking enchants now enter form weapons. Cat uses its 1-second weapon and Bear its 2.5-second weapon; native rebuild/swap controls pass without duplicating AP or flat damage.",
      "remaining": "The precise form damage-variance distribution is not supplied by the article; the chosen distribution remains a convention rather than an observed server rule.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/druid/forms.go",
        "sim/core/attack.go",
        "docs/upstream_elliot_review.md",
        "sim/core/item_effects.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Bear and level-20 Cat, matched-stat weapons with substantially different DPS, plus an obtainable flat-damage enchant/imbue.",
          "measure": "Compare form attack damage at fixed AP; test the flat effect independently from the weapon swap."
        },
        {
          "stage": "launch",
          "requires": "Level-60 forms and high-level weapon effects if low-level results imply scaling.",
          "measure": "Verify the actual level-60 base and any effect-specific exceptions before changing synthetic-weapon valuation."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Officially supported equipped weapon DPS, stones and striking enchants now enter form weapons. Cat uses its 1-second weapon and Bear its 2.5-second weapon; native rebuild/swap controls pass without duplicating AP or flat damage."
      }
    },
    "DRU-005": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "Current code explicitly traces Primal Bite's 1.5 and Swipe's 2.0 threat multipliers to SoD; Lacerate's 3.33 is also inherited. The public Bear discussions report weak threat but supply no per-action measurements that validate these numbers. 'High threat' in Lacerate's tooltip is not a coefficient.",
      "remaining": "Separate form and per-action threat amounts, not a single universal Bear multiplier.",
      "implementation": "Keep the inherited assumptions visible. The newly acknowledged Swipe AP bug is a damage issue, tracked separately from threat.",
      "sources": [
        "sim/druid/forms.go",
        "sim/druid/mangle.go",
        "sim/druid/lacerate.go",
        "sim/druid/swipe.go",
        "https://us.forums.blizzard.com/en/wow/t/feral-druid-threat/2355903"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Bear, white attacks/Swipe, precise threat readings, known damage and no Thorns/proc interference.",
          "measure": "First determine the form multiplier from ordinary hits, then Swipe's additional threat; include multiple enemies without duplicating totals."
        },
        {
          "stage": "level30",
          "requires": "Primal Bite talent, available from 25.",
          "measure": "Isolate direct Bite damage and threat with the previously measured form multiplier."
        },
        {
          "stage": "launch",
          "requires": "Lacerate from 42 and eventually level-60 ranks.",
          "measure": "Separate application and bleed threat at each stack; distinguish flat threat from damage multipliers."
        }
      ]
    },
    "DRU-006": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The parent rows source 10/12/15 bleed damage per three-second tick, five stacks and a 10% weapon-damage term. The uncertainty is narrower than the whole formula: the description says 'per existing application', whereas the engine uses the resulting stack including the new application. Child 414647 has a separate 20% weapon effect and is not proof of its current script use.",
      "remaining": "Pre- versus post-application stack count, exact child dispatch and any hidden AP/script term.",
      "implementation": "Do not automatically double the direct coefficient from an untraced child record. Keep known bleed ranks distinct from the unresolved direct-stack ordering.",
      "sources": [
        "https://www.wowhead.com/forever/spell=414644/lacerate",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/druid/lacerate.go"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-42+ Bear, stable AP, no other bleeds, isolated first through fifth applications.",
          "measure": "Determine whether the first application deals direct damage and whether subsequent hits use the pre-existing or new stack count; separately measure tick damage and crits."
        }
      ]
    },
    "DRU-008": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Both effects are explicit in the current text: increased spellcasting speed and reduced global cooldown. Thus the presence of two modifiers is not itself evidence of accidental duplication. The unresolved part is their composition and Wrath's proc timing. The active talent first becomes reachable at 30.",
      "remaining": "Composition with ordinary cast-speed GCD scaling and impact versus completion timing.",
      "implementation": "Keep both sourced components pending the narrow timing test; do not remove one solely because both influence GCD.",
      "sources": [
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "sim/druid/talents.go",
        "ui/core/talents/trees/druid.json",
        "docs/history_review.md"
      ],
      "tests": [
        {
          "stage": "level30",
          "requires": "Nature's Grace, cooldown timestamps and controllable Wrath travel distance.",
          "measure": "Compare GCDs with the aura and an isolated cast-speed control; compare aura activation with cast completion and projectile impact."
        }
      ]
    },
    "DRU-009": {
      "disposition": "model-choice",
      "confidence": "moderate",
      "answer": "The source establishes duration and a two-second interval, not a fractional final tick. Seven full ticks over the extended 15-second aura is a reasonable conservative discrete-tick model. Importing retail partial-tick behavior without a Forever source would add damage rather than resolve an observed discrepancy.",
      "remaining": "Exact final-tick behavior when the relevant Tier 1 bonus is obtainable.",
      "implementation": "Retain seven full ticks; keep the unresolved edge scoped to this extension, not every ordinary DoT.",
      "sources": [
        "docs/forever_tier1.md",
        "sim/druid/insect_swarm.go",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "The actual Tier 1 duration bonus, not only baseline Insect Swarm.",
          "measure": "Capture the final tick and expiration of a full uninterrupted application; check whether a half-strength tick exists."
        }
      ],
      "proposed_status": "model-choice"
    },
    "DRU-010": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "This is missing supported spellbook functionality, not an unanswered coefficient for the existing rotation. Prowl is available at 20, but Ravage first at 32 and Pounce at 36. The client specifies stealth/behind requirements, damage effects and combo-point awards.",
      "remaining": "Implementation of one-time stealth state and supported opener effects; high-level runtime checks.",
      "implementation": "Add a source-based implementation task, not a level-20 request to demonstrate unavailable attacks. Opener-only contribution does not imply irrelevance.",
      "sources": [
        "docs/spell_coverage.md",
        "artifacts/spell_coverage.json",
        "https://wago.tools/db2/SpellLevels?build=1.60.1.69977",
        "sim/druid/druid.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current learned ranks/effects and an explicit precombat stealth state.",
          "measure": "Implement legal form/position/stealth gates, combo points and one-use opener behavior; ensure normal combat cannot repeat stealth attacks."
        },
        {
          "stage": "launch",
          "requires": "Level-32 Ravage and level-36 Pounce.",
          "measure": "Confirm opener damage and legal states against the implemented ranks."
        }
      ],
      "proposed_status": "needs-code"
    },
    "DRU-011": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Official form eligibility is supported. Crusader now returns sourced health and Lifestealing returns actual dealt damage; form stones/oils and striking reconstruction pass locally.",
      "remaining": "Eligibility does not establish all conditional enchant proc rates, hand scope or form/swap interactions.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/common/enchant_effects.go",
        "sim/druid/forms.go",
        "docs/tank_selection.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Only if an enchanted weapon can actually be supplied in the beta; an obtainable enchant is not established by a low character-level requirement.",
          "measure": "Compare isolated caster-form and Cat/Bear attacks with proc timestamps and equipped/form weapon speeds."
        },
        {
          "stage": "launch",
          "requires": "Crusader access if unavailable in either beta cap.",
          "measure": "Repeat the form comparison with enough eligible attacks to distinguish no procs from a low rate. Move earlier if vendors or copied items make the enchant obtainable."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Official form eligibility is supported. Crusader now returns sourced health and Lifestealing returns actual dealt damage; form stones/oils and striking reconstruction pass locally."
      }
    },
    "DRU-012": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "Public Bear discussions use 'normalized' inconsistently and do not supply a controlled outgoing/incoming formula. The Warrior measurements cannot establish Bear behavior. The inherited Bear rule is therefore still genuinely unresolved, not a suitable place for a guessed Warrior formula.",
      "remaining": "Damage dependence, avoidance and incoming armor/health dependence for Bear.",
      "implementation": "Keep Bear and Warrior models separate until the same controls have been measured for Bear.",
      "sources": [
        "https://us.forums.blizzard.com/en/wow/t/bear-druids/2358994?page=2",
        "sim/core/rage.go",
        "sim/druid/tank/tank.go",
        "sim/druid/maul.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Bear, uncapped rage, no Maul/Enrage/Primal Fury and matched attack speed while damage varies.",
          "measure": "Separate ordinary hits, crits and avoided swings. For incoming rage stop autos and vary armor independently from maximum health."
        },
        {
          "stage": "launch",
          "requires": "Level-60 Bear and known outgoing/incoming attacks.",
          "measure": "Check that the low-level formula still fits; test queued Maul separately because it replaces the ordinary white event."
        }
      ]
    },
    "WAR-011": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "Current registration passes the same timer to Overpower and Revenge. Demoralizing Shout has the offensive flag read by Focused Rage. The old report does not describe a current missing fix.",
      "remaining": "None for these two implementation claims; missing Shield Bash is separate.",
      "implementation": "Keep the resolved record rather than repeat the change or schedule a gameplay experiment.",
      "sources": [
        "sim/warrior/warrior.go",
        "sim/warrior/demoralizing_shout.go",
        "sim/warrior/talents.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "WAR-012": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "Shield Bash is genuinely absent from Initialize, while Pummel is registered. This is source/code work, not uncertainty about whether the simulated action exists. The interrupt utility is outside a noncasting boss workload, but Shield Bash also has damage, so absence should not be described as automatically zero-DPS impact.",
      "remaining": "Ranked action implementation, shared cooldown and stance/shield gates; weapon-proc eligibility remains WAR-008.",
      "implementation": "Implement sourced effects and a shared category with Pummel, without treating a general interrupt gap as permission to guess proc masks.",
      "sources": [
        "sim/warrior/warrior.go",
        "sim/warrior/pummel.go",
        "docs/upstream-forever-followup-2026-09-23.md"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current Bash/Pummel rank and cooldown-category records.",
          "measure": "Check shield and stance restrictions and both cast orders against the shared timer; compare registered damage independently from interrupt behavior."
        }
      ],
      "proposed_status": "needs-code"
    },
    "WAR-013": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The selected Protection actions use the queue entries, and direct APL invocation of the damage components is rejected. This fixes the demonstrated extra-damage/rage bypass without asserting that every rage formula is correct.",
      "remaining": "Historical validation uncertainty is covered by SCEN-016; it does not undo the reproduced queue bug or its structural fix.",
      "implementation": "Retain the corrected tags and queue guard. Do not reclassify normal queued attacks as a new rage exploit.",
      "sources": [
        "docs/protection_queue.md",
        "sim/core/apl_actions_casting.go",
        "sim/warrior/heroic_strike_cleave.go",
        "tools/forever_bench/queued_attacks_test.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "WAR-014": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The current APL reserves rage and gives Sunder an eight-second refresh window. The archived observer and reproduced-lapse regression support a substantial reduction in starvation, not an absolute guarantee against every avoidance/resource sequence.",
      "remaining": "None for the reproduced priority defect. The residual rare lapse is disclosed rather than hidden with an external armor debuff.",
      "implementation": "Keep the resolved status and the measured, nonzero residual-lapse qualification. This review's resource-threat leads do not justify silently rerunning or relabeling its archived numbers.",
      "sources": [
        "docs/protection_sunder.md",
        "tools/forever_bench/sunder_maintenance_test.go",
        "tools/sunder_audit/main.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "PAL-001": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "The code adds the proc's SP contribution in baseDamage and again through BonusCoefficient; the two-hand factor is explicitly inherited from SoD testing. A current public discussion reports a roughly flat coefficient while using Judgement of the Crusader, but that target-side bonus is not a controlled change in personal SP and the replies disagree. It cannot settle the formula.",
      "remaining": "Personal-SP coefficient, two-hand modifier and target Holy-bonus treatment.",
      "implementation": "Do not certify the double addition from the client coefficient alone, or change it using the uncontrolled forum example. This remains a high-value small experiment.",
      "sources": [
        "sim/paladin/sor.go",
        "docs/weekly_review.md",
        "https://us.forums.blizzard.com/en/wow/t/sor-needs-the-tbc-formula/2355721"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Same low-rank seal, target and recorded weapon speed; two known personal-SP values and one-/two-hand controls.",
          "measure": "Measure proc damage slopes without Judgement of the Crusader, then add that target bonus separately. Keep weapon damage, talents and crit outcomes controlled."
        }
      ]
    },
    "PAL-002": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The current Echo aura rows explicitly have one charge and white-melee proc mask 4. That supports the charge count and excludes ordinary Judgements from the consumption family. Separate spell IDs do not prove simultaneous coexistence or what avoided events do. Twist of Light is a level-40 talent, so this is not a level-30 experiment.",
      "remaining": "Echo coexistence, replacement and avoided-swing consumption.",
      "implementation": "Retain the sourced one-charge/white-event structure while leaving those script-level details open.",
      "sources": [
        "https://wago.tools/db2/SpellAuraOptions?build=1.60.1.69977",
        "sim/paladin/twist_of_light.go",
        "ui/core/talents/trees/paladin.json"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-40+ Twist of Light, both relevant seals and aura/event logging.",
          "measure": "Replace seals before the next auto, record simultaneous Echo auras, then compare landed and avoided autos plus a Judgement-only control."
        }
      ]
    },
    "PAL-003": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The sourced amount and separate Totem-versus-Weapon identity do not answer eligible Seal events, AP-charge consumption or extra-swing timing. The existing matched sim audit explains its output but is not an in-game experiment. Totem is learned at 32; level-30 Windfury Weapon is a different effect and cannot substitute for the test.",
      "remaining": "Totem proc-event eligibility, ICD, charge use and swing timing.",
      "implementation": "Preserve the separate air buff and its exclusivity. Treat old matched DPS numbers as an implementation explanation, not a source for the server proc model.",
      "sources": [
        "docs/windfury.md",
        "docs/forever-70009.md",
        "sim/core/buffs.go",
        "https://wago.tools/db2/SpellLevels?build=1.60.1.69977"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Level-32+ Shaman providing Totem, Paladin recipient, no weapon imbue or other extra-attack source.",
          "measure": "Count eligible autos, specials and seal events; record AP aura charges and the next normal swing. Isolate avoided events and exclude immediate recursion before estimating chance."
        }
      ]
    },
    "PAL-004": {
      "disposition": "experiment",
      "confidence": "low",
      "answer": "Holy school plus a melee hit table is not a physical-school spell, and the current code intentionally retains the resistance path. No controlled Forever report located in this pass demonstrates an exception for Holy Strike or the seal proc. Their resistance treatment cannot be inferred from the melee classification alone.",
      "remaining": "Partial-resist eligibility, separate from avoidance and crit.",
      "implementation": "Do not add IgnoreResists simply to improve Paladin damage.",
      "sources": [
        "sim/paladin/holy_strike.go",
        "sim/paladin/sor.go",
        "sim/core/spell_resistances.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Holy Strike and seal attacks against targets of known equal and higher levels; fixed damage inputs.",
          "measure": "Inspect explicit resisted amounts and damage clusters separately from miss/dodge outcomes. A small sample with no resist is not proof of immunity."
        }
      ]
    },
    "PAL-005": {
      "disposition": "implementation",
      "confidence": "high",
      "answer": "Seal of Fury has current ranked parent, damage, judgement and shield records, including new first ranks 1311649/1311656 at levels 10/18. These are not the obsolete rank-25 alias alone. Parent text explicitly gives a shield-equipped absorb equal to 50% of the Holy damage dealt. The runtime still omits the family.",
      "remaining": "The implementation and the narrower shield/proc rules in PAL-006.",
      "implementation": "Treat supported ranks, costs and described shield relationship as source-based work, not a blanket missing-source excuse. Do not import another simulator's entire shield script without qualifying its assumptions.",
      "sources": [
        "docs/mythicsim_review.md",
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/paladin/paladin.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Current parent/child rank chain and finite-absorb infrastructure.",
          "measure": "Implement legal selection, rank/cost mapping, damage, judgement and shield-only absorb; test no-shield and iteration-reset behavior."
        },
        {
          "stage": "current-beta",
          "requires": "Level-10/18 Seal of Fury and a shield.",
          "measure": "Validate the implemented low-rank proc damage and absorb relationship; use PAL-006 for replacement/depletion behavior."
        }
      ],
      "proposed_status": "needs-code"
    },
    "PAL-006": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The talent explicitly requires full absorption, gives 15% more mana per attacker level up to three levels, and its triggered text uses player level for the base return. Thus arbitrary expiry or replacement is not described as a mana trigger. Pool replacement versus addition and simultaneous-event ordering remain unsourced. Improved Seal of Fury's first talent point is available at 20, not only later.",
      "remaining": "Shield replacement/addition, depletion ordering and exact scripted base-return evaluation.",
      "implementation": "Use the full-absorption requirement as the default implementation contract; separately test unsupported assumptions about pool replacement and prevent reset/expiry refunds.",
      "sources": [
        "https://www.wowhead.com/forever/spell=1314103/improved-seal-of-fury",
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "docs/mythicsim_review.md"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Level-20 Paladin with the talent, shield, Seal of Fury, known attacker levels and uncapped mana.",
          "measure": "Observe successive procs before damage, partial/full depletion, expiry and replacement. Compare equal-level and up-to-three-level-higher attackers; record absorb and mana events separately."
        }
      ]
    },
    "PAL-007": {
      "disposition": "source-gap",
      "confidence": "low",
      "answer": "The known lead remains a retained former-rune record plus another simulator's implementation. The available inventory does not establish a current trainer/talent acquisition path. That is an availability question, not permission to enable the spell and then optimize around it.",
      "remaining": "Authoritative current learnability and cooldown-category evidence.",
      "implementation": "Keep disabled until a current acquisition path is shown. Do not ask for a damage experiment before proving access.",
      "sources": [
        "docs/mythicsim_review.md",
        "docs/spell_coverage.md",
        "artifacts/spell_coverage.json"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Matching-build trainer/taught-spell or live talent evidence for 407632.",
          "measure": "Trace the player acquisition path rather than merely finding a class skill row."
        },
        {
          "stage": "current-beta",
          "requires": "Trainer/spellbook UI with unavailable future ranks visible, if the beta exposes them.",
          "measure": "Capture an actual offering and requirement. No fixed later test level can be promised until this evidence exists."
        }
      ]
    },
    "PAL-008": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Vindication applies sourced level-60 AP reduction 68/136/204 with strongest-effect handling while preserving the owner’s separate damage bonus. Incoming-damage native controls pass.",
      "remaining": "Lower-level evaluation/rounding remains qualified rather than proved by the max-level test.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "https://www.wowhead.com/forever/spell=9452/vindication",
        "https://www.wowhead.com/forever/spell=440667/vindication",
        "sim/paladin/talents.go",
        "sim/core/attack.go",
        "tools/forever_tanks/main.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Trait curve 82984 and child 440667 level scaling plus existing AP-debuff exclusivity.",
          "measure": "Reconcile the rendered level-60 amount with raw level fields; test activation/expiry and competing debuffs against known target AP."
        },
        {
          "stage": "current-beta",
          "requires": "One-point Vindication at 20 and matched enemy swings.",
          "measure": "Optional validation of the target aura and damage reduction, without confusing owner AP growth with enemy AP loss."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Vindication applies sourced level-60 AP reduction 68/136/204 with strongest-effect handling while preserving the owner’s separate damage bonus. Incoming-damage native controls pass."
      }
    },
    "PAL-012": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "The traced Justice seal/echo produces a stun; its judgement prevents fleeing. No direct damage effect is present in that chain, and current reference workloads model neither control nor fleeing. Its exact excessive-proc-rate fix therefore is not a required damage/threat benchmark experiment.",
      "remaining": "Proc probability and control interactions if a stunnable/fleeing encounter is introduced. Such control can affect survival in a different workload.",
      "implementation": "Keep in the control-capability backlog rather than the current test queue. Do not apply this dismissal to damaging Command/Righteousness Echoes.",
      "sources": [
        "docs/forever-70009.md",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "https://wago.tools/db2/Spell?build=1.60.1.69977"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    },
    "PAL-013": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Light’s Vigil has ranked enemy casts, one owned enemy mark, enemy damage/refund and explicit linked Holy Shock cooldown behavior. Native cooldown/refund controls pass; manual proc casts are rejected.",
      "remaining": "Party-healing behavior is unsupported and the dummy/proc hit sequence remains a server-script question; the damage branch is not full healer coverage.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "https://wago.tools/db2/Spell?build=1.60.1.69977",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "docs/beta-pass/paladin.md",
        "ui/core/talents/trees/paladin.json",
        "sim/paladin/lights_vigil.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Vigil parent ranks 1310911/1311590/1311595 and their enemy damage children.",
          "measure": "Test rank/cost mapping, one active mark, one consumption, refund and Holy Shock cooldown interaction, including target changes."
        },
        {
          "stage": "launch",
          "requires": "Level-40+ Light's Vigil and Holy Shock.",
          "measure": "Confirm the linked cast sequence and amount at the first available rank; later verify max-rank scaling."
        }
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Light’s Vigil has ranked enemy casts, one owned enemy mark, enemy damage/refund and explicit linked Holy Shock cooldown behavior. Native cooldown/refund controls pass; manual proc casts are rejected."
      }
    },
    "PAL-014": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The Protection APL no longer contains the unconditional active-Seal filler. The regression and archived comparisons address a real repeated-cost defect, not an assumption that removing all seal damage is optimal.",
      "remaining": "Resource-threat accounting remains CORE-014 and older comparison-seed qualification remains SCEN-016.",
      "implementation": "Keep the maintenance fix; do not restore mana waste merely to reproduce old threat numbers.",
      "sources": [
        "docs/paladin_mana.md",
        "ui/protection_paladin/apls/forever_protection.apl.json",
        "tools/forever_bench/paladin_apl_test.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "PAL-015": {
      "disposition": "already-resolved",
      "confidence": "high",
      "answer": "The cooldown reset already functioned; explicit sequencing now spends the free Judgement promptly rather than resetting an almost-complete cooldown. The same-timestamp regression directly supports that implementation claim.",
      "remaining": "Historical pooled uncertainty must respect overlapping seed ranges; no new timing-source gap was identified.",
      "implementation": "Keep the sequencing fix and the SCEN-016 qualification on old comparison statistics.",
      "sources": [
        "sim/paladin/swift_judgement.go",
        "ui/protection_paladin/apls/forever_protection.apl.json",
        "tools/forever_bench/paladin_apl_test.go",
        "artifacts/tank_support/validation.json"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "PAL-009": {
      "register_update": {
        "question": "Does the Holy-damage bonus apply only against the first four enemies covered by Consecration?",
        "current_model": "Consecrated Ground amplifies owned Holy damage on the first four stationary targets, not every encounter target and not physical damage. Four-target native scope checks pass. Moving-ground geometry remains outside the fixed reference scenario.",
        "impact": "Can amplify Holy damage against uncovered enemies or beyond the four-target cap. The cap does not distinguish the stationary one-/three-target workloads."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Consecrated Ground amplifies owned Holy damage on the first four stationary targets, not every encounter target and not physical damage. Four-target native scope checks pass. Moving-ground geometry remains outside the fixed reference scenario.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "https://www.wowhead.com/forever/spell=1310905/consecrated-ground",
        "https://wago.tools/db2/TraitDefinitionEffectPoints?build=1.60.1.69977",
        "sim/paladin/talents.go",
        "sim/paladin/consecration.go"
      ],
      "tests": [],
      "proposed_status": "resolved"
    },
    "PAL-010": {
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Forever Retribution Aura’s base amount is corrected to 30, with Classic kept at 20. Blizzard supports caster/provider SP scaling for reactive auras, including Thorns.",
      "remaining": "Numeric provider-SP coefficients are not established; do not use recipient SP or import another expansion’s coefficient.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/117#issuecomment-5822983107",
        "https://wago.tools/db2/SpellEffect?build=1.60.1.70009",
        "sim/core/buffs.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "Ret Aura's current ranked effect rows.",
          "measure": "Add a rank/base-value regression before correcting the 20-to-30 mismatch; preserve Classic separately."
        },
        {
          "stage": "current-beta",
          "requires": "Paladin level 16 or Druid with Thorns, two controlled caster-SP values, distinct recipient and fixed enemy.",
          "measure": "Measure the coefficient and swap caster gear after application to distinguish intended dynamic behavior from the known beta snapshot bug. Do not change recipient SP simultaneously."
        }
      ],
      "related": [
        "CORE-008"
      ],
      "proposed_status": "needs-evidence",
      "register_update": {
        "current_model": "Forever Retribution Aura’s base amount is corrected to 30, with Classic kept at 20. Blizzard supports caster/provider SP scaling for reactive auras, including Thorns."
      }
    },
    "SCEN-009": {
      "disposition": "not-material",
      "confidence": "high",
      "answer": "Terrain, movement paths, add deaths and human latency are deliberately absent from the stationary reference workloads. Their exact real-world behavior cannot alter a run containing none of those events. This does not make Consecration damage or current three-target threat irrelevant.",
      "remaining": "These become requirements for a moving/add-lifetime encounter, not current coefficient tests.",
      "implementation": "Keep the encounter scope visible and do not interpret encounter remainingTime as measured target TTK.",
      "sources": [
        "sim/core/apl_values_encounter.go",
        "docs/tank_benchmark.md",
        "docs/forever-70009.md"
      ],
      "tests": [],
      "proposed_status": "out-of-scope"
    }
  },
  "coverage_additions": {
    "CORE-015": {
      "register": {
        "category": "shared",
        "kind": "mechanic",
        "priority": "medium",
        "title": "Weapon-racial crit and ranged attacks",
        "question": "Do weapon-specialization racials affect ranged crit, or only melee, spell and inherited pet crit?",
        "current_model": "A matching held weapon adds MeleeCrit and SpellCrit; the ranged attack path also reads MeleeCrit.",
        "impact": "Could change Hunter racial comparisons and gear choices without changing generic equipment crit."
      },
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The Forever Hunter wiki reports that weapon-specialization racial crit applies to melee/spells and the pet, but not ranged attacks. The current helper adds MeleeCrit, which the ranged outcome path also reads, so the engine includes ranged crit. The captured Orc tooltip instead says all spells and abilities; its crit-percent aura does not resolve this live-scope discrepancy by itself.",
      "remaining": "Whether ranged exclusion is current intended behavior or a beta-specific discrepancy; separate actual crit resolution from character-sheet display.",
      "implementation": "This is a new source/code conflict, not a reason to change generic equipment crit. A scoped racial correction would need to preserve the melee/spell/pet contributions and matching-weapon condition.",
      "sources": [
        "https://github.com/classic-hunter/forever-hunter/wiki/Forever-Beta-Changes",
        "sim/core/specializations.go",
        "sim/core/racials.go",
        "sim/core/spell_result.go",
        "sim/core/spell_outcome.go",
        "artifacts/question_review/scenario_data_evidence.json"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Human or Orc Hunter and matching versus nonmatching melee weapons with equal Agility/crit stats; unchanged ranged weapon and pet.",
          "measure": "Record melee, ranged, spell and pet crit APIs before/after the swap, then compare ranged attack outcomes if the display and source descriptions disagree. Check one and two matching weapons separately rather than assuming the bonus stacks."
        }
      ],
      "related": [
        "HUN-001",
        "DATA-012"
      ]
    },
    "WL-008": {
      "register": {
        "category": "warlock",
        "kind": "implementation",
        "priority": "medium",
        "title": "Improved Imp's Firebolt damage multiplier",
        "question": "Does Improved Imp multiply Firebolt's spell-power contribution as well as its base damage?",
        "current_model": "The talent increases Firebolt's base damage range but leaves the SP contribution outside that multiplier.",
        "impact": "Undervalues the talent for an active Imp with spell power; this is separate from generic pet inheritance and the undocumented dummy effect."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "Improved Imp multiplies full Firebolt damage, including its SP component, at all three talent ranks. The separate unexplained dummy effect is still tracked under WL-006.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Corrected locally with focused native controls; affected exact profiles and published results require refresh before these changes are released.",
      "sources": [
        "sim/warlock/imp.go",
        "https://www.wowhead.com/forever/spell=18694/improved-imp",
        "artifacts/question_review/class_evidence.json"
      ],
      "tests": [],
      "related": [
        "WL-006"
      ],
      "proposed_status": "resolved",
      "register_update": {
        "current_model": "Improved Imp multiplies full Firebolt damage, including its SP component, at all three talent ranks. The separate unexplained dummy effect is still tracked under WL-006."
      }
    },
    "DRU-013": {
      "register": {
        "category": "druid",
        "kind": "mechanic",
        "priority": "high",
        "title": "Bear Swipe's missing server AP term",
        "question": "What is Swipe's intended AP coefficient, and has the announced beta script fix shipped?",
        "current_model": "Swipe has flat base damage and no AP term. A public response identifies a live-beta script guard that also suppressed the intended AP scaling.",
        "impact": "Could change Bear damage and multi-target threat; copying a remembered SoD coefficient would not establish the Forever value."
      },
      "disposition": "partial",
      "confidence": "high",
      "answer": "A public developer response identifies an obsolete SoD guard in the server's Swipe script: current beta Swipe has flat damage, but the intended script adds AP. The response says the guard was fixed internally for a later build and explicitly rejects the claim that it was an SP coefficient. Our Swipe also has no AP term. The response does not give the numeric AP coefficient.",
      "remaining": "The numeric AP term and confirmation that the announced fix is live.",
      "implementation": "Track as a newly identified coverage gap, not an already implemented correction. Do not copy a remembered SoD coefficient or silently change current tank results.",
      "sources": [
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/125#issuecomment-5841232704",
        "https://github.com/ClassicWoWCommunity/forever-bugs/issues/125#issuecomment-5842005903",
        "sim/druid/swipe.go"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A subsequent developer clarification or source-backed updated coefficient.",
          "measure": "Check whether the next patch exposes a numeric AP term; absence from SpellEffect does not disprove a server script."
        },
        {
          "stage": "current-beta",
          "requires": "Level-16+ Bear after the announced fix ships, known AP deltas, fixed talent multiplier and target armor.",
          "measure": "Measure Swipe damage across AP values, with an SP-only control. Record the build so a still-flat pre-fix result is not mistaken for intended behavior."
        }
      ]
    },
    "HUN-010": {
      "register": {
        "category": "hunter",
        "kind": "implementation",
        "priority": "medium",
        "title": "Careful Aim / Lethal Attacks talent-string mapping",
        "question": "Do native and web talent strings decode the current tree in the same order?",
        "current_model": "Corrected declaration order with wire IDs unchanged.",
        "impact": "Changes affected Hunter stats and invalidates pre-correction Hunter comparisons."
      },
      "disposition": "evidence-answer",
      "confidence": "high",
      "answer": "A targeted metadata regression reproduced the declaration-order swap used by FillTalentsProto. Hunter proto order now matches the tree; the existing mapping check passes.",
      "remaining": "None for the resolved question; profile/result publication is a separate pending integration step.",
      "implementation": "Keep source versions and implementation coverage separate; no inferred script formula or automatic preset optimization.",
      "sources": [
        "proto/hunter.proto",
        "sim/core/character.go",
        "sim/talents_test.go"
      ],
      "tests": []
    },
    "HUN-011": {
      "register": {
        "category": "hunter",
        "kind": "data",
        "priority": "medium",
        "title": "Hunter’s Mark rank-value anomaly",
        "question": "Why does captured rank three give 98 RAP while rank four gives 71?",
        "current_model": "Owned learned ranks use the captured values; melee Hunter maintains its own Mark for Expose Prey.",
        "impact": "Affects mark rank choice and ownership; no rank optimization is inferred."
      },
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "Owned Mark casts and owner-specific Expose Prey pass locally. External/foreign marks do not supply ownership. Captured rank-three/rank-four RAP values conflict with expected progression.",
      "remaining": "A current-build tooltip/stat trace or later corrected client record establishing the intended rank values.",
      "implementation": "Keep source versions and implementation coverage separate; no inferred script formula or automatic preset optimization.",
      "sources": [
        "sim/hunter/hunters_mark.go",
        "https://www.wowhead.com/forever/spell=14325"
      ],
      "tests": [
        {
          "stage": "launch",
          "requires": "Access to ranks three and four with fixed ranged AP and no competing Mark.",
          "measure": "Compare target-conditioned ranged AP/damage and tooltip values per rank; record the client build."
        }
      ]
    },
    "HUN-012": {
      "register": {
        "category": "hunter",
        "kind": "mechanic",
        "priority": "medium",
        "title": "Savage Strikes article/client version conflict",
        "question": "Is Savage Strikes a melee-damage modifier or family-specific ability crit?",
        "current_model": "Current captured 70009 family-specific crit; full registered family corrected locally.",
        "impact": "Could change melee Hunter damage; stacking both interpretations is unsupported."
      },
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The official article says melee damage, while captured effect 696821 and trait text/curve specify 2/4% ability crit. Native coverage now includes the complete registered family, not just Raptor/Mongoose.",
      "remaining": "A newer client or controlled trace confirming the announced redesign is live.",
      "implementation": "Keep source versions and implementation coverage separate; no inferred script formula or automatic preset optimization.",
      "sources": [
        "https://news.blizzard.com/en-us/article/24301515/world-of-warcraft-forever-class-deep-dives-hunter-and-druid",
        "sim/hunter/talents.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Savage Strikes access and matched talent-on/off attacks at fixed AP, weapon and target.",
          "measure": "Separate hit-size changes from crit-frequency changes, and record build/ability IDs."
        }
      ]
    },
    "DRU-014": {
      "register": {
        "category": "druid",
        "kind": "mechanic",
        "priority": "medium",
        "title": "Faerie Fire announced cost/cooldown versus captured data",
        "question": "Has resource-free six-second Faerie Fire shipped for every form?",
        "current_model": "Form variants and captured caster rules remain separate.",
        "impact": "Could change Balance resource use and debuff maintenance."
      },
      "disposition": "partial",
      "confidence": "moderate",
      "answer": "The official article describes a free cast and six-second cooldown; captured base spell 9907 retains mana cost and no cooldown. Feral variants cannot establish the caster’s rule.",
      "remaining": "A newer-build active record or cast/resource trace resolving the base-versus-form behavior.",
      "implementation": "Keep source versions and implementation coverage separate; no inferred script formula or automatic preset optimization.",
      "sources": [
        "https://news.blizzard.com/en-us/article/24301515/world-of-warcraft-forever-class-deep-dives-hunter-and-druid",
        "sim/druid/faerie_fire.go"
      ],
      "tests": [
        {
          "stage": "current-beta",
          "requires": "Caster Faerie Fire access and enough mana for cost observation.",
          "measure": "Record mana delta, cooldown availability and spell ID; isolate Spirit/MP5 ticks."
        },
        {
          "stage": "launch",
          "requires": "Access to later caster and form ranks.",
          "measure": "Confirm the same rules across ranks/forms rather than extrapolating the first rank."
        }
      ]
    },
    "SHA-006": {
      "register": {
        "category": "shaman",
        "kind": "implementation",
        "priority": "medium",
        "title": "Flametongue Totem damage formula and comparison",
        "question": "What numeric on-hit rule is needed to compare Flametongue + Grace with Windfury?",
        "current_model": "No active Flametongue Totem implementation; no fabricated comparison.",
        "impact": "May change melee raid support; the comparison cannot currently be simulated honestly."
      },
      "disposition": "source-gap",
      "confidence": "moderate",
      "answer": "September 24 official notes exclude Flametongue stacking with Windfury Totem or Flametongue Weapon and remove lingering/stacked buffs. Learned ranks are 28/38/48/58. Rank-four dummy proc 16389 has base points 1363, not an established damage hit; the live tooltip exposes weapon-speed-dependent bounds but does not prove its server formula or SP scaling.",
      "remaining": "Source or measured numeric per-hit/speed formula, SP scaling and proc eligibility; distinguish Windfury Weapon from Windfury Totem exclusions.",
      "implementation": "Keep source versions and implementation coverage separate; no inferred script formula or automatic preset optimization.",
      "sources": [
        "https://us.forums.blizzard.com/en/wow/t/wow-forever-beta-development-notes-updated-september-24/2360696",
        "https://www.wowhead.com/forever/spell=16387",
        "https://warcraft.wiki.gg/wiki/Flametongue_Totem"
      ],
      "tests": [
        {
          "stage": "offline",
          "requires": "A current script explanation or controlled Forever source with a numeric formula.",
          "measure": "Resolve weapon-speed damage, SP contribution and eligible hits without treating a dummy field as damage."
        },
        {
          "stage": "level30",
          "requires": "Rank-one Flametongue at level 28; several weapon speeds and known SP deltas.",
          "measure": "Measure on-hit fire damage and eligible white/special hits, removing other damage procs. Grace of Air is not available in this stage."
        },
        {
          "stage": "launch",
          "requires": "Full-rank Flametongue, Grace of Air and Windfury; one fixed melee profile.",
          "measure": "Compare exclusive FT+Grace versus Windfury with the sourced model and matched inputs; rank-one evidence is not full-rank validation."
        }
      ]
    }
  }
}
