New Capital Committee, Inc. · CIK 0002110927 · cbmas-vm runtime architecture · 26 Jul 2026 · external review & production directive appended 28 Jul 2026

CLAUDE-DYNAMIC
ANATOMY v2.2

Every file, folder, skill, and MCP server in the living context OS — what it holds, who writes to it, and which layer owns it. Merged with the cbmas-vm cheat sheet: twelve layers, the six non-negotiables, gates 0–9, and the exception register.

One Agent = MCP (∞ tools) + Sub-agent + Structure + Thinking + Safety Layers  ·  measure δ_lo → clear the floor → solve k_t
Workflow / folder Prompts Tools Data Banking · CBMAS · core memory Evidence: documented Theoretical model Illustrative
01 — FILESYSTEM ANATOMY

Where the agent lives

Two roots. Global holds identity and never leaves your machine. Project holds the workspace and is fully git-tracked, except the .local overrides.

╔═ GLOBAL ROOT ═══════════════════════════════════════════════╗
~/.claude/
├── CLAUDE.md              76-token identity · humans only · monthly review
├── skills/                model-invokable · shared across ALL projects
└── plugins/               npx skills add owner/repo --skill name

╔═ PROJECT ROOT ══════════════════════════════════════════════╗
ncc-workspace/
├── CLAUDE.md              4k · self-correcting · [LEARNED RULES] block
├── CLAUDE-Dynamic.md      GENERATED artifact · //export-project-instruction→ paste into Project Instruction field
├── CLAUDE.local.md        personal overrides · NEVER commit
├── .mcp.json              root only, never in .claude/ · ${ENV_VAR} secrets
├── .gitignore             blocks *.local.* and all secrets
│
├── .claude/               the brain — everything below loads on demand
│   ├── settings.json          permissions · hooks · tool config (committed)
│   ├── settings.local.json    machine-specific · gitignored
│   ├── skills/                project-scoped skills
│   │   ├── commit-push-pr/
│   │   └── review-pr/
│   ├── agents/                sub-agents · own context window each
│   │   ├── code-reviewer.md
│   │   ├── security-auditor.md
│   │   └── debugger.md
│   ├── hooks/                 52 deterministic shell triggers
│   │   ├── session-start.sh
│   │   ├── pre-commit.sh
│   │   └── lint-on-save.sh
│   ├── rules/                 glob-scoped · load on path match
│   │   ├── securities.md
│   │   └── court.md
│   ├── commands/              33 canonical slash commands
│   └── output-styles/         30 Format & Style Modifiers, 6 families
│
├── .claude-dynamic/       RUN-TIME · auto-generated
│   ├── sessions/2026-07-26_0715/
│   │   ├── context.json        L1 playbook snapshot
│   │   ├── decisions.md        Plan Mode approvals
│   │   ├── artifacts/          L9 output routing staging
│   │   └── notes.md
│   ├── memory/
│   │   ├── facts.jsonl         Curator delta context · append-only
│   │   ├── preferences.jsonl
│   │   └── learned-rules.md    feeds back into CLAUDE.md
│   ├── worktrees/             parallel isolated sessions
│   └── telemetry/             usage · latency · errors (L6)
│
├── notes/[task-id].md    unlimited · Curator writes after every task
├── audit/                 SEC 17a-4 · append-only JSONL · 7-yr retention
│
├── deals/       Reg D 506(b) · 506(c) · Reg S
├── compliance/  CBMAS · Title IV · regulator submissions
├── clients/     NCC Working Group
├── research/    FRCP templates · circuit filings
└── trading/     AMP Futures · Rithmic R|API · OSO/OCO chains

╔═ cbmas-vm — THE BOUND REPO ═════════════════════════════════╗
cbmas-vm/
├── CLAUDE.md              6 non-negotiables · read first
├── claude-dynamics.md     v2.2 · 12 layers bound to this repo
├── MANIFEST.md            DERIVED · regen_manifest.py · never hand-edit
├── CERTIFICATION.md       what was checked, what failed
├── DEPLOYMENT.md          GCP hardening, ordered
├── RUNBOOK.md             2 touchpoints · incidents
├── premarket/             decision layer
│   ├── gate5_ev.py            realized economics
│   ├── sigma_targets.py       geometry · k_t in σ  (model A)
│   ├── delta_optimiser.py     selection · maximise δ_lo (model C)
│   ├── two_step.py            selection → geometry
│   ├── frequency_optimiser.py the OTHER k_t     (model B)
│   ├── session_calendar.py    DST · 28 degraded days
│   └── gate_register.py       gates 0–9 · only 7 defined
├── execution/             risk cap · Rithmic adapter
├── steer/                 shadow ledger · fill fidelity
├── matlab/                2nd implementation + selftest
├── analysis/              vault ingest → δ → propagate
├── diagrams/              6 .mmd + 2 viewers
├── infra/ deploy/         GCP · Docker · systemd
├── tools/ .github/        generators · CI guards
└── .claude/
    ├── settings.json      deny deploy / secrets / commit
    └── commands/          3 slash commands — the only real ones
02 — MEMORY TIERS

Three files, three scopes

The most common failure is putting project detail in the global file. Keep the ladder strict.

FileScope · budgetWritten by
~/.claude/
CLAUDE.md
Global identity
76 tokens
Humans only
monthly review
./CLAUDE.mdProject
4,000 tokens
Self-correcting
weekly review
CLAUDE-
Dynamic.md
Deployment
artifact
Curator, on
//export
CLAUDE.
local.md
This machine
gitignored
You
./notes/
[task].md
Per task
unlimited
Curator, after
every task
Self-correction loop. Mistake → you correct → close with “Update your CLAUDE.md so you don’t make that mistake again.” Claude appends to [LEARNED RULES]: “[DATE] Never: x. Always: y.”
Sync rule. The skill is source of truth; CLAUDE-Dynamic.md is a build output. Never hand-edit the artifact — re-export it.
03 — THE TWELVE LAYERS (v2.2)

Layer spine · bound to this repo

Ordered because the order is real: context is assembled before agents run, agents before tools, tools before the guardrails that grade the result. v2.2 adds L5a for the δ/k_t symbol collision and L12 for backtest ingest.

L1
Context Playbook
playbook_current · delta ≤ 8 items · confidence floor 0.60
L2
Skills
premarket · orb-execution · l2-quant · risk
L3
Agents
S4 pinned to sonnet-4-6 · ACE runs on Opus 5
L4
Think tiers
ultrathink required for boundary, ledger, and promotion work
L5
MCPs
all disabled inside the 07:00–08:30 PDT window
L5a
Model duality
δ / k_t symbol collision — every call must state which model
L6
Observability
qc_analyze · hashchain · watchdog 120 s
L7
Security & audit
guard · gates 0–9 · SEC 17a-4 + GCS Bucket Lock
L8
Error recovery
hash break → STOP. MATLAB absent → blocking, not deferred
L9
Output routing
never writes to ledger/cbmas/
L10
Context window
program.md is read-only (ORIENT)
L11
Plan mode
required before any threshold change
L12
Backtest ingest
vault read-only · separate GCP project
04 — ACE PIPELINE & THINKING TIERS

Generator → Reflector → Curator

Each role has a default thinking budget. Escalation is rule-driven, not vibes: risk flags force the top tier and open the approval gate.

GENERATOR[T] 4k
Reads Static Core + Dynamic Context + Workflow Tree + Deltas + Skills. If Plan Mode is active: produces the plan only, zero tool calls.
↓ trajectory
REFLECTOR[M] 10k
Grades the trajectory. Emits confidence score and citations_verified. Low confidence routes back to Generator.
↓ insights
CURATOR[M → U]
Writes delta context items — append-only, task_id tagged, audit-logged. Owns notes/ and the memory jsonl files.
↓ high-stakes only
OPUS PERMISSION GATE[U] 32k
SEC filings · litigation packages · changes to CLAUDE.md rules. Human approval required to pass.
↺ delta context feeds the next Generator pass
TierBudgetDefault ownerUse for
think [T]4,000GeneratorTemplated output, KYC, captions, queries
megathink [M]10,000Reflector · CuratorMulti-step legal/financial, IRAC, loops
ultrathink [U]31,999Opus gateSEC filings, litigation, rule changes
interleaved [I]per blockmulti-tool ACEThinking between tool calls
/effort [E]persistentsession-wideStanding low / medium / high control
Auto-escalation. RISK_ALERT: on → [U] always + Plan Mode opens. COMPLIANCE_REVIEW: on → minimum [M]. Sub-agent orchestration → [U] to plan, [T] per sub, [M] to synthesise.
05 — CLAUDE.md · THE SIX NON-NEGOTIABLES

Read first. Everything else is downstream of these.

1 · Broker layerAMP Futures = FCM. Rithmic R|Protocol = data + execution. Zero IBKR — R12, CI-enforced. Ports 7497/7496 and client_id are IB concepts, rejected at load.
2 · Entity“New Capital Committee, Inc.” only. Never an LLC variant.
3 · ScriptBoundaryGuard07:00–08:30 PDT the signals dir is read-only. No LLM, no external API. It is a mount, not app logic.
4 · Nothing goes LIVE by editing a filestatus: LIVE fails docker build unless every promotion condition is met.
5 · Badges are never upgradedSIMULATED stays SIMULATED. Paper results are not performance.
6 · Approval asymmetryTightening → adopt now. Loosening → recorded approval and resets the qualification clock.
06 — ALPHA SIGNAL GRAPHS · L2-QUANT WALK-FORWARD

Does the signal clear the floor?

The naive argmax picks the same rule string in both regimes. Only the lower bound and the overfitting probability tell them apart. Each chart carries its evidence tier.

δ_lo vs floor 0.375documented

Wilson lower bound of δ against the project floor of 0.375. The bound is the objective — maximising the point estimate across a candidate set manufactures edge that is not there. The synthetic edge arm clears by 0.081.

δ_lo < 0.375 reject floor 0.375 NOISE · n=123 δ +0.011 δ_lo −0.051 · below zero, far below floor SYNTH EDGE · n=129 δ +0.520 δ_lo +0.456 · clears by 0.081 0 0.20 0.375 0.60

PBO via CSCV — 0.50 / 0.80documented

PBO via CSCV — the fraction of trials where the in-sample winner lands below the out-of-sample median. Accept below 0.50, hard reject above 0.80. Noise lands at 0.81, inside hard reject.

accept < 0.50 reject > 0.80 NOISE 0.81 SYNTH EDGE 0.00 WFER 0.96 > 0.5 · out-of-sample survival 0 0.50 0.80 1.0

δ vs confluence thresholdillustrative

Curve shape is illustrative — only the confluence-9 boundary and the δ=+0.520 point at confluence 12 come from telemetry. Below 9 the series sits inside the noise band; the far tail decays as n starves.

noise band confluence 9 +0.520 5 7 9 11 12 14 confluence threshold → δ per period ↑

δ(k) — model B, frequencytheoretical model

Forward action once the floor is cleared. Solved numerically — the circulated closed forms are wrong (see panel 06). The risk term is divided by 2k, not multiplied by it.

k* 66.5/yr 495 bps/yr · 0.26/session high friction 6-trade request → off-scale 10⁻¹ 10⁰ 10¹ 10² 10³ k trades / yr → δ EV per yr ↑
C(k) = F₀ + F₁√k + F₂k  ·  δ(k) = k(α_g − C(k)) − γσ²/(2k)  ·  maximise numerically over k
07 — SIGNAL ACCEPTANCE GATE

Same rule. Opposite verdict.

Two runs, 600 synthetic trades each. Both arms select confluence>=12. The argmax is not the discriminator.

NOISE — no edge present

naive argmax δ'confluence>=12'
δ point+0.011   n=123
δ_lo (Wilson)−0.051
PBO0.81
WFER
verdict   under the floor.
Do not proceed.

SYNTHETIC EDGE-PRESENT SCENARIO — above confluence 9

winner'confluence>=12'
δ point+0.520   n=129
δ_lo (Wilson)+0.456
PBO0.00
WFER0.96
verdict   clears the floor.
Solve k_t.
Pipeline-validation example only — not evidence of live market alpha (panel 20).
GateNoiseSynth
δ_lo ≥ 0.375−0.051 ✗+0.456 ✓
PBO < 0.500.81 ✗0.00 ✓
WFER > 0.500.96 ✓
n ≥ 30123129
The naive search finds a positive δ in pure noise. That is the whole reason the guard exists. Three escalating defences: Wilson lower bound as the objective (penalises small n) · walk-forward WFER (edge that does not persist) · PBO via CSCV (in-sample winner below the OOS median).
n ≥ 30 is eligibility, not ranking. Below 30 a candidate is excluded outright — never merely ranked low.
Skill ownership. l2-quant runs walk-forward, PBO, and CSCV. angelic-ai grades the realised session post-close. audit runs the requirement-by-requirement gap check.
08 — δ / k_t MODEL DUALITY (L5a)

Two meanings of the same two symbols

The collision is the reason L5a exists. Every call that uses δ or k_t must state which model it means, or the number is uninterpretable.

A · GEOMETRY

sigma_targets.py

δ = signal edge = π_measured − π_driftless k_t = TARGET DISTANCE in σ π_driftless = k_s / (k_s + k_t) ⇒ EV = 0 at every k_t

R:R is not a lever. Program: measure δ, then solve k_t.

δ floor (lower bound)0.375
optimum k_t4.1 σ
realized R:R there1.52
time barrier √184.24 σ max

B · FREQUENCY

frequency_optimiser.py

δ = EV per year (the OBJECTIVE) k_t = TRADE FREQUENCY per year C(k) = F₀ + F₁√k + F₂k δ(k) = k(α_g − C(k)) − γσ²/(2k)

Program: maximise δ(k) over k directly, numerically.

k* NCC calibration66.5/yr = 0.26/session
EV at k*495 bps/yr
net α per trade7.4 bps
vs the 6-trade request≈23× too frequent · 57× withdrawn (panel 24)

C · SELECTION GUARD

delta_optimiser.py

Decides which δ you are allowed to hand to model A. Neither model helps if the δ fed into it is an artifact. The objective is the Wilson lower bound of δ, never the point estimate.

On the noise record two_step refuses step 2 outright:

“target geometry cannot manufacture edge that the signal does not have.”

Both models independently say the same thing: fewer, better trades. A raises the confluence bar; B puts the optimum at a quarter-trade per session; C decides whether either is entitled to run.

⚠ TWO ERRORS IN THE CIRCULATED VERSION OF MODEL B — DO NOT COPY THEM
  1. The stated quartic 2F₂x⁴ + (3/2)F₁x³ + (F₀−α_g)x² − γσ²/2 does not follow from its own derivative. Substituting k = x² into k²·dδ/dk gives degree 6, not degree 4.
  2. The flat-cost case k* = √(γσ²/(2(α_g−F₀))) has no real root. With F₁ = F₂ = 0 the derivative is (α_g−F₀) + γσ²/(2k²) > 0 always. There is no interior optimum in the flat-cost regime — frequency runs to a constraint, not to a stationary point.

This repo solves numerically. A closed form that is wrong beats nothing, badly.

09 — SKILL REGISTRY (L2)

What the model can pick up

Skills are selected by description match, so the description field is the routing logic. Amber = banking, securities, and forensics. Teal = architecture and orchestration.

Architecture & orchestration

dynamicsglobal-dynamicsorb-dynamics global-dynamics-court-link-patchauditskill-creator frontend-designgithub-authall-skills

Banking forensics & CBMAS

cbmascbmas-auditcbmas-analysis baohcocc-dfpi-audit-ordertaxes

Securities & investor pipeline

nccteaserinvestorsweb

Litigation

litigationcourtglobal-court-templates ca-caption-formatca-exparte-caption-format ca-exparte-caption-v2petitioner-respondentsocc-revision

Trading — AMP Futures / Rithmic R|API

premarketorb-executionglobal-market executionregimeriskdrawdown l2-quantangelic-aisecurities trading-audit-bridge

Document & file production (public)

docxpdfpptxxlsx pdf-readingfile-readingglobal-google
Open finding — reserved terminology in skill descriptions. The installed global-market and orb-execution skill descriptions still name IBKR and IB ports 7497/7496. The CI guard scans HTML and Markdown in the repo; it does not reach ~/.claude/skills/. Run purge_ibkr and regen_all_skills against the skill tree, then re-verify.
Naming constraint. The Skills install panel rejects the word “claude” in the name field — the bundle ships as dynamics, never claude-dynamics. Validated at every rebuild.
10 — MCP SERVERS (L5)

.mcp.json

Project root only. Secrets by ${ENV_VAR} reference, so the file is safe to commit.

ServerGives the agent
sequential-
thinking
Structured multi-step reasoning chains
context7Live library and API documentation
gws-workspaceDrive · Gmail · Calendar · Sheets via gws CLI v0.22.3 — replaces the individual connectors
notebooklmTier 2 notebooklm-py — sources, queries, audio overviews
logseq-fsVault read/write across deals · compliance · clients · research
githubRepos, PRs, wiki — fine-grained PAT, least privilege
ruflodisabled by default. v3.5.0 — 60+ agents, 259 tools, for swarm work only
All MCPs are disabled inside the boundary window. 07:00–08:30 PDT: no LLM call, no external API, no write. Enforced by the :ro mount, not by app logic — make boundary proves it.
Logseq write contract. Agent writes carry claude-delta: true in frontmatter and a [claude-delta] git prefix. Human edits use [human]. No live execution through the vault.
11 — COMMANDS · REAL ONES ONLY

Circulated command posters are mostly fiction

claude.ai has no general slash-command system. /godmode, /devil, /10x, /ghost, /scout, /ooda and most of the “89 commands” send the literal string as prompt text. They can appear to work — so does typing “be aggressive” — but they are prefixes, not features. Do not build automation on them. Real: Claude Code built-ins (run /help), plus everything below.

Slash — .claude/commands/

/analyze-vault → fetch · ingest · δ · propagate
/certify-matlab → selftest + 468-case xval @1e-9
/update-deployment → re-verify, redeploy on drift

Verification

make test · 59 tests
make preflight · R12 · arbiter · costs · LIVE
make certify · python → MATLAB → xval
make matlab-test · make crossvalidate
make fixtures · make manifest · make check-docs

Daily operation

make connections · 05:30 clock · plants
make clock · NTP, fails above 100 ms
make run-all / run-orb · 03:30 · 06:00
make run-post-close · 16:00 Angelic + ACE
make boundary · prove signals mount is :ro
make status / logs

Backtest & analysis

make vault · read-only clone
make delta · the Stage 1 decision number
make findings · δ · σ · slippage
make propagate · dry-run, APPLY=1 to write
make analysis-deploy / -run

Deployment

make deploy / rollback · preflight-gated
make promote-check · read-only 26-step
./infra/provision_vm.sh · VM · SA · NAT
./infra/secrets.sh · stdin, never argv
./infra/firewall.sh · default-deny egress
./infra/gcs_worm.sh · 17a-4 Bucket Lock

MATLAB prompt

>> risk_engine_selftest · certify first
>> crossvalidate · fail above 1e-9
>> risk_engine(px,cfg) · Hill → Student-t CVaR
>> order_approval(...) · gates 0–9, 7–9 undefined

claude-dynamics conventions

skill convention, not a built-in
//think //megathink //ultrathink
//plan //approve //revise
//audit //audit-verify · SHA-256 chain
//eod //correct · Curator sweep

What no command will do

set a profile LIVE · set costs.measured without LIVE fills · change gate thresholds, risk limits or execution logic · write to vault/ audit/ ledger/ signals/ · git push or commit · run an LLM call inside 07:00–08:30 PDT

12 — DAILY RHYTHM

America/Los_Angeles

TimeWhatAttended
03:30premarket timer → S1–S5no
05:30touchpoint 1 · make connectionsyes
06:00make run-orbyes
07:00–08:30boundary window · monitor onlyyes
08:30auto-flattenno
16:00ACE · Angelic → Reflector → Curatoryes
Target ≤ 30 min/day, ≥ 95% autonomous. Measure unplanned interventions, not elapsed time — workarounds hide inside the 30 minutes.
13 — GATES 0–9

7 defined, 3 undefined

#GateState
0Circuit-breaker ladderdef
1Time window 10:00–11:30 EDTdef
2PBO < 0.50 · > 0.80 rejectdef
3Confluence ≥ 9 (raised from 7)def
4QE ≥ 0.50def
5R:R ≥ 1.5 AND EV ≥ 0.25R realizeddef
6Position age < 60 mindef
7–9UNDEFINED — do not inventgap
Completeness reporting. Report as “100% of defined gates (7 of 10 defined)” — never as an unqualified 100%.
14 — ENFORCEMENT

Code, not convention

Load time. profile_arbiter refuses an ineligible LIVE profile; docker build fails.
Mount. signals is :ro during the window. make boundary proves it.
CI. R12 no-IBKR (with prohibition allow-list), manifest staleness, doc drift, no order-send path.
Three generators. regen_manifest · regen_all_skills · check_docs. Prose that describes code is derived, so the build fails instead of drifting silently.
Propagation. apply_findings rewrites marker blocks only; exits non-zero on LIVE promotion.
Cross-validation. 468 σ + 5 Wilson + 3 δ cases at 1e-9. MATLAB absent ⇒ deferred-local = blocking.
Sizing. session_risk_cap before every entry, not on a schedule.
15 — MANIFEST

Derived — never hand-edit

Regenerated by regen_manifest.py. Two lists matter more than the current one.

WITHDRAWN — DELETE ANY COPY

agent_workflow_redesign_v1.mmdinvented A.G.E.N.T. letters
build_deploy_v1.mmdinvented B.U.I.L.D. letters, 4 of 5 wrong
agent_build_steer_v1.htmlrenders both
INSTALL.mdclaimed propagation that never happened
risk_engine.m — pre-07-26erfinv tail 0.50 vs 2.33; Student-t CDF diverged for |x| > √ν
The MATLAB entry matters most. A stale copy returns wrong Student-t quantiles silently. The diagrams announce themselves as wrong; that file does not.

SUPERSEDED — REPLACED, NOT INCORRECT

steer_direct_improve_v1diagrams/steer.mmd
ecosystem/patterns v2diagrams/*.mmd v3
cbmas-trade-logic-v4/this repo
additive edge modellog-odds (legacy flag kept)
CHANGELOG_v2.2.mdMANIFEST + DEPLOYMENT
16 — EXCEPTION GOVERNANCE

The critical-path blocker to Stage 1

An exception is any deviation from the intended workflow — including ones with good outcomes. A profitable trade taken outside the window is an exception. A manual intervention that saved money is an exception. Register only the costly ones and you get a record that flatters the system.

CodeClassSev
E1Boundary violation — LLM/API/write inside the windowCRIT
E2Gate bypass — trade with gates 0–6 not all passedCRIT
E3Risk-cap breach — no halt firedCRIT
E4Evidence gap — fill/ledger mismatch, hash breakCRIT
E11Loosening without approval + clock resetCRIT
E5Unplanned intervention inside the windowHIGH
CodeClassSev
E6Config drift — deployed ≠ committedHIGH
E7Certification lapse — traded while deferred-localHIGH
E8Degraded session counted without a decisionMED
E9Measurement substitution — badge droppedMED
E10Feed degradation — fallback tier, watchdog staleMED
E12Schedule miss — pipeline/ACE/touchpointLOW
1 · Classify before the outcome is known. Adjudicating after seeing P&L is anchored adjudication.
2 · Three occurrences of a class force a rewrite of the control — not a third workaround.
3 · A workaround is a tracked failure, not an adaptation.
Adjudication columns are deliberately blank. The taxonomy and severity ordering follow from controls already in the code. The adjudications are risk-tolerance decisions about your capital — a table filled in by anyone else would look complete while representing nobody's judgement.
17 — OPEN BLOCKERS

Deployment unblocks none of these

1costs.measured: false — nothing leaves SHADOW
2Exception governance — scaffold built, adjudications outstanding
3Gates 7, 8, 9 undefined
4ARCH#4 / #11 / #13 unverified vs R|API+
5δ unmeasured on real data; floor δ_lo ≥ 0.375
6−36% session ($3,602.81) — plant unconfirmed
7A.G.E.N.T. letters A, N, T unknown
8MATLAB never executed — make certify where the license lives
Verified at generation. 59 tests · 6 diagrams parse on mermaid v11 · preflight pass · MATLAB deferred-local · fixtures present.
18 — STANDING INVARIANTS

Checked before anything ships

Broker accuracy. AMP Futures / Rithmic R|API is the sole execution platform. Rithmic OSO/OCO chains with explicit parent-child linking. No other broker's terminology appears in any output, draft, or skill file — the regression test blocks it.
Ledger separation. The Trading Ledger and the CBMAS evidentiary ledger are hard-separated. Different anchors, different retention paths.
Brand discipline. CED tokens never appear on NCC investor-facing surfaces, and the reverse. NCC runs IBM Carbon dark, IBM Plex Mono display + Plex Sans body; CED runs navy/red with Poppins.
Evidence integrity. Every public-facing claim carries an evidence badge — documented evidence, theoretical model, illustrative simulation, or proposed methodology. No entity-level findings originate from an agentic system; human review tiers are required.
Validation before delivery. Every bundle rebuild passes the Python suite — frontmatter, description ≤1024 chars, reserved-word exclusion, Layer Router path resolution, key-term presence — plus round-trip zip verification, before staging to the outputs directory.
Signal acceptance. No sizing, no k_t solve, and no live order without δ_lo ≥ 0.375, PBO < 0.50, WFER > 0.50, and n ≥ 30. A naive argmax result is a candidate, never an authorisation.
Derived files are never hand-edited. MANIFEST.md, and any prose describing code, is regenerated. check_docs fails the build rather than letting documentation drift silently.
Output contract. Every task has a delivery target and an explicit confirmation. Email is never auto-sent. Timezones are always stated.

External review — appended in whole · 28 Jul 2026

Independent review of the public page dated 26 Jul 2026. The framework is directionally strong, but several displayed values must be reconciled before they should control live trading. Marks: 🔴 blocking · 🟠 correct · 🟢 retain. Corrections already applied above: “REAL EDGE” now reads SYNTHETIC EDGE-PRESENT SCENARIO (panels 06–07), and the frequency comparison shows ≈23×, with 57× withdrawn (panel 08).

19 — REVIEW · BOTTOM LINE & MARKED RECOMMENDATIONS

Do not treat sigma as R:R

Alphathe strategy’s expected return or measurable edge after costs.
Sigma (σ)the volatility scale used to normalize target and stop distances.
R:Rtarget distance ÷ stop distance.

Sigma can define the geometry of the trade, but σ and R:R are not the same variable.

MarkFindingRecommended change
🔴Alpha is not yet proven on real dataKeep the system in SHADOW.
🔴The δ threshold conflicts with Gate 5Reconcile the units and definition of δ.
🔴Nominal R:R can overstate expectancyGate on realized, net R:R and net EV.
🔴The 4.1σ target nearly touches the 4.24σ time barrierTest a lower target around 3.4–3.6σ.
🟠The displayed “57× too frequent” calculation appears incorrectRecalculate and correct the dashboard.
🟠“REAL EDGE” is based on synthetic tradesRename it to “Synthetic Edge-Present Scenario.”
🟠Thirty trades is too weak for production promotionKeep n ≥ 30 as eligibility only.
🟢Wilson lower bound, PBO, CSCV and WFER are appropriate safeguardsRetain and strengthen them.
20 — REVIEW 🔴 1 · NO CURRENT LIVE ALPHA CLAIM

Do not claim current live alpha

The page states that the acceptance examples use 600 synthetic trades, while the open blockers say:

costs.measuredfalse
δ on real dataunmeasured
SHADOWnothing leaves it
MATLABnot executed in the licensed environment

Therefore, the displayed δ = +0.520, δ_lo = +0.456, WFER = 0.96 and PBO = 0.00 demonstrate that the pipeline can recognize an injected signal; they do not demonstrate market alpha.

Current wording (superseded)REAL EDGE — above confluence 9
Recommended wording — applied on this page SYNTHETIC EDGE-PRESENT SCENARIO — pipeline-validation example only; not evidence of live market alpha.
Do not publish “real edge” until the figures come from untouched, timestamped out-of-sample market data with commissions, exchange fees, slippage, rejects and unfilled orders included.
21 — REVIEW 🔴 2 · RECONCILE THE δ FLOOR WITH GATE 5

The δ threshold conflicts with Gate 5

The page displays: target 4.1σ · realized R:R 1.52 · time barrier 4.24σ · δ floor 0.375 · Gate 5: R:R ≥ 1.5 and realized EV ≥ 0.25R. Using the displayed geometry:

k_s = 4.1 / 1.52 = 2.70 σ p₀ = 2.70 / (2.70 + 4.10) = 39.68 % driftless probability shown by the model p_min = 1.25 / (1 + 1.52) = 49.60 % win rate for EV = 0.25R before costs δ_min = 49.60 % − 39.68 % = 9.92 % minimum probability edge consistent with Gate 5

But the page requires δ ≥ 37.5 percentage points. Under the page’s stated definition, that would imply:

required win probability≈ 77.18 %
expected value≈ 0.945R per trade before costs

That is far more restrictive than the separate EV ≥ 0.25R requirement. Choose one of these definitions and use it everywhere:

1 · Probability edge. δ = p_measured − p₀
2 · Standardized signal score. Label it something other than a probability difference.
3 · Net expectancy in R. α_R = p·W̄_R − (1−p)·L̄_R − c_R
Recommendation. Make net expectancy in R the primary authorization metric and retain δ as a diagnostic measure.
22 — REVIEW 🔴 3 · GATE ON NET REALIZED R:R

Not the order-ticket ratio

A submitted 1.52 R:R is not necessarily a realized 1.52 R:R. Partial fills, stop slippage, early flattening, timeouts and commissions alter both sides. Use:

EV_R = p·(average realized winner in R) − (1 − p)·(average realized loser in R) − costs in R

For the displayed 1.52 R:R, the win rate required for EV ≥ 0.25R becomes:

All-in costMinimum win rate
0.00R49.60%
0.05R51.59%
0.10R53.57%
0.15R55.56%
Replace Gate 5 with: realized net R:R ≥ 1.50, realized net EV lower confidence bound ≥ 0.25R, and costs measured from live fills. The lower confidence bound matters more than the point estimate.
23 — REVIEW 🔴 4 · TARGET vs TIME BARRIER

Add distance between the target and time barrier

The target of 4.1σ is only 0.14σ below the displayed 4.24σ maximum — about 97% of the barrier. That leaves very little tolerance for: volatility-estimation error · slower price discovery · regime changes · spread expansion · execution delay · the 60-minute position-age gate. The page itself lists target 4.1σ, barrier 4.24σ and position age under 60 minutes.

proposed cap k_t ≤ 0.85 × 4.24σ = 3.60σ to preserve 1.5 R:R k_s ≤ 3.60 / 1.50 = 2.40σ

Proposed shadow test — test these target bands separately:

band 13.2σ
band 23.4σ
band 33.6σ
controlcurrent 4.1σ
Rank them by net-EV lower bound, not by raw average profit. A lower target can improve alpha when the increase in completion probability exceeds the reduction in reward size.
24 — REVIEW 🟠 5 · CORRECT THE FREQUENCY COMPARISON

≈23×, not 57×

The page displayed: optimal frequency 66.5 trades per year · equivalent 0.26 trades per session · six-trade request “approximately 57× too frequent”. Using those displayed numbers:

6 / 0.26 ≈ 23.1

Therefore, six trades per session is approximately 23×, not 57×, the stated optimum. The 57× figure may use a different session-duration adjustment, but that denominator is not displayed. Correction applied in panel 08.

annual qualifying-entry budget : 67 maximum entries per session : 1 typical session : 0 entries additional entry : requires a separately independent signal
Do not interpret “one maximum” as “one required.” The model’s optimum is roughly one trade every four sessions.
25 — REVIEW 🟠 6 · CONFLUENCE 12 IS NOT EVIDENCE

Do not hard-code the synthetic winner

The page correctly says that the naïve optimizer selects confluence >= 12 in both noise and edge-present synthetic data. That proves the rule string itself is not evidence. Recommended structure:

confluence ≥ 9 : candidate eligibility test 9 · 10 · 11 · 12 independently in walk-forward windows select using δ lower bound or net-EV lower bound require minimum sample size in every regime freeze the selected threshold before the final untouched test
PBO through CSCV is designed to estimate whether a backtest winner is likely to disappoint out of sample. The page is right to use it — Bailey, Borwein, López de Prado & Zhu, The Probability of Backtest Overfitting (SSRN 2326253).
26 — REVIEW 🟠 7 · STRENGTHEN SAMPLE REQUIREMENTS

n ≥ 30 is eligibility, never promotion

The page correctly states that n ≥ 30 is eligibility rather than ranking. It should also not be sufficient for live promotion. Recommended separation:

candidate eligibilityn ≥ 30
research-stage comparisonn ≥ 100 out-of-sample trades
promotionprecision/power threshold satisfied
regime requirementminimum sample in each relevant regime

The actual promotion sample should be calculated from the smallest economically useful alpha, desired confidence and observed variance. A provisional 100-trade requirement is better than 30, but it is not a substitute for that calculation.

Add the Deflated Sharpe Ratio or an equivalent multiple-testing correction to account for the number of parameter combinations attempted and non-normal returns — Bailey & López de Prado, The Deflated Sharpe Ratio (SSRN 2460551).
27 — REVIEW · RECOMMENDED DASHBOARD REPLACEMENT

Two replacement panels

Display these fields instead of the current alpha and geometry summaries.

Alpha panel

Gross expectancy per trade Commissions and exchange fees Median slippage 95th-percentile slippage Net expectancy in R Net expectancy lower confidence bound PBO WFER Deflated Sharpe Ratio Number of configurations tested OOS trades by regime Fill rate Reject rate Timeout rate

Sigma / R:R panel

Volatility estimator Volatility horizon Target distance in σ Stop distance in σ Nominal R:R Average realized winner in R Average realized loser in R Realized net R:R MFE distribution MAE distribution Time-to-target distribution Time-to-stop distribution Time-barrier exit percentage
28 — REVIEW · PROPOSED IMMEDIATE MARKS

Proposed immediate marks

status: SHADOW alpha: evidence: UNMEASURED_REAL_DATA costs_measured: false optimize_on: net_ev_lower_bound pbo_max: 0.50 wfer_min: 0.50 candidate_min_n: 30 production_min_n: POWER_ANALYSIS_REQUIRED geometry: rr_min_realized: 1.50 ev_min_net: 0.25R target_sigma_test: [3.2, 3.4, 3.6, 4.1] proposed_target_sigma_cap: 3.6 position_age_max_minutes: 60 frequency: target_annual_trades: 67 max_entries_per_session: 1 six_trade_mode: REJECT labels: real_edge: SYNTHETIC_EDGE_PRESENT_SCENARIO sigma_equals_rr: false
Overall assessment. The selection safeguards are stronger than the geometry and economic-accounting layers. The highest-value improvement is not increasing the displayed R:R. It is measuring net live alpha, reconciling δ with Gate 5, lowering target-to-time-barrier saturation, and sharply reducing trade frequency.

[1] sheet.cfored.com — CLAUDE-Dynamic Anatomy v2.2 · cbmas-vm (the page under review)
[2] SSRN 2326253 — The Probability of Backtest Overfitting · Bailey, Borwein, López de Prado, Zhu
[3] SSRN 2460551 — The Deflated Sharpe Ratio · Bailey, López de Prado

CBMAS Futures Trading Terminal — production quantitative review, reconciliation & risk-control upgrade · appended in whole · 28 Jul 2026

Directive to a senior quantitative trading engineer responsible for execution quality, statistical validation, market-data integrity, risk controls, and production reliability. Audit and correct the terminal using: the 27 Jul 2026 AMP/Rithmic execution records · the current alpha-and-sigma research page · the live terminal’s planned entry, stop, and target geometry · actual broker fills, fees, slippage, order status, and position state · the requirements in panels 29–48. Do not optimize for attractive backtest results. Optimize for: net out-of-sample expectancy · execution-adjusted alpha · capital preservation · reproducibility · statistical validity · operational safety · complete auditability. Do not enable or expand LIVE trading as part of this work. All changes must initially operate in SHADOW or PAPER mode until every promotion gate is satisfied.

29 — DIRECTIVE §1 · JULY 27, 2026 TRADE RECONCILIATION

Raw broker fills are the source of truth

Do not infer executions from submitted orders, canceled orders, completed order rows with blank fill prices, chart annotations, or strategy intentions. Reconcile the six completed round trips below and verify the reconciliation values directly from the broker records. Produce an explicit exception report if any fill cannot be paired one-to-one into a round trip.

#SymEntryExitPointsGross P/L
1MNQ28,329.0028,333.00+4.00+$8.00
2MNQ28,322.0028,326.00+4.00+$8.00
3MNQ28,325.5028,329.50+4.00+$8.00
4MNQ28,328.2528,326.00−2.25−$4.50
5MES7,474.257,472.25−2.00−$10.00
6MNQ28,252.2528,256.25+4.00+$8.00

Expected gross reconciliation

round trips6
winners / losers4 / 2
win rate66.67%
gross winning P/L+$32.00
gross losing P/L−$14.50
gross P/L+$17.50
average gross winner+$8.00
average gross loser−$7.25
gross realized R:R1.1034
gross profit factor2.2069
gross expectancy+$2.9167 per trade

Required invariants

No fill may be counted twice.
Every round trip must contain matched entry and exit quantities.
Buy quantity must reconcile with sell quantity.
Open position quantity must reconcile with the broker.
Strategy state must never override broker position state.
Canceled and rejected orders must not be counted as fills.
Partial fills must be preserved as separate execution events.
All timestamps must be normalized to a single timezone.
30 — DIRECTIVE §2 · FEES, SLIPPAGE, AND NET ALPHA

Remove cost assumptions from production

Import actual: broker commissions · exchange fees · clearing fees · regulatory fees · routing fees · liquidity fees or rebates · entry slippage · exit slippage · stop slippage · cancel-replace costs · partial-fill effects. Until actual broker costs are available, estimated values must be labeled ESTIMATED — NOT BROKER RECONCILED.

Provisional comparison only — $1.78 round-trip cost

six round-trip costs$10.68
estimated net P/L+$6.82
estimated net expectancy+$1.1367 per trade
average net winner / loser$6.22 / $9.03
net realized R:R≈ 0.6888
net expectancy vs average net loss≈ 0.1259R per trade
net profit factor≈ 1.38
break-even win rate≈ 59.21%

Do not present the provisional calculation as final. The production system must calculate:

gross_pnl · commissions · exchange_fees · clearing_fees · other_fees entry_slippage · exit_slippage · total_cost · net_pnl gross_expectancy · net_expectancy · gross_profit_factor · net_profit_factor average_gross_winner · average_gross_loser · average_net_winner · average_net_loser gross_realized_rr · net_realized_rr · net_expectancy_r
net_pnl = gross_pnl − commissions − exchange_fees − clearing_fees − other_fees − slippage_cost gross_realized_rr = average_gross_winner / abs(average_gross_loser) net_realized_rr = average_net_winner / abs(average_net_loser) net_expectancy = win_probability × average_net_winner − loss_probability × abs(average_net_loser) net_expectancy_r = net_expectancy / abs(average_net_loser)
Use net expectancy and its confidence interval as the primary alpha measurement. Do not use gross P/L alone as evidence of alpha.
31 — DIRECTIVE §3 · SEPARATE ALPHA, SIGMA, AND REWARD-TO-RISK

Three separate quantities

AlphaExpected net return attributable to the strategy’s edge. Must be measured after fees, slippage, rejects, timeouts, and unfilled orders.
SigmaA volatility scale used to normalize distances or returns. Sigma is not reward-to-risk.
Reward-to-riskReward distance divided by risk distance. It must be calculated from the actual execution geometry.

Required terminology

planned_rrR:R calculated from the strategy’s planned entry
at_fill_rrR:R recalculated from the actual broker fill
realized_gross_rraverage gross winner ÷ average gross loser
realized_net_rraverage net winner ÷ average net loser
Do not label any sigma measurement as R:R.
32 — DIRECTIVE §4 · ACTUAL-FILL REWARD-TO-RISK GATE

Recalculate R:R after every fill

The terminal currently displays approximately: planned entry 28,105.6901 · stop 27,985.6901 · target L1 28,494.4901 · target L2 28,688.8901. The planned stop distance is ≈120 points, producing theoretical planned geometry of ≈3.24R (L1) and ≈4.86R (L2). However, July 27 MNQ fills occurred between ≈28,252.25 and ≈28,329.00 — the theoretical reward-to-risk was no longer available at the actual fills.

first actual entry at 28,329.00: risk to displayed stop 28,329.00 − 27,985.6901 ≈ 343.3099 points reward to L1 28,494.4901 − 28,329.00 ≈ 165.4901 points at-fill R:R to L1 ≈ 0.4821 reward to L2 28,688.8901 − 28,329.00 ≈ 359.8901 points at-fill R:R to L2 ≈ 1.0483
live_risk = abs(actual_fill_price − effective_stop_price) live_reward = abs(effective_target_price − actual_fill_price) at_fill_rr = live_reward / live_risk if live_risk <= 0: reject_trade("INVALID_RISK_DISTANCE") if at_fill_rr < configured_minimum_at_fill_rr: cancel_remaining_entry_quantity() cancel_attached_orders() flatten_filled_quantity_safely() record_reason("AT_FILL_RR_BELOW_MINIMUM")
Do not use the stale planned entry to authorize a trade after the market has moved.
Record all of: signal price · decision price · order submission price · broker acknowledgement price · actual fill price · stop price at fill · target price at fill · planned R:R · at-fill R:R · realized gross R:R · realized net R:R.
33 — DIRECTIVE §5 · REPLACE THE R:R AUTHORIZATION RULE

Nominal distances no longer authorize

The live-authorization gate must not depend only on nominal target and stop distances. Replace it with: at-fill R:R ≥ 1.50 · realized net R:R ≥ 1.50 over the qualifying evaluation window · net expectancy lower confidence bound ≥ 0.25R · costs measured from actual broker records · all statistical and operational gates satisfied · no authorization may rely on a six-trade sample.

authorization_pass = costs_measured and at_fill_rr >= 1.50 and realized_net_rr >= 1.50 and net_ev_lower_bound_r >= 0.25 and statistical_gates_pass and market_data_gates_pass and execution_gates_pass and risk_gates_pass

July 27 classification

positive gross sessionPASS
positive estimated net sessionPROVISIONAL PASS
at-fill geometryFAIL or UNVERIFIED
gross realized R:R ≥ 1.50FAIL
estimated net realized R:R ≥ 1.50FAIL
estimated net EV ≥ 0.25RFAIL
statistical alpha establishedFAIL
production promotionFAIL
34 — DIRECTIVE §6 · CORRECT DELTA AND EXPECTANCY DEFINITIONS

Define every metric unambiguously

The research page uses a delta threshold that may conflict with the separate expected-value gate. If delta means probability edge:

delta_probability = measured_win_probability − driftless_baseline_probability driftless_baseline_probability = k_s / (k_s + k_t) for target 4.1σ and nominal R:R 1.52: k_s = 4.1 / 1.52 ≈ 2.6974 σ p0 = 2.6974 / (2.6974 + 4.1) ≈ 39.68 % required_win_probability (EV 0.25R, pre-cost) = (1 + 0.25) / (1 + 1.52) ≈ 49.60 % probability edge ≈ 49.60 % − 39.68 % = 9.92 percentage points

A delta threshold of 0.375, interpreted as 37.5 percentage points, is inconsistent with the 0.25R gate unless intentionally designed to require a much larger edge. Resolve this conflict. Preferred primary metric:

alpha_r = win_probability × average_realized_net_winner_r − loss_probability × average_realized_net_loser_r
Use probability delta only as a supporting diagnostic.
Do not use the same symbol or variable name for: probability edge · standardized score · expected return · effect size · volatility · reward-to-risk. Add units and definitions beside every displayed metric.
35 — DIRECTIVE §7 · TARGET-TO-TIME-BARRIER SATURATION

4.1σ is 96.7% of the 4.24σ barrier

Insufficient room for: volatility-estimation error · spread expansion · execution latency · regime variation · slower price discovery · position-age restrictions. Do not replace the production target immediately — run a controlled SHADOW comparison.

target_sigma_candidates : 3.2 · 3.4 · 3.6 · 4.1 (control) target_sigma_cap = 0.85 × 4.24 ≈ 3.60 σ (provisional) maximum_stop_sigma = 3.60 / 1.50 = 2.40 σ (to maintain 1.50 R:R)

Evaluate each candidate using: net expectancy · net expectancy lower confidence bound · fill rate · target-completion rate · stop rate · time-barrier exit rate · average holding time · median holding time · adverse excursion · favorable excursion · slippage · tail loss · regime stability.

Do not choose the target with the highest backtest P/L. Choose only a configuration that survives untouched out-of-sample validation and multiple-testing correction.
36 — DIRECTIVE §8 · TRADE-FREQUENCY AND CHURN CONTROLS

The last three trades gave back ≈$11.84

July 27 executed six round trips; the first five occurred within approximately four minutes, and the session reached its provisional peak net result after trade 3. Using a provisional $1.78 round-trip cost:

estimated net after trade 3+$18.66
estimated net after trade 4+$12.38
estimated net after trade 5+$0.60
estimated final net after trade 6+$6.82

Do not conclude from one session that three trades is permanently optimal. Implement an A/B SHADOW evaluation — control: hard cap 6 trades; candidate: active cap 3 trades, trades 4–6 continue generating shadow decisions but do not reach the broker.

trade_frequency: live_hard_cap: 3 emergency_absolute_cap: 6 trades_above_live_cap: SHADOW_ONLY minimum_seconds_between_new_entries: 600 require_independent_signal_for_additional_entry: true do_not_force_daily_trade: true
A session with zero qualifying trades is valid. Do not interpret a maximum as a target. The model’s earlier frequency estimate of ≈0.26 trades per session implies most sessions should have no trade.
Correct any dashboard statement claiming six trades is 57× the optimum unless the denominator and session adjustment are explicitly shown. Using 6 / 0.26, six trades are ≈23.08× the stated per-session optimum. Applied in panel 08.
37 — DIRECTIVE §9 · CORRELATED-INSTRUMENT COOLDOWN

MNQ and MES are not independent risk

July 27 behavior suggests: the MNQ loss occurred around 07:03:30 PDT · the MES entry occurred approximately 30 seconds later · the next MNQ entry waited approximately 11 minutes. The per-symbol cooldown may have worked, but the strategy shifted into a closely correlated equity-index instrument. Implement both a symbol cooldown and a correlated-group cooldown.

cooldown: symbol_loss_cooldown_minutes: 10 correlated_group_loss_cooldown_minutes: 10 cooldown_starts_from: EXIT_FILL_TIMESTAMP block_new_entries_during_cooldown: true correlated_groups: US_EQUITY_INDEX: - MNQ - MES - MYM - M2K
A realized loss, stop-out, or abnormal adverse excursion in one group member must block new entries across the group. Any exception requires a separately validated diversification signal and an explicit reason code.
Do not treat MNQ and MES as independent risk merely because they have different symbols.
38 — DIRECTIVE §10 · MARKET-DATA FRESHNESS GATE

STALE 15m next to a green LIVE is a defect

The terminal displayed STALE 15m while also displaying LIVE mode. Determine whether that refers to quote age, last completed bar age, chart refresh age, strategy-state age, or dashboard rendering age. Never use one ambiguous stale indicator for multiple data types.

track separately: quote_age_ms · trade_age_ms · order_book_age_ms bar_age_ms · signal_age_ms strategy_state_age_ms · dashboard_render_age_ms market_data_gate: maximum_quote_age_ms: 2000 maximum_trade_age_ms: 5000 maximum_order_book_age_ms: 2000 maximum_signal_age_ms: 15000 maximum_expected_bar_delay_ms: 15000
if authoritative_market_data_stale: execution_permission = BLOCKED new_entries = DISABLED pending_entry_orders = CANCEL alert_severity = CRITICAL
If market data is stale: block all new entries · cancel unfilled entry orders · do not automatically flatten solely because a display bar is old · for open positions, use the broker’s live order and position feed · flatten only under a predefined fail-safe policy when authoritative risk data is unavailable · generate a high-severity alert · persist the exact stale-data reason.
Do not allow a green LIVE indicator while execution permission is blocked without visibly distinguishing configured mode, connectivity state, market-data state, and execution authorization state. Recommended display:
MODE: LIVE_CONFIGURED BROKER: CONNECTED MARKET DATA: STALE EXECUTION: BLOCKED
39 — DIRECTIVE §11 · SYNTHETIC VERSUS REAL ALPHA LABELING

Label injected edges as injected

The research page uses synthetic samples to demonstrate that the validation pipeline can detect an injected edge. Do not label synthetic results REAL EDGE.

synthetic edge runs: SYNTHETIC EDGE-PRESENT SCENARIO PIPELINE VALIDATION ONLY NOT EVIDENCE OF LIVE MARKET ALPHA noise simulations: SYNTHETIC NULL SCENARIO FALSE-POSITIVE CONTROL
Live alpha may be labeled only after: actual costs are measured · timestamp integrity is verified · no look-ahead contamination exists · no data leakage exists · parameters are frozen · untouched out-of-sample evaluation is completed · sufficient trades are collected · regime coverage is adequate · statistical promotion gates pass.
40 — DIRECTIVE §12 · STATISTICAL VALIDATION REQUIREMENTS

Lower bound must pass, not the point

candidate eligibility30 OOS trades
research comparison100 OOS trades, subject to power analysis
production promotiondetermined by statistical power analysis

The production sample size must depend on: minimum economically meaningful alpha · observed return variance · desired statistical power · confidence level · autocorrelation · trade clustering · regime segmentation · number of parameter combinations tested.

Retain or implement: walk-forward validation · CSCV · PBO · WFER · Wilson confidence bounds for proportions · bootstrap confidence intervals for expectancy · block bootstrap for serial dependence · Deflated Sharpe Ratio · multiple-testing correction · parameter-stability analysis · regime-specific performance · untouched final holdout.

provisional gates: PBO <= 0.50 WFER >= 0.50 net_expectancy_lower_bound_r >= 0.25 realized_net_rr >= 1.50 costs_measured == true
Do not authorize a model because a single point estimate passes. The lower confidence bound must pass.
41 — DIRECTIVE §13 · CONFLUENCE-THRESHOLD VALIDATION

Do not hard-code confluence 12

Do not hard-code confluence 12 because an optimizer selected it. Test independently: confluence ≥ 9 · ≥ 10 · ≥ 11 · ≥ 12. For every threshold, report: qualifying trade count · net expectancy · net expectancy confidence interval · realized net R:R · profit factor · PBO · WFER · Deflated Sharpe Ratio · maximum drawdown · tail loss · turnover · fee burden · regime distribution.

Freeze the threshold before the final untouched holdout.
Reject a threshold when: performance is concentrated in one short period · sample size collapses · confidence intervals are too wide · parameter performance is unstable · neighboring thresholds fail materially · the result depends on a few outliers.
42 — DIRECTIVE §14 · EXECUTION AND ORDER-STATE CORRECTIONS

A deterministic order-state machine

SIGNAL_CREATED → RISK_APPROVED → ORDER_SUBMITTED → BROKER_ACKNOWLEDGED → PARTIALLY_FILLED → FILLED → EXIT_ORDERS_PENDING → POSITION_OPEN → EXIT_PARTIALLY_FILLED → POSITION_FLAT terminal / exception states: CANCELED · REJECTED · EXPIRED · RECONCILIATION_ERROR
Required protections: use broker order IDs and execution IDs as authoritative identifiers · make execution-event processing idempotent · deduplicate repeated Rithmic messages · prevent phantom positions · prevent duplicate exit orders · reconcile local state against broker state after reconnect · cancel orphaned orders · record exchange rejection codes · detect price-band rejections · verify order quantity before every exit · require one authoritative position ledger.
Never infer a fill from order status alone.
43 — DIRECTIVE §15 · DASHBOARD CORRECTIONS

Three panels, explicit statuses

Alpha panel

Gross P/L · Total transaction costs · Net P/L Gross expectancy per trade · Net expectancy per trade Net expectancy in R · Net expectancy lower confidence bound Win rate · Wilson win-rate interval Gross profit factor · Net profit factor PBO · WFER · Deflated Sharpe Ratio Number of configurations tested Number of qualifying out-of-sample trades · Trades by regime Fill rate · Reject rate · Timeout rate · Cancel rate Partial-fill rate · Fee burden as % of gross P/L

Sigma and R:R panel

Volatility estimator · Volatility lookback · Sigma timestamp Target distance in σ · Stop distance in σ Planned R:R · At-fill R:R Average realized gross winner in R · Average realized gross loser in R Realized gross R:R Average realized net winner in R · Average realized net loser in R Realized net R:R MFE distribution · MAE distribution Time-to-target distribution · Time-to-stop distribution Time-barrier exit percentage

Execution integrity panel

Broker connection state · Market-data state Execution authorization state Quote age · Order-book age · Signal age Last broker reconciliation time Broker position · Local position · Position mismatch Working broker orders · Working local orders Orphan-order count
Use explicit statuses: PASS · FAIL · BLOCKED · UNMEASURED · ESTIMATED · PROVISIONAL · SHADOW ONLY.
Do not use green status coloring for estimated or unmeasured metrics.
44 — DIRECTIVE §16 · RECOMMENDED INITIAL CONFIGURATION

Proposed SHADOW configuration

A proposed SHADOW configuration — not an automatic production deployment.

status: SHADOW alpha: evidence: UNMEASURED_REAL_DATA costs_measured: false primary_metric: NET_EXPECTANCY_LOWER_BOUND_R candidate_minimum_trades: 30 research_minimum_trades: 100 production_minimum_trades: POWER_ANALYSIS_REQUIRED pbo_maximum: 0.50 wfer_minimum: 0.50 net_ev_lower_bound_minimum_r: 0.25 geometry: minimum_at_fill_rr: 1.50 minimum_realized_net_rr: 1.50 target_sigma_candidates: [3.2, 3.4, 3.6, 4.1] provisional_target_sigma_cap: 3.6 maximum_position_age_minutes: 60 frequency: live_candidate_cap: 3 absolute_safety_cap: 6 trades_above_candidate_cap: SHADOW_ONLY minimum_seconds_between_entries: 600 allow_zero_trade_session: true cooldown: symbol_loss_minutes: 10 correlated_group_loss_minutes: 10 market_data: maximum_quote_age_ms: 2000 maximum_order_book_age_ms: 2000 maximum_signal_age_ms: 15000 stale_data_action: BLOCK_NEW_ENTRIES labels: synthetic_edge_label: SYNTHETIC EDGE-PRESENT SCENARIO sigma_equals_rr: false
45 — DIRECTIVE §17 · ACCEPTANCE TESTS

Automated unit, integration, replay, regression

TEST A — July 27 fill reconciliation round_trips == 6 · wins == 4 · losses == 2 gross_pnl == 17.50 gross_average_winner == 8.00 · gross_average_loser == −7.25 gross_realized_rr ≈ 1.1034 · gross_profit_factor ≈ 2.2069 gross_expectancy ≈ 2.9167 TEST B — estimated fees (round_trip_cost = 1.78) total_cost ≈ 10.68 · net_pnl ≈ 6.82 net_expectancy ≈ 1.1367 · net_realized_rr ≈ 0.6888 net_expectancy_r ≈ 0.1259 TEST C — actual-fill R:R fill 28,329.00 · stop 27,985.6901 targets 28,494.4901 / 28,688.8901 at_fill_rr_l1 ≈ 0.4821 · at_fill_rr_l2 ≈ 1.0483 both must FAIL a 1.50 minimum TEST D — stale quote (> 2,000 ms) new_entry_allowed == false pending_entry_order_cancel_requested == true execution_state == BLOCKED critical_alert_created == true TEST E — correlated cooldown (after MNQ realized loss) MNQ · MES · MYM · M2K entries within 10 minutes == BLOCKED TEST F — frequency cap (after 3 live round trips) fourth qualifying signal: broker_order_submitted == false shadow_decision_recorded == true TEST G — order deduplication (same execution ID) fill_count_increment == 0 · position_change == 0 duplicate_event_logged == true TEST H — reconnect reconciliation (local ≠ broker) broker_position_is_authoritative == true new_entries_blocked == true reconciliation_alert_created == true
46 — DIRECTIVE §18 · REQUIRED DELIVERABLES

Eighteen deliverables

1Executive diagnosis
2Root-cause list ranked by severity
3Corrected quantitative definitions
4A fill-reconciliation module
5A broker-cost reconciliation module
6An actual-fill R:R module
7A correlated cooldown module
8A market-data freshness gate
9A deterministic order-state machine
10Revised risk configuration
11Revised dashboard schema
12Database migrations, if required
13Unit and integration tests
14A replay test using the July 27 fills
15A rollback plan
16A SHADOW deployment plan
17A production-promotion checklist
18A concise change log
For every code change, identify: file path · function or class changed · reason for change · risk addressed · test coverage · rollback procedure.
47 — DIRECTIVE §19 · NON-NEGOTIABLE CONSTRAINTS

Do not

Do not: enable LIVE trading · increase order size · reduce circuit-breaker protection · infer fills from chart data · treat submitted orders as executions · treat gross P/L as net alpha · claim statistical significance from six trades · treat sigma as reward-to-risk · use planned entry geometry after the actual fill · ignore commissions or slippage · bypass stale-data protection · treat MNQ and MES as independent risk · optimize against the final holdout · label synthetic results as real market alpha · silently modify production defaults · fabricate unavailable broker data.
Where information is unavailable, return UNMEASURED. Do not substitute assumptions without marking them clearly.
48 — DIRECTIVE §20 · FINAL DECISION STANDARD

July 27 session classification

operationally reconciledsubject to broker confirmation
gross-positiveyes
net-positiveprovisionally estimated
persistent alpha establishedno
R:R gate satisfiedno
net EV gate satisfiedno
production promotion justifiedno
further SHADOW testing justifiedyes
The objective is not to prove that the strategy works. The objective is to make it impossible for the system to claim that it works unless the broker records, net economics, statistical evidence, and operational controls all support that conclusion.
Paper results are not performance. CBMAS™ and BAoHC™ are proposed methodologies — not validated standards, and not GAGAS-compliant audits. Figures on this page are pipeline telemetry, model output, or illustration, badged per chart. Nothing here is investment advice, an offer to sell, or a solicitation of an offer to buy any security. Internal operations reference only.