Skip to content

docs(ops): paper-validation launch runbook + ADR-031 local run model (S5-004)#94

Merged
lwalden merged 2 commits into
mainfrom
docs/s5-004-paper-validation-runbook
Jun 10, 2026
Merged

docs(ops): paper-validation launch runbook + ADR-031 local run model (S5-004)#94
lwalden merged 2 commits into
mainfrom
docs/s5-004-paper-validation-runbook

Conversation

@lwalden

@lwalden lwalden commented Jun 10, 2026

Copy link
Copy Markdown
Owner

Summary

Adds the operating runbook for the 12-week SANDBOX paper-validation run and records ADR-031 (local run model). Second commit applies all judge fix-now items, including one security code change folded in per judge scope ruling.

Runbook (docs/paper-validation-runbook.md)

  • Run model (ADR-031): worker runs locally on the dev box (TWS 7497 + claude-gateway 3131 are loopback-only); missed runs do not catch up — gap days tolerated by the >=12-week window
  • Daily preflight (winter-first deadline: 5:00 AM PT PST / 6:00 AM PT PDT) and UTC-fixed timer schedule with DST which-column-applies note
  • Discord message reference with embed-color legend (red = risk-stop, orange = operational failure, unbordered = digest) and exact titles
  • Failure triage keyed to observables: dead-man case with crash-vs-never-started distinction, dropped-alert signature in both forms (customDimensions.AlertDropped == "true" structured / AlertDropped=True rendered), TWS Sunday weekly-restart row, gateway degrade = expected behavior
  • Locked posture: SANDBOX only, DirectApiFallbackEnabled=false stays false, stops alert-only, no risk-parameter changes mid-run
  • Day-0 executed 2026-06-10: webhook + gateway key provisioned from Bitwarden, test alert delivered through the production alert path (HTTP 204); Run Log anchors validation start 2026-06-11

ADR-031

Local run model decision recorded in DECISIONS.md with alternatives (Azure-hosted worker rejected: cannot reach loopback-only TWS/gateway).

Security fold-in (judge scope ruling — gates tomorrow's run start)

Program.cs adds builder.AddFilter("System.Net.Http.HttpClient", LogLevel.Warning): IHttpClientFactory's LogicalHandler logs the full request URI at Information on every send, and for the Discord named clients that URI is the token-bearing webhook URL. Regression test pins the category-filter behavior (Information disabled for System.Net.Http.HttpClient.* categories, Warning+ preserved, app categories unaffected).

Also: local.settings.json.example now distinguishes the two Claude key slots (metered fallback placeholder vs gateway bearer from Bitwarden "ClimbOn Co").

Test plan

  • dotnet build TradingSystem.sln — 0 warnings, 0 errors
  • dotnet test TradingSystem.sln — 590/590 passed (4 new logging-filter tests)
  • Day-0 test alert delivered to Discord via production DiscordRiskAlertService path (HTTP 204)

🤖 Generated with Claude Code

lwalden and others added 2 commits June 10, 2026 12:41
… (S5-004)

Judge fix-now items pre-merge: filter IHttpClientFactory LogicalHandler
Information logs (they echo the token-bearing Discord webhook URL) with a
pinned regression test; clarify the two Claude key slots in the settings
example; runbook polish — winter-first preflight deadline, DST column note,
embed-color legend, concrete report-title example, observable-based triage
rows incl. TWS Sunday restart and crash-vs-never-started, AlertDropped dual
signature, curl.exe/absolute-path commands, gate-date qualification.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@lwalden lwalden merged commit ce052df into main Jun 10, 2026
4 checks passed
@lwalden lwalden deleted the docs/s5-004-paper-validation-runbook branch June 10, 2026 19:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant