Repository Laws¶
Repository laws name the structural invariants Atlas expects maintainers and
automation to preserve. Their authority is
configs/sources/repository/repo-laws.json. Each row has a stable ID, severity,
owner, and plain-language statement.
Declared Laws¶
| ID | Severity | Invariant |
|---|---|---|
repo_artifacts_stay_ephemeral |
high | runtime artifacts remain outside tracked source except for governed examples |
repo_control_plane_stays_rust_owned |
high | repository orchestration remains in the Rust control plane |
repo_docs_and_configs_are_navigable |
medium | documentation and configuration remain discoverable through indexes and ownership contracts |
repo_legacy_script_roots_stay_absent |
medium | retired script and tool roots remain absent |
repo_makes_entrypoint_stays_include_only |
high | the root Makefile remains a thin include entrypoint |
repo_root_layout_stays_allowlisted |
high | root directories and Markdown files remain within the approved surface |
flowchart LR
Law[Stable law ID] --> Review[Review vocabulary]
Law --> Metadata[Owner and severity]
Check[Named executable check] --> Finding[Structured violation]
Finding --> Evidence[Run evidence]
Law -. conceptual relationship .-> Check
The dashed edge is important. The law file does not encode a check ID, rationale, exception, or evidence path for each law. Enforcement is implemented by separately registered repository checks. A law statement is therefore an authoritative invariant and review vocabulary, but the file alone is not proof that the invariant is executable or currently passing.
What Is Validated¶
The focused metadata check requires every law to have a non-empty ID, severity, and owner; rejects duplicate IDs; and requires lexicographic ordering by ID. It does not validate the statement field, restrict severity to a vocabulary, or prove one-to-one coverage by executable checks.
bijux-atlas-dev check run \
--repo-root . \
--id checks_repo_law_metadata_complete_and_unique \
--include-internal \
--format json
Other checks enforce concrete repository properties such as root allowlists, tracked artifacts, Makefile shape, and retired roots. Their evidence establishes those named checks, not an automatic aggregate status for all six law IDs.
Adding or Changing a Law¶
A durable law change should coordinate four things:
- a stable domain-based ID and precise statement;
- an accountable owner and severity;
- one or more named checks with unambiguous failure evidence; and
- documentation that maps the law to its enforcement depth and exceptions.
If enforcement is intentionally advisory or absent, say so in review. Keeping that gap visible is more trustworthy than implying that declaration and enforcement are the same mechanism.