This file is the single reference for what Corngate v0.1 must not do, how each gate is enforced in code, and what unlocking it requires. Changing any ⚠ item is a founder decision that belongs in DECISIONS.md first.
1. Certification ≠ legal title ⚠
A passport records verified evidence and status about an asset; it is not conclusive legal title and does not replace Ghanaian statutory or customary land processes. Enforced by claims model (ADR-002); copy on every passport page, footer disclosures, register-flow declarations; verification statuses that name exactly what was checked (document_verified vs field_verified).
2. Certificates are not investments ⚠
No passport or certificate represents an investment, carbon credit, commodity or right to income. Enforced by contract design (Phase 5): no payment/sale/fractional logic, transfers disabled, admin migration only; footer + certificate-panel disclosures; no pricing shown for passports (pilot rates unapproved — spec).
3. Founding Forest = recognition only ⚠
Sponsorship may accept payment (Phase 6, mock first) but conveys no ownership, carbon credit, yield or financial return. Enforced by DB constraint (sponsorships requires accepted no-ownership/no-return acknowledgements + records disclosure version); disclosures at selection (live), checkout (Phase 6) and on the passport (live).
4. Corngate Grow: waitlist only, no solicitation ⚠
No investment is offered or accepted. No deposits, purchases or token minting. Sample data room (Phase 8) uses clearly-labelled fictional data. Waitlist collects jurisdiction and a mandatory "I understand no investment is offered" acknowledgement. Enforced by flags.GROW_INVESTMENT=false with a hard assert; absence of any investment code path or schema; grow_waitlist DB constraint on the acknowledgement; page copy avoiding any expected-return language. Unlock requires SEC Ghana pathway (2026 Regulatory Sandbox Guidelines / VASP Act 2025 context), approved legal instrument, custody, AML/KYC, suitability, disclosures — then a dedicated build phase.
5. Testnet only; mainnet is a gated decision ⚠
v0.1 issues certificates on Polygon Amoy testnet only, and only when the founder supplies credentials. No mainnet RPC exists in configuration. Enforced by DB check (network = 'polygon-amoy'); flags.MAINNET=false; .env.example deliberately contains no mainnet variables; mainnet readiness checklist (Phase 10 docs) must be completed first.
6. Honest proof, honest simulation ⚠
No fake live metrics, no invented transaction hashes, no placeholder imagery passed off as field photos. Enforced by homepage stats computed from real seeded records; DB constraint simulated_has_no_tx; certificate panel renders no explorer links for simulated certs; photo placeholders stamped "Illustrative — photo pending" (ADR-013).
7. Privacy of people and precise locations ⚠
Exact coordinates and identity documents are never published by default; public party names are consented display names. Enforced by data classification + RLS posture (no anon path to precise geometry); generalised public geometry in fixtures; sponsorship show_publicly consent flag.
8. No public token sale, fractionalization or open marketplace in v0.1 ⚠
Enforced by absence of any such code/schema; ADR-011; this document.
Ghana context (informational, not legal advice)
The SEC issued Securities Industry (Regulatory Sandbox Licensing) Guidelines in March 2026 under the Securities Industry framework and the Virtual Asset Providers Act, 2025, including a virtual-asset sandbox track. Corngate's posture: operate the pilot as a controlled certification system without public investment solicitation, and use the sandbox to validate registry boundaries and any later capital-market application. Engage Ghanaian counsel before Phases 4–6 go beyond mock mode. This repository is engineering documentation, not legal advice.
