Skip to content

Trace: keep the action verdict (res/reason) and add a spells oracle to trace-score #289

Closed

Description

@pjerra

Source: ~/TortoiseBots-audit/PLAN-SPELL-AUDIT.txt (spell audit of 33 dungeon runs RFC/WC/Uldaman/ZF, 2026-10-20/21, 1 Hz TBM:VIEW feed; [V]=verified in data/code, [I]=inferred, [U]=unknown). Run ids are tests/ folders under ~/TortoiseBots-audit. Module commit read: 9f929a13.

Gaps found while auditing spell use (all runs r1-r7):
T-a: trace frames drop the verdict letter and reason (internal/dungeon/runtrace.go:454-456 does not copy tbm.PartyRec.Result/Reason). The 1 Hz VIEW only carries the newest verdict, so impossible/failed rows cannot be analysed from the trace.
T-b: run_meta.server_trace was off in every r1-r7 run, so the module's full action record (name, res, rel, src_trigger, cast_interrupted, killer) was never collected. This is the same blocker as #249 (CheckCommand rejects '.bot trace start'); this issue asks that test rounds turn it on (run_meta.server_trace=true + driver word in the slot settings; AiPlayerbot.RunTrace.Enabled=1 on the test server, needs a server config change = ask the owner first) and that the .jsonl/.summary.json is copied back with the run folder.
T-c: no spell-usage oracle in trace-score. Add checks (thresholds via --set, unit tests on small synthetic traces, each with pass + fail case, fail-if-removed; the 1 Hz caveat goes into each Detail): spell_mix (report), idle_share (15 %), mana_at_death (report), oom_in_fight (1 per 10 fights), interrupt_cover (30 % on CC/heal casts), taunt_latency (median 3 s), cc_hold (50 %), pet_threat (5 %), impossible_spam (report). Details: plan sections 1 and 6.
Owner: OURS (turtle-agent). Unlocks verification of the module issues filed from this audit.

Activity

  1. added a commit that references this issue on Oct 21, 2026
  2. pjerra commented on Oct 21, 2026

    @pjerra
    OwnerAuthor

    Part done in PR #291: the verdict letter/reason (res/why) are kept in the frames and trace-score has a report-only 'spells' check with a Spells section. Still open here: collecting the server-side run trace (the config change on the test box) and the taunt-latency, cc-hold and pet-threat checks.

  3. added a commit that references this issue on Oct 22, 2026
  4. pjerra commented on Oct 22, 2026

    @pjerra
    OwnerAuthor

    Progress: T-c is merged into dev via PR #297 (e48f459): the spells check reports taunt_latency (median over 3 s warns), cc_hold (long CC only, under 50 % held warns; Entangling Roots included) and pet_threat (over 5 % of mob-frames warns), all warning-only and settable with --set. Still open, so this issue stays open: T-b (server-side run trace on the test box needs the owner's config decision and round scripts copying it back) and oom_in_fight as a warning.

  5. self-assigned this
    on Oct 25, 2026
  6. pjerra commented on Oct 28, 2026

    @pjerra
    OwnerAuthor

    Status 2026-10-28

    Done:

    Still open:

    • T-b (server-side trace) is still off.
    • oom_in_fight is not a check yet (the check ids in internal/tracecheck/tracecheck.go end at pet_threat).
    • The spell oracle is being built now from the Turtle WoW knowledge base: expected core spells per spec, plus a fight-score command that agrees with the dashboard fight debugger's checks.
  7. pjerra commented on Nov 1, 2026

    @pjerra
    OwnerAuthor

    Fixed on dev: T-a in #291 (abd37a3), T-c in #297 (e48f459), oracle and fight-score in #316 (f1ff3fa), so oom_in_fight exists (internal/tracecheck/oracle.go:19). The one leftover, T-b (turning server_trace on in the test rounds), is a TB-side config choice and not code here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions