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

Problème

La GoBD, Rz. 64–91, exige une documentation des procédures - mais dans le secteur des PME, elle est l’exception la plus courante :

Message clé

Une documentation des procédures conforme à la 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 du Markdown et du JSON dans le dépôt
  2. Chaque modification est traçable - git log indique qui, quand, quoi et pourquoi (auteur du commit, horodatage uuidV7, diff, message de commit)
  3. Approbation par des tags - un tag Git marque l’état approuvé de la documentation des procédures (par ex. vd-v1.0-2026)
  4. Les changements de système sont consignés - lors d’une migration, un nouveau commit est créé avec une justification, et 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 constituée a posteriori - elle naît de l’utilisation de Git. Quiconque travaille avec des dépôts Git documente automatiquement sa procédure grâce aux commits, aux diffs et aux tags. La documentation formelle des procédures y ajoute une description lisible par un 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["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 tenue de la comptabilité 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 affiche les paramètres
Organisation (Rz. 77–80) Responsabilités, rôles, droits d’accès champ role par artefact ; git log --author affiche les responsabilités
Contrôles (Rz. 81–85) Contrôles internes, contrôles de plausibilité hooks de pré-commit (schéma, sphères, obsolescence) ; hooks de 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-1.0.schema.json
│   │   └── timesheet-1.0.schema.json
│   ├── dictionaries/               # Klassifizierungen (Rz. 86–91)
│   │   ├── spheres.json
│   │   ├── roles.json
│   │   └── beleg-types.json
│   └── LEGAL_ENTITY.v7g.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

La documentation des procédures comme artefact JSON

La documentation des procédures elle-même est un artefact versionné avec V7GUID (classe) et uuidV7 (ID d’objet 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 en base de données. Aucun champ datetime/date distinct - l’heure est intégrée dans l’uuidV7.

Versionnement et approbation

%%{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 (actualité)
Revue Commits supplémentaires avec modifications Rz. 83 (traçabilité)
Approbation git tag vd-v1.0-2026 Rz. 83 (état contraignant)
En 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 d’approbation : un tag Git est immuable

  • il marque un état exact du commit qui ne peut pas être modifié ultérieurement. Cela correspond à GoBD Rz. 146 (immuabilité). L’auditeur peut, avec git show vd-v1.0-2026, reconstituer 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 transitoire - quelles données ont été migrées et de quelle manière, quels contrôles ont été réalisés
  4. Marquer l’ancienne version comme obsolète - obsolescence: superseded_by dans l’ancien artefact de documentation des procédures

Exemple pratique : le dirigeant (E1) migre d’un logiciel de paie dans le cloud vers GitCover. Il crée un git bundle contenant les 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 crée le tag vd-v2.0-2027 pour la nouvelle version. L’auditeur 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["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/) complète cela par une description lisible par un humain - mais la source faisant autorité est le dépôt lui-même.

Levier de réduction des risques

Aujourd’hui (bon marché) Demain (sûr en matière de révisions) Risque réduit
Documentation des procédures comme artefact Git GoBD Rz. 64–91 respecté dès la conception Estimation § 162 AO (absence de documentation des procédures)
git log comme justificatif de la procédure Traçabilité dans un délai raisonnable Contestation de la documentation des procédures
Tags comme marqueurs d’approbation État immuable au moment de l’audit Contestation de l’état
Changement de système par commit + bundle Conforme à GoBD Rz. 146–150 Violation de la GoBD par un changement non documenté
Marquage d’obsolescence Traçabilité des anciennes versions 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 Harness (aperçu)

Déductible d’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 les comptes de paie) SHOULD
FA-6.6 Immuabilité après approbation (tags, branches protégées) MUST
FA-6.7 Générateur de sites web statiques pour la clôture périodique (Z3+) SHOULD
TA-2.1 Pré-commit : validation selon le schéma JSON MUST
TA-2.4 Pré-commit : contrôle 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 Finalité
Principal / SSoT git.gitcover.org/GCC Dépôt canonique (signé GPG, versionné)
Miroir OSS public / CDN codeberg.org/gitcover-commons Miroir en lecture seule ; découverte FLOSS
Hub communautaire github.com/gitcover-commons Issues & Discussions ; référence au code source sur Codeberg

Remarque : cette attribution des sources, du miroir et du hub communautaire reflète l’état actuel et peut changer. Veuillez vérifier la source canonique correspondante sur gitcover.org pour connaître l’état actuel.