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:
@@ -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` | 114–121 | 8 | Enum (Einzelwert) | `255` | **Art der Tätigkeit/Maßnahme** (Vorhaben, Routine, Workflow, Auftrags-Sachbearbeitung …) |
|
||||
| `status_flags.json` | `status` | 106–113 | 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 L1–L6-Dictionaries
|
||||
|
||||
Die L1–L6-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 L1–L6 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).
|
||||
@@ -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" }
|
||||
}
|
||||
}
|
||||
@@ -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"]
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user