From 679ee72a383b6f2390666e64066e54c2f972a579270c5462923076cfad15bb1c Mon Sep 17 00:00:00 2001 From: gc-dev-afjd Date: Sun, 19 Jul 2026 11:33:19 +0200 Subject: [PATCH] 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..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 --- .gitcover/dictionaries/README.md | 96 +++++++++++++++--------- .gitcover/dictionaries/kinds.json | 43 +++++------ .gitcover/dictionaries/status_flags.json | 31 ++++---- README.en.md | 61 +++++++++++++++ README.md | 43 ++++++++--- 5 files changed, 190 insertions(+), 84 deletions(-) create mode 100644 README.en.md diff --git a/.gitcover/dictionaries/README.md b/.gitcover/dictionaries/README.md index df45ca0..7b4d330 100644 --- a/.gitcover/dictionaries/README.md +++ b/.gitcover/dictionaries/README.md @@ -1,55 +1,79 @@ # 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. +Heimat** für GitCover-Dictionaries, die **für alle Tenant-Repos** gelten, die nach +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` | 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) | +| `kinds.json` | `kind` | 114–121 | 8 | Enum (Einzelwert) | `255` = Custom | **Art der Tätigkeit** (Vorhaben, Routine, Workflow, Fallbearbeitung …) — normativ, tenant-agnostisch | +| `status_flags.json` | `status` | 106–113 | 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`. -`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`. +`kinds.json` ist **allgemeingültig / tenant-agnostisch** formuliert (keine +BSFZ-/AFJD-spezifische Benennung der Hauptbedeutung). Juristische Spezifika +(z. B. deutsches Steuerrecht FZulG/BSFZ) stehen im optionalen Feld +`jurisdiction_de` und ändern die normative Hauptbedeutung nicht. Jeder Eintrag +trägt `slug`, `label_de` (primär), `label_en` (übersetzt), Default-`sphere`, +Default-`foerderkategorie` und §52-AO-`zweck`. -`status_flags.json` definiert die 8 kombinierbaren Lebenszyklus-Flags (Bitmask) -und liefert Beispielkombinationen (z. B. `0x03` = geplant+genehmigt). +`status_flags.json` definiert die 8 kombinierbaren Lebenszyklus-Flags und +Beispielkombinationen (z. B. `0x03` = geplant+genehmigt). Filter per Bit-UND. -Die `kinds.json`-Defaults (sphere/foerderkategorie/zweck) sind **aus der Art -ableitbar** und pro Tagebucheintrag überschreibbar. +### Erweiterung statt Beschränkung -## 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) — +Reicht der 8-Bit-Raum nicht aus, gilt der Sentinel `255` = `Custom`/`TenantDefined` +(Bitwert deterministisch; Interpretationsquelle wechselt zu tenant-kanonisch) — siehe `GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md`. -## Verhältnis zu den L1–L6-Dictionaries +### 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. +L1–L6 liegen derzeit im CFP-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`); +Konsolidierung in diesen OSS-Tenant ist Folge-Slice. -## Austausch +--- -Dictionaries sind über `others.json` als `"normative": true` mit -`"exchange": ["gcep", "gcucb"]` referenzierbar (siehe `../others.json`). +## 🇬🇧 English -## Quellen +### First dictionaries: `kinds.json` + `status_flags.json` (Layout v2) -- 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). \ No newline at end of file +| File | V7GUID field | Bits | Width | Kind | Max | Meaning | +|---|---|---|---|---|---|---| +| `kinds.json` | `kind` | 114–121 | 8 | Enum (single value) | `255` = Custom | **Art (kind) of a unit of work** (undertaking, routine, workflow, case processing …) — normative, tenant-agnostic | +| `status_flags.json` | `status` | 106–113 | 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 L1–L6 dictionaries + +L1–L6 currently live in the CFP tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`); +consolidation into this OSS tenant is a follow-up slice. \ No newline at end of file diff --git a/.gitcover/dictionaries/kinds.json b/.gitcover/dictionaries/kinds.json index ed478b0..01fee6b 100644 --- a/.gitcover/dictionaries/kinds.json +++ b/.gitcover/dictionaries/kinds.json @@ -1,27 +1,28 @@ { "$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", + "$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.2.0", "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": { - "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": { "slug": "unspecified", "label_de": "unbestimmt", "label_en": "unspecified", "sphere": null, "foerderkategorie": null, "zweck": null, "note": "Nicht zugewiesen / Standard." }, + "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": "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": "research_question", "label_de": "Forschungsfrage", "label_en": "research question", "sphere": "afjd_fe_sphaere", "foerderkategorie": "fue_kern", "zweck": "wissenschaft", "note": "Einzelforschungsfrage (z. B. F1–F9, U1–U6)." }, + "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": "Wiederkehrende Nicht-F&E-Tätigkeit." }, + "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": "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": "administration", "label_de": "Verwaltung (allgemein)", "label_en": "administration", "sphere": "wigb", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Allgemeine Verwaltung, Buchhaltung." }, + "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_administration", "label_de": "IP-Verwaltung (admin)", "label_en": "IP administration", "sphere": "vermoegensverwaltung", "foerderkategorie": "nicht_foerderfaehig", "zweck": null, "note": "Rein administrative Patent-/Markenverwaltung." }, + "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": "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": "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-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": "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": "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": "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 (siehe GITCOVER_PROTOCOL/specs/v7guid/40_erweiterung_custom.md)." } } } \ No newline at end of file diff --git a/.gitcover/dictionaries/status_flags.json b/.gitcover/dictionaries/status_flags.json index a66800b..ad5eab1 100644 --- a/.gitcover/dictionaries/status_flags.json +++ b/.gitcover/dictionaries/status_flags.json @@ -1,23 +1,24 @@ { "$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", + "$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.2.0", "bitLayout": { "field": "status", "bits": "106-113", "width": 8, "kind": "bitmask", "spec": "GITCOVER_PROTOCOL/specs/v7guid/34_status.md" }, + "languages": { "primary": "de", "translated": ["en"] }, "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)" } + "0": { "slug": "planned", "label_de": "geplant", "label_en": "planned", "mask": 1, "note": "initiiert / geplant" }, + "1": { "slug": "approved", "label_de": "genehmigt", "label_en": "approved", "mask": 2, "note": "genehmigt (Entscheidung / Vorhabenfreigabe)" }, + "2": { "slug": "developed", "label_de": "entwickelt", "label_en": "developed", "mask": 4, "note": "umgesetzt / entwickelt" }, + "3": { "slug": "validated", "label_de": "validiert", "label_en": "validated", "mask": 8, "note": "getestet / validiert" }, + "4": { "slug": "released", "label_de": "freigegeben", "label_en": "released", "mask": 16, "note": "freigegeben (Vier-Augen / Go-Live)" }, + "5": { "slug": "accepted", "label_de": "abgenommen", "label_en": "accepted", "mask": 32, "note": "abgenommen durch Stakeholder" }, + "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)" } }, "examples": { - "0x01": ["geplant"], - "0x03": ["geplant", "genehmigt"], - "0x07": ["geplant", "genehmigt", "entwickelt"], - "0x1F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben"], - "0x7F": ["geplant", "genehmigt", "entwickelt", "validiert", "freigegeben", "abgenommen", "archiviert"] + "0x01": ["planned"], + "0x03": ["planned", "approved"], + "0x07": ["planned", "approved", "developed"], + "0x1F": ["planned", "approved", "developed", "validated", "released"], + "0x7F": ["planned", "approved", "developed", "validated", "released", "accepted", "archived"] } } \ No newline at end of file diff --git a/README.en.md b/README.en.md new file mode 100644 index 0000000..34f1beb --- /dev/null +++ b/README.en.md @@ -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 114–121, Layout v2) + └── status_flags.json # lifecycle bitmask (bits 106–113, 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 tenant’s 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 L1–L6 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 L1–L6 and OSS is the +source for the new `kind` and `status` fields. \ No newline at end of file diff --git a/README.md b/README.md index 2a93c03..4a66870 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,15 @@ # OSS/TOP — Zentrale normative V7GUID-Registry (GitCover) Dieses Repository (`git.gitcover.org/OSS/TOP`, lokal `/mnt/brx5/work/OSS/TOP/`) -ist die **zentrale, normative Heimat (SSoT)** für V7GUID-Dictionaries, die -**repo-übergreifend** für alle GitCover-Lösungen gelten und mit **GCC** -abgestimmt werden. +ist die **zentrale, normative Single-Source-of-Truth (SSoT)**-Heimat für +V7GUID-Dictionaries, die **für alle GitCover-Tenant-Repos** gelten, die nach den +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 @@ -13,18 +19,30 @@ TOP/ ├── LEGAL_ENTITY.v7g.json # OSS-Tenant-Identität ├── others.json # Tenant-/Endpunkt-/Dictionary-Deskriptor └── dictionaries/ - ├── README.md # Konvention + ├── README.md # Dictionary-Konvention (de primär + en übersetzt) ├── kinds.json # Normativer Kind-Enum (V7GUID Bits 114–121, Layout v2) └── status_flags.json # Lebenszyklus-Bitmask (Bits 106–113, Layout v2) ``` ## `kind` + `status` (Layout v2) -`kinds.json` klassifiziert die **Art einer Tätigkeit/Maßnahme** — generalisiert -über das BSFZ-Vorhabens-Konzept hinaus (Vorhaben, Routine, Workflow, -Auftrags-Sachbearbeitung …). `status_flags.json` definiert die 8 kombinierbaren -**Lebenszyklus-Flags** (Geplant/Genehmigt/Entwickelt/Validiert/Freigegeben/…) -als O(1)-Bitmask-Filter aus der GUID. +`kinds.json` klassifiziert die **Art (kind) einer Tätigkeitseinheit** — eine +allgemeine, tenant-agnostische Klassifikation (Vorhaben, Forschungs-Kapitel, +Arbeitspaket, Routine, Workflow, Fall-/Auftragsbearbeitung, Verwaltung, +Begleitaufwand, IP-Verwaltung, Geschäftsführungspflichten, Hauptberuf, +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-ADR: `GITCOVER_PROTOCOL/specs/v7guid/ADR-002_layout_v2_kind.md` @@ -33,11 +51,12 @@ als O(1)-Bitmask-Filter aus der GUID. ## Git - Objekt-Format: **SHA256** (`git init --object-format=sha256`). -- Remote: `git-gcf@git.gitcover.org:OSS/TOP.git` (Forge-Repo vom User anzulegen, - dann Push). Öffentlicher Spiegel: `codeberg.org/org/gitcover-commons`. +- Remote: `git-gcf@git.gitcover.org:OSS/TOP.git`. Öffentlicher Spiegel: + `codeberg.org/org/gitcover-commons`. ## Konsolidierung (Folge-Slice) Die L1–L6-Dictionaries verbleiben vorerst im CFP-Tenant (`REPOS/CFP/TOP/.gitcover/dictionaries/`). Ihre Migration in diesen OSS-Tenant -ist ein Folge-Slice. \ No newline at end of file +ist ein Folge-Slice; bis dahin ist CFP die Quelle für L1–L6 und OSS die Quelle +für die neuen Felder `kind` und `status`. \ No newline at end of file