# Validation upgrade review

## Scope and method

Base: `2e91327`. Reviewed the execution stability module, comparison fingerprint
change, deep-sweep integration, observation tool, their tests, protocol and runbook.
Review performed sequentially by the implementing agent under the repository's
main-thread mapping; **no independent model review** was performed.

Excluded preexisting work: `results/mlp_performance.md`, `.agents/`,
`.claude/skills/`, `skills-lock.json`. No protected trading artifact was edited.

## Actionable findings

No remaining blocking findings in the scoped change. During implementation,
receipt validation was made to require the full threshold/window matrix and
recompute its verdict; the bundle was extended to retain source bytes; and a
continuous-position test verified that successive observations retain entry fees.
These corrections are included in the final 253-test result.

## Coverage

- Correctness: traced twelve independent perturbations through the canonical
  simulator and calendar accounting; inspected nine windows including all WFO
  periods. Relative terminal wealth and signed drawdown harm use fixed tolerances.
- Promotion contract: inspected both normal and force-promotion candidate gates,
  incumbent assessment, context/configuration binding and unchanged remaining
  hurdles. Old cached evidence fails closed through changed source fingerprints
  and required stability evidence.
- Data integrity: inspected no-overwrite freeze, copied models/parameters/source,
  closed-bar cutoff, anchored row hashes, append receipts, history rejection,
  source drift rejection and idempotent repeat. Source hashes are provenance
  checks, not cryptographic authentication against deliberate local rewriting.
- Accounting: tested flat start and continuous replay across updates, open marking,
  delayed entry fee and exit fee. Existing prefix-causality/disabled-gate tests
  remain in the passing fast suite.
- Maintainability/simplicity: reused canonical simulator, accounting and confirmed
  pivot gate. No alternate trade engine, scheduler or automatic promotion path.
- Performance: expensive perturbations are skipped for core-ineligible sweep
  candidates, explicitly unassessed. The archived 10,010-row search has only 28
  core-eligible rows. The actual two-candidate fixed check took about 1.7 seconds.
- Standards: parameter/Pine preflights passed; no training/search, security-call
  addition, new signal or live deployment occurred. Protected hashes verified.
- Evidence: 253 passed, 2 skipped, three legacy-feature warnings; real fixed
  incumbent/hybrid check; real three-policy freeze and idempotent awaiting-data
  observation. Archive member verification is recorded in `manifest.json`.

## Verdict

Ready for the scoped local implementation commit. All three frozen policies pass
the sensitivity protocol historically. The original hybrid clears the historical
promotion function; the higher-low candidate's previous WFO coverage shortfall
remains. No forward performance or TradingView parity is claimed. Future data
collection is explicitly deferred by the user; the observation tool is ready.
