name: athena-engine-parity description: Use when investigating live-chart, backtest, or scan parity for Engine A, Engine B, Engine C, or Engine D — candle policy, provider routing, data freshness, ATR provenance, scoring drift, overlay contracts, UI chart payloads, or AI review context mismatches. Do not use for execution-gate changes, unrelated Python cleanup, or threshold tuning unless the user explicitly requests it.
Athena engine parity
Verify outputs match intended data source, candle policy, scoring contract, and consumer payloads without changing strategy semantics.
Review discipline
Follow docs/codex-code-review-discipline.md. Build a coverage map before any parity verdict. For shipped-change or "nothing missed" parity checks, also follow .agents/skills/athena-anti-miss-review/SKILL.md.
Do not claim parity without tracing the full chain: provider/source → candle policy → scoring/confidence → gates → SL/TP/RR → payload → UI/API consumer → tests. If incomplete, say "Coverage incomplete" and list missing paths.
Steps
- Identify engine and route (live scan, backtest, API, UI).
- Trace provider → cache → engine → payload consumer (caller/callee with file evidence).
- Inspect relevant
config.yamlkeys and env routing — do not assume from comments. - Compare score/confidence/overlay fields to tests and config sources.
- Run targeted
rgfor duplicate paths, stale fallbacks, hardcoded thresholds, and UI/backend field drift in scope. - Adversarial pass: assume drift exists — check alternate routes, old fallbacks, engine-only fixes.
- Document exact drift point before patching.
Inspect first
scanner.py, candles_cache.py, candle_feeds.py, engine modules (forex_scoring.py, factor_scoring.py, market_structure.py, engine_c.py, scalp_engine.py), routes_market_data.py, chart UI under static/react-app/.
For config → API → UI → test closed-loop checks (indicator periods, sent-but-unused payload fields, masked parity tests), also load athena-cross-surface-parity and references/parity-checklist.md.
Multi-engine parity: use parallel lanes in athena-anti-miss-review/references/review-lanes.md.
Output
Per finding: severity, file/anchor, execution path, expected vs actual, minimal fix, regression test. End with Coverage and Verdict (PASS / PASS WITH GAPS / FAIL / BLOCKED) when user asked for verification.
Boundaries
- No threshold changes unless explicitly requested.
- Do not collapse Engine A/B/C/D responsibilities.
- No long backtest matrix, multi-file pytest batches, or
pytest tests/unless the user explicitly requests. - Every fix needs one named regression test; run only that file after patch. Proof of no unintended scoring change via source trace, not broad test runs.
- No pytest during parity investigation — read tests for coverage; run pytest only post-fix, one file per fix.
- Current source and tests are proof — not memory or old audit notes.