LEARN/PRINCIPLES

Principles

Twelve rules this project works under. Six were bought with a specific loss, and those say which one.

01

Determinism is the product

Anything that would make two runs differ is a correctness bug rather than a performance trade.

IN PRACTICE The crate ships its own exp, log, pow, sin and cos. Every release builds five targets, runs one fixed simulation in each and compares digests.
02

Measure rather than assert

Every claim in the documentation is a number that was produced by running something.

IN PRACTICE tools/remeasure re-runs the stated method behind each published figure and reports every number the current build no longer produces.
03

State the limitation next to the capability

Never in a footnote.

IN PRACTICE The realism page publishes fourteen statistics inside their bands and five named gaps on the same page, and each gap ends in a rule about what it forbids.
04

A changed model has a different name

Changing a coefficient is allowed. Reporting the result under the shipped preset name is not.

IN PRACTICE Change any settable coefficient and the fingerprint reads custom-7f290e34 rather than pt-v1.
05

Whatever sits outside the objective is free

A scalar objective collapses everything you care about into one number, and the optimiser sells whatever is not in that number.

IN PRACTICE Atlas exists for this reason: it surveys the parameter space rather than optimising one score.
THE FAILURE Six consecutive calibration searches were rejected, each for the same underlying reason. Fixing one blind spot moved the selling to the next one.
06

Discovery seeds and validation seeds must be disjoint

A result found on a set of seeds has to be re-measured on seeds it never saw.

IN PRACTICE atlas.Survey.confirm re-measures on seed blocks disjoint from the survey and refuses to run on overlapping seeds.
THE FAILURE A candidate was declared shippable on a 13% improvement. On fresh seeds it read +0.1297 where it was found, and -0.0315, +0.0209 and +0.0233 elsewhere, reversing sign once. Discovery and validation had used the same thirty seeds, so re-measuring reproduced the same fluctuation exactly.
07

The ruler must match the horizon

A statistic measured over 504 days is scored against bands re-derived at 504 days, not against the 252-day bands.

IN PRACTICE loss.dual_horizon_loss scores L_real at both horizons and refuses to run on one.
08

A number invites scepticism and a sentence does not

A scalar travels and a caveat does not.

IN PRACTICE The library publishes fourteen statistics with bands rather than one realism score, and a summary says outright that an additivity check failed rather than quietly presenting an unchecked number.
09

One seed is not an answer

One market is one sample, and the cost of believing it has been measured.

IN PRACTICE On the twelve-market grid a single seed picks the pooled leader eight times in twelve, and what a seed says momentum is worth runs from -0.503 to +0.909 depending only on which market it drew. The paired sign test is reported beside the pooled number.
10

Strategies are data, never code

A StrategySpec is declarative, versioned and hashable.

IN PRACTICE That is what lets one travel through the MCP server without executing anything a caller sent.
11

Absence differs from zero, and invalid input raises

Nothing is silently clamped, because a simulator that repairs your inputs gives you a market you did not specify.

IN PRACTICE corporate_bond_yield=None falls through to the default, and where a column can not carry None, absence is NaN, because zero is a real rate.
12

The reader's job leads

A reader who can not tell which loop they are in can not tell which pages are theirs.

IN PRACTICE The docs are racked by task rather than by module, and the two loops page exists to place the reader in one of them.

What these rules refuse

No realism score

A scalar travels and a caveat does not. There is a panel of fourteen measurements and a list of gaps instead.

No invented evidence

No testimonials, customers, competitor benchmarks, pricing or adoption numbers exist. None may be invented.

No silent trajectory change

A preset is frozen once published. Tuning it would rewrite results that other people already cited.

The rule that shapes the rest

Any change to the simulated trajectory breaks the contract

A market that runs differently from the same seed invalidates every published result that cited it. So a coefficient change arrives as a new preset with a new name, and every preset from pt-v1 onward stays selectable forever.

PRINCIPLE 02, TESTED ON ITSELF

The one that was wrong twice

The realism page called volume_change_acf1 structurally unreachable twice. Both claims carried correct numbers, and both named the wrong mechanism.

The first claim

Reaching its band costs volume_abs_return_corr, because the common log-volume state adds volume variance unrelated to any name\u0027s own moves.

The trade was real, and it was priced on the pt-v3 era base. On the pt-v10 base both one-year bands became reachable together, in a window about 0.03 wide in the innovation sigma.

The second claim

The two-year half needed more volume memory.

What closed it was volume_move_cap, a hard-coded 4.0 in tick.rs that saturated a name\u0027s volume response at a 4% daily move. Lifting it to 12.0 reads -0.2656 at 252 days and -0.2572 at 504, inside both bands.

Every number in both claims was right. The mechanism each asserted was wrong, and the second was wrong in the same direction as the first: it described the limit as a property of the model rather than of the value one constant happened to hold.

All pages