ED08 - Délais de conservation & immuabilité : Git-Hooks, Evidence-Packages

Problème

La GoBD et l'AO exigent une conservation à long terme - mais la pratique échoue dans sa mise en œuvre :

Message clé

Une conservation conforme à la GoBD avec Git signifie :

  1. Les Git-Bundles sont self-contained - pas de compte cloud, pas de licence logicielle, pas de prestataire - git clone suffit
  2. Les délais de conservation sont documentés dans le dépôt - chaque artefact porte son délai dans le Sidecar (obsolescence + date d'échéance)
  3. Immuabilité par Tags et Protected Branches - les états validés sont cryptographiquement immuables
  4. Evidence-Packages pour les clôtures de période - git bundle + Static-Web (Z3+) pour les contrôleurs (voir ED05)
  5. Contrôle des délais comme artefact Git - checks/FRISTEN_CHECK.md avertit des échéances imminentes

Compliance by Design : la conservation n'est pas un ajout ultérieur - elle naît du choix du support. Les Git-Bundles sont self-contained et survivent à tout blocage cloud, à tout changement de version logicielle, à toute résiliation de prestataire.

Délais de conservation selon l'AO § 147

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD AO["AO § 147
Aufbewahrungsfristen"] AO --> J10["10 Jahre
§ 147 Abs. 1 Nr. 1"] AO --> J8["8 Jahre
§ 147 Abs. 1 Nr. 4"] AO --> J6["6 Jahre
§ 147 Abs. 1 Nr. 2/3/5"] J10 --> D10["Bücher, Aufzeichnungen
Inventare, Jahresabschlüsse
Eröffnungsbilanz
Arbeitsanweisungen"] J8 --> D8["Buchungsbelege
E-Rechnungen (XML)
Lohnbelege"] J6 --> D6["Handels- / Geschäftsbriefe
E-Mails (EML)
Sonstige Unterlagen"] style AO fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style J10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style J8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style J6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style D10 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style D8 fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style D6 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Délai Type de documents Base juridique Exemples
10 ans Livres, enregistrements, inventaires, comptes annuels, bilan d'ouverture, instructions de travail § 147 Abs. 1 Nr. 1 AO Grundbuch (JSON), documentation des procédures, plan comptable
8 ans Pièces comptables § 147 Abs. 1 Nr. 4 AO Factures électroniques (XML), bulletins de paie, décisions SV
6 ans Correspondances commerciales / d'affaires, autres documents § 147 Abs. 1 Nr. 2/3/5 AO E-mails (EML), correspondance, notes

Important - Début du délai : le délai commence à la fin de l'année civile au cours de laquelle la dernière inscription a été effectuée, le compte annuel établi, la pièce reçue ou l'enregistrement réalisé (§ 147 Abs. 4 AO). Une écriture du 15.08.2026 fait démarrer le délai le 31.12.2026 - 10 ans se terminent le 31.12.2036.

Immuabilité grâce à Git

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD B["Buchung
Commit"] B --> H["SHA-256-Hash
des Commits"] H --> T["Tag
(Freigabe-Marker)"] T --> P["Protected Branch
(kein Force-Push)"] P --> U["Unveränderbarkeit
GoBD Rz. 146"] K["Korrektur nötig"] K --> NC["Neuer Commit
+ Obsoleszenz-Markierung"] NC --> O["Original bleibt
nachvollziehbar"] style B fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style H fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style T fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style P fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style U fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style K fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style NC fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style O fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33
Mécanisme Fonctionnalité Git Référence GoBD
Commit-Hash Hash SHA-256 par commit - chaque modification génère un nouveau hash Rz. 146 (Immuabilité)
Tags Marqueurs immuables pour les états validés Rz. 146 (Validation)
Protected Branches main protégée, pas de force-push, pas de rebase Rz. 146 (pas de réécriture)
Obsolescence Corrections sous forme de nouveaux commits avec superseded_by Rz. 146 (Traçabilité)
Signature GPG Commits signés - authenticité prouvable Rz. 146 (Paternité)

Important - Historique linéaire : seul un historique linéaire sans réécriture est conforme à la GoBD. git rebase, git commit --amend et git push --force sur main sont interdits. Le Pre-Commit-Hook vérifie qu'aucun force-push n'est effectué et que les corrections sont effectuées sous forme de nouveaux commits avec marquage d'obsolescence.

Evidence-Packages pour la conservation

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart TD FY["Geschäftsjahr
z. B. FY2026"] FY --> EP["Tenant Evidence Package
(Periodenabschluss)"] EP --> GB["git bundle
self-contained Archiv"] EP --> SW["Static-Web
(Z3+ Browser)"] EP --> MF["Manifest
+ SHA-256-Checksummen"] GB --> USB["USB-Stick
oder Off-Site-Backup"] SW --> USB MF --> USB USB --> PR["Prüfer
git clone oder index.html
offline, ohne IAM"] style FY fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style EP fill:#10A987,stroke:#0A7F5C,color:#FBFAF7 style GB fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style SW fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style MF fill:#DBEAFE,stroke:#1D4ED8,color:#0F1B33 style USB fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style PR fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33

Un Tenant Evidence Package (voir ED05 Z3+) pour un exercice comptable contient :

Composant Contenu Référence GoBD
git bundle Dépôt complet (historique, commits, tags) § 147 Abs. 6 AO (support de données Z3)
Static-Web Site web navigable dans le navigateur (HTML/PDF/JSON) Z3+ (accès contrôleur sans IAM)
Manifest Sommes de contrôle SHA-256 par fichier, index V7GUID Rz. 146 (Intégrité)
Documentation des procédures Rendue en HTML Rz. 64–91 (Documentation des procédures)
Documents DMS Toutes les pièces (PDF, XML, EML) § 147 Abs. 1 (Conservation)
Contrats Documents couvrant plusieurs périodes § 147 Abs. 1 Nr. 2/3 (Correspondances commerciales)

La conservation la plus sûre : une clé USB avec git bundle + Static-Web + Manifest est self-contained, hors ligne, sans IAM, sans compte cloud, sans licence logicielle. Elle survit à toute résiliation de prestataire, à tout changement de version logicielle, à tout blocage cloud. C'est la forme la plus sûre de conservation conforme à la GoBD - parce qu'il n'existe aucune dépendance.

Bien entendu, il faut également tenir compte de la sécurité physique de la clé USB (coffre-fort, protection incendie, sauvegarde hors site).

Gestion des délais dans le dépôt

checks/FRISTEN_CHECK.md

# Fristen-Check

## Vorlauf (bis 010926) - PRIO 1

- [ ] 200826: ELSTER-Organisationszertifikat anfordern
- [ ] 250826: Gefahrtarifstelle festlegen
- [ ] 300826: D&O-Versicherung GF-Haftung

## Aufbewahrungsfristen (laufend)

| Frist | Unterlagen-Typ | Endet | Status |
|---:|:---|---:|:---|
| 10 Jahre | Grundbuch FY2026 | 31.12.2036 | aktiv |
| 8 Jahre | E-Rechnungen FY2026 | 31.12.2034 | aktiv |
| 6 Jahre | E-Mails FY2026 | 31.12.2032 | aktiv |

Alerte automatique en cas d'échéances imminentes

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#FBFAF7','primaryTextColor':'#0F1B33','primaryBorderColor':'#6B7280','lineColor':'#6B7280'}}}%% flowchart LR FC["Fristen-Check
(Git-Artefakt)"] FC --> P14["über 14 Tage
grün"] FC --> P7["7–14 Tage
gelb"] FC --> P0["unter 7 Tage
orange/rot"] P0 --> W["Warnung
an Unternehmer"] style FC fill:#0F1B33,stroke:#0F1B33,color:#FBFAF7 style P14 fill:#D1FAE5,stroke:#0A7F5C,color:#0F1B33 style P7 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style P0 fill:#FDBA74,stroke:#C2410C,color:#0F1B33 style W fill:#FDBA74,stroke:#C2410C,color:#0F1B33
Type de délai Alerte Action
Fin du délai de conservation 30 jours avant Documenter la destruction après expiration
Délai des autorités (ELSTER, SV) 14 jours avant Préparer la transmission
Délai de prescription (§ 169 AO) 90 jours avant Ne pas détruire les documents

Levier de risque

Aujourd'hui (peu coûteux) Demain (à l'épreuve des contrôles) Risque atténué
git bundle comme archive self-contained Conservation de 10 ans sans compte cloud Violation de la GoBD par résiliation de compte
Tags + Protected Branches Immuabilité après validation Violation de la GoBD par modification ultérieure
Evidence-Package (Z3+) Accès contrôleur sans IAM, hors ligne Violation de la GoBD par données inaccessibles
Contrôle des délais comme artefact Git Non-respect des délais évité Majorations de retard § 152 AO
Marquage d'obsolescence Corrections traçables Modifications dissimulées
Commits signés GPG Authenticité prouvable Contestation de la paternité
Static-Web (Z3+) Navigabilité dans le navigateur pour les contrôleurs Violation de la GoBD par des données peu adaptées aux contrôleurs

Exigence Harness (aperçu)

Déductible de ED08 :

ID Exigence Priorité
FA-4.1 Fichier de contrôle des délais (checks/FRISTEN_CHECK.md) MUST
FA-4.2 Entrées de délais avec date, type, Tenant, référence de pièce MUST
FA-4.3 Alerte automatique pour délais < 14 jours SHOULD
FA-6.5 Conservation de 10 ans via Evidence-Packages (Git-Bundles) MUST
FA-6.6 Immuabilité après validation (Tags, Protected Branches) MUST
FA-6.7 Générateur Static-Web pour la clôture de période (Z3+) SHOULD
TA-2.4 Pre-Commit : vérification du statut d'obsolescence 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 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 connaître l'état actuel.