DS05 — El contenedor de firma GCPN: documento fuente, Doc de FES, expediente

Desencadenante S2, cierre de la Parte I

E1 tiene ahora tres artefactos separados: el documento fuente (MD), el Doc de firma (JSON), los eventos (JSON). El examinador pregunta: ¿Cómo se relaciona todo esto? La respuesta es el contenedor de firma GCPN — una variante del contenedor GitCover-PrimaNota (GCPN) que agrupa todos los artefactos de un proceso de firma bajo un ID de contenedor.

GCPN — el principio del contenedor

GCPN (GitCover PrimaNota) conecta en el ámbito de los comprobantes todos los documentos de un proceso de negocio: comprobante original, sidecars, lógica de contabilización. El contenedor de firma traslada este principio al proceso de firma:

GCPN-Container (sign)
   ├── Quell-Dokument (MD) + Sidecar
   ├── FES-Signatur-Doc (JSON) + Sidecar        ← referenziert
   ├── FES-Output (PDF/HTML, physisch)          ← nur bei FES-Verfahren
   ├── Events (offered/accepted/signed) + Sidecar
   ├── Facsimile-Grafik-Verweis (SHA-256 + guid-Stempel)
   └── Verifikationsmanifest (SHA-256 aller Glieder)

El archivo del contenedor

El contenedor en sí es un documento Markdown con un artefacto JSON incrustado (como todos los docs de GitCover):

{
  "$schema": "https://gitcover.org/schemas/gcpn-signature-1.0.schema.json",
  "uuidV7": "<deterministische uuidV7>",
  "type": "gcpn-signature",
  "kind": "signature-process",
  "container_id": "GCPN-SIG-260913-001",
  "scope": {
    "tenant": "GCC",
    "entity": "ORG-1",
    "matter": "[GVB](../../glossar.html#gvb "Gesellschafterversammlungsbeschluss — Glossar") 260825 — GF-Vertrag: Selbständigkeit, Ehrenamt",
    "sphere": "wirtschaftlich"
  },
  "artifacts": [
    {
      "role": "source",
      "kind": "markdown",
      "location": "..\\260825-shareholder-meeting-resolution.md",
      "sha256": "<SHA-256>",
      "sidecar": "..\\260825_*.md.v7g.md"
    },
    {
      "role": "signature-doc",
      "kind": "json",
      "location": "260913_signature-doc.json",
      "sha256": "<SHA-256>",
      "sidecar": "260913_signature-doc.json.v7g.md"
    },
    {
      "role": "event",
      "kind": "json",
      "events": ["offered", "accepted", "signed"],
      "location": "260913_event-*.json",
      "sha256": "<SHA-256 je Event>",
      "sidecar": "260913_event-*.json.v7g.md"
    },
    {
      "role": "facsimile-ref",
      "kind": "ref",
      "file": "E1.Signature.transparent.FES.svg",
      "sha256": "8fcffe0b313f8a1e5b44c1c33cd8073e699b338b6450aa1ba9f33f5587501006",
      "guid_stamp": "01a09b48-4580-76f9-b789-024691b989c5",
      "note": "Verweis, nicht Einbettung — Grafik liegt im [PII](../../glossar.html#pii "Personally Identifiable Information — Glossar")-Verzeichnis"
    },
    {
      "role": "fes-doc",
      "kind": "pdf",
      "location": "260913_FES_Envelope-Report.pdf",
      "sha256": "<SHA-256>",
      "note": "Nur bei FES-Verfahren — physisch im Container-Paket (Teil II)"
    }
  ],
  "prev_container": null,
  "next_container": null,
  "verification": {
    "method": "sha256 + jq routine (DS04)",
    "verified_at": "2026-09-13T16:00:00Z",
    "verified_by": "E1"
  }
}

"Inicialmente sin predecesor/sucesor" — la etapa de diseño

Importante para la calidad de saga: el contenedor tiene los campos prev_container/next_container, pero están en null. Esto es deliberado — dos etapas de desarrollo:

Etapa prev/next Significado
Etapa 1 (hoy) null El contenedor agrupa un expediente por completo; no se necesita encadenamiento entre contenedores
Etapa 2 (prevista) SHA-256 del contenedor predecesor Cadena de contenedores para procedimientos de larga duración (p. ej., ciclo de vida de contratos con novaciones)

Los campos ya existen para que un encadenamiento posterior sea posible sin ruptura de esquema. Un contenedor permanece inmutable — un encadenamiento genera un contenedor nuevo con prev_container = sha256(alt).

El contenedor en tres roles

Artefacto Rol en el contenedor Valor probatorio
Documento fuente El contenido a firmar Integridad de la versión (SHA-256)
Doc de firma FES La declaración de voluntad (forma textual o FES) Atribución de origen (§ 371a ZPO)
Accept/Deny/Sign-Events El proceso determinista Equidad del procedimiento, cronología
Referencia de Facsimile El dibujo como referencia gráfica Identificación reconocible (§ 126b (3))
Salida FES (PDF) La versión física FES Solo en procedimientos FES — incluida físicamente en el paquete del contenedor

Salida HTML y el paquete del contenedor

Con salida HTML (sitio web GCBoK, Preview), el contenedor se entrega físicamente como paquete:

<container-id>.gcpn.zip
   ├── container.md              (dieser Container)
   ├── source.md + .v7g.md
   ├── signature-doc.json + .v7g.md
   ├── event-*.json + .v7g.md
   ├── facsimile.svg             (bei FES: physisch, sonst Verweis)
   └── fes-envelope-report.pdf   (nur bei FES)

El paquete es autoverificable: el examinador lo descomprime y ejecuta la rutina de DS04 — sin acceso al repositorio, sin Git.

Resumen


Creado: 260913 | Parte I, artículo DS05 | Serie: digital-signage