From 6d3b4a1ea05178193ce9c3fd16a9395b1137bdd4 Mon Sep 17 00:00:00 2001 From: Bryan Fawcett Date: Sat, 24 Oct 2026 09:29:03 +0000 Subject: [PATCH] chore(release): staging to main, 2026-10-24 (mission brief) Brings main to staging's exact tree: the owner's mission section in AGENTS.md (what we build, the four gateways, the engineering bar, Mzizi as the design rule, and the dependency floor and cap policy). Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01LFZxixidq8jYs4VLDm8YFj --- AGENTS.md | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 9093582..6f36a94 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -7,6 +7,77 @@ enterprise-wide agent rules are in [`nyuchi/.github/AGENTS.md`](https://github.com/nyuchi/.github/blob/main/AGENTS.md); this file adds what is specific to `mzizi-dev`. +## Mission (owner, 2026-10-24) + +Read this first. It applies to every repository in the Bundu ecosystem, and +every decision is judged against the whole platform, not only the repo in +front of you. + +**What we are building.** A platform built to compete with the top five +platforms in the world. It is built from Africa, but not as "a product for +Africa". By default it is open data on published open standards, with no +proprietary data structures, so any system can connect to our data, +transformations and services. + +**The ecosystem.** Read nyuchi.com, bundu.org, mukoko.com and mzizi.dev, and +their `llms.txt` files. + +- **Bundu Foundation** governs the standards and doctrine. Ubuntu is the spec: + survival, solidarity, compassion, respect, dignity. Personal data stays on + the user's device or pod, under the user's keys. No surveillance business + model. The data commons is open. +- **Nyuchi Africa** is the frontier infrastructure (API Platform, Pay, Web + Services, Weather Stations, Logistics and more), with the console at + platform.nyuchi.com. +- **Mukoko** is a privacy-first consumer super-app: one identity, one payments + rail, offline-first sync, and English, Shona and Ndebele at parity. Kweli is + its trust and verification layer. +- **Mzizi** is the open architecture framework and language, built on Rust. + Mzizi is the rule: no app drifts from it, and filling a design-system gap + so an app conforms to Mzizi needs no approval. +- **Four gateways** (nyuchi-api#353), each rebuilt in Rust on the same layout, + core, origin and edge (nyuchi-api#355): + - Mzizi API: public. + - Nyuchi API: B2B, api.nyuchi.com. + - Mukoko API: consumer. + - Nyuchi Servers API: internal, no public IP. + +**The engineering bar**, for every service and data model: + +1. **Open standards by default** (nyuchi-api#369). Never invent a format when + a published standard exists: + - schema.org types with JSON-LD; GeoJSON (RFC 7946) for places; + - ISO 3166 for countries, ISO 4217 for currencies, RFC 3339 for times, + BCP 47 for languages (`en`, `sn`, `nd`); + - CloudEvents for events and DCAT for open datasets; + - OpenAPI 3.1 for every API; + - RFC 9457 Problem Details for every error; + - OAuth 2.1 and OIDC, with RFC 9728 protected-resource metadata; + - W3C Trace Context and OpenTelemetry; + - IETF RateLimit headers. +2. **Nothing crashes.** A handler panic becomes a 500 and the process keeps + serving. Requests have timeouts and size limits. Services shut down + gracefully. `/health` is liveness and `/ready` checks each dependency. The + version reported is the real release, never hard-coded. +3. **Everything ships to production.** Releases go `staging` → `main` through + the merge queue. Deploys run on every push to `main`, with no variable + gates. A missing secret fails loudly, never silently skips. +4. **Never close a conflicting PR.** Resolve the conflict and keep every + feature. +5. **Think as a data scientist, a software engineer, a psychologist and an + engagement designer at once.** Every record is linkable across systems by + one canonical id: WorkOS `externalId` = Mongo entity id = ledger + `owner_id`. An empty screen loses a user, so design for engagement and + trust. +6. **Honesty.** Report what is measured, label design as design, and never + overclaim. + +**Dependencies.** Declare first-party packages (`@nyuchi/*`, `@bundu/*`, +`mzizi-*`) and direct dependencies as minimum versions (`>=x.y.z`) with no +upper bound; an old version blocks, the latest never does. Third-party +selectors known to break across majors, and runtime dependencies of +published packages, are capped within their major (`>=x