12.09 — Cohérence de l’écosystème#
Six dépôts, plusieurs langages, plusieurs technologies, plusieurs licences, plusieurs plateformes de déploiement. À première vue, hétérogène. À deuxième lecture, rigoureusement cohérent : chaque pièce sert exactement le même pari.
1. Vue d’ensemble : six dépôts, une éthique#
┌────────────────────────────────────────────────────────────────────────┐
│ L'ÉCOSYSTÈME COMME UN TOUT COHÉRENT │
└────────────────────────────────────────────────────────────────────────┘
┌──────────────┐ Le framework. ROP, types stricts, refus de plugin
│ ocarina │ pytest. UNE seule dep d'exécution. Auditable en
└─────────────┬┘ une après-midi. — PROUVE que la rigueur est légère.
│
│
▼
┌─────────────────┐ La référence d'usage. Adapters projet. Patterns
│ ocarina-example │ canoniques. Démontre comment on rétrécit la surface
└─────────────┬───┘ d'API du framework pour son contexte. — PROUVE que
│ le framework est utilisable « par n'importe qui ».
│
▼
┌─────────────────────────┐ Le pari IA. Co-écrit par Claude 99%. CURA
│ ocarina-with-ai-example │ Healthcheck comme SUT. Findings sourcés jusqu'au PHP.
└─────────────┬───────────┘ — PROUVE que l'IA + Ocarina peut faire un
│ vrai travail de testeur senior.
▼
┌──────────────┐ Le SUT volontairement chaotique. Le terrain.
│ igoristan │ — PROUVE qu'on peut tester une appli pathologique
└────────┬─────┘ sans tricher.
│
▼
┌────────────────┐ Le backend de coordination. Vercel Edge,
│ tests-workers │ Upstash Redis, anti-précision volontaire.
└────────┬───────┘ — PROUVE qu'on peut faire de la coordination
│ distribuée sans plateforme propriétaire.
│
▼
┌───────────────────┐ La documentation publique. VitePress + FR/EN/RU
│ ocarina-holy-book │ + LLM-first (llms.txt, CLAUDE.md, skills).
└───────────────────┘ — PROUVE qu'on peut écrire de la doc qui sert
humain ET IA, sans plateforme tierce.2. Un dépôt = un type de défi#
| Dépôt | Type de défi | Pari prouvé |
|---|---|---|
ocarina | Construire un framework petit et profond | « La rigueur n’est pas une usine à gaz » |
ocarina-example | Démontrer un usage canonique | « Tu peux vraiment écrire des tests rigoureux comme ça » |
ocarina-with-ai-example | Faire collaborer un humain et une IA | « L’IA est le pont, pas le DSL » |
igoristan | Bâtir un SUT chaotique | « Pas de démo sur un site qui fait vingt lignes d’HTML, une démo sur un vrai bordel » |
tests-workers | Être le substrat par lequel les tests se coordonnent | « On peut être stateless côté code » |
ocarina-holy-book | Documenter pour humains et IA | « La documentation est avant tout de la donnée brute pour les LLMs » |
Si on enlève l’un de ces dépôts, l’écosystème perd un argument.
Les six sont solidaires.
3. Les invariants transverses#
Licence#
| Dépôt | Licence |
|---|---|
ocarina | MIT |
ocarina-example | MIT |
ocarina-with-ai-example | MIT |
ocarina-holy-book | MIT |
igoristan | aucune (démo publique) |
tests-workers | ISC (par défaut Vercel scaffold) |
MIT partout sauf cas particuliers. La licence est permissive au maximum dans tous les cas.
Signature#
Chaque README termine par :
Built by [@mojo-molotov](https://github.com/mojo-molotov)
Fueled by figatellu and Квас.Signature décalée et uniforme.
C’est une convention Zone-H / IRC (04-zoneh-irc-efnet.md).
Trois conventions Git#
| Convention | Manifestation |
|---|---|
| Conventional Commits | commitlint + commitizen (Igoristan, Holy Book, ai-example) |
| Pre-commit hooks | Husky (JS) ou pre-commit Python (ocarina, ocarina-example) |
Pas de .no-verify | Aucun bypass des hooks. Si ça plante, on fixe. |
Trois conventions CI/CD#
| Convention | Manifestation |
|---|---|
| PR-gate rapide | lint + typecheck (ou check-coding-style) |
| E2E manuel | workflow_dispatch uniquement, jamais sur PR |
if: always() upload artifacts | On garde toutes les traces |
Trois conventions de code#
| Convention | Manifestation |
|---|---|
| Strict type checker | mypy strict (Python), tsc --build strict (TS) |
Linter en select = ["ALL"] ou équivalent | ruff ALL (Python), eslint --max-warnings 0 (TS) |
Pas de # noqa muet | Toujours justifié, toujours local |
4. La cohérence des choix de stack par contexte#
| Contexte | Choix | Pourquoi cohérent |
|---|---|---|
| Framework Python | Python 3.14+ avec PEP 695 | Typage strict moderne |
| Site démo | React 19 + Vike + Tailwind | Stack frontend de référence 2026 ; pas de dette inutile |
| Backend léger | Vercel Edge + Upstash Redis | Stateless, low-cost, low-tech, déployable en 30 secondes |
| Documentation | VitePress (pas Docusaurus, MkDocs, Sphinx) | Vite-based, alignement avec le frontend du SUT, aspects LLM-friendly construits à la main |
| Génération PDF | Reportlab + IA pour orchestrer | Workflow agentique |
5. La cohérence du ton#
Le ton est uniforme, différent selon le médium mais aligné :
| Médium | Ton |
|---|---|
README ocarina | Technique sobre, factuel |
README ocarina-example | Technique avec touches d’humour (« figatellu and Квас ») |
README ocarina-with-ai-example | Honnête et démonstratif (« 99% Claude / 50% intelligence ») |
README igoristan | Minimaliste (« Welcome to the Empire ») |
README tests-workers | Documentation API directe |
| Holy Book | Pamphlétaire, identité forte, citations underground |
CLAUDE.md | Règles strictes, exemples du passé, vocabulaire ferme |
Le Holy Book est le point le plus chaud.
Les README sont froids.
Cette différence est volontaire :
README= surface technique. Doit être utilisable avec le moins de bruit possible.- Holy Book = surface philosophique. Doit être ressenti.
Comme dans le zine underground : la doc technique froide existe, mais la vraie voix vit dans le manifeste séparé.
6. La cohérence inter-dépôts via les secrets partagés#
Cf. ../00-big-picture/04-repo-relations.md
Un seul secret (IGOR_API_KEY ≡ API_SECRET) gouverne toutes les interactions OTP entre :
ocarina-example(consommateur).tests-workers(serveur).igoristan(UI qui le passe).
Pas trois secrets, pas une matrice de permissions. Un.
C’est le minimum vital.
« Auditable en une après-midi ».
7. La cohérence des bugs#
| Failure volontaire | Où | Pourquoi |
|---|---|---|
Math.random() < 0.9 sur useAuth | igoristan | Forcer à retry côté Ocarina |
Math.random() < 0.3 sur la page random-error | igoristan | Forcer à utiliser les transient_errors |
Math.random() < 0.3 sur donkey-sausage | igoristan | Forcer match_page |
1/5 chance d’Error('lol') sur Corsicamon | igoristan | Forcer à retry côté Ocarina |
| Timestamp OTP amputé des ms | tests-workers | Forcer une coordination fine entre tests parallélisés |
Élément .catch-me-if-you-can aléatoire | igoristan | Forcer l’usage des Watcher |
| Heroku eco-dyno qui s’endort (CURA) | externe | Forcer le warm-up CI |
BFCache Chrome restore no-store | externe (Chrome) | Forcer la cross-browser matrix |
| Password manager Chrome qui catch les inputs | externe (Chrome) | Forcer un adapter create_drivers_pool custom |
8. La cohérence des refus#
| Dépôt | Refus spécifique |
|---|---|
ocarina | async/await, plugin pytest, DSL textuel, contributions « stylées » |
ocarina-example | Mocks (utilise le vrai Igoristan), e2e sur PR (cher, manuel uniquement) |
ocarina-with-ai-example | Tests sécurité actifs, hacks, JS-clicks pour bypass, solutions de contournement dégueulasses |
igoristan | Tests unitaires (tout est en e2e externe) |
tests-workers | CI GitHub (Vercel suffit), framework côté serveur (handlers .ts directs) |
ocarina-holy-book | Algolia (Pagefind statique) |
9. La cohérence avec la posture politique#
Cf. ../11-independence/03-explicit-refusals.md et ../01-philosophy/05-political-stance.md
L’auteur refuse :
- Les contributions « stylées »
- Les PRs / issues non alignées
- La « gouvernance démocratique du code »
async/await- Les vendors
- Les plateformes propriétaires
- Le melon-engineering
L’écosystème matérialise ces refus :
- Pas de bot GitHub qui auto-merge
- Pas de Discord, pas de Slack
- Pas de financement Patreon / GitHub Sponsors / OpenCollective / aucune demande de sponsor
- Pas de SLA, pas de support payant
- Pas de talks sponsorisés
- Pas de merchandising
10. La méta-cohérence : le précis lui-même#
| Trait du précis | Aligné avec |
|---|---|
| Que du Markdown, propulsé par Hugo | Anti-No-Code, anti-SaaS, anti-Dévs |
| Multi-fichiers cross-référencés | Composition, pas monolithe |
| Schémas ASCII | Pas de tooling propriétaire |
| Gratuit, pas de paywall | Code is Law |
| Pédagogie sans filtre | Tout est expliqué, RTFM |