Modules are independent after Config and LLMAdapter are stable.
Sequential (must complete in order):
- Config + headers first (everything depends on these)
- LLMAdapter (TradeSignalEngine depends on SemanticWeight)
- All other modules can parallelize
Parallel (safe to build simultaneously):
- TokenStreamSimulator + LatencyController
- MetricsLogger + OutputSink
- All unit test files (one per module)
| Agent | Module(s) | Test Files |
|---|---|---|
| Agent-1 | Config, headers | tests/unit/test_config.cpp |
| Agent-2 | LLMAdapter | tests/unit/test_llm_adapter.cpp |
| Agent-3 | LatencyController, pressure system | tests/unit/test_latency_controller.cpp |
| Agent-4 | MetricsLogger, OutputSink | tests/unit/test_metrics_logger.cpp, test_output_sink.cpp |
| Agent-5 | TokenStreamSimulator | tests/unit/test_token_stream_simulator.cpp |
| Agent-6 | TradeSignalEngine | tests/unit/test_trade_signal_engine.cpp |
| Agent-7 | Integration + performance tests | tests/integration/, tests/performance/ |
- TradeSignalEngine depends on LLMAdapter (SemanticWeight type)
- OutputSink depends on TradeSignalEngine (TradeSignal type)
- main.cpp depends on all modules
- Tests depend on their module + any mocked dependencies
Each agent updates the Module Status table in CLAUDE.md when a module is done.
- Header fully declared and doc-commented
- Implementation compiles with zero warnings (-Wall -Wextra -Werror)
- Unit tests pass
- At least one integration test exercises this module
- CLAUDE.md status table updated
Run ctest from the build directory. All tests must pass before any push.
Integration tests in tests/integration/ verify cross-module correctness.
Set a unique CARGO_TARGET_DIR equivalent (CMAKE_BINARY_DIR) per agent:
mkdir build_agent1 && cd build_agent1
cmake .. -DCMAKE_BUILD_TYPE=Debug
make -j$(nproc)Each agent uses its own named build directory to avoid file-lock contention.