Dependency graph
Full edge list of inter-repo dependencies, ordered by layer.
Layer 0 — Foundation
| Repo | Depends on | Why |
|---|---|---|
| mts1b-foundation | (none) | Pure pydantic + Protocols + NATS schemas. |
Layer 1 — Platform
| Repo | Depends on | Why |
|---|---|---|
| mts1b-platform | foundation | Uses foundation types in messaging, eventbus, observability. |
| mts1b-deploy | foundation | Reads foundation config schemas for menuconfig validation. |
| mts1b-pluginsdk | foundation | Plugin interfaces are foundation Protocols. |
Layer 2 — Adapters + quant library
| Repo | Depends on | Why |
|---|---|---|
| mts1b-brokers | foundation, platform | Broker adapter interface lives in foundation. |
| mts1b-marketdata | foundation, platform | Same — adapter interface. |
| mts1b-altdata | foundation, platform | Same. |
| mts1b-cryptodata | foundation, platform | Same. |
| mts1b-macrodata | foundation, platform | Same. |
| mts1b-quantkit | foundation, platform | Stats use foundation series + frame types. |
Layer 3 — Risk + portfolio + execution algos
| Repo | Depends on | Why |
|---|---|---|
| mts1b-portfolio | foundation, platform, quantkit | Sizers use Kelly + Ledoit-Wolf from quantkit. |
| mts1b-riskengine | foundation, platform, portfolio, quantkit | Risk envelopes use portfolio + quantkit metrics. |
| mts1b-oms-algos | foundation, platform, quantkit | Almgren-Chriss + IS use quantkit cost models. |
Layer 4 — Engines + ops
| Repo | Depends on | Why |
|---|---|---|
| mts1b-GPUbacktester | foundation, platform, quantkit | Walk-forward + metrics live in quantkit. |
| mts1b-datalake | foundation, platform, marketdata, altdata, cryptodata, macrodata | Pulls from all data adapters. |
| mts1b-llm | foundation, platform | Standalone — uses platform observability. |
| mts1b-operations | foundation, platform, brokers, riskengine | Watchdogs subscribe to broker + risk events. |
| mts1b-cloudburst | foundation, platform | Generic GPU burst worker. |
| mts1b-reportslibrary | foundation, platform, quantkit | Metrics from quantkit; data reads from datalake. |
Layer 5 — Strategy + execution
| Repo | Depends on | Why |
|---|---|---|
| mts1b-research | foundation, platform, GPUbacktester, datalake, portfolio, quantkit, llm | Strategy discovery glues together everything below. |
| mts1b-oms | foundation, platform, brokers, riskengine, oms-algos | OMS = brokers + risk + execution algos. |
| mts1b-tradingview | foundation, platform, oms | Thin webhook bridge → oms. |
Layer 6 — Asset-class services
| Repo | Depends on | Why |
|---|---|---|
| mts1b-treasury | foundation, platform, portfolio, oms, brokers | Treasury allocates and dispatches. |
| mts1b-sports | foundation, platform, llm, operations | Sports has its own data sources; uses llm for narrative. |
| mts1b-prediction-markets | foundation, platform, llm, operations | Same as sports. |
Layer 7 — Frontends + Community
| Repo | Depends on | Why |
|---|---|---|
| mts1b-frontends | foundation, platform, oms, riskengine, research, treasury, operations, reportslibrary | UI talks to most services via foundation-typed API. |
| mts1b-githubbot | foundation, platform, llm | AI ops over the GitHub org. |
| mts1b-discordbot | foundation, platform, llm | Same, for Discord. |
| mts1b-docs | (no code deps) | Pulls READMEs + docs/ folders from all repos via GH Actions. |
CI enforcement
$ python -m mts.tools.dep_direction_lint
PASS: no cycles
PASS: no upward dependencies
PASS: foundation has zero runtime deps
The lint runs on every PR in every repo.