Skip to content

Task: Full 4-criterion gate PASS, close divergence, remove diagnostic, record B-or-pivot (#72 Phases 3-4) #75

Description

@jarlbrak

Summary

Take the now-coherent boss body to the spec's Definition of Done: a full four-criterion in-game gate PASS for the Mudwretch Foreman with the offline and in-game verdicts agreeing (the offline-PASS / in-game-FAIL divergence closed), then remove or fence the FR-1 diagnostic toggle, and record the objective B-robust-or-pivot decision (FR-6) backed by the controlling gate output.

Parent Spec

Implements #72

Responsible Agent

csharp-harmony-engineer

Files to Touch

Dependencies

Acceptance Criteria

  • run_visual_gate.py reports an in-game four-criterion PASS (connected, upright, centered, scaled) for the Mudwretch Foreman.
  • The same run prints the OFFLINE preview verdict and the IN-GAME verdict, and they AGREE on the four mechanical criteria (the divergence is closed). Any residual disagreement is proven to be offline-preview framing only (a normalized-metric artifact of the approximate crypt camera), NOT a body-coherence difference, and is logged as a gate-tooling follow-up under epic Epic: Robust custom enemy/boss 3D-model pipeline (editor-free, in-game verified) #65's later "Placement, scale, and animation correctness" child; it does NOT block the B-robust verdict.
  • The FR-1 diagnostic toggle is removed or clearly fenced as diagnostic-only; behavior is byte-identical with it off and SELF-TEST PASS holds with the flag off.
  • No gate file or threshold is modified to obtain the PASS.
  • The FR-6 decision is recorded with the controlling gate output: either "runtime-glTF (B) is robust editor-free", or (if the reconstruction could not reach connected:PASS in Task: Fix runtime SMR reconstruction to a connected in-game boss body (#72 Phases 1-2) #74 even after the fresh-SMR escalation) "B is not robust editor-free; pivot to A (AssetBundle) or C (procedural)", naming which approach the next spike should pursue and why.
  • The decision and evidence are recorded in ninum (proj_4f015453) and summarized on the epic Epic: Robust custom enemy/boss 3D-model pipeline (editor-free, in-game verified) #65 thread.

In-Game Verification

Run tools/ai-model-pipeline/run_visual_gate.py (diagnostic flag OFF) against a bridge-enabled launch. It must print an in-game four-criterion mechanical PASS for the Mudwretch Foreman AND show the offline and in-game verdicts agreeing on those four criteria. With the toggle removed/fenced, the framework still logs the existing SELF-TEST PASS lines.

A green build alone does NOT satisfy this work item. The 4/4 in-game PASS plus offline/in-game agreement is required (or, on the pivot branch, the recorded objective pivot verdict with the controlling gate output).

Technical Notes

  • "Divergence closure" means the two verdicts agree on the four BOOLEAN criteria (the in-game connected:FAIL that signaled the runtime shatter is gone). NFR-4 forbids editing the gate to reach this; the only sanctioned escape hatch is the offline-framing-only follow-up described in the acceptance criteria.
  • The scale band is centered on ~1.4 (BossBodyScale = 1.4 vs the scale-1 stock baseline), already finalized in spec Spec: Visual-verification gate (objective in-game PASS/FAIL for custom enemy bodies) #66's thresholds. Do not retune thresholds here.
  • The B-robust verdict rests on the rigid-asset PASS; optional multi-bone polish is a separate work item and is not required for this one.

Definition of Done

  • Code complete and compiles without errors
  • No new SELF-TEST line is expected; existing SELF-TEST PASS lines still appear with the diagnostic flag off (no regression)
  • In-game run_visual_gate.py prints 4/4 mechanical PASS + offline/in-game agreement for the Mudwretch Foreman
  • FR-1 diagnostic toggle removed or clearly fenced; no gate file modified
  • FR-6 decision (B-robust or pivot) recorded with gate evidence in ninum and on epic Epic: Robust custom enemy/boss 3D-model pipeline (editor-free, in-game verified) #65

Metadata

Metadata

Assignees

No one assigned

    Labels

    coreCode area: Core/ framework internalsinfraTooling / build / framework internalswork-itemImplementation task from a spec

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions