|
|
@@ -0,0 +1,67 @@
|
|
|
+## Context
|
|
|
+
|
|
|
+Current `dragon/v2` governance baseline is already in place:
|
|
|
+
|
|
|
+- RC1 frozen policy is documented.
|
|
|
+- Structured reason typing and catalog exist.
|
|
|
+- Golden baseline and core hash manifest are generated.
|
|
|
+- Layer attribution and baseline regression tests are executable.
|
|
|
+
|
|
|
+The next stage must improve change safety and optimization control without destabilizing RC1.
|
|
|
+
|
|
|
+## Goals / Non-Goals
|
|
|
+
|
|
|
+**Goals:**
|
|
|
+- Create an execution architecture that isolates `core`, `secondary`, and `bridge` decision layers.
|
|
|
+- Replace internal control dependence on reason-string prefixes with structured state fields.
|
|
|
+- Keep RC1 compatibility path intact while enabling branch-only weak-family experiments.
|
|
|
+- Strengthen acceptance gates so behavior-preserving refactors are provably stable.
|
|
|
+
|
|
|
+**Non-Goals:**
|
|
|
+- Retune RC1 thresholds in-place.
|
|
|
+- Perform a one-shot rewrite that bypasses compatibility checks.
|
|
|
+- Promote new weak-family variants without attribution and stress validation.
|
|
|
+
|
|
|
+## Decisions
|
|
|
+
|
|
|
+### 1. Compatibility-first layered split
|
|
|
+
|
|
|
+Layer modules will be introduced first, while `dragon_strategy.py` remains a compatibility facade. The facade keeps downstream interfaces stable and allows phased migration without blocking daily reporting.
|
|
|
+
|
|
|
+### 2. Structured state migration in two passes
|
|
|
+
|
|
|
+Pass 1 keeps output compatibility and adds structured decision metadata (already done).
|
|
|
+Pass 2 migrates internal control logic from reason-string checks to explicit structured context fields.
|
|
|
+
|
|
|
+### 3. Weak-family optimization is branch-isolated
|
|
|
+
|
|
|
+`deep_oversold_*`, `predictive_*`, and `post_sell_rebound_*` optimization is performed only in dedicated research branches. Every experiment must ship added/removed trade attribution versus RC1 baseline.
|
|
|
+
|
|
|
+### 4. Guardrails before behavior expansion
|
|
|
+
|
|
|
+No behavior-changing experiment is accepted until golden hash regression, release-window summaries, and signal-pipeline smoke checks all pass.
|
|
|
+
|
|
|
+## Risks / Trade-offs
|
|
|
+
|
|
|
+- [Layer split may change evaluation order] -> Preserve legacy orchestration order in compatibility mode and verify by golden hash.
|
|
|
+- [Hybrid string + structured control can drift] -> Ban new string-prefix control logic and migrate high-risk paths first (`predictive_*`, pending chains).
|
|
|
+- [Weak-family tuning may reintroduce overfitting] -> Require attribution-first evidence and execution-stress checks before acceptance.
|
|
|
+
|
|
|
+## Migration Plan
|
|
|
+
|
|
|
+1. Introduce `openspec` governance package and change set for phase-3 optimization.
|
|
|
+2. Add layered execution modules with compatibility wrapper; keep behavior stable.
|
|
|
+3. Migrate internal control paths from string-based checks to structured state.
|
|
|
+4. Enable weak-family branch experiments with mandatory attribution outputs.
|
|
|
+5. Expand tests for no-silent-path-change, bridge chain regression, and weak-family path replay.
|
|
|
+
|
|
|
+## Rollback Plan
|
|
|
+
|
|
|
+- If compatibility migration fails any golden gate, revert to previous passing commit.
|
|
|
+- If branch experiment degrades attribution-quality gates, archive branch as negative evidence and keep RC1 unchanged.
|
|
|
+
|
|
|
+## Open Questions
|
|
|
+
|
|
|
+- Should bridge-layer extraction happen as one move or by family (`predictive_*` first)?
|
|
|
+- Which weak-family subtype should receive the first confirmation-gate redesign in branch experiments?
|
|
|
+- Should no-silent-path-change tests pin full event payload hashes or core-column-only hashes for long-term maintainability?
|