Skip to main content
Console →
Nous Ergon — Crucible

Architecture

The system flow at a glance — seven modules, three Step Functions, a weekly parameter feedback loop. For per-module deep dives, see the per-repo READMEs at github.com/cipher813 .

Diagrams are interactive — drag to pan, use the +/−/reset controls in the corner to zoom.

System

Seven modules communicating exclusively through S3 — research, predictor, executor, backtester, evaluator, dashboard, and the data layer that feeds them. The evaluator grades the others' raw artifacts into a weekly report card; its Director agent proposes — humans approve.

flowchart LR
    Data[Data<br/>prices · macro · features<br/>RAG corpus]
    Research[Research<br/>6 sector teams + CIO + macro<br/>incl. LLM-as-judge]
    Predictor[Predictor<br/>L1 momentum/vol GBMs + research calibrator<br/>+ L2 Ridge meta-learner]
    Executor[Executor<br/>risk-gated sizing + intraday daemon]
    Backtester[Backtester<br/>eval + parity + 4 config optimizers]
    Evaluator[Evaluator<br/>7-tile report card<br/>+ Director · advisory, approval-gated]
    Dashboard[Dashboard<br/>live + console]

    Data --> Research
    Data --> Predictor
    Research --> Predictor
    Research --> Executor
    Predictor --> Executor
    Executor --> Backtester

    Backtester -.config auto-apply.-> Research
    Backtester -.config auto-apply.-> Predictor
    Backtester -.config auto-apply.-> Executor

    Research --> Evaluator
    Predictor --> Evaluator
    Executor --> Evaluator
    Backtester --> Evaluator

    Data -.read-only.-> Dashboard
    Research -.read-only.-> Dashboard
    Predictor -.read-only.-> Dashboard
    Executor -.read-only.-> Dashboard
    Backtester -.read-only.-> Dashboard
    Evaluator -.read-only.-> Dashboard

Step Function pipelines

Three orchestrated pipelines run on a fixed cadence. EventBridge fires the weekly + weekday triggers; daemon shutdown after the trading day fires the EOD pipeline (single authoritative path).

Weekly — alpha-engine-saturday-pipeline

EventBridge cron(0 9 ? * SAT *) — Sat 09:00 UTC (Sat 02:00 AM PT)

flowchart LR
    Trigger((Sat<br/>09:00 UTC)) --> Pin
    Pin[LibPinDriftCheck<br/><i>pre-spend gate</i>] --> P1
    P1[MorningEnrich<br/>+ DataPhase1<br/>EC2 spot] --> RAG
    RAG[RAGIngestion<br/>EC2 spot · ~25 min] --> R
    RAG --> Train
    R[Research<br/>EC2 spot<br/><i>incl. LLM-as-judge</i>] --> P2
    P2[DataPhase2<br/>Lambda] --> Zoo
    Train[PredictorTraining<br/>EC2 spot<br/><i>parallel branch</i>] --> Zoo
    Zoo[ModelZooRotation<br/><i>champion/challenger</i>] --> Drift
    Drift[DriftDetection<br/><i>SF vs CFN</i>] --> BT
    BT[Backtester + Parity<br/>EC2 spot<br/><i>4 optimizers</i>] --> Eval
    Eval[Evaluator chain<br/><i>per-signal eval · judge rubric<br/>· rolling mean</i>] --> RC
    RC[ReportCard<br/><i>7 graded tiles</i>] --> Dir
    Dir[Director<br/><i>advisory plan ·<br/>approval-gated PR</i>] --> Notify((Health checks<br/>+ SNS))
Weekday morning — alpha-engine-weekday-pipeline

EventBridge cron(45 12 ? * MON-FRI *) — 5:45 AM PT

flowchart LR
    Trigger((Mon–Fri<br/>5:45 AM PT)) --> DD
    DD[DeployDriftCheck<br/><i>block on drift</i>] --> Start
    Start[StartExecutorEC2<br/>+ wait-ready] --> CTD
    CTD[CheckTradingDay<br/><i>halt on NYSE holidays</i>] --> ME
    ME[MorningEnrich<br/>EC2 SSM<br/><i>daily OHLCV</i>] --> Inf
    Inf[PredictorInference<br/>Lambda<br/><i>+ coverage check</i>] --> Plan
    Plan[MorningPlanner<br/><i>places no orders</i>] --> Daemon((Executor Daemon<br/><i>sole order executor</i>))

The daemon runs through the trading day, executing urgent exits at open and timing entries via intraday triggers (pullback, VWAP, support, time-expiry). Daemon shutdown after close (~1:15 PM PT) triggers the EOD pipeline.

EOD — alpha-engine-eod-pipeline

Triggered by daemon shutdown — single authoritative path, no redundant cron

flowchart LR
    Trigger((Daemon shutdown<br/>~1:15 PM PT)) --> Post
    Post[PostMarketData<br/>SSM on ae-trading<br/><i>EOD OHLCV → ArcticDB</i>] --> EOD
    EOD[EODReconcile<br/>NAV · α · positions<br/>trades.db + EOD email] --> Stop((StopTradingInstance))

S3 data contracts

The wires between modules — every output is a named S3 path; every consumer reads on cold-start. Schema changes are additive only; path changes dual-write for at least a week to preserve consumers.

flowchart TB
    subgraph Producers
        D[Data]
        R[Research]
        P[Predictor]
        E[Executor]
        B[Backtester]
    end

    subgraph S3 ["s3://alpha-engine-research/"]
        Sig["signals/{date}/signals.json"]
        Pred["predictor/predictions/{date}.json"]
        Trades["trades/eod_pnl.csv<br/>trades/trades_full.csv"]
        Cfg["config/scoring_weights.json<br/>config/executor_params.json<br/>config/predictor_params.json<br/>config/research_params.json"]
        Card["evaluator/{date}/report_card.json"]
        Arc["ArcticDB universe library<br/>predictor/price_cache_slim/<br/>predictor/daily_closes/"]
    end

    Ev[Evaluator]

    D --> Arc
    R --> Sig
    P --> Pred
    E --> Trades
    B --> Cfg
    Ev --> Card

    Sig --> P
    Sig --> E
    Pred --> E
    Cfg --> R
    Cfg --> P
    Cfg --> E
    Arc --> P
    Arc --> B
    Arc --> E

Feedback loop

What turns a static system into a learning one. The backtester evaluates the system's own outputs each week, runs parameter sweeps, validates on holdout, and writes four optimized configs back to S3 — Research / Predictor / Executor read on cold-start. The mechanism that makes Phase 3 alpha tuning a configuration flip rather than a code change.

flowchart LR
    System[Live system outputs<br/>signals · predictions<br/>fills · P&L]
    Eval[Backtester evaluator<br/>weekly]
    Sweep[Parameter sweeps<br/>random search × Sharpe<br/>holdout validation]
    Cfg[4 optimized configs → S3<br/>scoring weights<br/>executor params<br/>predictor veto<br/>research params]
    Read[Research / Predictor / Executor<br/>read on cold-start]

    System --> Eval
    Eval --> Sweep
    Sweep -- holdout pass --> Cfg
    Cfg --> Read
    Read -.next week's behavior delta.-> System