Thanks for looking under the hood. The honest short version:
Every repo has a docs/PLAN.md. That's where each piece of this
ecosystem records its architecture rulings, invariants, and the
reasons past decisions were made — read the relevant PLAN before
changing code; if your change invalidates a ruling, the ruling moves
with the change.
The working rules that hold everywhere:
- The golden suite is the floor. Every binding replays the engine's 267-executable-line fixture suite through its public API on every CI run. If your change breaks a golden line, the change is wrong or the fixture is wrong — decide which, loudly.
- The C ABI is a locked contract (
docs/FFI.mdin the engine repo): frozen enum values, append-only symbols. Additive changes need rows in every binding'sdocs/SURFACE.tsv. - A binding never patches around a published-artifact defect — divergence from a pinned engine release is reported against the engine, not worked around.
- Docs stay true: engine decisions land as rows in
DESIGN.md's log and the CHANGELOG; the docs site is drift-gated against the repos and regenerates when the sources change.
Per-repo mechanics (build, test, gates) are documented in each README + PLAN. PRs run the same CI the masters run.
For security reports, see SECURITY.md.