Ship a complete fixture pack for risk.killswitch
shippedThe simplest wired bot. Once the fixture pattern works end-to-end for one bot, every other wired bot copies it. This is the keystone — until it ships, no other fixture work is meaningful.
If you have one week and you want to turn the Polytraders dev guide from a documented system into a working one, do these five things in order. Each one is a single PR. Each one has a clear "done when". Three are shipped, one is in progress, one is pending.
Why this list and not the plan page? The plan is the full backlog — every phase, every bot, every promotion gate. This page is its first page: the smallest concrete list of things you can ship that will materially change the system. After these five, return to the plan and pick up the next ready row.
The simplest wired bot. Once the fixture pattern works end-to-end for one bot, every other wired bot copies it. This is the keystone — until it ships, no other fixture work is meaningful.
Reason codes are the cross-system vocabulary. Lower-case free-text reason codes drift, get duplicated, and silently change shape. The regex ^(INTEL|DISC|STRAT|RISK|EXEC|SEC|GOV)_[A-Z0-9_]+$ catches every typo for free.
The runner is the harness that drives every bot decision in shadow mode. Today we have unit tests at the package level and verify.js at the registry level. We do not have an end-to-end test that says: drive 1000 ticks of a synthetic feed through killswitch + maker_tight + smartrouter and assert the output.
Drawdown is its own first-class concept. Today it aliases the portfolioguard spec, which is wrong: portfolioguard is about exposure caps; drawdownguard is about peak-to-trough PnL. Aliasing makes the regression cost of the next change higher than it has to be.
Discipline is institutional, not personal. Until CI fails on warnings, the warnings will accumulate. The CI workflow is the contract that turns the dev guide from a document into an enforced standard.
npm test at the repo root. It must finish green with zero warnings before you open the next PR.demo-wired row whose promotion gate you can satisfy.