AI Skill Report Card

Writing Homelab Documentation

Structures et rédige la documentation technique d'un homelab avec MkDocs en appliquant des méthodes professionnelles de documentation technique. Utilise cette compétence quand on crée une nouvelle page de documentation (information, processus, installation/configuration), quand on documente un service/serveur nouvellement installé, ou quand on doit organiser du contenu Markdown brut (captures d'écran, procédures, configs) en une page finale structurée.

B+78·Sep 20, 2026·Source: Web
12 / 15

Demande reçue : "Ajoute une page pour Proxmox"

  1. Identifier le type de page (info / process / install-config)
  2. Poser les questions de cadrage (voir Workflow)
  3. Créer le fichier .md avec frontmatter au bon endroit dans l'arborescence
  4. Rédiger en respectant la sémantique du type de page
  5. Intégrer captures d'écran, tableaux, blocs de code
  6. Livrer la page finale, prête à être commitée
Recommendation
Add a second concrete example showing a 'bad' outcome (e.g., a poorly structured page mixing types) to contrast with the good example, per best practices
14 / 15

Étape 1 — Déterminer le type de document

Toujours clarifier avant d'écrire :

  • Information : description d'un concept, d'une architecture, d'un composant (pas d'actions à exécuter)
  • Process : suite d'étapes récurrentes (sauvegarde, maintenance, procédure de dépannage)
  • Installation/Configuration : mise en place d'un service précis, reproductible

Étape 2 — Collecter les informations brutes

Poser les questions pertinentes selon le type détecté :

  • Quel service/composant est concerné ?
  • Support physique ou virtuel ? (→ déterminre l'emplacement : serveurs-physiques/ vs machines-virtuelles/)
  • Procédure disponible ? (tuto, script, commandes copier-coller)
  • Documentation source utilisée (liens externes) ?
  • Fichiers de configuration à inclure ?
  • Dépendances avec d'autres pages existantes (à lier en cross-reference) ?

Écrire d'abord ces infos brutes dans le fichier (création du fichier + frontmatter minimal), sans polish. Ne pas bloquer l'utilisateur en attendant une réponse parfaite : itérer.

Étape 3 — Déterminer l'emplacement dans la structure

Respecter l'arborescence mkdocs existante (mkdocs.yml / nav). Règles par défaut :

  • Machine physique → infrastructure/serveurs-physiques/<nom>.md
  • VM → infrastructure/machines-virtuelles/<nom>.md
  • Service applicatif → services/<categorie>/<nom>.md
  • Page conceptuelle → concepts/<sujet>.md

Si ambigu, proposer l'emplacement plutôt que de demander — l'utilisateur valide ou corrige.

Étape 4 — Rédiger le frontmatter

YAML
--- title: <Nom du service/composant> type: information | process | installation status: draft | validé tags: [proxmox, virtualisation, ...] date_creation: 2024-01-15 date_maj: 2024-01-15 ---

Étape 5 — Rédiger le contenu selon le type

Page Information :

  • Contexte / objectif
  • Architecture (schéma si possible, sinon description textuelle claire)
  • Caractéristiques techniques (tableau)
  • Liens vers pages process/installation associées

Page Process :

  • Prérequis
  • Étapes numérotées, chacune actionnable
  • Points de vérification / rollback
  • Fréquence si applicable (ex : sauvegarde hebdomadaire)

Page Installation/Configuration :

  • Prérequis (matériel, logiciel, réseau)
  • Étapes d'installation (commandes en bloc de code avec langage spécifié)
  • Configuration post-installation
  • Fichiers de config pertinents (en bloc de code, chemin en commentaire)
  • Vérification / tests de bon fonctionnement
  • Section Troubleshooting si pertinent
  • Sources / liens de référence utilisés

Étape 6 — Intégrer médias et enrichissements

  • Captures d'écran : ![description explicite](chemin/image.png), jamais de nom de fichier générique (image1.png)
  • Convertir les listes de caractéristiques en tableaux Markdown dès que ≥3 éléments comparables
  • Utiliser les admonitions MkDocs (!!! note, !!! warning, !!! tip) pour les informations critiques
  • Blocs de code toujours avec langage spécifié (```bash, ```yaml, ```nginx)

Étape 7 — Passe de finalisation

  • Relire pour cohérence terminologique avec le reste de la doc
  • Vérifier les liens internes (cross-reference vers pages liées)
  • Mettre à jour status: validé et date_maj
  • Mettre à jour nav dans mkdocs.yml si nouvelle page
Progress:
- [ ] Type de document déterminé
- [ ] Informations brutes collectées et écrites
- [ ] Emplacement dans l'arborescence choisi
- [ ] Frontmatter rédigé
- [ ] Contenu structuré selon le type
- [ ] Médias/tableaux intégrés
- [ ] Relecture et mise à jour nav
Recommendation
The description is a bit long and could be tightened while still conveying triggers clearly
15 / 20

Example 1 : Input : "Je veux documenter l'installation de Pi-hole sur une VM" Output :

YAML
--- title: Pi-hole type: installation status: draft tags: [dns, reseau, adblock] date_creation: 2024-03-01 date_maj: 2024-03-01 --- # Installation de Pi-hole
Recommendation
Consider adding an explicit example for the 'process' page type since only 'information' and 'installation' are shown concretely
  • VM Debian 12, 1 vCPU / 1 Go RAM
  • Adresse IP statique réservée sur le réseau 192.168.1.0/24
Bash
curl -sSL https://install.pi-hole.net | bash
ParamètreValeur
Interface DNS192.168.1.53
Upstream DNSCloudflare (1.1.1.1)

!!! warning Désactiver le service DHCP du routeur si Pi-hole gère aussi le DHCP.

...

Fichier créé à : `machines-virtuelles/pi-hole.md`

**Example 2 :**
Input : "Ajoute une page sur l'architecture réseau générale" (page information, pas d'action)
Output : page avec frontmatter `type: information`, section Contexte, tableau des VLANs, schéma texte de la topologie, liens vers les pages process de configuration réseau associées. Placée en `concepts/architecture-reseau.md`.
  • Toujours écrire le frontmatter avant le contenu, même minimal, dès la création du fichier
  • Ne jamais mélanger les types de page (une page install ne doit pas contenir de longue partie théorique — la lier plutôt vers une page information)
  • Préférer les tableaux aux listes à puces pour toute donnée comparative (specs, versions, ports)
  • Toute commande exécutée doit être dans un bloc de code avec le langage spécifié
  • Toujours indiquer la source (lien, doc officielle) en fin de page d'installation
  • Nommer les fichiers en kebab-case cohérent avec les slugs de navigation
  • Ne pas créer une page "fourre-tout" mélangeant info + install + troubleshooting sans séparation claire
  • Ne pas laisser le champ status: draft indéfiniment — forcer la passe de finalisation avant de considérer la page terminée
  • Ne pas insérer de captures d'écran sans légende/description
  • Ne pas dupliquer une information déjà présente ailleurs — préférer un lien croisé
  • Ne pas deviner l'emplacement dans l'arborescence sans vérifier la structure mkdocs.yml existante
0
Grade B+AI Skill Framework
Scorecard
Criteria Breakdown
Quick Start
12/15
Workflow
14/15
Examples
15/20
Completeness
17/20
Format
13/15
Conciseness
12/15