The canonical, community-governed rules and reference implementation for Celo-HaiTi's governance layer: proposal lifecycle, voting, membership, role-based access control, treasury-approval flow, and audit logging.
Celo-HaiTi is an open-source Haitian Web3 initiative on Celo focused on financial inclusion, blockchain education, digital payments, entrepreneurship, community development, agent networks, and reforestation. This repository defines how decisions get made — not any single application's admin panel.
Status: implementation synchronized with the public Celo-HaiTi architecture; deployment remains blocked until runtime infrastructure is configured. See
PRODUCTION_READINESS_REPORT.mdfor exactly what is implemented, what is verified, and what remains blocked on runtime infrastructure. The public Celo-HaiTi repositories were inspected and the synchronization baseline is documented underdocs/.
Johnny Dubic — Permanently Recognized Founder of Celo-HaiTi — is recorded in the project's historical and institutional record. Permanent founder recognition is historical and institutional; it does not confer perpetual governance authority, ownership rights, veto power, or unilateral control. Founder status does not equal automatic executive, Council, voting, emergency, or repository-control privileges. Administrative access does not equal treasury ownership. This repository makes those boundaries explicit, machine-enforced, and auditable rather than relying on trust or convention.
Community governance · transparency · accountability · least privilege · separation of duties · auditability · deterministic rules · secure authorization · fail-closed behavior · no unilateral treasury control · no hidden administrative powers · reproducible decision-making · on-chain verifiability where appropriate · abuse resistance · clear emergency procedures.
See GOVERNANCE.md for the canonical governance policy and
GOVERNANCE_CONSTITUTION.md for its versioned
implementation and security reference.
The Governance Council is Celo-HaiTi's highest ongoing collective decision-making body. Founder status, technical maintenance, working-group mandates, contributor participation, operational responsibility, and partnership representation do not by themselves confer governance authority or place any role above the Council.
src/
domain/ proposal + vote types, the proposal state machine
application/ services: proposals, voting, audit (business rules only)
security/ RBAC/least-privilege matrix, signature verification
schemas/ zod input/output schemas for every backend operation
infrastructure/ env validation, Supabase adapters, verified Celo execution
api/ dependency-injected HTTP boundary and safe JSON errors
errors/ typed GovernanceError hierarchy
migrations/ PostgreSQL/Supabase schema (append-only audit log, DB-level
duplicate-vote prevention, check constraints)
tests/
unit/ state machine + RBAC invariants
integration/ service-level tests against explicit test doubles
security/ authorization, self-approval, replay/double-execution
.github/workflows/ CI and CodeQL analysis
*.md governance, architecture, operations, and policy docs
docs/ integration, audit, and production-reference docs
DRAFT → SUBMITTED → UNDER_REVIEW → ACTIVE → VOTING → QUORUM_REACHED
→ APPROVED|REJECTED → QUEUED → EXECUTED|CANCELLED|EXPIRED
Every transition is checked against src/domain/stateMachine.ts —
there is no code path that mutates proposal.status without going
through assertTransition. See GOVERNANCE.md.
Celo-HaiTi uses one-member-one-vote. USDm and CELO are referenced only
as a stablecoin and gas asset, never as governance tokens. See
NO_TOKEN_POLICY.md.
| File | Covers |
|---|---|
| GOVERNANCE.md | Canonical governance policy, lifecycle, and proposal process |
| GOVERNANCE_CONSTITUTION.md | Versioned implementation and security reference |
| ARCHITECTURE.md | System architecture, module boundaries |
| SECURITY.md | Security model, protections implemented |
| THREAT_MODEL.md | Threats considered and mitigations |
| TREASURY_GOVERNANCE.md | Proposal → execution flow, multisig boundary |
| VOTING.md | Eligibility, quorum, thresholds, replay protection |
| PROPOSALS.md | Proposal schema and types |
| ROLES_AND_PERMISSIONS.md | RBAC matrix |
| EMERGENCY_GOVERNANCE.md | Emergency powers and limits |
| AUDIT.md | Audit log schema and guarantees |
| API.md | Backend contract (createProposal, castVote, etc.) |
| DATA_MODEL.md | Database schema |
| INTEGRATION.md | How celoht-admin/backend/dApp should integrate |
| DEPLOYMENT.md | Deployment requirements and readiness gates |
| OPERATIONS.md | Runbooks, monitoring, incident response |
| CONTRIBUTING.md | How to contribute |
| CODE_OF_CONDUCT.md | Community standards |
| NO_TOKEN_POLICY.md | Explicit no-token, no-tokenomics policy |
| PRODUCTION_READINESS_REPORT.md | Honest IMPLEMENTED/BLOCKED status |
| CHANGELOG.md | Version history |
The public Celo-HaiTi repositories have been inspected. The following
rules remain mandatory before deployment:
- Review and apply
migrations/0013_governance_workflow.sqlthrough the canonicalceloht-supabasemigration process as the next available upstream migration number; the canonical chain may assign this proposal as0018depending on the actual Supabase sequence. Do not edit applied migrations. - Keep
celoht-backendas the authentication/API boundary andceloht-indexeras the owner of on-chain projections. - Run
npm run validate:contracts -- /path/to/celoSepolia.jsonagainst the canonical deployment artifact. - Inject real Supabase, auth, RPC, and Safe runtime configuration; missing values must remain fail-closed.
npm install
cp .env.example .env # then fill with real, non-production-secret values for local dev
npm run typecheck
npm run lint
npm testApache-2.0 — see LICENSE.