Skip to content

Repository change rules

Parallel change

CHANGE-1: Introduce the new path beside the old

Every change follows expand, migrate, contract. The three steps are in principle 4.

Enforcement: Review only.

CHANGE-3: An internal API MUST change compatibly

  • Add the new field, endpoint or message.
  • Migrate callers.
  • Remove the old one later.

Enforcement: Review only.

Where code lands

CHANGE-5: Closed directories MUST only shrink

These are closed: /app, /supabase, /infra/services, /people.

  • DO NOT add new functionality to a closed directory.
  • Each only loses content as it is factored out, replaced or deleted.
Directory Where new work goes
/app the domain service that owns the logic: Iris for inference, croesus for billing
/supabase Cloud SQL, or wherever the data belongs
/infra/services the repository root, like every other service
/people stays, but drives Workspace from IaC rather than growing

A new project goes at the repository root and MUST be a Mise config root. See BUILD-6.

Enforcement: Review only. Rationale per directory in current state of the architecture.

Moved rules

These numbers are retired here. Each names the rule that carries it now.

CHANGE-2: Moved to DB-2

See DB-2.

CHANGE-4: Moved to DB-3

See DB-3.

Merging

MERGE-1: A repository-wide lint and test sweep MUST pass before merge

  • You MUST run mise run '//...:lint' and mise run '//...:test-fast'.
  • This covers the whole repository, every project.
  • DO NOT infer an affected set.

Enforcement: check-lint-and-test.yml. Its Lint and test job is a required check on main, set by required_checks in the repositories inventory. The branch MUST be up to date with main, so the sweep ran against what the pull request merges into.

MERGE-2: Readiness is not a judgement call

  • DO NOT mark a pull request ready with failing checks or unaddressed significant findings.
  • DO NOT approve while checks are still running.
  • DO NOT merge your own pull request without an approving review from someone else.

The rest of VCS etiquette is strongly recommended, not a gate.

Enforcement: branch protection for the approving review. Review only for the rest.