ED07 - Documentation des procédures GoBD : champs obligatoires, gestion des versions, validation

Problème

Les GoBD Rz. 64–91 exigent une documentation des procédures - mais dans le secteur des PME, elle reste la grande exception :

Message clé

Une documentation des procédures conforme aux GoBD dans le dépôt Git signifie :

  1. La documentation des procédures est un artefact Git versionné - non pas un document Word, mais Markdown + JSON dans le dépôt
  2. Chaque modification est traçable - git log montre Qui, Quand, Quoi, Pourquoi (auteur du commit, horodatage uuidV7, diff, message de commit)
  3. Validation par tags - un tag Git marque l'état validé de la documentation des procédures (p. ex. vd-v1.0-2026)
  4. Les changements de système sont documentés en continu - lors d'une migration, un nouveau commit avec justification est créé, l'ancienne version reste traçable
  5. Le dépôt lui-même fait partie de la documentation des procédures - git log montre le processus, .gitcover/schemas/ montre les structures de données, les Git-Hooks montrent les contrôles

Compliance by Design : la documentation des procédures n'est pas un exercice rétrospectif - elle naît de l'utilisation de Git. Quiconque travaille avec des dépôts Git documente automatiquement son processus au moyen de commits, de diffs et de tags. La documentation formelle des procédures complète cela par la description lisible par l'humain.

Qu'est-ce qu'une documentation des procédures ?

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD VD["Documentation des procédures
(GoBD Rz. 64–91)"] VD --> V["Processus
(Comment comptabilise-t-on ?)"] VD --> S["Environnement système
(Quel logiciel/matériel ?)"] VD --> O["Organisation
(Qui fait quoi ?)"] VD --> K["Contrôles
(Comment est-ce vérifié ?)"] VD --> D["Données
(Quels formats/structures ?)"] V --> G["Dépôt Git
(Commits, Hooks)"] S --> G O --> G K --> G D --> G style VD fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style V fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style S fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style K fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style D fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style G fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Exigence GoBD Contenu Comment Git y répond
Processus (Rz. 64–71) Description du processus comptable git log montre chaque étape ; les messages de commit documentent la justification
Environnement système (Rz. 72–76) Logiciels, matériel, versions .gitcover/ avec schémas et dictionnaires ; git config montre les paramètres
Organisation (Rz. 77–80) Responsabilités, rôles, autorisations champ role par artefact ; git log --author montre les responsabilités
Contrôles (Rz. 81–85) Contrôles internes, vérifications de vraisemblance Pre-Commit-Hooks (schéma, sphères, obsolescence) ; Post-Commit-Hooks (index)
Données (Rz. 86–91) Structures de données, formats, interfaces Schémas JSON dans .gitcover/schemas/ ; Sidecars avec v7g_taxonomy

Champs obligatoires de la documentation des procédures

Structure dans le dépôt Git

ORG-1/
├── .gitcover/
│   ├── schemas/                    # Structures de données (Rz. 86–91)
│   │   ├── diary-entry-1.0.schema.json
│   │   ├── v7g-sidecar-1.0.schema.json
│   │   └── timesheet-1.0.schema.json
│   ├── dictionaries/               # Classifications (Rz. 86–91)
│   │   ├── spheres.json
│   │   ├── roles.json
│   │   └── beleg-types.json
│   └── LEGAL_ENTITY.v7g.json       # Identité du tenant
├── docs/
│   └── verfahrensdokumentation/
│       ├── README.md               # Introduction + vue d'ensemble
│       ├── 01-verfahren.md         # Processus comptable (Rz. 64–71)
│       ├── 02-systemumgebung.md    # Logiciel/Matériel (Rz. 72–76)
│       ├── 03-organisation.md      # Responsabilités (Rz. 77–80)
│       ├── 04-kontrollen.md        # Contrôles internes (Rz. 81–85)
│       └── 05-daten.md             # Structures de données (Rz. 86–91)
└── .githooks/
    ├── pre-commit                  # Contrôles (Rz. 81–85)
    └── post-commit                 # Génération de l'index

La documentation des procédures comme artefact JSON

La documentation des procédures elle-même est un artefact versionné avec V7GUID (Class) et uuidV7 (Object ID comme DocID) :

{
  "$schema": "https://gitcover.org/schemas/verfahrensdoku-1.0.schema.json",
  "V7GUID": "<V7GUID-Class-aus-Registry>",
  "uuidV7": "<uuidV7-Object-mit-vorgegebener-Zeitmarke>",
  "author": "E1",
  "role": "GF",
  "tenant": "ORG-1",
  "sphere": "wirtschaftlich",
  "source": "E1",
  "version": "1.0",
  "status": "released",
  "sections": ["01-verfahren", "02-systemumgebung", "03-organisation", "04-kontrollen", "05-daten"]
}

Remarque : la uuidV7 est la DocID de la documentation des procédures. La clé composite V7GUID:uuidV7 sert à l'organisation du stockage et aux requêtes DB. Pas de champ datetime/date séparé - le temps est contenu dans la uuidV7.

Gestion des versions et validation

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD E["Brouillon
Commit 1"] E --> R["Revue
Commit 2 (modifications)"] R --> F["Validation
Tag: vd-v1.0-2026"] F --> P["Production
État v1.0"] P --> A["Modification nécessaire
(p. ex. changement de système)"] A --> E2["Brouillon v2.0
Commit 3"] E2 --> R2["Revue v2.0"] R2 --> F2["Validation
Tag: vd-v2.0-2027"] F2 --> P2["Production
État v2.0"] F -.-> OBS["obsolescence:
v1.0 → superseded by v2.0"] style E fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style R fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style F fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style A fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style E2 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style R2 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style F2 fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P2 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style OBS fill:#E5E7EB,stroke:#6B7280,color:#0F1B33
Phase Opération Git Référence GoBD
Brouillon Commit sur main (ou Feature-Branch) Rz. 83 (actualité)
Revue Commits supplémentaires avec modifications Rz. 83 (traçabilité)
Validation git tag vd-v1.0-2026 Rz. 83 (état contraignant)
Production Le tag est immuable (Protected) Rz. 146 (immuabilité)
Modification Nouveaux commits + nouveau tag Rz. 146–150 (changement de système)
Obsolescence Ancienne version obsolescence: superseded_by Rz. 146 (traçabilité)

Important - les tags comme marqueurs de validation : un tag Git est immuable - il marque un état de commit exact qui ne peut pas être modifié a posteriori. Cela correspond aux GoBD Rz. 146 (immuabilité). Le vérificateur peut reconstituer avec git show vd-v1.0-2026 l'état exact de la documentation des procédures au moment du contrôle.

Changement de système et migration (GoBD Rz. 146–150)

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart LR A["Ancien système
(p. ex. Cloud-Lohn)"] A --> M["Migration
Commit avec justification"] M --> N["Nouveau système
(p. ex. Git-Cover)"] A --> DA["Données anciennes
git bundle
(self-contained)"] N --> DN["Données nouvelles
Dépôt Git
(poursuivies)"] M --> VD["Documentation des procédures
tenue à jour
+ message de commit
avec justification"] style A fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style M fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style N fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style DA fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style DN fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style VD fill:#10A987,stroke:#0A7F5C,color:#FBFAF7

Les GoBD Rz. 146–150 exigent en cas de changement de système :

  1. Maintenir disponibles les données de l'ancien système - git bundle comme archive self-contained (aucun compte cloud nécessaire, voir ED05 Z3)
  2. Tenir à jour la documentation des procédures - nouveau commit avec justification : « Migration de Cloud-Lohn vers GitCover, date, rôle »
  3. Documenter la période de transition - quelles données ont été migrées et comment, quels contrôles ont été effectués
  4. Marquer l'ancienne version comme obsolète - obsolescence: superseded_by dans l'ancien artefact de documentation des procédures

Exemple pratique : l'entrepreneur (E1) migre d'un logiciel de paie en cloud vers GitCover. Il crée un git bundle des anciennes données, met à jour la documentation des procédures (nouveau commit avec le message de commit « Migration vers GitCover, 260815, rôle : GF »), marque l'ancienne version comme superseded et taggue la nouvelle version vd-v2.0-2027. Le vérificateur peut retracer les deux versions.

Le dépôt lui-même comme documentation des procédures

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD R["Dépôt Git"] R --> GL["git log
Processus (Rz. 64–71)"] R --> GC["git config
Environnement système (Rz. 72–76)"] R --> GA["git log --author
Organisation (Rz. 77–80)"] R --> GH["Git-Hooks
Contrôles (Rz. 81–85)"] R --> SC["Schémas + Sidecars
Données (Rz. 86–91)"] GL --> VD["Documentation des procédures
se crée automatiquement"] GC --> VD GA --> VD GH --> VD SC --> VD style R fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style GL fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GA fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style GH fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style VD fill:#10A987,stroke:#0A7F5C,color:#FBFAF7

L'idée centrale : un dépôt Git est lui-même une documentation des procédures - git log montre le processus, git config montre l'environnement système, les Git-Hooks montrent les contrôles, les schémas montrent les structures de données. La documentation formelle des procédures (Markdown dans docs/verfahrensdokumentation/) complète cela par la description lisible par l'humain - mais la source faisant autorité est le dépôt lui-même.

Levier de risques

Aujourd'hui (peu coûteux) Demain (à l'épreuve des contrôles) Risque atténué
Documentation des procédures comme artefact Git GoBD Rz. 64–91 satisfaites by Design Estimation § 162 AO (absence de documentation des procédures)
git log comme preuve du processus Traçabilité dans un délai raisonnable Contestation de la documentation des procédures
Tags comme marqueurs de validation État immuable au moment du contrôle Contestation de l'état
Changement de système comme commit + bundle Conforme aux GoBD Rz. 146–150 Violation des GoBD par un changement non documenté
Marquage d'obsolescence Anciennes versions traçables Modifications dissimulées
Dépôt lui-même comme documentation des procédures Documentation automatique par l'utilisation Documentation des procédures obsolète

Exigences Harness (aperçu)

Déductible de ED07 :

ID Exigence Priorité
FA-6.1 Documentation des procédures comme artefact Git versionné MUST
FA-6.3 Gestion du plan comptable SKR04 (y compris comptes de paie) SHOULD
FA-6.6 Immuabilité après validation (Tags, Protected Branches) MUST
FA-6.7 Générateur de site statique pour la clôture de période (Z3+) SHOULD
TA-2.1 Pre-Commit : validation du schéma JSON MUST
TA-2.4 Pre-Commit : vérification du statut d'obsolescence SHOULD
TA-2.6 Post-Commit : génération automatique de l'index SHOULD

La liste complète des exigences dans Harness-Anforderungen.md.

Sources

Topologie des sources et liens de référence CDN

Rôle Emplacement Objectif
Primary / SSoT git.gitcover.org/GCC Stockage canonique (signé GPG, versionné)
Public OSS Mirror / CDN codeberg.org/gitcover-commons Miroir en lecture seule ; découverte FLOSS
Community Hub github.com/gitcover-commons Issues & Discussions ; référence du code source sur Codeberg

Remarque : cette répartition entre sources, miroir et hub communautaire reflète l'état actuel et peut changer. Veuillez vérifier la source canonique respective sur gitcover.org pour connaître l'état actuel.