How This Wiki Works
A wiki dies when people stop trusting it. One wrong or stale page and everyone goes back to asking in chat. These rules exist to prevent exactly that.
The rules
Section titled “The rules”flowchart TD
A["Want to add or change something?"] --> B{"Has this question<br/>been asked twice?"}
B -->|No| C["Don't add a page yet.<br/>Answer in chat."]
B -->|Yes| D["Write it — diagram first"]
D --> E["Add owner + lastReviewed<br/>in frontmatter"]
E --> F["Open a PR"]
F --> G["Merged → it's now the standard"]
G --> H{"Reviewed in<br/>last 6 months?"}
H -->|Yes| G
H -->|No| I["Delete it (not archive)"]
| Rule | Why |
|---|---|
| One owner + lastReviewed date per page | Accountability. Ownerless pages rot. |
| Diagram-first | Faster to read, harder to get wrong, easier to keep short. |
| Index, not source of truth | Azure DevOps holds the real state; we link to it, never copy it. |
| Edit by PR | Same review discipline as code. |
| Delete when stale | A wrong page is worse than a missing one. |
What belongs here vs. not
Section titled “What belongs here vs. not”- Belongs here: how we work, decide, and deliver — conventions, playbooks, templates, role boundaries.
- Does NOT belong here: project-specific ADRs, runbooks, and
AGENTS.md— those live in each project repo. This wiki holds the template only — instances, and any index of them, live where the instances live. - Never here: secrets, credentials, or real client contract data.
Bilingual rule
Section titled “Bilingual rule”English is canonical; Arabic mirrors it under /ar/. A page is in exactly one of three states, and which one is a deliberate choice, not an accident:
| State | Which pages | What the reader gets |
|---|---|---|
| Full translation | Everything outside engineering/ |
The whole page in Arabic |
| Arabic summary | The 7 engineering/<topic> standards pages |
One dense paragraph plus a pointer to the full English page. The rules are enforced by committed config, so the English page is the one you act on. |
| English only | The 7 engineering/<topic>/examples subpages |
Starlight’s own “not available in your language yet” notice above the English content |
Three rules that hold in both languages:
- Technical terms stay in English inside Arabic text —
PR,pull request,branch,code review,pipeline,sprint,deployment, and framework names like Angular, .NET, PrimeNG. That is how we actually talk. - Mermaid diagrams and fenced code are copied verbatim. Node labels, file paths, and config keys are never translated — a diagram must read identically in both locales or the two will drift apart.
- An Arabic page’s
lastReviewedmoves with its English twin. If you change the English page, you either update the Arabic one in the samePRor you have created a silent divergence.
A missing Arabic page falls back to English automatically, with a visible notice. That is the escape hatch, not the plan — anything in the first row above that is missing is a bug.