Le rôle gitea_repo ne savait viser qu'un propriétaire : l'organisation, des deux côtés à la fois. Les dépôts qui vivent sous le compte personnel `arcodange` ne pouvaient donc pas sortir du homelab — ni être balayés par gitea_sync, qui n'interroge que /orgs/<org>/repos. Trois séparations, toutes rétrocompatibles (les défauts reconduisent le comportement org-vers-org des dix dépôts déjà en miroir) : - le propriétaire côté Gitea (`gitea_repo_owner`) n'est plus le même objet que celui d'en face (`github_owner`, `gitlab_owner`) ; - un compte personnel n'est pas une organisation : GitHub ne crée pas le dépôt au même endroit, d'où `github_owner_is_org` qui route vers POST /user/repos ; - GitLab devient facultatif (`gitea_mirror_gitlab`). Il ne l'était pas : sa création attendait un 201 sans ignore_errors, si bien qu'un échec GitLab avortait l'itération — y compris la moitié GitHub, qui n'y était pour rien. Deux défauts corrigés au passage, tous deux silencieux : - les trois listages de gitea_sync ne paginaient pas (30 chez GitHub, 20 chez GitLab). Sous la taille d'une page tout va bien ; au-delà, la différence entre forges désigne de FAUX dépôts manquants et le rôle les « répare » ; - la migration entrante posait `repo_owner: github_organization` pour désigner le propriétaire DANS Gitea. Et un piège découvert en exécutant : un dépôt GitHub créé vide adopte comme branche par défaut la PREMIÈRE branche que le miroir lui pousse — `kadans` a atterri sur `arcodange/adr-ddd-front`. Le rôle réaligne désormais sur la branche par défaut de Gitea ; le miroir étant asynchrone, l'alignement échoue au run qui crée le dépôt et réussit au suivant, d'où le failed_when permissif. Ce qui sort du homelab reste un CHOIX : playbooks/07_mirrors.yml parcourt une liste explicite et relue (`gitea_mirrored_repos`) plutôt que la différence automatique entre forges, qui recréerait un dépôt supprimé exprès. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]>
vibe/ — Arcodange Knowledge Base
You-are-here: the root of the vibe/ knowledge tree — the front door for every doc agents write and read.
Up: factory / AGENTS.md
Status: Active Last Updated: 2026-06-23
What is vibe/?
vibe/ is the knowledge base dedicated to LLM agents working on the Arcodange lab. It collects the why (ADRs), the what/when (PRDs), the what-we-found (investigations), the how-it-fits-together (guidebooks), the how-to-do-it (runbooks), and the what-we-told-humans (shareouts). Everything here is written in English — the single exception is shareouts handouts, which are FRENCH. Operating rules (no-tombstone, mermaid prefs, tree-docs, ADR/PRD/investigation conventions, PR crosslinking, language policy) are defined authoritatively in AGENTS.md; this page summarizes them and points there.
Folder map
| Folder | When to use it | Status |
|---|---|---|
| ADR | Recording an architecture decision (MADR-lite; body immutable once Accepted). Canonical home going forward. | ⬜ |
| PRD | Specifying a product/project: Problem → … → QA strategy → STATUS.md (mandatory, kept current). |
⬜ |
| investigations | Capturing a finding/analysis — single INV-NNN-slug.md, or stub + notebooks when data-heavy. |
⬜ |
| guidebooks | Mapping a component or the ecosystem as navigable tree-docs (the lab cartography). | ⬜ |
| runbooks | Documenting an operational procedure step-by-step with [AGENT] / [HUMAN] markers. |
⬜ |
| shareouts | Producing handouts/presentations for humans (FRENCH). | ⬜ |
Status legend: ✅ done · 🟡 beta · 🔴 critical · ⚠️ known issue · ❌ disabled · ⬜ not started.
Conventions at a glance
- No-tombstone rule (foremost) — write each file as currently true; never leave "previously X, now Y", changelogs, or "updated to …" notes. Git history is the audit trail. Only exception: a forward-looking
> [!CAUTION]about a live risk. - Breadcrumb spine — every non-root file starts with a breadcrumb: ancestors as relative links, current page bold-unlinked, separator
>. This root has no breadcrumb (it uses the you-are-here + up-link above instead). - README hub per folder — each folder's
README.mdis an index table of its children (link + one-line summary + status), sorted by importance/sequence. - Bidirectional links — if A references B as related, B references A. Use descriptive link text (never "here"/"this").
- Mermaid prefs —
theme base/forestinit directive; legibleclassDefpalette (dark fills + light text);<br>not\n; leading space before slash-labels; validate with the Mermaid MCP; a numbered ordered list restating the flow after every diagram. - GitHub alert legend —
[!NOTE]info/forward-looking ·[!TIP]aside ·[!IMPORTANT]inherent constraint ·[!WARNING]degraded-but-working ·[!CAUTION]data-loss/breaking. - Status emoji legend — ✅ done · 🟡 beta · 🔴 critical · ⚠️ known issue · ❌ disabled · ⬜ not started.
- Language policy — English throughout
vibe/; FRENCH only for shareouts handouts.
Authority for all of the above: AGENTS.md.
Maintenance policy
- Adding a page → also add its row to the parent folder's
README.mdindex table. - Keep links bidirectional → when you link A→B, add B→A.
- Stamp
Last Updated:at each tree root (this file and every guidebook/big-PRD root) after any structural change. - Never tombstone → edit content in place; let git carry the history.
- Guidebook coupling → changing a documented component means updating its guidebook page in the same change.
- PR crosslinks → every PR references the ADR/PRD it advances; that ADR's References and the PRD's
STATUS.mdlink back.
Cohort + workflow (recap)
Docs here are produced by a cohort of persona subagents — Lab Cartographer, ADR Scribe, PRD Architect, Runbook Engineer, Investigator, Diagram Smith, Continuity Warden — spawned via the Agent tool or a Workflow. The recommended pipeline for substantial contributions is Scaffold → Author → Validate → Review → Assemble. Full descriptions and responsibilities live in AGENTS.md.