Contributing & architecture
How the agents work — vendor/ as the spec, the judge, levels, commits and the design rule.
Read GOAL.md and MANIFESTO.md first. This page is a short map, not a substitute.
Architecture
One Cargo workspace, one final binary: megabase. One crate per Supabase-authored service (megabase-rest, megabase-auth, megabase-realtime, megabase-storage, megabase-functions, megabase-pooler, megabase-meta, megabase-studio), plus megabase-core and megabase-server. HTTP: axum on tokio. PostgreSQL stays external.
Those crates are not in this repository yet. Phase 0 creates them.
The loop
- Read GOAL.md, PROGRESS.md, coverage/summary.json.
- Take one Ready issue.
- Spec the unit from
vendor/if the spec file is missing. - Implement in Rust.
- Run the judge (
just judgeor the equivalent oncejudge/exists). - Keep the commit only if total conformance does not fall.
- Record: PR, coverage, PROGRESS.md for decisions that outlive one issue.
Failures return HTTP 501 with {"code":"MEGABASE_NOT_IMPLEMENTED",...}. Never a plausible but unverified answer.
Hard rules (short)
- Rust only, with the exceptions in GOAL.md (configuration, compatibility SQL, Studio assets).
- Never modify
vendor/orjudge/on a feature branch. - Never disable a test to make a score go up.
- Credit upstream in a header comment; keep NOTICE current.
- Conventional Commits for the site and docs; component unit commits follow GOAL.md.
Design
Mockups live in the Kite identity file. The public site is generated from site/ in Rust. No JavaScript framework.
What a human does
Humans wrote the manifesto, GOAL.md and the initial setup. Every later human action is logged in HUMAN_LOG.md. The count is part of the result.
Wrong or unfinished? Open an issue or edit docs/contributing.md on GitHub.