Deterministic test data that kills flaky CI.
A test that passes or fails depending on the data it drew is not a test. It's a coin flip with a CI bill.
Where flakiness comes from
Randomised fixtures, shared mutable test accounts, and recorded data that drifts from the live schema all make CI nondeterministic. Teams respond by retrying, quarantining, or deleting the test — and lose the coverage.
Same seed, same company, every run
In Fictix a seed reproduces the exact same company — the same transactions, the same IDs, the same planted issues — deterministically. Pin the seed in CI and the only thing that changes between runs is your code.
Wired into the pipeline
The CLI pulls the project, starts endpoints, advances the simulation clock to the state a test needs, and runs detection assertions with recall/precision thresholds — all in CI.
Questions
What makes the data deterministic?
Generation is seeded: the same seed always yields the identical company, transactions and IDs, so test inputs never vary between runs.
How does it integrate with CI?
The fictix CLI pulls a project, deploys endpoints, advances time, and runs assertions with precision/recall thresholds as a pipeline step.
Can different tests need different points in time?
Yes — advance the simulation clock to month-end, renewal, or churn states per test without losing determinism.