forked from chiki2bum2/SniperGold_ML
670 lines
27 KiB
Markdown
670 lines
27 KiB
Markdown
# P3-S.10 OWNER ADJUDICATION — SNIPERGOLD_ML
| |||
| |||
```text
| |||
Date : 2026-08-22
| |||
Session : P3-S.10 — Owner Adjudication & Canonical Setup Contract Freeze
| |||
Status : DESIGN / ADJUDICATION / CONTRACT FREEZE ONLY.
| |||
NO production change. NO ML. NO optimization. NO backtest.
| |||
Method : For each OD — question -> verified evidence -> alternatives ->
| |||
consequences -> DECISION -> rationale -> unresolved ->
| |||
implementation implications.
| |||
Human verification : REMAINS CANCELLED (permanent research-path decision).
| |||
Outputs : docs/SNIPERGOLD_CANONICAL_SETUP_CONTRACT_v1.md (frozen contract)
| |||
docs/P3_S10_REPAIR_IMPLEMENTATION_SPEC.md (future implementation)
| |||
docs/SESSION_HANDOVER_2026-08-22_P3_S10_OWNER_ADJUDICATION.md
| |||
docs/P3_S9_CONSOLIDATED_REPAIR_PLAN.md (addendum only, §9)
| |||
Provenance : Forge HEAD 533c8c6647a552d01a1a290cb2d0505f94887666 (VERIFIED,
| |||
== origin/main, branch main, working tree = untracked P3-S.7/
| |||
P3-S.8/P3-S.9 artifacts only).
| |||
```
| |||
| |||
---
| |||
| |||
## A. CHECKPOINT (Phase 0 — restoration)
| |||
| |||
```text
| |||
Expected P3-S.9 parent/reference : 533c8c6
| |||
Current local HEAD : 533c8c6647a552d01a1a290cb2d0505f94887666 VERIFIED
| |||
Remote HEAD (origin/main) : 533c8c6647a552d01a1a290cb2d0505f94887666 VERIFIED
| |||
Branch : main VERIFIED
| |||
Working tree : only untracked P3-S.7/P3-S.8/P3-S.9
| |||
artifacts; zero tracked modifications VERIFIED
| |||
P3-S.9 artifacts read : P3_S9_ARCHITECTURE_REVIEW.md,
| |||
P3_S9_ROOT_CAUSE_MATRIX.md,
| |||
P3_S9_CONSOLIDATED_REPAIR_PLAN.md,
| |||
SESSION_HANDOVER_..._P3_S9_...md VERIFIED
| |||
P3-S.2..S.8 authoritative specs : SMC_LIQUIDITY_SWEEP_SPEC_v1 (S.2),
| |||
SMC_CHOCH_MSS_SPEC_v1 (S.3),
| |||
SMC_FVG_SPEC_v1 (S.4),
| |||
SMC_ORDER_BLOCK_SPEC_v1 (S.5),
| |||
SMC_DISPLACEMENT_SPEC_v1 (S.6),
| |||
SMC_MTF_ALIGNMENT_SPEC_v1 (S.7),
| |||
SMC_CANDIDATE_SETUP_SPEC_v1 (S.8) VERIFIED
| |||
Repository state : CONSISTENT — proceed with adjudication.
| |||
```
| |||
| |||
---
| |||
| |||
## B. OD-1 — H4/M30 GATE POLICY
| |||
| |||
### 1. Question
| |||
> Must H4 and M30 be direction-compatible prerequisites for Candidate Setup formation?
| |||
| |||
### 2. Verified evidence
| |||
```text
| |||
- P3-S.7 S-N/S-C : H4/M30 are 0.30-weight VOTES; "CAN trigger entry alone;
| |||
NO gate/override/invalidate" — the CURRENT vote model.
| |||
- P3-S.7 S-H/S-A : the top-down order is an ANALYSIS/READING order; the
| |||
DECISION is a flat vote; no REQUIRED stage; "hierarchy not implemented".
| |||
- P3-S.8 Definition B (legacy) : HTF-align (D1/H4/H1) is a HARD GATE for the
| |||
only real setup state machine in the repository.
| |||
- P3-S.8 CS-13/CS-14 : H4/M30 alone CANNOT create a Candidate Setup under
| |||
either definition; they CAN create an entry signal via the vote.
| |||
- P3-S.9 §E/§F proposal : H4/M30 = REQUIRED direction-compatible CONTEXT
| |||
GATES for the setup layer; the override of S-N/S-C is recorded as OD-1.
| |||
```
| |||
| |||
### 3. Alternatives
| |||
```text
| |||
A1 (adopted) : H4 AND M30 are hard direction-compatible gates; conflict or
| |||
neutral state -> NO CANDIDATE SETUP.
| |||
A2 : Keep vote permissiveness (status quo) — context never gates.
| |||
A3 : Asymmetric half-gate (one TF gates, the other votes).
| |||
```
| |||
| |||
### 4. Consequences
| |||
```text
| |||
A1 : Candidate Setups require top-down agreement (matches legacy B + brief's
| |||
causal order). Fewer setups; the vote layer still emits directional
| |||
signals (signal != setup separation retained). Deterministic, testable.
| |||
A2 : Leaves D-1/D-8/D-13 and root cause G unresolved; setups could form
| |||
against context; contradicts the canonical chain.
| |||
A3 : No project evidence for a half-gate; introduces arbitrary asymmetry.
| |||
```
| |||
| |||
### 5. DECISION
| |||
```text
| |||
OD-1 = YES.
| |||
| |||
H4 must be direction-compatible AND M30 must be direction-compatible for a
| |||
Candidate Setup to form. A conflict means NO CANDIDATE SETUP.
| |||
| |||
Gate semantics (frozen): H4_state(asof) and M30_state(asof) must each be
| |||
non-zero AND equal to the chain direction. A neutral (0) state fails the gate.
| |||
| |||
Important distinction (recorded): SIGNAL != CANDIDATE SETUP.
| |||
H4-only / M30-only / M15-only BUY may exist as DIRECTIONAL SIGNALS (vote
| |||
layer, unchanged). They may NOT create a Candidate Setup, because the
| |||
canonical setup contract requires higher-TF context gates (P3-S.7
| |||
S-N/S-C overridden for the SETUP LAYER ONLY; the vote remains for signal
| |||
scoring — P3-S.9 §F, §M.1).
| |||
```
| |||
| |||
### 6. Rationale
| |||
```text
| |||
The canonical chain is the project's OWN legacy v4.x institutional gate
| |||
(P3-S.8 Definition B) and the brief's causal order (Liquidity -> Structure
| |||
Change -> Zone -> Return -> Confirmation). P3-S.7's permissiveness described
| |||
the CURRENT vote model, not the target setup layer; P3-S.9 explicitly
| |||
identified this override as OD-1. This is an architecture decision, not a
| |||
performance decision.
| |||
```
| |||
| |||
### 7. Unresolved
| |||
```text
| |||
None at the architecture level. "Direction-compatible" is a semantic
| |||
sign-match on as-of closed states (no numeric threshold to tune).
| |||
```
| |||
| |||
### 8. Implementation implications
| |||
```text
| |||
F3 (setup layer): H4/M30 gate evaluation at chain entry.
| |||
F4 (MTF): conflict policy wired to the gate (OD-4).
| |||
Tests: gate-fail cases (conflict, neutral, stale as-of) in the CS-T class.
| |||
```
| |||
| |||
---
| |||
| |||
## C. OD-2 — CANONICAL MTF MODEL
| |||
| |||
### 1. Question
| |||
> Which MTF model is canonical for the SniperGold architecture?
| |||
| |||
### 2. Verified evidence
| |||
```text
| |||
- Engine 2 agent path : H4/M30/M15/M3 (hardcoded AF_E2_TF_S1..S4; P3-S.7 §1).
| |||
- ML / Feature Contract : D1/H4/H1 + M15 (f0-f18); parity-verified (P3-S.7
| |||
S-PR); agent path has NO Python counterpart (parity = N/A by absence).
| |||
- P3-S.7 D-5/D-6 : FEATURE_CONTRACT MTF mismatch; THREE MTF models coexist.
| |||
- P3-S.9 §F proposal : H4/M30/M15/M3 canonical for agent+setup; D1/H4/H1
| |||
deprecated to reference for the agent path.
| |||
```
| |||
| |||
### 3. Alternatives
| |||
```text
| |||
B1 (adopted) : H4/M30/M15/M3 = canonical runtime/setup model; D1/H4/H1/M15
| |||
recorded as legacy/current training semantics; future F4
| |||
alignment requirement.
| |||
B2 : D1/H4/H1/M15 canonical — M30/M3 roles undefined; contradicts
| |||
the runtime and DESIGN.md four-TF model.
| |||
B3 : No canonical model (both coexist indefinitely) — leaves root
| |||
causes E/G/H unresolved.
| |||
```
| |||
| |||
### 4. Consequences
| |||
```text
| |||
B1 : Matches the runtime engine and the setup chain; creates a documented
| |||
FUTURE alignment requirement for training; does NOT modify the ML
| |||
pipeline this session.
| |||
B2 : Requires removing/re-mapping M30/M3; contradicts the actual engine.
| |||
B3 : Perpetuates the three-model drift (D-5/D-6); blocks F4.
| |||
```
| |||
| |||
### 5. DECISION
| |||
```text
| |||
OD-2 = H4 / M30 / M15 / M3 is the CANONICAL SniperGold runtime/setup model.
| |||
| |||
H4 = Narrative / higher-TF context
| |||
M30 = Context
| |||
M15 = Entry
| |||
M3 = Price Action / optional micro confirmation
| |||
| |||
Recorded (NOT modified this session):
| |||
D1/H4/H1 + M15 = legacy/current training semantics (FEATURE_CONTRACT f0-f18).
| |||
H4/M30/M15/M3 = canonical setup/runtime semantics.
| |||
-> A FUTURE ALIGNMENT REQUIREMENT (F4) must reconcile training to the
| |||
canonical model or document the divergence as intentional.
| |||
The old ML architecture is NOT silently rewritten.
| |||
```
| |||
| |||
### 6. Rationale
| |||
```text
| |||
The four-TF model is the actual runtime (agents, aggregator, display) and
| |||
the DESIGN.md analysis hierarchy; the setup chain (H4 gate -> M30 gate ->
| |||
M15 chain -> M3 optional) cannot be expressed in the D1/H4/H1 model. The
| |||
training model is parity-verified FOR ITS OWN scope and is untouched here;
| |||
alignment is deferred to F4 per P3-S.9 §N Phase 4.
| |||
```
| |||
| |||
### 7. Unresolved
| |||
```text
| |||
None at the architecture level. The training-alignment DETAIL (which
| |||
features map to which canonical TF semantics) is F4 implementation scope.
| |||
```
| |||
| |||
### 8. Implementation implications
| |||
```text
| |||
F4 (D-5, D-6): FEATURE_CONTRACT/training alignment or explicit divergence
| |||
document; slot->TF identity enforcement (D-3). FEATURE_CONTRACT.md is NOT
| |||
modified by this session.
| |||
```
| |||
| |||
---
| |||
| |||
## D. OD-3 — VALIDITY-WINDOW SEMANTICS
| |||
| |||
### 1. Question
| |||
> How long may each event/zone remain valid for a Candidate Setup?
| |||
| |||
### 2. Verified evidence
| |||
```text
| |||
- Sweep : f7 EVENT lifecycle onset..onset+40 (SEQ_WINDOW, P3-S.0 fix;
| |||
P3-S.2 R-H); one onset per reference; supersession; EXPIRED after window;
| |||
INVALIDATED/CONSUMED not modeled in f7.
| |||
- CHoCH : f8 = persistent STATE (last CHoCH) PER CONTRACT; f9/f18 chain
| |||
consumers MUST apply validity window = 40 (P3-S.3 S-9/S-10); legacy gate
| |||
(curBar - chochBar) <= 40 AND chochBar >= swpBar (P3-S.3 §10).
| |||
- OB/FVG : ZONE persistent until MITIGATED; NO age expiry; NO invalidation
| |||
(P3-S.4 S-8/S-10; P3-S.5 S-8/S-10).
| |||
- M15 entry : same-bar in Definition A; legacy tap on a FRESH (unmitigated)
| |||
zone (P3-S.8 CS-29).
| |||
- M3 : interval NOT DEFINED (P3-S.8 CS-29); M3 optional (S-P).
| |||
- SeqWindow=40 scope : f7 expiry (ML) + legacy gates; NOT Engine 2
| |||
(P3-S.8 CS-28).
| |||
- P3-S.9 §I : per-primitive contracts; "a single global SeqWindow is NOT
| |||
automatically reused everywhere" (session brief §7).
| |||
```
| |||
| |||
### 3. Alternatives
| |||
```text
| |||
C1 (adopted) : Per-primitive validity CONTRACT with semantics + numerics;
| |||
numerics only where project semantics justify them;
| |||
otherwise OPEN NUMERIC PARAMETER (never from performance).
| |||
C2 : One global SeqWindow=40 for everything (status-quo-ish
| |||
collapse) — rejected: violates the session's design principle
| |||
and the evidence (each primitive has distinct lifecycle).
| |||
```
| |||
| |||
### 4. Consequences
| |||
```text
| |||
C1 : Deterministic, per-stage windows; W_sweep=W_choch=40 justified;
| |||
W_setup/W_m3/W_zone_age recorded as OPEN NUMERIC PARAMETERS with full
| |||
semantic contracts; implementation cannot silently tune them.
| |||
C2 : Repeats the f7/f9/f18 stale-consumption class; conflates EVENT, ZONE,
| |||
SETUP lifecycles; contradicts P3-S.9 §I.
| |||
```
| |||
| |||
### 5. DECISION
| |||
```text
| |||
OD-3 = DECIDED AS A SEMANTIC CONTRACT (per-primitive validity).
| |||
| |||
Liquidity EVENT : unit M15 bars; start = onset b; end = b + W_sweep;
| |||
expiration = EXPIRED after W_sweep; invalidation = none
| |||
(superseded by a newer onset); consumption = read-only.
| |||
W_sweep = 40 (justified: InpSeqWindow origin, P3-S.0/P3-S.2).
| |||
CHoCH EVENT : unit M15 bars; start = onset b'; end = b' + W_choch;
| |||
ordering b' >= b (after sweep) and b' <= b + W_sweep;
| |||
W_choch = 40 (justified: legacy gate, P3-S.3).
| |||
OB/FVG ZONE : unit M15 bars; start = formation ts; end = none by age
| |||
(mitigation/invalidation only); W_zone_age = NONE by
| |||
semantics; an explicit cap = OPEN NUMERIC PARAMETER.
| |||
M3 confirmation : unit M3 bars; optional; evaluated within setup validity;
| |||
W_m3 = OPEN NUMERIC PARAMETER.
| |||
M15 entry cond. : unit M15 bars; per closed bar; bounded by stage windows.
| |||
Candidate Setup : unit M15 bars; start = creation ts; end = creation +
| |||
W_setup; W_setup = OPEN NUMERIC PARAMETER.
| |||
| |||
SEMANTIC CONTRACT vs NUMERIC PARAMETER (explicit):
| |||
- SEMANTIC CONTRACT : what starts/ends/expires/invalidates/consumes each
| |||
primitive (the table above + §K of the canonical contract).
| |||
- NUMERIC PARAMETER : the constant value. 40/40 are JUSTIFIED by project
| |||
semantics. W_setup, W_m3, W_zone_age are OPEN NUMERIC PARAMETERS — they
| |||
must be set in implementation with contract tests, NEVER from AUC/PF/
| |||
profit/backtest.
| |||
```
| |||
| |||
### 6. Rationale
| |||
```text
| |||
The evidence shows three distinct lifecycle classes (EVENT with bounded
| |||
window; ZONE persistent until mitigation; SETUP with formation + validity)
| |||
that a single SeqWindow cannot express. The 40-bar value has a documented
| |||
project origin (InpSeqWindow "sweep -> CHoCH -> entry must chain within"),
| |||
so it is reused ONLY for the sweep/CHoCH EVENT legs it was designed for —
| |||
not for zones or the setup itself.
| |||
```
| |||
| |||
### 7. Unresolved
| |||
```text
| |||
OPEN NUMERIC PARAMETERS (by design, not ambiguity): W_setup, W_m3,
| |||
W_zone_age (cap), plus FVG min-gap / OB min-size / zone-consumer scope
| |||
(F2/F6 scope). All have defined SEMANTIC contracts; only the constants are
| |||
open, and they are barred from performance-based selection.
| |||
```
| |||
| |||
### 8. Implementation implications
| |||
```text
| |||
F1 (EVENT contract): f9/f18 + Engine-2 consumers apply W_sweep/W_choch.
| |||
F2 (ZONE contract): mitigation-aware consumption; zone age semantics.
| |||
F3 (setup layer): W_setup + W_m3 as explicit contract constants with tests.
| |||
```
| |||
| |||
---
| |||
| |||
## E. OD-4 — MTF CONFLICT POLICY
| |||
| |||
### 1. Question
| |||
> What happens when timeframes disagree?
| |||
| |||
### 2. Verified evidence
| |||
```text
| |||
- P3-S.7 S-X : "Defined policy: NONE" — arithmetic resolution only;
| |||
SPECIFICATION AMBIGUOUS.
| |||
- P3-S.7 S-A : same-level votes; contradiction lowers the aggregate bias;
| |||
no BLOCK/WAIT/CONFLICT state (MTF-T21).
| |||
- P3-S.8 Definition B : conflict -> gate fails -> no signal (hard gate).
| |||
- P3-S.9 §F proposal : H4<->M30 conflict -> NO setup; M15 vs H4/M30 ->
| |||
NO setup; M3 contrary -> micro-score only.
| |||
```
| |||
| |||
### 3. Alternatives
| |||
```text
| |||
D1 (adopted) : GATE-FAIL policy for the setup layer (P3-S.9 proposal);
| |||
arithmetic ONLY in the signal-scoring layer.
| |||
D2 : Arithmetic voting everywhere (status quo) — no policy.
| |||
D3 : Mixed — HTF conflict blocks, LTF conflict arithmetic
| |||
(effectively D1 for the setup layer; redundant).
| |||
```
| |||
| |||
### 4. Consequences
| |||
```text
| |||
D1 : Deterministic setup-layer conflicts; consistent with legacy B; the flat
| |||
aggregator remains usable as a scoring layer where arithmetic is valid.
| |||
D2 : Leaves D-2/D-13 and root cause F unresolved; setups can form against
| |||
context; no determinism.
| |||
D3 : Adds nothing over D1.
| |||
```
| |||
| |||
### 5. DECISION
| |||
```text
| |||
OD-4 = GATE-FAIL POLICY for the SETUP LAYER.
| |||
| |||
H4 <-> M30 conflict (opposite signs) : Candidate Setup = BLOCKED.
| |||
H4/M30 compatible, M15 chain conflicts : Candidate Setup = BLOCKED.
| |||
M3 conflict : M3_CONFIRMED = FALSE; Candidate Setup MAY remain valid
| |||
(M3 optional); a contrary M3 reduces ONLY the micro-score.
| |||
| |||
Canonical authority (frozen):
| |||
H4/M30 = directional context GATES
| |||
M15 = setup authority
| |||
M3 = optional micro confirmation
| |||
| |||
NO arithmetic voting resolves setup-layer conflicts. The flat aggregator may
| |||
continue to exist LATER as a scoring/signal layer, but it is NOT the
| |||
canonical definition of Candidate Setup.
| |||
```
| |||
| |||
### 6. Rationale
| |||
```text
| |||
Root cause F (flat score as setup) and D-2/D-13 are structural; only a
| |||
policy with an explicit BLOCK state makes setup-layer conflicts
| |||
deterministic and testable. Arithmetic remains valid where it belongs:
| |||
ranking valid setups (score layer).
| |||
```
| |||
| |||
### 7. Unresolved
| |||
```text
| |||
None at the architecture level.
| |||
```
| |||
| |||
### 8. Implementation implications
| |||
```text
| |||
F4 (D-2, D-13): conflict policy in the MTF hierarchy.
| |||
F3: gate evaluation consumes the policy at chain entry.
| |||
Tests: conflict matrix (H4xM30, M15xH4/M30, M3-contrary) in the CS-T class.
| |||
```
| |||
| |||
---
| |||
| |||
## F. OD-5 — CANONICAL ORDER BLOCK SEMANTICS
| |||
| |||
### 1. Question
| |||
> Which Order Block definition is canonical, and does the CHoCH stage make a
| |||
> separate OB structural-break requirement redundant?
| |||
| |||
### 2. Verified evidence
| |||
```text
| |||
- P3-S.5 S-1..S-5 : CANONICAL current = opposite-color candle B immediately
| |||
before strong-move candle M (body >= 1.5 x avg, 20-bar mean); zone = full
| |||
range of B; NO structural precondition.
| |||
- P3-S.5 §7/A-2 : LEGACY second definition = opposite candle before
| |||
STRUCTURE BREAK (BOS/CHoCH); documented, NOT canonical.
| |||
- P3-S.6 §7 : answer B — OB "strong move" = "A simplified proxy for
| |||
Displacement (same concept family, lower threshold)"; 1.5 vs 1.6 =
| |||
BUG-P3S6-001, "NOT adjudicated" (P3-S.6 A-2).
| |||
- P3-S.6 S-5/S-7 : displacement requires NO structure; OB/displacement are
| |||
the same concept family with different constants.
| |||
- Canonical chain (P3-S.9 D.1) : Sweep -> CHoCH -> OB/FVG ZONE -> M15 entry;
| |||
CHoCH is a SEPARATE REQUIRED stage before the zone leg.
| |||
```
| |||
| |||
### 3. Alternatives (the A/B/C/D/E question)
| |||
```text
| |||
A : OB "strong move" is INTENTIONALLY a simpler proxy for Displacement.
| |||
B : OB should require canonical Displacement (1.6x).
| |||
C : OB should require BOS/CHoCH (legacy structure-break definition).
| |||
D : OB requires a specific combination.
| |||
E : specification remains unresolved.
| |||
```
| |||
| |||
### 4. Consequences
| |||
```text
| |||
A : Detector (validated CONFORMING, P3-S.5 S-1) stays unchanged; the two
| |||
constants are documented as two roles (zone-formation gate vs
| |||
confirmation attribute); minimal change to validated parts (P3-S.9 §K).
| |||
B : Modifies a validated detector + display; embeds displacement into the
| |||
zone; creates asymmetry vs the FVG zone leg (FVG has no displacement
| |||
requirement); no design source demands it.
| |||
C : REDUNDANT with the canonical chain's CHoCH stage; resurrects the legacy
| |||
A-2 definition; creates inconsistency with the FVG alternative (no
| |||
structural requirement).
| |||
D : Only the canonical formation rule itself (opposite candle + strong move
| |||
+ full-range zone + unmitigated) — no extra combination needed.
| |||
E : Leaves BUG-P3S5-002 unresolved; blocks contract freeze.
| |||
```
| |||
| |||
### 5. DECISION
| |||
```text
| |||
OD-5 = A (intentional simpler proxy), with explicit answers:
| |||
| |||
A. YES — the OB "strong move" (1.5 x avg body) is INTENTIONALLY a simpler
| |||
proxy for Displacement (1.6 x avg body): same concept family, lower
| |||
threshold, ZONE-FORMATION gate. (P3-S.6 §7 answer B adopted.)
| |||
B. NO — OB does NOT require canonical Displacement as an input.
| |||
Displacement remains an independent OPTIONAL confirmation attribute.
| |||
The constants 1.5/1.6 are KEPT SEPARATE and DOCUMENTED
| |||
(BUG-P3S6-001 -> DOCUMENT ONLY, F6). Unifying would modify a validated
| |||
CONFORMING detector and conflate two distinct roles.
| |||
C. NO — OB does NOT require BOS/CHoCH. The legacy structure-break
| |||
definition (P3-S.5 A-2) is historical, non-canonical.
| |||
REDUNDANCY ANSWER: YES, requiring CHoCH in the canonical chain DOES
| |||
make a separate OB structural-break requirement redundant — the chain's
| |||
CHoCH stage is the structural confirmation; the zone leg requires only
| |||
an UNMITIGATED, direction-compatible zone.
| |||
D. Canonical OB = (opposite-color candle B) + (strong move M, 1.5 x avg)
| |||
+ (zone = full range of B) + (unmitigated until close-through full
| |||
fill). No additional combination.
| |||
E. RESOLVED — not left open.
| |||
| |||
SUPERSEDED BY OD-5 (recorded, history preserved): any reading of
| |||
SMC_ORDER_BLOCK_SPEC_v1.md §5 that treats the legacy structure-break
| |||
definition as canonical for the setup layer. The spec's CANONICAL current
| |||
definition (S-1..S-9) is CONFIRMED unchanged.
| |||
```
| |||
| |||
### 6. Rationale
| |||
```text
| |||
Chosen on design intent / source behavior / architecture / causal semantics /
| |||
consistency — NOT on results:
| |||
1. The dominant failure class is CONSUMER-side (P3-S.9 §3); detectors are
| |||
validated. Keeping the OB detector unchanged preserves the validated part.
| |||
2. P3-S.6's own recorded answer classifies the OB strong move as a proxy —
| |||
the "simpler proxy" is the project's intended semantic, not an error.
| |||
3. The chain already provides structural confirmation via CHoCH; a second
| |||
structural-break requirement inside OB is redundant and inconsistent with
| |||
the FVG alternative.
| |||
4. The 1.5/1.6 split maps to two different roles (zone formation vs
| |||
confirmation) — a documented distinction, not a defect to "fix".
| |||
```
| |||
| |||
### 7. Unresolved
| |||
```text
| |||
None at the architecture level. BUG-P3S5-002 (two OB definitions) is
| |||
resolved by designation (canonical vs historical). BUG-P3S6-001 is resolved
| |||
by documentation (DOCUMENT ONLY, F6). Zone-consumer scope (P3-S.5 A-3/A-5,
| |||
P3-S.4 A-6) and min-size filters remain F2/F6 implementation scope.
| |||
```
| |||
| |||
### 8. Implementation implications
| |||
```text
| |||
F6 (BUG-P3S5-002, BUG-P3S6-001): documentation only — record the canonical
| |||
vs legacy OB definitions and the 1.5/1.6 role split.
| |||
F2: zone mitigation-aware consumption (OB close-through; FVG wick full-fill
| |||
legacy canonical); zone selection scope.
| |||
```
| |||
| |||
---
| |||
| |||
## G. CANONICAL CANDIDATE SETUP DEFINITION
| |||
| |||
```text
| |||
FROZEN (docs/SNIPERGOLD_CANONICAL_SETUP_CONTRACT_v1.md §A/§D):
| |||
| |||
ONE Candidate Setup = a discrete, causally-ordered entity on the M15 entry
| |||
layer: H4 context gate -> M30 context gate -> fresh Liquidity EVENT ->
| |||
CHoCH/MSS EVENT (after sweep) -> unmitigated OB|FVG ZONE -> M15 entry
| |||
condition -> CANDIDATE_SETUP (direction = chain direction); M3 optional ->
| |||
M3_CONFIRMED.
| |||
| |||
H4 gate : H4_state(asof) non-zero and == chain direction (OD-1)
| |||
M30 gate : M30_state(asof) non-zero and == chain direction (OD-1)
| |||
Liquidity : fresh EVENT (W_sweep=40) (OD-3)
| |||
CHoCH : EVENT after sweep, fresh (W_choch=40), same direction (OD-3)
| |||
Zone : unmitigated OB|FVG, direction-compatible (OD-5; F2)
| |||
M15 entry : zone membership + confirmation conjunction + premium/discount
| |||
filter; displacement may boost (contract §C/§D)
| |||
M3 : optional micro confirmation (OD-4; no veto)
| |||
```
| |||
| |||
---
| |||
| |||
## H. PRIMITIVE ROLE MATRIX (frozen)
| |||
| |||
| Primitive | Role | Required? | Produces | Window |
| |||
|---|---|---|---|---|
| |||
| H4 | CONTEXT STATE (Narrative gate) | REQUIRED | STATE | as-of closed H4 bar |
| |||
| M30 | CONTEXT STATE (Context gate) | REQUIRED | STATE | as-of closed M30 bar |
| |||
| Liquidity Sweep | EVENT (stage 1) | REQUIRED | EVENT | W_sweep=40 |
| |||
| CHoCH/MSS | STRUCTURAL EVENT (stage 2) | REQUIRED | EVENT | W_choch=40 |
| |||
| OB | ZONE (stage 3, OB OR FVG) | ALTERNATIVE | ZONE | unmitigated; no age expiry |
| |||
| FVG | ZONE (stage 3, OB OR FVG) | ALTERNATIVE | ZONE | unmitigated; no age expiry |
| |||
| Displacement | ATTRIBUTE / OPTIONAL CONFIRMATION | OPTIONAL | ATTRIBUTE | per-bar |
| |||
| M15 | ENTRY CONDITION / CHAIN CARRIER | REQUIRED | CONDITION | per closed M15 bar |
| |||
| M3 | OPTIONAL MICRO CONFIRMATION | OPTIONAL | CONDITION | optional (W_m3 open) |
| |||
| |||
---
| |||
| |||
## I. MTF HIERARCHY (frozen)
| |||
| |||
```text
| |||
H4 (Narrative STATE) -> direction-compatible context GATE
| |||
M30 (Context STATE) -> direction-compatible context GATE
| |||
M15 (Entry layer) -> the setup chain lives here (setup authority)
| |||
M3 (Price Action) -> optional micro confirmation (no veto)
| |||
| |||
Can H4 alone create a setup? NO (context state only)
| |||
Can M30 alone create a setup? NO (context state only)
| |||
Can M15 alone create a setup? NO (chain requires H4+M30 gates; the E-rule
| |||
alone = entry condition, not a setup)
| |||
Can M3 alone create a setup? NO (micro-confirmation only)
| |||
| |||
Conflict policy: OD-4 (gate-fail for the setup layer).
| |||
As-of contract: P3-S.7 S-T closed-bar lock (contract §L).
| |||
```
| |||
| |||
---
| |||
| |||
## J. EVENT / ZONE / STATE / ATTRIBUTE / CONDITION CONTRACTS (frozen)
| |||
| |||
```text
| |||
EVENT : {timestamp, direction, valid_until, superseded, source}
| |||
ZONE : {timestamp, direction, upper_bound, lower_bound,
| |||
mitigation_state, invalidated}
| |||
STATE : {value, as_of, timeframe}
| |||
ATTRIBUTE : {value, bar_timestamp, timeframe}
| |||
CONDITION : {boolean, as_of, timeframe, reason}
| |||
| |||
Consumer contract: EVENT -> apply validity window; ZONE -> apply
| |||
mitigation/invalidation; STATE -> as-of closed value; SETUP -> identity +
| |||
lifecycle, never raw detector states.
| |||
(Full spec: docs/SNIPERGOLD_CANONICAL_SETUP_CONTRACT_v1.md §K.)
| |||
```
| |||
| |||
---
| |||
| |||
## K. SETUP IDENTITY (frozen)
| |||
| |||
```text
| |||
{setup_id (monotonic), direction, sweep {onset ts, dir, window},
| |||
choch {onset ts, dir}, zone {type, formation ts, bounds, mit at creation},
| |||
entry TF = M15, creation ts, M3 ts (nullable),
| |||
expiry/invalidation reason (EXPIRED|INVALIDATED|CONSUMED|NONE)}
| |||
Uniqueness: (direction, sweep onset, choch onset, zone formation ts,
| |||
creation ts). CAUSAL identity; one setup = one identity (no per-bar
| |||
recreation).
| |||
```
| |||
| |||
---
| |||
| |||
## L. SETUP LIFECYCLE (frozen)
| |||
| |||
```text
| |||
NONE -> CONTEXT_VALID -> LIQUIDITY_TRIGGERED -> STRUCTURE_CONFIRMED ->
| |||
ZONE_READY -> ENTRY_ARMED -> CANDIDATE_SETUP -> [M3_CONFIRMED optional]
| |||
-> EXPIRED | INVALIDATED | CONSUMED.
| |||
| |||
Strict order; no skipping; no reactivation; stage expiry before
| |||
CANDIDATE_SETUP discards the forming setup; at most one entry signal per
| |||
setup; zone mitigation mid-chain invalidates.
| |||
```
| |||
| |||
---
| |||
| |||
## M. REPAIR FAMILIES (frozen for implementation)
| |||
| |||
```text
| |||
F1 EVENT CONTRACT : BUG-P3S2-001, BUG-P3S3-001, D-12.
| |||
F2 ZONE CONTRACT : BUG-P3S4-001/-002, BUG-P3S5-001 (+ zone scope A-3/A-5/A-6).
| |||
F3 SETUP LAYER : D-8, D-9, D-10, D-11, D-1 (aggregator re-scope), OD-1/OD-3/OD-4 gates+windows.
| |||
F4 MTF/TRAINING ALIGNMENT : D-2, D-3, D-5, D-6, BUG-P3S2-003, BUG-P3S3-002, OD-2/OD-4.
| |||
F5 DISPLAY : D-4.
| |||
F6 DOCUMENTATION : BUG-P3S5-002 (OD-5), BUG-P3S6-001 (OD-5), BUG-P3S5-003/-004,
| |||
BUG-P3S2-004/-005, BUG-P3S3-003, BUG-P3S4-003/-004, D-7, D-14.
| |||
Full detail: docs/P3_S10_REPAIR_IMPLEMENTATION_SPEC.md.
| |||
```
| |||
| |||
---
| |||
| |||
## N. FUTURE IMPLEMENTATION ORDER (frozen, NOT executed)
| |||
| |||
```text
| |||
Phase I : F1 EVENT Contract Repair
| |||
Phase II : F2 Zone Contract Repair
| |||
Phase III : F3 Candidate Setup Layer
| |||
Phase IV : F4 MTF / Training Alignment
| |||
Phase V : F5 Display / Explainability
| |||
Phase VI : Regression + parity + setup dataset rebuild
| |||
Test-first: SPEC -> TEST -> IMPLEMENTATION -> REGRESSION -> PARITY.
| |||
No direct hot-fix. Historical evidence and prior checkpoints preserved.
| |||
```
| |||
| |||
---
| |||
| |||
## O. OPEN DECISIONS
| |||
| |||
```text
| |||
OPEN NUMERIC PARAMETERS (by design; semantically contracted, numerically
| |||
open, barred from performance selection):
| |||
W_setup — Candidate Setup post-formation validity (M15 bars).
| |||
W_m3 — M3 confirmation lookback (M3 bars).
| |||
W_zone_age — optional zone-age cap (default: none — project semantics).
| |||
FVG min-gap / OB min-size / zone-consumer scope — F2/F6 implementation
| |||
scope (P3-S.4 A-1, P3-S.5 A-1/A-3/A-5, P3-S.4 A-6).
| |||
| |||
Implementation-scope items (NOT architecture blockers):
| |||
- FVG mitigation variant unification (wick full-fill canonical vs display
| |||
close variant; P3-S.4 A-2) -> F2.
| |||
- Runtime TF-identity enforcement (D-3) -> F4.
| |||
- Display vs decision consistency (D-4) -> F5.
| |||
- Training alignment detail (OD-2) -> F4.
| |||
| |||
NO unresolved architecture decisions remain.
| |||
```
| |||
| |||
---
| |||
| |||
## P. FINAL ARCHITECTURE STATUS
| |||
| |||
```text
| |||
READY FOR REPAIR
| |||
| |||
Verified conditions:
| |||
OD-1 resolved ........................ YES (H4/M30 hard gates)
| |||
OD-2 resolved ........................ YES (H4/M30/M15/M3 canonical)
| |||
OD-3 resolved as semantic contract .. YES (per-primitive windows;
| |||
40/40 justified; OPEN NUMERIC
| |||
PARAMETERS recorded, not tuned)
| |||
OD-4 resolved ........................ YES (gate-fail policy)
| |||
OD-5 resolved ........................ YES (A; redundancy answered)
| |||
Candidate Setup contract frozen ...... YES (v1)
| |||
MTF model frozen ..................... YES (H4/M30/M15/M3)
| |||
Primitive roles frozen ............... YES (role matrix §H)
| |||
Setup identity frozen ................ YES (§K)
| |||
Lifecycle frozen ..................... YES (§L)
| |||
NO PRODUCTION CODE CHANGED .......... VERIFIED (docs only)
| |||
| |||
Next gate: P3-S.11 — F1 EVENT CONTRACT REPAIR (separate implementation
| |||
session; tests first; one repair family at a time).
| |||
```
| |||
| |||
*Provenance: Forge HEAD 533c8c6647a552d01a1a290cb2d0505f94887666. P3-S.10
| |||
artifacts added; 0 production files modified. Human verification CANCELLED.*
|