i18n(OSS/TOP): de (primary) + en (translated); tenant-agnostic kinds

- kinds.json / status_flags.json: general/tenant-agnostic labels (English
  normative slugs); label_de primary + label_en translated; removed label_vi
  (Vietnamese is not a supported Gitea UI language). Jurisdiction-specific notes
  (FZulG/BSFZ) moved to optional jurisdiction_de, not affecting the normative
  primary meaning.
- README.md: German (default, authoritative) per Gitea localized-README lookup;
  README.en.md: English (translated). Gitea serves README.<ui-lang>.md with
  README.md as fallback.
- dictionaries/README.md: bilingual de+en (de primary).
- versions bumped to 1.2.0.

Spec unchanged: GITCOVER_PROTOCOL/specs/v7guid/{33_kind,34_status}.md.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-07-19 11:33:19 +02:00
co-authored by Claude
parent bf1281ee02
commit 679ee72a38
5 changed files with 190 additions and 84 deletions
+60 -36
View File
@@ -1,55 +1,79 @@
# Normative V7GUID-Dictionaries — OSS-Tenant (zentrale Registry) # Normative V7GUID-Dictionaries — OSS-Tenant (zentrale Registry)
Dieser OSS-Tenant (`git.gitcover.org/OSS/TOP`) ist die **zentrale, normative Dieser OSS-Tenant (`git.gitcover.org/OSS/TOP`) ist die **zentrale, normative
Heimat** für GitCover-Dictionaries, die **repo-übergreifend** gelten und mit **GCC Heimat** für GitCover-Dictionaries, die **für alle Tenant-Repos** gelten, die nach
abgestimmt** werden — weil alle GitCover-Module dieselbe Bedeutung teilen. den GitCover / GCBoK-Konzepten arbeiten, abgestimmt mit **GCC** (alle GitCover-Module
teilen dieselbe Bedeutung).
## Erste Dictionaries: `kinds.json` + `status_flags.json` (Layout v2) > 🌐 **Sprachen:** de (primär/autoritierend) · en (übersetzt) — siehe Abschnitte
> unten / see sections below.
| Datei | V7GUID-Feld | Bits | Breite | Art | Höchstwert = `Custom` | Bedeutung | ---
## 🇩🇪 Deutsch
### Erste Dictionaries: `kinds.json` + `status_flags.json` (Layout v2)
| Datei | V7GUID-Feld | Bits | Breite | Art | Höchstwert | Bedeutung |
|---|---|---|---|---|---|---| |---|---|---|---|---|---|---|
| `kinds.json` | `kind` | 114121 | 8 | Enum (Einzelwert) | `255` | **Art der Tätigkeit/Maßnahme** (Vorhaben, Routine, Workflow, Auftrags-Sachbearbeitung …) | | `kinds.json` | `kind` | 114121 | 8 | Enum (Einzelwert) | `255` = Custom | **Art der Tätigkeit** (Vorhaben, Routine, Workflow, Fallbearbeitung …) — normativ, tenant-agnostisch |
| `status_flags.json` | `status` | 106113 | 8 | Bitmask (8 Flags) | — | **Lebenszyklus-Stufen** (kombinierbar: Geplant/Genehmigt/Entwickelt/Validiert/Freigegeben/Abgenommen/Archiviert) | | `status_flags.json` | `status` | 106113 | 8 | Bitmask (8 Flags) | — | **Lebenszyklus-Stufen** (kombinierbar: geplant/genehmigt/entwickelt/validiert/freigegeben/abgenommen/archiviert/reserviert) |
> Normative Spec-Dokumente: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md` und `…/34_status.md`; > Normative Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`, `…/34_status.md`;
> Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.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 `kinds.json` ist **allgemeingültig / tenant-agnostisch** formuliert (keine
Tätigkeit/Einheit: Vorhaben, Forschungs-Kapitel, Forschungsfrage, Arbeitspaket, BSFZ-/AFJD-spezifische Benennung der Hauptbedeutung). Juristische Spezifika
Routine, Workflow, Auftrags-Sachbearbeitung, Verwaltung, Begleitaufwand, (z. B. deutsches Steuerrecht FZulG/BSFZ) stehen im optionalen Feld
IP-Verwaltung, GF-Pflichten, Hauptberuf, Förderantrag, Routine-Software, `jurisdiction_de` und ändern die normative Hauptbedeutung nicht. Jeder Eintrag
Vorhabens-Fortsetzung, Auftragsforschung, Eigenleistung. Jeder Eintrag trägt: trägt `slug`, `label_de` (primär), `label_en` (übersetzt), Default-`sphere`,
`slug`, `label_de`, `label_en`, Default-`sphere`, Default-`foerderkategorie`, Default-`foerderkategorie` und §52-AO-`zweck`.
§52-AO-`zweck`.
`status_flags.json` definiert die 8 kombinierbaren Lebenszyklus-Flags (Bitmask) `status_flags.json` definiert die 8 kombinierbaren Lebenszyklus-Flags und
und liefert Beispielkombinationen (z. B. `0x03` = geplant+genehmigt). Beispielkombinationen (z. B. `0x03` = geplant+genehmigt). Filter per Bit-UND.
Die `kinds.json`-Defaults (sphere/foerderkategorie/zweck) sind **aus der Art ### Erweiterung statt Beschränkung
ableitbar** und pro Tagebucheintrag überschreibbar.
## Erweiterung statt Beschränkung Reicht der 8-Bit-Raum nicht aus, gilt der Sentinel `255` = `Custom`/`TenantDefined`
(Bitwert deterministisch; Interpretationsquelle wechselt zu tenant-kanonisch) —
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`. siehe `GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md`.
## Verhältnis zu den L1L6-Dictionaries ### Verhältnis zu den L1L6-Dictionaries
Die L1L6-Dictionaries (`entities.json``instances.json`) liegen derzeit im L1L6 liegen derzeit im CFP-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`);
CFP-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`). Ihre Konsolidierung in diesen Konsolidierung in diesen OSS-Tenant ist Folge-Slice.
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 ## 🇬🇧 English
`"exchange": ["gcep", "gcucb"]` referenzierbar (siehe `../others.json`).
## Quellen ### First dictionaries: `kinds.json` + `status_flags.json` (Layout v2)
- Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md` | File | V7GUID field | Bits | Width | Kind | Max | Meaning |
- 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`, | `kinds.json` | `kind` | 114121 | 8 | Enum (single value) | `255` = Custom | **Art (kind) of a unit of work** (undertaking, routine, workflow, case processing …) — normative, tenant-agnostic |
`REPOS/AFJD/AIChats/Claude/Modul_gGmbH_Accounting/GitCover-Accounting-Modul-Businessplan.md` (Sphären-Enum). | `status_flags.json` | `status` | 106113 | 8 | Bitmask (8 flags) | — | **Lifecycle stages** (combinable: planned/approved/developed/validated/released/accepted/archived/reserved) |
> Normative spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`, `…/34_status.md`;
> Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md`.
`kinds.json` is **general / tenant-agnostic** (no BSFZ-/AFJD-specific naming of
the primary meaning). Jurisdiction-specific notes (e.g. German tax law
FZulG/BSFZ) live in the optional `jurisdiction_de` field and do not change the
normative primary meaning. Each entry carries `slug`, `label_de` (primary),
`label_en` (translated), default `sphere`, default `foerderkategorie` and
§52-AO `zweck`.
`status_flags.json` defines the 8 combinable lifecycle flags and example
combinations (e.g. `0x03` = planned+approved). Filter via bitwise AND.
### Extension over limitation
If the 8-bit space is insufficient, the sentinel `255` = `Custom`/`TenantDefined`
applies (deterministic bit value; interpretation source switches to
tenant-canonical) — see `GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md`.
### Relation to the L1L6 dictionaries
L1L6 currently live in the CFP tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`);
consolidation into this OSS tenant is a follow-up slice.
+22 -21
View File
@@ -1,27 +1,28 @@
{ {
"$schema": "https://gitcover.org/schemas/v7guid/kinds-1.0.json", "$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).", "$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. Allgemeine, tenant-agnostische Tätigkeits-Art-Klassifikation fuer ALLE GitCover-Tenant-Repos nach GitCover/GCBoK-Konzepten. Mit GCC abzustimmen (alle GitCover-Module teilen dieselbe Bedeutung). Zweisprachig: label_de (primär/autoritierend) / label_en (übersetzt). Juristische Spezifika (z. B. deutsches Steuerrecht FZulG/BSFZ) im optionalen 'jurisdiction_de', ohne Änderung der normativen Hauptbedeutung.",
"version": "1.0.0", "version": "1.2.0",
"bitLayout": { "field": "kind", "bits": "114-121", "width": 8, "max": 255, "sentinel": 255, "spec": "GITCOVER_PROTOCOL/specs/v7guid/33_kind.md" }, "bitLayout": { "field": "kind", "bits": "114-121", "width": 8, "max": 255, "sentinel": 255, "spec": "GITCOVER_PROTOCOL/specs/v7guid/33_kind.md" },
"languages": { "primary": "de", "translated": ["en"] },
"values": { "values": {
"0": { "slug": "unspecified", "label_de": "unbestimmt", "label_en": "unspecified", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Standard / nicht zugewiesen" }, "0": { "slug": "unspecified", "label_de": "unbestimmt", "label_en": "unspecified", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Nicht zugewiesen / Standard." },
"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)" }, "1": { "slug": "undertaking", "label_de": "Vorhaben (F&E)", "label_en": "R&D undertaking", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Mehrjähriges F&E-Vorhaben, identifiziert über eine Vorhabens-ID.", "jurisdiction_de": "BSFZ-Forschungsvorhaben (Vorhabens-ID)." },
"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" }, "2": { "slug": "research_chapter", "label_de": "Forschungs-Kapitel", "label_en": "research chapter", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_nahe_dokumentation", "zweck": "wissenschaft", "note": "Kapitel des Body of Knowledge (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" }, "3": { "slug": "research_question", "label_de": "Forschungsfrage", "label_en": "research question", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Einzelforschungsfrage (z. B. F1F9, U1U6)." },
"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" }, "4": { "slug": "work_package", "label_de": "Arbeitspaket (AP)", "label_en": "work package", "sphere": "afjd_fe_sphaere", "foerderkategorie": "je_ap", "zweck": "wissenschaft", "note": "Arbeitspaket innerhalb eines Vorhabens; 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" }, "5": { "slug": "routine", "label_de": "Routine (wiederkehrend)", "label_en": "recurring routine", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Wiederkehrende Nicht-F&E-Tätigkeit." },
"6": { "slug": "workflow", "label_de": "Workflow (regelmaessig)", "label_en": "regular workflow", "sphere": "zweckbetrieb", "foerderkategorie": "nicht_foerderfaehig", "zweck": "bildung", "note": "GCC-Trägerschaft oder WiGB" }, "6": { "slug": "workflow", "label_de": "Workflow (regelmäßig)", "label_en": "regular workflow", "sphere": "zweckbetrieb", "foerderkategorie": "nicht_foerderfaehig", "zweck": "bildung", "note": "Regelmäßiger Prozess, gefahren von einem (gemeinnützigen) Träger oder als Geschäftsbetrieb." },
"7": { "slug": "auftrags_sachbearbeitung","label_de": "Auftrags-Sachbearbeitung", "label_en": "order/case processing", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Fall-/Auftragsabwicklung" }, "7": { "slug": "case_processing", "label_de": "Auftrags-/Fallbearbeitung", "label_en": "case/order processing", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Bearbeitung von Aufträgen/Fällen/Anfragen." },
"8": { "slug": "verwaltung", "label_de": "Verwaltung (allgemein)", "label_en": "administration", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Allg. Verwaltung, Buchhaltung" }, "8": { "slug": "administration", "label_de": "Verwaltung (allgemein)", "label_en": "administration", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Allgemeine Verwaltung, Buchhaltung." },
"9": { "slug": "begleitaufwand", "label_de": "Begleitaufwand", "label_en": "companion effort", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Foerder-/Traegerstrukturierung" }, "9": { "slug": "companion_effort", "label_de": "Begleitaufwand", "label_en": "companion effort", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Förder-/Träger-/Projektstrukturierungs-Begleitaufwand.", "jurisdiction_de": "Förder-/Trägerstrukturierung (nicht FZulG-förderfähig)." },
"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" }, "10": { "slug": "ip_administration", "label_de": "IP-Verwaltung (admin)", "label_en": "IP administration", "sphere": "vermoegensverwaltung", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Rein administrative Patent-/Markenverwaltung." },
"11": { "slug": "gf_pflichten", "label_de": "GF-Pflichten", "label_en": "MD duties", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Geschaeftsfuehrung verbundener Unternehmen" }, "11": { "slug": "governance_duties", "label_de": "GF-/Geschäftsführungspflichten", "label_en": "governance/MD duties", "sphere": "je_traeger", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Geschäftsführungs-/Verwaltungspflichten für verbundene Unternehmen." },
"12": { "slug": "hauptberuf", "label_de": "Hauptberuf", "label_en": "primary employment", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Nichtselbststaendig, Sperrzeit (R5)" }, "12": { "slug": "primary_employment", "label_de": "Hauptberuf", "label_en": "primary employment", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Hauptberuf (abhängig beschäftigt); ausgenommen als F&E-Fenster." },
"13": { "slug": "foerderantrag", "label_de": "Foerderantrag/Antragsadmin", "label_en": "grant application admin", "sphere": "afjd_fe_sphaere", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Antragserstellung, Antragsadministration" }, "13": { "slug": "grant_application", "label_de": "Antrags-/Förderantrag", "label_en": "grant application admin", "sphere": "afjd_fe_sphaere", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Erstellung/Administration von Förder- oder Bescheinigungsanträgen.", "jurisdiction_de": "BSFZ-/FZulG-Antragsstellung." },
"14": { "slug": "routine_software", "label_de": "Routine-Software", "label_en": "routine software", "sphere": null, "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "BSFZ-Ausschluss (Routine-Softwareentwicklung)" }, "14": { "slug": "routine_software", "label_de": "Routine-Softwareentwicklung", "label_en": "routine software dev", "sphere": null, "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Routine-Softwareentwicklung (ausgenommen von F&E-Förderung).", "jurisdiction_de": "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" }, "15": { "slug": "project_continuation","label_de": "Vorhabens-Fortsetzung", "label_en": "project continuation", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Folgejahr eines mehrjährigen Vorhabens (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" }, "16": { "slug": "contract_research", "label_de": "Auftragsforschung", "label_en": "contract research", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Beauftragte/Auftragsforschung.", "jurisdiction_de": "§3 Abs. 2 FZulG (Auftragsforschung)." },
"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" }, "17": { "slug": "own_work", "label_de": "Eigenleistung", "label_en": "own work", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Eigenleistung eines Einzelunternehmers.", "jurisdiction_de": "§3 Abs. 3 FZulG (Eigenleistung, Pauschalsatz pro Stunde)." },
"255": { "slug": "custom", "label_de": "Custom/TenantDefined", "label_en": "custom/tenant-defined", "sphere": "tenant", "foerderkategorie": "tenant", "zweck": "tenant", "note": "Sentinel: tenant-eigene Definition" } "255": { "slug": "custom", "label_de": "Custom/TenantDefined", "label_en": "custom/tenant-defined", "sphere": "tenant", "foerderkategorie": "tenant", "zweck": "tenant", "note": "Sentinel: tenant-eigene Definition (siehe GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md)." }
} }
} }
+16 -15
View File
@@ -1,23 +1,24 @@
{ {
"$schema": "https://gitcover.org/schemas/v7guid/status-flags-1.0.json", "$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.", "$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. Tenant-agnostisch fuer alle GitCover-Tenant-Repos. Mit GCC abzustimmen. Zweisprachig: label_de (primär/autoritierend) / label_en (übersetzt).",
"version": "1.0.0", "version": "1.2.0",
"bitLayout": { "field": "status", "bits": "106-113", "width": 8, "kind": "bitmask", "spec": "GITCOVER_PROTOCOL/specs/v7guid/34_status.md" }, "bitLayout": { "field": "status", "bits": "106-113", "width": 8, "kind": "bitmask", "spec": "GITCOVER_PROTOCOL/specs/v7guid/34_status.md" },
"languages": { "primary": "de", "translated": ["en"] },
"flags": { "flags": {
"0": { "slug": "geplant", "label_de": "geplant", "label_en": "planned", "mask": 1, "note": "initiiert / geplant" }, "0": { "slug": "planned", "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)" }, "1": { "slug": "approved", "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" }, "2": { "slug": "developed", "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" }, "3": { "slug": "validated", "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)" }, "4": { "slug": "released", "label_de": "freigegeben", "label_en": "released", "mask": 16, "note": "freigegeben (Vier-Augen / Go-Live)" },
"5": { "slug": "abgenommen", "label_de": "abgenommen", "label_en": "accepted", "mask": 32, "note": "abgenommen / akzeptiert (Stakeholder)" }, "5": { "slug": "accepted", "label_de": "abgenommen", "label_en": "accepted", "mask": 32, "note": "abgenommen durch Stakeholder" },
"6": { "slug": "archiviert", "label_de": "archiviert", "label_en": "archived", "mask": 64, "note": "archiviert (Aufbewahrung)" }, "6": { "slug": "archived", "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)" } "7": { "slug": "reserved", "label_de": "reserviert", "label_en": "reserved", "mask": 128, "note": "reserviert (tenant-definierbar)" }
}, },
"examples": { "examples": {
"0x01": ["geplant"], "0x01": ["planned"],
"0x03": ["geplant", "genehmigt"], "0x03": ["planned", "approved"],
"0x07": ["geplant", "genehmigt", "entwickelt"], "0x07": ["planned", "approved", "developed"],
"0x1F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben"], "0x1F": ["planned", "approved", "developed", "validated", "released"],
"0x7F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben", "abgenommen", "archiviert"] "0x7F": ["planned", "approved", "developed", "validated", "released", "accepted", "archived"]
} }
} }
+61
View File
@@ -0,0 +1,61 @@
# OSS/TOP — Central Normative V7GUID Registry (GitCover)
This repository (`git.gitcover.org/OSS/TOP`, local `/mnt/brx5/work/OSS/TOP/`) is
the **central, normative single-source-of-truth (SSoT)** home for V7GUID
dictionaries that apply **across all GitCover tenant repos** following the
GitCover / GCBoK concepts. It is coordinated with **GCC** (all GitCover modules
share the same meaning).
> 🌐 **Languages:** [Deutsch (default, authoritative)](README.md) ·
> [English (translated)](README.en.md).
> Gitea serves the variant matching your UI language (bottom-right
> “Select Language”); the default fallback is the German file (`README.md`).
## Contents
```
TOP/
└── .gitcover/
├── LEGAL_ENTITY.v7g.json # OSS tenant identity
├── others.json # tenant / endpoint / dictionary descriptor
└── dictionaries/
├── README.md # dictionary convention (de primary + en translated)
├── kinds.json # normative Kind enum (V7GUID bits 114121, Layout v2)
└── status_flags.json # lifecycle bitmask (bits 106113, Layout v2)
```
## `kind` + `status` (Layout v2)
`kinds.json` classifies the **art (kind) of a unit of work / activity** — a
general, tenant-agnostic classification (undertaking, research chapter, work
package, routine, workflow, case processing, administration, companion effort,
IP administration, governance duties, primary employment, grant application,
routine software, project continuation, contract research, own work). It is
**not** tied to any one tenants filings; jurisdiction-specific notes
(e.g. German tax law FZulG/BSFZ) are kept in the optional `jurisdiction_de`
field and do not change the normative primary meaning.
`status_flags.json` defines the 8 combinable **lifecycle flags** (planned /
approved / developed / validated / released / accepted / archived / reserved)
as an O(1) bitmask filter directly from the GUID (e.g. `status & 0x07 == 0x07`
≡ planned+approved+developed).
Both dictionaries are **bilingual** (`label_de` primary / `label_en`
translated).
- Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`, `…/34_status.md`
- Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md`
- Driver: `REPOS/AFJD/Tagebuch-Prompt.md`
## Git
- Object format: **SHA256** (`git init --object-format=sha256`).
- Remote: `git-gcf@git.gitcover.org:OSS/TOP.git`. Public mirror:
`codeberg.org/org/gitcover-commons`.
## Consolidation (follow-up slice)
The L1L6 dictionaries currently remain in the CFP tenant
(`REPOS/CFP/TOP/.gitcover/dictionaries/`). Their migration into this OSS tenant
is a follow-up slice; until then CFP is the source for L1L6 and OSS is the
source for the new `kind` and `status` fields.
+31 -12
View File
@@ -1,9 +1,15 @@
# OSS/TOP — Zentrale normative V7GUID-Registry (GitCover) # OSS/TOP — Zentrale normative V7GUID-Registry (GitCover)
Dieses Repository (`git.gitcover.org/OSS/TOP`, lokal `/mnt/brx5/work/OSS/TOP/`) Dieses Repository (`git.gitcover.org/OSS/TOP`, lokal `/mnt/brx5/work/OSS/TOP/`)
ist die **zentrale, normative Heimat (SSoT)** für V7GUID-Dictionaries, die ist die **zentrale, normative Single-Source-of-Truth (SSoT)**-Heimat für
**repo-übergreifend** für alle GitCover-Lösungen gelten und mit **GCC** V7GUID-Dictionaries, die **für alle GitCover-Tenant-Repos** gelten, die nach den
abgestimmt werden. Konzepten von GitCover / GCBoK arbeiten. Abgestimmt mit **GCC** (alle GitCover-Module
teilen dieselbe Bedeutung).
> 🌐 **Sprachen:** [Deutsch (Standard, autorisierend)](README.md) ·
> [English (übersetzt)](README.en.md).
> Gitea liefert die Variante passend zur UI-Sprache (unten rechts
> „Select Language"); Standard-Fallback ist diese deutsche Datei.
## Inhalt ## Inhalt
@@ -13,18 +19,30 @@ TOP/
├── LEGAL_ENTITY.v7g.json # OSS-Tenant-Identität ├── LEGAL_ENTITY.v7g.json # OSS-Tenant-Identität
├── others.json # Tenant-/Endpunkt-/Dictionary-Deskriptor ├── others.json # Tenant-/Endpunkt-/Dictionary-Deskriptor
└── dictionaries/ └── dictionaries/
├── README.md # Konvention ├── README.md # Dictionary-Konvention (de primär + en übersetzt)
├── kinds.json # Normativer Kind-Enum (V7GUID Bits 114121, Layout v2) ├── kinds.json # Normativer Kind-Enum (V7GUID Bits 114121, Layout v2)
└── status_flags.json # Lebenszyklus-Bitmask (Bits 106113, Layout v2) └── status_flags.json # Lebenszyklus-Bitmask (Bits 106113, Layout v2)
``` ```
## `kind` + `status` (Layout v2) ## `kind` + `status` (Layout v2)
`kinds.json` klassifiziert die **Art einer Tätigkeit/Maßnahme** — generalisiert `kinds.json` klassifiziert die **Art (kind) einer Tätigkeitseinheit** — eine
über das BSFZ-Vorhabens-Konzept hinaus (Vorhaben, Routine, Workflow, allgemeine, tenant-agnostische Klassifikation (Vorhaben, Forschungs-Kapitel,
Auftrags-Sachbearbeitung …). `status_flags.json` definiert die 8 kombinierbaren Arbeitspaket, Routine, Workflow, Fall-/Auftragsbearbeitung, Verwaltung,
**Lebenszyklus-Flags** (Geplant/Genehmigt/Entwickelt/Validiert/Freigegeben/…) Begleitaufwand, IP-Verwaltung, Geschäftsführungspflichten, Hauptberuf,
als O(1)-Bitmask-Filter aus der GUID. Förder-/Antragsantrag, Routine-Software, Vorhabens-Fortsetzung,
Auftragsforschung, Eigenleistung). Sie ist **nicht** an die Anträge eines
einzelnen Tenants gebunden; juristische Spezifika (z. B. deutsches Steuerrecht
FZulG/BSFZ) stehen im optionalen Feld `jurisdiction_de` und ändern die
normative Hauptbedeutung nicht.
`status_flags.json` definiert die 8 kombinierbaren **Lebenszyklus-Flags**
(geplant / genehmigt / entwickelt / validiert / freigegeben / abgenommen /
archiviert / reserviert) als O(1)-Bitmask-Filter direkt aus der GUID
(z. B. `status & 0x07 == 0x07` ≡ geplant+genehmigt+entwickelt).
Beide Dictionaries sind **zweisprachig** (`label_de` primär / `label_en`
übersetzt).
- Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`, `…/34_status.md` - Spec: `GITCOVER_PROTOCOL/specs/v7guid/33_kind.md`, `…/34_status.md`
- Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md` - Spec-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md`
@@ -33,11 +51,12 @@ als O(1)-Bitmask-Filter aus der GUID.
## Git ## Git
- Objekt-Format: **SHA256** (`git init --object-format=sha256`). - Objekt-Format: **SHA256** (`git init --object-format=sha256`).
- Remote: `git-gcf@git.gitcover.org:OSS/TOP.git` (Forge-Repo vom User anzulegen, - Remote: `git-gcf@git.gitcover.org:OSS/TOP.git`. Öffentlicher Spiegel:
dann Push). Öffentlicher Spiegel: `codeberg.org/org/gitcover-commons`. `codeberg.org/org/gitcover-commons`.
## Konsolidierung (Folge-Slice) ## Konsolidierung (Folge-Slice)
Die L1L6-Dictionaries verbleiben vorerst im CFP-Tenant Die L1L6-Dictionaries verbleiben vorerst im CFP-Tenant
(`REPOS/CFP/TOP/.gitcover/dictionaries/`). Ihre Migration in diesen OSS-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`). Ihre Migration in diesen OSS-Tenant
ist ein Folge-Slice. ist ein Folge-Slice; bis dahin ist CFP die Quelle für L1L6 und OSS die Quelle
für die neuen Felder `kind` und `status`.