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

Problème

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

Message clé

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

  1. La documentation des procédures est un artefact Git versionné - non 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 consignés - 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 la procédure, .gitcover/schemas/ montre les structures de données, les hooks Git montrent les contrôles

Compliance by Design : La documentation des procédures n’est pas ajoutée après coup - elle naît de l’utilisation de Git. Ceux qui travaillent avec des dépôts Git documentent leur procédure automatiquement par des commits, des diffs et des tags. La documentation formelle des procédures la complète par la description lisible par l’homme.

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

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD VD["Verfahrensdokumentation
(GoBD Rz. 64–91)"] VD --> V["Verfahren
(Wie wird gebucht?)"] VD --> S["Systemumgebung
(Welche Software/Hardware?)"] VD --> O["Organisation
(Wer macht was?)"] VD --> K["Kontrollen
(Wie wird geprüft?)"] VD --> D["Daten
(Welche Formate/Strukturen?)"] V --> G["Git-Repo
(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
Procédure (Rz. 64–71) Description de la procédure de comptabilité git log montre chaque étape ; les messages de commit documentent la justification
Environnement système (Rz. 72–76) Logiciel, matériel, versions .gitcover/ avec schémas, dictionnaires ; git config montre les paramètres
Organisation (Rz. 77–80) Responsabilités, rôles, autorisations champ role par artefact ; git log --author montre la responsabilité
Contrôles (Rz. 81–85) Contrôles internes, vérifications de plausibilité hooks pre-commit (schéma, sphères, obsolescence) ; hooks post-commit (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/                    # Datenstrukturen (Rz. 86–91)
│   │   ├── diary-entry-1.0.schema.json
│   │   ├── v7g-sidecar-2.0.schema.json
│   │   └── timesheet-1.0.schema.json
│   ├── dictionaries/               # Klassifizierungen (Rz. 86–91)
│   │   ├── spheres.json
│   │   ├── roles.json
│   │   └── beleg-types.json
│   └── LEGAL_ENTITY.gc.json       # Tenant-Identität
├── docs/
│   └── verfahrensdokumentation/
│       ├── README.md               # Einstieg + Übersicht
│       ├── 01-verfahren.md         # Buchführungsverfahren (Rz. 64–71)
│       ├── 02-systemumgebung.md    # Software/Hardware (Rz. 72–76)
│       ├── 03-organisation.md      # Zuständigkeiten (Rz. 77–80)
│       ├── 04-kontrollen.md        # Internen Kontrollen (Rz. 81–85)
│       └── 05-daten.md             # Datenstrukturen (Rz. 86–91)
└── .githooks/
    ├── pre-commit                  # Kontrollen (Rz. 81–85)
    └── post-commit                 # Index-Generierung

Documentation des procédures comme artefact JSON

La documentation des procédures est elle-même 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>",
  "docUid": "<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 se trouve dans la uuidV7.

Versionnement et validation

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD E["Entwurf
Commit 1"] E --> R["Review
Commit 2 (Änderungen)"] R --> F["Freigabe
Tag: vd-v1.0-2026"] F --> P["Produktiv
Stand v1.0"] P --> A["Änderung nötig
(z. B. Systemwechsel)"] A --> E2["Entwurf v2.0
Commit 3"] E2 --> R2["Review v2.0"] R2 --> F2["Freigabe
Tag: vd-v2.0-2027"] F2 --> P2["Produktiv
Stand 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 branche de fonctionnalité) Rz. 83 (actualisation)
Revue Autres commits 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 exact de commit, qui ne peut pas être modifié après coup. Cela correspond à GoBD Rz. 146 (immuabilité). L’auditeur peut avec git show vd-v1.0-2026 reconstruire l’état exact de la documentation des procédures au moment de l’audit.

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["Altes System
(z. B. Cloud-Lohn)"] A --> M["Migration
Commit mit Begründung"] M --> N["Neues System
(z. B. Git-Cover)"] A --> DA["Daten alt
git bundle
(self-contained)"] N --> DN["Daten neu
Git-Repo
(fortgeführt)"] M --> VD["Verfahrensdoku
fortgeschrieben
+ Commit-Message
mit Begründung"] 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

GoBD Rz. 146–150 exige lors d’un changement de système :

  1. Maintenir les données de l’ancien système disponibles - git bundle comme archive autonome (aucun compte cloud nécessaire, voir ED05 Z3)
  2. Mettre à 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 cloud vers GitCover. Il crée un git bundle des anciennes données, met à jour la documentation des procédures (nouveau commit avec message de commit « Migration vers GitCover, 260815, rôle : GF »), marque l’ancienne version comme superseded et tague la nouvelle version comme vd-v2.0-2027. L’auditeur peut reconstituer 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["Git-Repo"] R --> GL["git log
Verfahren (Rz. 64–71)"] R --> GC["git config
Systemumgebung (Rz. 72–76)"] R --> GA["git log --author
Organisation (Rz. 77–80)"] R --> GH["Git-Hooks
Kontrollen (Rz. 81–85)"] R --> SC["Schemata + Sidecars
Daten (Rz. 86–91)"] GL --> VD["Verfahrensdokumentation
entsteht automatisch"] 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 la procédure, git config montre l’environnement système, les hooks Git montrent les contrôles, les schémas montrent les structures de données. La documentation formelle des procédures (Markdown dans docs/verfahrensdokumentation/) la complète par la description lisible par l’homme

  • mais la source faisant autorité est le dépôt lui-même.

Levier de risque

Aujourd’hui (cheap) Demain (sécurisé pour l’audit) Risque réduit
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 de la procédure Traçabilité dans un délai approprié Contestation de la documentation des procédures
Tags comme marqueurs de validation État immuable au moment de l’audit Contestation de l’état
Changement de système comme commit + bundle Conforme aux GoBD Rz. 146–150 Violation des GoBD par 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

Exigence de 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, branches protégées) MUST
FA-6.7 Générateur web statique pour la clôture de période (Z3+) SHOULD
TA-2.1 Pre-commit : validation de 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 se trouve dans Harness-Anforderungen.md.

Sources

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

Rôle Emplacement Objet
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 attribution des sources, du miroir et du community hub reflète l’état actuel et peut changer. Veuillez vérifier la source canonique respective sur gitcover.org pour l’état actuel.