Skip to content

Commit 55921a6

Browse files
authored
Merge pull request #104 from lwalden/docs/s6-006-decisions-roadmap-refresh
docs: refresh DECISIONS snapshot + roadmap to live-run state (S6-006)
2 parents 93b3027 + 50b81d1 commit 55921a6

2 files changed

Lines changed: 23 additions & 15 deletions

File tree

DECISIONS.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -317,34 +317,33 @@ Select which sleeve(s) activate first and final initial capital split/account ma
317317

318318
---
319319

320-
## Project State Snapshot | 2026-04-07 | Post-Consolidation
320+
## Project State Snapshot | 2026-06-10 | Paper-Validation Run Live
321321

322-
**Phase:** 1Foundation (Week 9 complete, 418 tests passing). OptiTrade consolidated.
322+
**Phase:** 3Paper Validation, running since 2026-06-11 (ADR-030/031). 12-week window; earliest gate evaluation on/after 2026-09-03. 632 tests passing.
323323

324324
### Unified Phase Structure
325325

326326
| Phase | Weeks | Status | Goal |
327327
|---|---|---|---|
328-
| 1. Foundation | 1-10 | Week 9 done, Week 10 pending | IBKR, sleeves, risk, orchestration, Claude regime |
329-
| 2. Integration + SPX Backtests | 11-16 | Pending | Migrate backtest pipeline (done), SPX backtests, strategy lockdown |
330-
| 3. Paper Validation | 17-28 | Pending | 12+ weeks autonomous paper trading |
328+
| 1. Foundation | 1-10 | Done | IBKR, sleeves, risk, orchestration, Claude regime |
329+
| 2. Integration + SPX Backtests | 11-16 | Closed as superseded (ADR-030: backtesting demoted to research aid; pipeline migrated, gate role removed) | Migrate backtest pipeline (done), SPX backtests, strategy lockdown |
330+
| 3. Paper Validation | 17-28 | In progress — started 2026-06-11, locally hosted worker per ADR-031 | 12+ weeks autonomous paper trading |
331331
| 4. Live Transition | 29-32 | Pending | Staged go-live with human approval |
332332
| 5. Stabilization | 33-44+ | Pending | Tuning, performance reviews |
333333

334334
### Completed Through Week 9
335335
- Weeks 1-8: IBKR connection, market data, storage, orders, income sleeve, option chains, IV rank, screening, Polygon.io calendar, multi-leg orders, options lifecycle, execution service, orchestration wiring, pre-market tests
336336
- Week 9: Concrete `RiskManager` with per-trade checks, stop-halt, position/cap enforcement, no-trade windows; snapshot-backed drawdown tracking; Discord stop alerts via `IRiskAlertService`; Azure.Identity upgraded to 1.17.1
337337
- 2026-04-07: OptiTrade consolidated (ADR-026). Backtest pipeline migrated to `tools/backtest/`. Iron condor findings recorded (ADR-028).
338+
- Completed through S5 (2026-06-10): sprints S1–S5 merged and archived — see the sprint archive in SPRINT.md for the detailed per-sprint record (this snapshot does not duplicate it).
338339

339-
### Blockers (as of 2026-04-07)
340-
- Discord webhook: server/channel not yet created — needed for stop alerts
341-
- Claude API key: needed for regime service integration (Week 10)
340+
### Blockers (as of 2026-06-10)
341+
None — both 2026-04-07 blockers cleared: Discord webhook resolved (day-0 wiring, test alert delivered — see KD-001); Claude API key resolved by re-scoping (gateway key provisioned, metered key not required while `DirectApiFallbackEnabled=false` — see KD-002).
342342

343343
### Next Steps
344-
1. Complete Phase 1 (Week 10): Claude regime service, Discord webhook
345-
2. SPX iron condor backtest via `tools/backtest/` — the alpha-seeking critical path
346-
3. SPX credit spread backtests if iron condor passes
347-
4. Begin Phase 3 paper validation (~June 2026)
344+
1. Monitor the paper-validation run per `docs/paper-validation-runbook.md` (its Run Log is the system of record)
345+
2. S6 protect/instrument items (host-boot CI gate, gap-day monitor, reinvest wiring)
346+
3. Gate evaluation on/after 2026-09-03 — PDR-005 then becomes the live-transition decision
348347

349348
## Known Debt
350349

@@ -356,6 +355,7 @@ Select which sleeve(s) activate first and final initial capital split/account ma
356355
| KD-004 | ✅ RESOLVED 2026-05-29 (S3-001, PR #70). ~~CachingMarketDataService.cs ~360 lines, exceeds 300-line architecture-fitness threshold (grew across S2-001/003/005/006)~~ — decomposed into a 125-line facade + new 280-line MarketRegimeProvider (internal composition, no DI change, zero behavior change) per ADR-017 | Maintainability — closed | 2026-05-29 |
357356
| KD-005 | **ApplicationInsights 2.x→3.x upgrade gate (S5-004r).** `Microsoft.ApplicationInsights.WorkerService` is pinned to the classic 2.x line (2.23.0): AI 3.x is OTel-based and removed classic API types (`ITelemetryInitializer`) that `Microsoft.Azure.Functions.Worker.ApplicationInsights` 2.50.0 is compiled against — pairing them crashes the isolated worker at DI bootstrap with `TypeLoadException`. Upgrade is BLOCKED until the Functions Worker AI package ships a 3.x-compatible release; when unblocking, re-evaluate the OpenTelemetry.Api pin removed in S5-004r (see comment in `TradingSystem.Functions.csproj`) and clear KD-006 in the same change | Stuck on classic 2.x telemetry SDK; no OTel-native pipeline. Boot-blocking if upgraded prematurely | 2026-06-10 |
358357
| KD-006 | **discord.com URI-redaction gate before enabling App Insights (S5-004r).** AI 2.x *dependency* telemetry records the full request URL of outbound HTTP calls — for the Discord named clients that URL IS the token-bearing webhook URL. This path bypasses the `System.Net.Http.HttpClient` ILogger filter in `Program.cs` (that filter only covers log telemetry) and is dormant solely because `APPLICATIONINSIGHTS_CONNECTION_STRING` is unset everywhere. Do NOT set that variable until a telemetry processor/initializer that redacts or drops discord.com dependency URLs is in place (or AI 3.x with OTel redaction supersedes it — KD-005) | Secret-leak risk into App Insights if telemetry is ever enabled without redaction | 2026-06-10 |
358+
| KD-007 | **Optional-null ctor dependency pattern — undecided (S6-001 judge deferral).** Recurring shape across S5-001/S5-003/S6-001: optional constructor dependencies accepted as null with a logged null-skip, vs required dependencies failing at boot — decide once, portfolio-wide; S6-002's host-boot CI gate partially mitigates accidental de-registration | A de-registered dependency degrades to a logged skip instead of failing loudly; pattern decision pending | 2026-06-10 |
359359

360360
---
361361

docs/strategy-roadmap.md

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@
66
77
**Project Type:** api (complex multi-service application)
88

9+
> **State note (2026-06-10):** Phase 3 paper validation is live since 2026-06-11. The
10+
> validation gate is forward paper trading per ADR-030 (backtesting is a research aid, not
11+
> the gate). The Functions worker is locally hosted for the validation window per ADR-031 —
12+
> the Azure architecture below remains the target for a future LIVE posture. PDR-004
13+
> validation thresholds are resolved (S4-001). Current state of record: DECISIONS.md
14+
> Project State Snapshot.
15+
916
---
1017

1118
## Executive Summary
@@ -225,13 +232,13 @@
225232
| Component | Technology | Rationale |
226233
|-----------|------------|-----------|
227234
| Language | C# / .NET 8 | Developer's 12-year expertise, strong typing |
228-
| Orchestration | Azure Functions (Isolated Worker) | Serverless, cost-effective for scheduled tasks |
235+
| Orchestration | Azure Functions (Isolated Worker) | Serverless, cost-effective for scheduled tasks. Locally hosted worker during the paper-validation window per ADR-031; Azure remains the LIVE-posture target |
229236
| Database | Azure Cosmos DB (Serverless) | Flexible schema, low cost at low volume |
230237
| Broker API | Interactive Brokers TWS API | Full options support, paper trading, institutional grade |
231238
| AI Analysis | Claude API | Cost-effective regime detection (~$2-5/mo) |
232239
| Notifications | Discord Webhooks | Free, mobile-friendly, rich embeds |
233240
| Secrets | Azure Key Vault | Enterprise-grade secret management |
234-
| Monitoring | Application Insights | Built-in Azure integration |
241+
| Monitoring | Application Insights | Built-in Azure integration. Not enabled during paper validation — gated behind the KD-006 discord.com URI-redaction requirement (see DECISIONS.md Known Debt) |
235242
| Market Data | Polygon.io | Reliable earnings calendar ($29/month) |
236243
| Testing | xUnit, Moq | .NET standard |
237244

@@ -448,6 +455,7 @@ The following actions **REQUIRE explicit human approval:**
448455

449456
### Phase 3: Validation & Go-Live (Weeks 15-28+)
450457
**Duration:** 14+ weeks
458+
**Status (2026-06-10):** In progress — paper trading runs since 2026-06-11 on the locally hosted worker per ADR-031; earliest gate evaluation on/after 2026-09-03.
451459

452460
| Week | Focus | Deliverables |
453461
|------|-------|--------------|
@@ -558,4 +566,4 @@ Unknowns should not block ongoing development. Instead, Claude must prompt the o
558566

559567
---
560568

561-
*Version: 2.1 | Last Updated: 2026-02-16*
569+
*Version: 2.2 | Last Updated: 2026-06-10*

0 commit comments

Comments
 (0)