New Additions

New Additions

A permanent record of every capability added to TradeRep: where it came from, its licence position, why it was added, how it was tested, what existing functionality it overlaps, and what a rollback would involve. Nothing is deleted from this ledger — a retired component keeps its entry, with the reason and the parity evidence behind any replacement.

DashboardBot TesterResearch History (dated research events)

Entries
11
experimental
6
certified
0
production
5
retired
0
4 entries declare a TradeRep location that is not in this checkout (component-deterministic-replay-invariants, component-independent-replication-manifest, component-market-intelligence-causality-guards, strategy-factory). For components owned by another research lane that is expected until their branch merges — it is surfaced rather than hidden so a stale claim cannot go unnoticed.

All components

11 of 11 shown, newest first
Canonical registry surfaces (Strategy Registry, Bot Tester, New Additions, Monitor)experimentalWebsite / organization2026-09-17

The research record was complete but only legible by opening committed JSON artifacts by hand, which is also how a program loses track of its own multiple-testing burden.

Source
Internal — Master Plan Reboot Phase 1
Original implementation / inspiration
docs/TRADE_REP_MASTER_PLAN_REBOOT.md sections 1, 2, 7, 10, 11
TradeRep location
lib/registry/, app/strategies/, app/bot-tester/, app/new-additions/, app/monitor/
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/integration/informationArchitecture.test.tsx — every nav route resolves, preserved surfaces stay reachable
  • · tests/unit/registry/*.test.ts — registry status equals the shared roster's, metrics are quoted not recomputed, ledger drops nothing
Overlaps with existing functionality
  • /research-status card viewRETAINED — it is now a view inside the Strategies section, unchanged, at its original URL.

Rollback: Read-only surfaces over committed artifacts. Deleting app/strategies, app/bot-tester, app/new-additions, app/monitor and lib/registry removes the views and changes no research data. Navigation would need NAV_ITEMS reverted.

Deterministic replay invariants (clean-room)experimentalExecution integrity2026-09-17location not in this checkout

Give TradeRep independent invariants for event ordering, duplicate-event protection and monotonic replay so no strategy can benefit from future-confirmed state.

Source
Nautilus-style execution-integrity concepts (no code copied)
Original implementation / inspiration
research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 3
TradeRep location
research/external-systems/deterministicReplay.ts — missing here: research/external-systems/deterministicReplay.ts
Licence / reuse constraints
CLEAN_ROOMConcepts implemented independently; no third-party source reused.
Tests performed
  • · owned by the external-bot/multi-market research lane; unit tests accompany the module in that lane
Overlaps with existing functionality
  • lib/backtest/runner (canonical replay)HARDENING, NOT REPLACEMENT — TradeRep remains the engine; these are assertions that can be applied to it.

Rollback: Standalone helpers in the research area with no production dependents; removal affects nothing in the canonical engine.

Independent (second-engine) replication manifest and comparisonexperimentalValidation / replication2026-09-17location not in this checkout

Let a finalist be independently reimplemented so that agreement between two engines becomes evidence, and disagreement becomes an investigation trigger.

Source
LEAN independent replication lane concept
Original implementation / inspiration
research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 4
TradeRep location
research/external-systems/leanReplication.ts — missing here: research/external-systems/leanReplication.ts
Licence / reuse constraints
CLEAN_ROOMConcept-level only.
Tests performed
  • · owned by the external-bot/multi-market research lane
Overlaps with existing functionality
  • canonical TradeRep backtest engineREPLICATION ENGINE, NOT REPLACEMENT — engine policy: a stronger second engine is used to replicate finalists; replacing the canonical engine is a separate engineering decision requiring a parity migration.

Rollback: No dependents; removal affects nothing.

Market-intelligence causality guards (order flow / volume profile / regime)experimentalFeature research with causality enforcement2026-09-17location not in this checkout

Define order-flow/volume-profile/regime research interfaces that refuse to run on data that cannot support them, instead of approximating microstructure from OHLC.

Source
Clean-room concepts from dearvn/tradovate-trading-bot
Original implementation / inspiration
research/external-systems/OPEN_SOURCE_FUTURES_EXPANSION.md section 2
TradeRep location
research/external-systems/marketIntelligence.ts — missing here: research/external-systems/marketIntelligence.ts
Licence / reuse constraints
CLEAN_ROOMConcepts only; no implementation code copied.
Tests performed
  • · owned by the external-bot/multi-market research lane
Overlaps with existing functionality
  • existing OHLC-derived features (ATR, VWAP, volume)COMPLEMENTARY — these guards cover tick/trade-derived features that the canonical dataset cannot currently supply (DATA_BLOCKED).

Rollback: No dependents; removal affects nothing. The DATA_BLOCKED finding stands independently of the code.

Monitor real-process-state contractexperimentalOperations / observability2026-09-17

Planned research was being read as running work. The Monitor now derives RUNNING only from a real process signal (a live workflow run, or a job row holding a fresh advisory lock) and labels everything else PLANNED, QUEUED, IDLE or UNKNOWN.

Source
Internal — Master Plan Reboot section 10
Original implementation / inspiration
docs/TRADE_REP_MASTER_PLAN_REBOOT.md section 10 ('Never display a bot as RUNNING unless there is a real live process/workflow in a running state')
TradeRep location
lib/registry/monitorState.ts, app/api/monitor/state/route.ts, app/monitor/page.tsx
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/unit/registry/monitorState.test.ts — a planned campaign can never be RUNNING; a stale-locked job is reported degraded, not running; an unconfigured workflow source reports UNKNOWN rather than nothing-running
Overlaps with existing functionality
  • /api/live/readinessRETAINED — readiness answers 'is the live pipeline trustworthy'; the Monitor answers 'what is executing'. The Monitor reads the readiness endpoint rather than reimplementing it.
  • /api/backtest/jobs/[id] status pollingRETAINED — per-job polling for the Jobs UI is unchanged; the Monitor aggregates across jobs using the same lock-staleness predicate (isStaleRunningJob).

Rollback: Removing app/api/monitor/state and lib/registry/monitorState.ts restores the previous behaviour (no aggregate process view). No job, workflow or live-feed behaviour is affected — the Monitor only reads.

Funded-account sizing simulation (per-trade overlay)experimentalRisk / reporting2026-09-16

Re-express realized shadow R at a funded-account contract policy without touching canonical R or any strategy's logic.

Source
Internal
Original implementation / inspiration
lib/liveStatus/fundedSizing.ts (funded-sim-v1-provisional)
TradeRep location
lib/liveStatus/fundedSizing.ts, rendered on /live/strategies and /funded-simulation
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/unit/live/fundedSizing.test.ts
Overlaps with existing functionality
  • computePositionSize / DEFAULT_ENGINE_PARAMS (V1 sizing)DELIBERATELY SEPARATE — V1 sizing gates real trade selection; this overlay is read-time only and shares no constants or code path.

Rollback: Read-time only, nothing persisted. Removing the module removes the amber simulation bands and changes no canonical figure.

Strategy Factory (declarative DSL, certification, funnel runner)productionResearch infrastructure2026-09-16location not in this checkout

Run large pre-registered candidate campaigns (A6+) through a certified declarative engine with per-candidate execution certification, integrity auditing and multiple-testing accounting.

Source
Internal
Original implementation / inspiration
docs/STRATEGY_FACTORY_ARCHITECTURE.md
TradeRep location
lib/strategy-engine/research/strategyFactory/ — missing here: lib/strategy-engine/research/strategyFactory/
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · factory suite under tests/unit/strategy-engine/research/strategyFactory/ (owned by the multi-market lane)
Overlaps with existing functionality
  • Strategy Lab campaign runner (lib/strategy-engine/research/strategyLab/campaign/)BOTH RETAINED — the Strategy Lab carries hand-written A0-A5 strategies through its gates; the Factory carries machine-generated declarative candidates. The Strategy Registry indexes both and labels which engine produced each record.

Rollback: Campaign artifacts are frozen on disk and remain readable even if the runner is removed; the registry reads the artifacts, not the runner.

Sealed pre-Discovery Holdout bankproductionResearch governance / data2026-09-15

Provide strictly-before-Discovery data that no pre-Holdout gate can see, handed out one chronological slice at a time.

Source
Internal
Original implementation / inspiration
research-output/strategy-lab/sealed-holdout-bank/
TradeRep location
research-output/strategy-lab/sealed-holdout-bank/, lib/strategy-engine/research/strategyLab/campaign/holdoutGate.ts
Licence / reuse constraints
INTERNALDerived market data, not third-party code.
Tests performed
  • · tests/unit/registry/holdoutPolicy.test.ts (surface honesty)
  • · campaign-runner gate tests under tests/unit/strategy-engine/
Overlaps with existing functionality
  • per-campaign forward Holdout partitionBOTH RETAINED — the sealed bank is pre-Discovery data; the forward partition withholds post-boundary bars inside a campaign. They answer different questions.

Rollback: Not rollbackable in any meaningful sense: consumed slices are permanently spent. This entry exists so that fact stays visible.

Durable backtest worker (GitHub Actions dispatch + checkpointed jobs)productionBacktest infrastructure2026-09-14

Long historical replays exceeded the serverless request ceiling; the durable worker runs the same runBacktestJob on a GitHub-hosted runner with cooperative cancellation, TTL advisory locks and bounded re-dispatch.

Source
Internal
Original implementation / inspiration
lib/backtest/jobs/* + .github/workflows/backtest-job-worker.yml
TradeRep location
lib/backtest/jobs/dispatch.ts, lib/backtest/jobs/runBacktestJob.ts, lib/backtest/jobs/recovery.ts
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/unit/backtest/jobRecovery.test.ts
  • · tests/unit/backtest/runBacktestJobCancellation.test.ts
  • · tests/unit/backtest/progressPersistence.test.ts
Overlaps with existing functionality
  • in-process backtest executionRETAINED as the fallback when no worker token is configured (local dev); identical compute path.

Rollback: Unsetting BACKTEST_WORKER_GITHUB_TOKEN/BACKTEST_WORKER_REPO falls back to in-process execution with no code change.

Prospective live-shadow runners (F6, F2 Arm C, A2.10) and PB Elite outcome trackerproductionLive shadow / forward validation2026-09-14

Collect genuinely prospective evidence on frozen specifications, with no order execution.

Source
Internal
Original implementation / inspiration
lib/strategy-engine/research/{family6Shadow,family2ArmCShadow,a2Dot10Shadow,pbEliteOutcome}/
TradeRep location
wired into lib/live/webhookProcessor.ts; read back via /api/live/f6-tally and /api/live/a2dot10-tally
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/phase4/07_a2dot10_shadow.test.ts
  • · tests/integration/webhookProcessor.test.ts
  • · tests/unit/live/strategyRosterArming.test.ts
Overlaps with existing functionality
  • backtest engineBOTH RETAINED — a shadow runner cannot observe history it did not live through; the backtest engine cannot produce prospective evidence.

Rollback: Each runner is standalone and additive; removing one stops its observation writes and affects no other runner or V1.

Architecture V2 live shadow classifier (tiered quality + PDH veto)productionCandidate architecture / shadow classification2026-09-13

Classify live decisions in shadow against the approved candidate architecture without changing V1 behaviour, sizing or risk.

Source
Internal
Original implementation / inspiration
docs/CANDIDATE_ARCHITECTURE_V2.md
TradeRep location
lib/strategy-engine/research/architectureV2/
Licence / reuse constraints
INTERNALFirst-party code.
Tests performed
  • · tests/unit/architectureV2/decisionIntegrity.test.ts
  • · tests/integration/architectureV2LiveShadowIntegration.test.ts
Overlaps with existing functionality
  • AV2 challenger program (research-output/av2-planning/)DISTINCT PROGRAMS — Architecture V2 is a candidate architecture for V1 setups; AV2 is challenger testing against the F6/A2.10 champions. Kept separate in every surface to prevent misreporting either.

Rollback: Shadow-only and non-executing; disabling the classifier stops classification writes only.

Replacement process

An independent second engine is valuable BECAUSE it is independent
  1. 1. identify overlap
  2. 2. run parity / behaviour comparison
  3. 3. test scientific and operational assumptions
  4. 4. confirm no required use case is lost
  5. 5. migrate dependents
  6. 6. archive old implementation
  7. 7. only then remove dead code if safe

A stronger second engine is used to replicate finalists, not to automatically replace the canonical one: if both engines agree, confidence rises. Replacement is a separate engineering decision with its own parity migration.

Read from research-output/registry/new-additions.json · research-output/registry/README.md