feat(OSS/TOP): zentrale normative V7GUID-Registry (kinds.json + status_flags.json)

Erstanlage des OSS-Tenant-TOP-Repos als zentrale Heimat (SSoT) fuer
repo-uebergreifende V7GUID-Dictionaries, mit GCC abzustimmen.

- dictionaries/kinds.json: normativer Kind-Enum (V7GUID Bits 114-121, Layout v2)
- dictionaries/status_flags.json: Lebenszyklus-Bitmask (Bits 106-113, Layout v2)
- LEGAL_ENTITY.v7g.json: OSS-Tenant-Identitaet
- others.json: Tenant-/Endpunkt-/Dictionary-Deskriptor
- README.md, dictionaries/README.md: Konvention

Spec: GITCOVER_PROTOCOL/specs/v7guid/33_kind.md, 34_status.md, ADR-002_layout_v2_kind.md
Objektformat: SHA256.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-19 11:18:33 +02:00
co-authored by Claude
commit bf1281ee02
6 changed files with 211 additions and 0 deletions
+24
View File
@@ -0,0 +1,24 @@
{
"$schema": "https://gitcover.org/schemas/legal-entity-1.0.json",
"version": "1.0.0",
"tenant": {
"shortCode": "OSS",
"uuidV7": "0197a0a0-0000-7000-8000-000000000000",
"registeredName": "GitCover OSS Commons (Open-Source-Inhaltspflege)",
"legalForm": "gUG",
"lifecycle": "REGISTERED",
"capitalState": "PAID",
"maturityLevel": 0,
"flags": 0,
"jurisdictionPrimary": "DE",
"jurisdictionsAdditional": ["EU"],
"regulatoryScopes": ["GOBD", "AO", "GDPR"],
"tax": { "taxId": null, "vatId": null },
"tradeRegister": { "registerNumber": null, "registerCourt": null, "notaryDeedNumber": null, "notaryDate": null, "registryStatus": "NOT_FILED" },
"address": { "street": null, "houseNumber": null, "postalCode": null, "city": null, "region": null, "country": "DE" },
"contact": { "email": null, "phone": null },
"legacyStatus": "PLANNED"
},
"purpose": "Zentrale normative V7GUID-Dictionary-Heimat (SSoT) fuer GitCover; OSS-Inhaltspflege; mit GCC abzustimmen (§52 AO: Wissenschaft/Bildung/Verbraucherschutz).",
"createdUtc": "2026-07-19T00:00:00.000Z"
}
+55
View File
@@ -0,0 +1,55 @@
# Normative V7GUID-Dictionaries — OSS-Tenant (zentrale Registry)
Dieser OSS-Tenant (`git.gitcover.org/OSS/TOP`) ist die **zentrale, normative
Heimat** für GitCover-Dictionaries, die **repo-übergreifend** gelten und mit **GCC
abgestimmt** werden — weil alle GitCover-Module dieselbe Bedeutung teilen.
## Erste Dictionaries: `kinds.json` + `status_flags.json` (Layout v2)
| Datei | V7GUID-Feld | Bits | Breite | Art | Höchstwert = `Custom` | Bedeutung |
|---|---|---|---|---|---|---|
| `kinds.json` | `kind` | 114121 | 8 | Enum (Einzelwert) | `255` | **Art der Tätigkeit/Maßnahme** (Vorhaben, Routine, Workflow, Auftrags-Sachbearbeitung …) |
| `status_flags.json` | `status` | 106113 | 8 | Bitmask (8 Flags) | — | **Lebenszyklus-Stufen** (kombinierbar: Geplant/Genehmigt/Entwickelt/Validiert/Freigegeben/Abgenommen/Archiviert) |
> Normative Spec-Dokumente: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md` und `…/34_status.md`;
> Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md`.
`kinds.json` generalisiert das enge BSFZ-Vorhabens-Konzept auf die *Art* einer
Tätigkeit/Einheit: Vorhaben, Forschungs-Kapitel, Forschungsfrage, Arbeitspaket,
Routine, Workflow, Auftrags-Sachbearbeitung, Verwaltung, Begleitaufwand,
IP-Verwaltung, GF-Pflichten, Hauptberuf, Förderantrag, Routine-Software,
Vorhabens-Fortsetzung, Auftragsforschung, Eigenleistung. Jeder Eintrag trägt:
`slug`, `label_de`, `label_en`, Default-`sphere`, Default-`foerderkategorie`,
§52-AO-`zweck`.
`status_flags.json` definiert die 8 kombinierbaren Lebenszyklus-Flags (Bitmask)
und liefert Beispielkombinationen (z. B. `0x03` = geplant+genehmigt).
Die `kinds.json`-Defaults (sphere/foerderkategorie/zweck) sind **aus der Art
ableitbar** und pro Tagebucheintrag überschreibbar.
## Erweiterung statt Beschränkung
Reicht der 8-Bit-Raum (256 Werte) nicht aus, gilt der reservierte Sentinel
`255` = `Custom`/`TenantDefined` (Bitwert bleibt deterministisch;
Interpretationsquelle wechselt von global-kanonisch zu tenant-kanonisch) —
siehe `GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md`.
## Verhältnis zu den L1L6-Dictionaries
Die L1L6-Dictionaries (`entities.json``instances.json`) liegen derzeit im
CFP-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`). Ihre Konsolidierung in diesen
OSS-Tenant ist ein **Folge-Slice**; bis dahin gilt CFP als Quelle für L1L6 und
OSS als Quelle für das neue `kind`-Feld.
## Austausch
Dictionaries sind über `others.json` als `"normative": true` mit
`"exchange": ["gcep", "gcucb"]` referenzierbar (siehe `../others.json`).
## Quellen
- Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`
- Bedarf: `REPOS/AFJD/Tagebuch-Prompt.md`, `REPOS/AFJD/FY2025/BSFZ/Antrag/BSFZ_STAMMDATEN.md`,
`REPOS/AFJD/FY2026/Chats/GCUCB/05-operativer-forschungs-und-nachweisplan-cfp-first.md`,
`REPOS/AFJD/AIChats/Claude/Modul_gGmbH_Accounting/GitCover-Accounting-Modul-Businessplan.md` (Sphären-Enum).
+27
View File
@@ -0,0 +1,27 @@
{
"$schema": "https://gitcover.org/schemas/v7guid/kinds-1.0.json",
"$comment": "Normativer zentraler Kind-Enum (V7GUID Bits 114-121, Layout v2). Siehe GITCOVER_PROTOCOL/specs/v7guid/33_kind.md und ADR-002_layout_v2_kind.md. Mit GCC abzustimmen (alle GitCover-Module teilen dieselbe Bedeutung).",
"version": "1.0.0",
"bitLayout": { "field": "kind", "bits": "114-121", "width": 8, "max": 255, "sentinel": 255, "spec": "GITCOVER_PROTOCOL/specs/v7guid/33_kind.md" },
"values": {
"0": { "slug": "unspecified", "label_de": "unbestimmt", "label_en": "unspecified", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Standard / nicht zugewiesen" },
"1": { "slug": "vorhaben", "label_de": "Vorhaben (F&E)", "label_en": "R&D undertaking", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Mehrjährig, mit Vorhabens-ID (BSFZ)" },
"2": { "slug": "forschungs_kapitel", "label_de": "Forschungs-Kapitel", "label_en": "research chapter", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_nahe_dokumentation", "zweck": "wissenschaft", "note": "GCBoK Tier-1" },
"3": { "slug": "forschungs_frage", "label_de": "Forschungsfrage", "label_en": "research question", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "F1-F9, U1-U6" },
"4": { "slug": "arbeitspaket", "label_de": "Arbeitspaket (AP)", "label_en": "work package", "sphere": "afjd_fe_sphaere", "foerderkategorie": "je_ap", "zweck": "wissenschaft", "note": "AP-G0/AP-G5 = Begleitaufwand" },
"5": { "slug": "routine", "label_de": "Routine (wiederkehrend)", "label_en": "recurring routine", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Nicht-F&E, wiederkehrend" },
"6": { "slug": "workflow", "label_de": "Workflow (regelmaessig)", "label_en": "regular workflow", "sphere": "zweckbetrieb", "foerderkategorie": "nicht_foerderfaehig", "zweck": "bildung", "note": "GCC-Trägerschaft oder WiGB" },
"7": { "slug": "auftrags_sachbearbeitung","label_de": "Auftrags-Sachbearbeitung", "label_en": "order/case processing", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Fall-/Auftragsabwicklung" },
"8": { "slug": "verwaltung", "label_de": "Verwaltung (allgemein)", "label_en": "administration", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Allg. Verwaltung, Buchhaltung" },
"9": { "slug": "begleitaufwand", "label_de": "Begleitaufwand", "label_en": "companion effort", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Foerder-/Traegerstrukturierung" },
"10": { "slug": "ip_verwaltung", "label_de": "IP-Verwaltung (admin)", "label_en": "IP administration", "sphere": "vermoegensverwaltung", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Patent-/Markenverwaltung rein administrativ" },
"11": { "slug": "gf_pflichten", "label_de": "GF-Pflichten", "label_en": "MD duties", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Geschaeftsfuehrung verbundener Unternehmen" },
"12": { "slug": "hauptberuf", "label_de": "Hauptberuf", "label_en": "primary employment", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Nichtselbststaendig, Sperrzeit (R5)" },
"13": { "slug": "foerderantrag", "label_de": "Foerderantrag/Antragsadmin", "label_en": "grant application admin", "sphere": "afjd_fe_sphaere", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Antragserstellung, Antragsadministration" },
"14": { "slug": "routine_software", "label_de": "Routine-Software", "label_en": "routine software", "sphere": null, "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "BSFZ-Ausschluss (Routine-Softwareentwicklung)" },
"15": { "slug": "vorhaben_fortsetzung", "label_de": "Vorhabens-Fortsetzung", "label_en": "project continuation", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Folgejahr, gleiche Vorhabens-ID" },
"16": { "slug": "auftragsforschung", "label_de": "Auftragsforschung", "label_en": "contract research", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "§3 Abs. 2 FZulG" },
"17": { "slug": "eigenleistung", "label_de": "Eigenleistung (§3 Abs.3 FZulG)", "label_en": "own work", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Einzelunternehmer, pauschal 100 EUR/h ab 2026" },
"255": { "slug": "custom", "label_de": "Custom/TenantDefined", "label_en": "custom/tenant-defined", "sphere": "tenant", "foerderkategorie": "tenant", "zweck": "tenant", "note": "Sentinel: tenant-eigene Definition" }
}
}
+23
View File
@@ -0,0 +1,23 @@
{
"$schema": "https://gitcover.org/schemas/v7guid/status-flags-1.0.json",
"$comment": "Normative Lebenszyklus-Bitmask (V7GUID Bits 106-113, Layout v2). Siehe GITCOVER_PROTOCOL/specs/v7guid/34_status.md und ADR-002_layout_v2_kind.md. 8 Bit = 8 kombinierbare Flags. Mit GCC abzustimmen.",
"version": "1.0.0",
"bitLayout": { "field": "status", "bits": "106-113", "width": 8, "kind": "bitmask", "spec": "GITCOVER_PROTOCOL/specs/v7guid/34_status.md" },
"flags": {
"0": { "slug": "geplant", "label_de": "geplant", "label_en": "planned", "mask": 1, "note": "initiiert / geplant" },
"1": { "slug": "genehmigt", "label_de": "genehmigt", "label_en": "approved", "mask": 2, "note": "genehmigt (Entscheidung / Vorhabenfreigabe)" },
"2": { "slug": "entwickelt", "label_de": "entwickelt", "label_en": "developed", "mask": 4, "note": "umgesetzt / entwickelt" },
"3": { "slug": "validiert", "label_de": "validiert", "label_en": "validated", "mask": 8, "note": "getestet / validiert" },
"4": { "slug": "freigegeben", "label_de": "freigegeben", "label_en": "released", "mask": 16, "note": "fachlich freigegeben (Vier-Augen / Go-Live)" },
"5": { "slug": "abgenommen", "label_de": "abgenommen", "label_en": "accepted", "mask": 32, "note": "abgenommen / akzeptiert (Stakeholder)" },
"6": { "slug": "archiviert", "label_de": "archiviert", "label_en": "archived", "mask": 64, "note": "archiviert (Aufbewahrung)" },
"7": { "slug": "reserved", "label_de": "reserviert", "label_en": "reserved", "mask": 128, "note": "reserviert (tenant-definierbar)" }
},
"examples": {
"0x01": ["geplant"],
"0x03": ["geplant", "genehmigt"],
"0x07": ["geplant", "genehmigt", "entwickelt"],
"0x1F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben"],
"0x7F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben", "abgenommen", "archiviert"]
}
}
+39
View File
@@ -0,0 +1,39 @@
{
"v7g_version": "1.0",
"tenant": {
"id": "oss-top",
"name": "GitCover OSS Commons — TOP (zentrale Dictionary-Heimat)",
"legal_form": "gUG",
"repository_id": 1,
"role": "normative_registry",
"group": "gitcover",
"effective": "2026-07-19"
},
"infra": {
"storage": "git",
"object_format": "sha256",
"signing": {
"gpg": true,
"required_for": ["dictionaries", "legal_entity"]
},
"llm": {
"scope": "lan-only",
"server": "gtr9",
"note": "Kein Dictionary-/Belegdaten-Traffic ins Internet (DSGVO)."
}
},
"endpoints": {
"gitea": "git.gitcover.org",
"gitea_org": "OSS",
"gitea_repo": "TOP",
"remote": "git-gcf@git.gitcover.org:OSS/TOP.git",
"public_mirror": "codeberg.org/org/gitcover-commons"
},
"dictionaries": {
"source": "./.gitcover/dictionaries/",
"normative": true,
"exchange": ["gcep", "gcucb"],
"hosted": ["kinds.json", "status_flags.json"],
"note": "L1-L6-Dictionaries verbleiben vorerst im CFP-Tenant (Konsolidierung in OSS = Folge-Slice)."
}
}