Contributing

September 3, 2026 ยท View on GitHub

SEMAPRAX values coherent semantics over feature count. Before adding syntax or a generated surface, explain which semantic operation, verification rule, or systems use case it enables.

Before you change code

Read the development guide and agent operating invariants. Then read the versioned specification that owns the area you are changing. The architecture is the single module map; the completion matrix is the status authority.

If this is your first change here, First contribution walks one end to end: how to pick a change the quality router keeps narrow, how to find the specification that owns the area and the completion-matrix rows it touches, where a test of that shape belongs among the tests/ harnesses, which profile to run and what each one compiles, the local hazards a newcomer otherwise hits, and which owner to update at the end. It adds no rule; it sequences the ones this file and the development guide already state.

Design changes affecting syntax, graph schemas, transactions, effects, ownership, contracts, components, or ABIs should begin as an RFC or an explicit revision to the owning RFC.

Tests and evidence

Compiler changes normally need:

  • an admitted success case;
  • a stable diagnostic regression;
  • canonical source round-trip coverage;
  • semantic graph assertions;
  • native/Wasm equivalence when runtime meaning changes;
  • independent replay and hostile-input evidence when an evidence or transaction boundary changes.

Run the full Unix gate with:

scripts/quality.sh full

For a faster local loop, preview the repository-aware route and then run it:

scripts/quality.sh changed --plan
scripts/quality.sh changed

On hosts without a POSIX shell, reproduce the manual baseline in Quality gates and run the focused evidence named by the owning specification.

Documentation

Put user workflows and concepts in public documentation. Put exact wire and admission rules in versioned references. Put module ownership and trust boundaries in architecture, status in the completion matrix, sequencing in the roadmap, and history in the changelog. Link to the owner instead of copying its full explanation.

Do not present local, private, proof-only, simulator, diagnostic, or prior-head evidence as a broader public or hosted claim.

Community

By participating, you agree to follow the Code of Conduct.