Automations
SNAPSHOT · 09/02/2026, 10:42 PM UTCAutomationOrchestrator
WAITING FOR INTEGRATION
A central orchestrator does not exist yet
Today each pipeline (ingestion, research, market intelligence, macro, news, broker) runs on demand or is only exercised by automated tests. The real job contract (QUEUED/RUNNING/SUCCESS/FAILED/CANCELLED, job_id/retry_count/dependencies) already exists in IngestionScheduler and in Phase 3's 5 cascades, but no instance of that scheduler runs continuously in any process today — IngestionScheduler(...) is only ever instantiated in tests. Post-Phase-3 checkpoint: no autonomous process is actually running; see the Automation Audit section.
What exists today
| Automation | Category | Status | Last run |
|---|---|---|---|
MarketDataService.run_cycle() Ingestion -> validation -> quality -> candle aggregation (Phase 1). Runs on demand in this correction — there is no central AutomationOrchestrator scheduling cycles continuously yet. | Data | ON DEMAND | 09/02/2026, 10:42 PM UTC |
ResearchEngine.run_experiment() Full pipeline HYPOTHESIS -> ... -> APPROVE/REJECT (Phase 2). Triggered manually from the Research Lab, never automatically promoted to production. | Research | ON DEMAND | 09/02/2026, 10:42 PM UTC |
ExperimentRunner (fila QUEUED/RUNNING/SUCCESS/FAILED/CANCELLED) Concurrency via semaphore and timeout — implemented and tested with real threading (Phase 2). Not yet connected to a central scheduler. | Research | ACTIVE | — |
export_dashboard_snapshot.py Generates the snapshot that feeds this Command Center (see ADR-011). | Reporting | ON DEMAND | 09/02/2026, 10:42 PM UTC |
MarketIntelligenceCascade.run() MarketIntelligenceCascade (Phase 3) — regime/volatility/structure on every BAR_CLOSED. Implemented and tested with the full job contract; register_market_intelligence_jobs() exists but is never called outside tests — no active scheduler runs it today. | Analysis | NOT ACTIVE | — |
EconomicEventCascade.run() EconomicEventCascade (Phase 3) — economic calendar -> surprise -> EUR/USD reaction. Same status: tested in isolation, never registered on a running scheduler. | Analysis | NOT ACTIVE | — |
CentralBankIntelligenceCascade.run() CentralBankIntelligenceCascade (Phase 3) — Fed/ECB state and monetary policy differential. Same status: tested in isolation, never registered on a running scheduler. | Analysis | NOT ACTIVE | — |
NewsIntelligenceCascade.run() NewsIntelligenceCascade (Phase 3) — news ingestion, dedup, relevance classification. Same status: tested in isolation, never registered on a running scheduler. | Analysis | NOT ACTIVE | — |
BrokerFeedPollCascade.run() BrokerFeedPollCascade (Phase 3) — periodic Pepperstone/IBKR health check + cross-feed validation. Same status: tested in isolation, never registered on a running scheduler. | Analysis | NOT ACTIVE | — |