Skip to content

Calibrate Knight spell effects from observed casts - #107

Merged
adrunkhuman merged 1 commit into
masterfrom
server/calibrate-spell-value
Aug 17, 2026
Merged

Calibrate Knight spell effects from observed casts#107
adrunkhuman merged 1 commit into
masterfrom
server/calibrate-spell-value

Conversation

@adrunkhuman

Copy link
Copy Markdown
Owner

Summary

  • Add bounded controller-local spell profiles that compare verified casts with audited formula envelopes while leaving engine legality, reserves, and formula-minimum hunt safety authoritative.
  • Attribute exact healing, measured Haste duration, and stable single-target Whirlwind Throw or Berserk damage; classify censored, concurrent, lost-target, other-attacker, melee, and multi-target evidence without learning from it.
  • Preserve the existing spell policy below full confidence, then use calibrated utility only to rank already-legal same-role offense choices.
  • Emit confidence, bounds, evidence reasons, victim counts, profile eviction, and controller-reset evidence.

Verification

  • pwsh -File scripts/test-playerbot-gameplay.ps1 -SpellCalibration -Focused -SkipBuild -TimeoutSeconds 120 - passed normal Light Healing, Haste, Whirlwind Throw, single/multi-target Berserk, confidence, ambiguity, eviction, and restart scenarios
  • pwsh -File scripts/test-playerbot-gameplay.ps1 -SpellUse -Focused -SkipBuild -TimeoutSeconds 120 - passed existing healing, support, offense, reserve, and fallback behavior
  • pwsh -File scripts/test-playerbot-gameplay.ps1 -AdaptiveChallenge -Focused -SkipBuild -TimeoutSeconds 120 - passed adaptive hunt recovery regression
  • pwsh -File scripts/test-knight-spell-contract.ps1 - passed audited Knight spell contract

Limits

Lua callback bounds are not exposed through the spell engine, so the calibration API manually mirrors the current Light Healing, Haste, Whirlwind Throw, and Berserk callbacks. Those envelopes must be reviewed with callback changes; historical 8.60 formula fidelity remains under #1. Profiles are memory-bounded and reset with the controller. Other-attacker and melee ambiguity use deterministic classifier coverage because the single-threaded normal speech cast cannot interleave those events reliably.

Closes #97.

@adrunkhuman
adrunkhuman merged commit e4b21b4 into master Aug 17, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Calibrate Knight spell effects from observed casts

1 participant