Add a root AGENTS.md (ecosystem map of factory/tools/cms + agent operating rules + the persona cohort & workflow) and a new vibe/ knowledge base for LLM agents, modeled on tree-docs conventions and the factory house style. vibe/ folders (each with a README hub + contribution rules): - ADR/ optimized MADR-lite; canonical home going forward (doc/adr stays historical) - PRD/ one subfolder per PRD, mandatory STATUS.md, QA strategy for big ones - investigations/ single INV-NNN-slug.md, or stub + folder w/ notebooks - guidebooks/ tree-docs maps; lab-ecosystem guidebook of factory+tools+cms - runbooks/ [AGENT]/[HUMAN] step procedures (EN; doc/runbooks stays FR) - shareouts/ dated FR handouts (decks/mp4) Seed content (first ADR + PRD): a safe, production-like environment to rehearse risky changes and recovery without touching real prod — local-only sandbox (k3d + arm64 VMs) with a hard prod/sandbox isolation boundary. Includes INV-001 (prod blast-radius couplings), the ecosystem guidebook, and a FR shareout. Conventions enforced: no-tombstone rule, breadcrumb spine, bidirectional cross-links, theme:base mermaid (MCP-validated) + ordered-list-after-diagram. Built with a Workflow + persona cohort; 24 files, zero dead links. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
vibe > ADR
Architecture Decision Records
Status: 🟢 Active Last Updated: 2026-06-23 Related: vibe/PRD · vibe/Investigations Historical: doc/adr (foundational infra) · ansible/.../docs/adr (dated infra ADRs)
vibe/ADR/ is the canonical home for Architecture Decision Records going forward. The format is MADR-lite: one short, self-contained Markdown file per decision, focused on the why rather than the how. Use the _template.md skeleton to start a new one.
Where ADRs live
There are three ADR locations in this repo. Only the first accepts new records; the other two are read-only history kept for context.
| Location | Role | Accepts new ADRs? |
|---|---|---|
vibe/ADR/ (this folder) |
Canonical, MADR-lite, going forward | ✅ Yes |
doc/adr/ |
Foundational infrastructure ADRs (DNS, k3s, CI/CD, Vault, telegram-gateway auth) | ❌ Historical |
ansible/arcodange/factory/docs/adr/ |
Dated infra ADRs (network, CI/CD, Longhorn PVC recovery, internal DNS) | ❌ Historical |
When a new decision supersedes one of the historical records, write the new ADR here, set the old one's status note to Superseded by ADR-NNNN, and cross-link both ways.
Rules
- One file per decision, named
NNNN-kebab-title.md(zero-padded sequence, e.g.0001-safe-prod-like-environment.md). - The body is immutable once
Accepted. A decision is a historical fact: do not rewrite the Context/Decision/Consequences after acceptance. The only mutation allowed on an accepted ADR is its status (e.g. flippingAccepted→Superseded). - Statuses:
Proposed(under discussion) →Accepted(decided, body frozen) →Superseded(replaced; points to the successor ADR). AProposedADR may still be edited freely. - No-tombstone rule. Each file reads as currently true. Never leave "previously X, now Y", changelog lines, or "updated to ..." notes inside an ADR — git history is the audit trail. A superseded ADR keeps its original frozen body; the supersession is recorded only in its status line and the successor's References.
- PR cross-link both ways. The ADR References section links the PR that introduced it; the PR description links back to the ADR. Keep links bidirectional.
Index
| # | Title | Status | Date |
|---|---|---|---|
| 0001 | Safe, production-like environment | 🟢 Accepted | 2026-06-23 |
Rules to contribute
- Copy
_template.mdtoNNNN-kebab-title.mdusing the next free sequence number and delete the top HTML-comment note. - Fill in the blockquote (Status/Date/Deciders), then Context, Decision, Consequences, Alternatives considered, QA & validation, References.
- Open the ADR with status
Proposed. Flip it toAcceptedonce the decision is settled — and from that point treat the body as frozen. - Add a row to the Index table above (newest at the bottom to preserve chronological numbering).
- In the PR that lands the ADR, link to the ADR file; in the ADR's References, link back to the PR. Bidirectional links are mandatory.
- If this ADR supersedes a historical one in
doc/adr/or the Ansible ADR folder, update the old record's status note and cross-reference both directions.