The collision
Two repos independently define a backtest schema with a colliding table name and different shapes:
- trade-ngin:
backtest.equity_curve(run_id, portfolio_id, date, equity, return, timestamp) + backtest.summary/executions/positions/signals
- algosystem:
backtest.equity_curve(run_id, timestamp, equity) + backtest.run_metadata/final_positions/results/symbol_pnl — created via DDL in algosystem/data/connectors/db_manager.py:29-150
ADR-000 C-1 mandates all repos consolidate on new_algo_data. Once both point there, whichever runs second either fails DDL or silently coexists with a half-matching table. The silent case is the dangerous one.
Decision (already made — ADR-000 C-4 / DECISION-6)
algosystem's result store is renamed to schema research — it is research-tool output, not engine output. trade-ngin keeps backtest.
⚠️ Interim safety rule
Until this is merged, algosystem MUST NOT run create_backtest_table() against new_algo_data.
Note
trade-ngin now has a CI schema-ownership-guard enforcing its side of the ADR-000 C-3 boundary. An equivalent guard here would be worth adding once the rename lands.
Refs: adr/ADR-000-cross-repo-contracts.md C-4 / DECISION-6, adr/ADR-004-algosystem.md D-1.
The collision
Two repos independently define a
backtestschema with a colliding table name and different shapes:backtest.equity_curve(run_id, portfolio_id, date, equity, return, timestamp)+backtest.summary/executions/positions/signalsbacktest.equity_curve(run_id, timestamp, equity)+backtest.run_metadata/final_positions/results/symbol_pnl— created via DDL inalgosystem/data/connectors/db_manager.py:29-150ADR-000 C-1 mandates all repos consolidate on
new_algo_data. Once both point there, whichever runs second either fails DDL or silently coexists with a half-matching table. The silent case is the dangerous one.Decision (already made — ADR-000 C-4 / DECISION-6)
algosystem's result store is renamed to schema
research— it is research-tool output, not engine output. trade-ngin keepsbacktest.Until this is merged, algosystem MUST NOT run
create_backtest_table()againstnew_algo_data.Note
trade-ngin now has a CI
schema-ownership-guardenforcing its side of the ADR-000 C-3 boundary. An equivalent guard here would be worth adding once the rename lands.Refs:
adr/ADR-000-cross-repo-contracts.mdC-4 / DECISION-6,adr/ADR-004-algosystem.mdD-1.