Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,6 @@
Condition="Exists('$(MSBuildThisFileDirectory)tools/analyzers/BannedSymbols.txt')" />
</ItemGroup>
<PropertyGroup>
<RepoVersion>6.1.14</RepoVersion>
<RepoVersion>6.1.15</RepoVersion>
</PropertyGroup>
</Project>
12 changes: 6 additions & 6 deletions docs/0_de/audit/013_SCORECARD_GOVERNANCE_ALERT_MAPPING.MD
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

# Scorecard Governance Alert Mapping (Ruleset/Prozess)

Stand: 2026-02-13
Stand: 2026-02-22

## Verifizierter Ist-Stand (2026-02-13)
## Verifizierter Ist-Stand (2026-02-22)
- Branch Protection `main`:
- `required_pull_request_reviews.required_approving_review_count = 1`
- `require_code_owner_reviews = true`
- `require_last_push_approval = true`
- `required_pull_request_reviews.required_approving_review_count = 0`
- `require_code_owner_reviews = false`
- `require_last_push_approval = false`
- Fuzzing:
- Workflow `.github/workflows/fuzzing-baseline.yml` aktiv.
- Letzter manueller Nachweis-Run: `22003901268` (`success`).
Expand All @@ -34,7 +34,7 @@ Diese Datei mappt die repo-/governance-basierten Scorecard-Alerts ohne konkrete
| Alert-ID | Steuerung (Soll) | Aktuelle Umsetzung | Evidence (deterministisch) | DoD A | DoD B |
|---|---|---|---|---|---|
| `BranchProtectionID` | `main` nur via PR + required checks | Branch Protection/Ruleset aktiv, required checks konfiguriert | `gh api repos/tomtastisch/FileClassifier/branches/main/protection` | `required_status_checks` vorhanden | direkter Push auf `main` technisch blockiert |
| `CodeReviewID` | Mindestens 1 PR-Review vor Merge | PR-Review-Policy in Branch Protection/Ruleset | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count >= 1` | Merge ohne Review nicht möglich |
| `CodeReviewID` | Keine verpflichtende Approving-Review (Workaround aktiv) | Branch-Protection setzt `review_count=0`; Qualitätssicherung über Required Checks + Review-Thread-Prozess gemäß `AGENTS.md` | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count == 0` | Merge ohne Review ist möglich; Prozesskontrollen bleiben verpflichtend |
| `MaintainedID` | Nachweis aktiver Wartung | Kontinuierliche Commits/Releases + aktive CI | `gh api repos/tomtastisch/FileClassifier/commits?per_page=20` und `gh api repos/tomtastisch/FileClassifier/actions/runs?per_page=20` | in den letzten 90 Tagen Commits vorhanden | in den letzten 30 Tagen erfolgreiche Workflow-Runs vorhanden |
| `FuzzingID` | Fuzzing-Baseline vorhanden (zusätzlich als Release-Blocker aktiviert) | Workflow `.github/workflows/fuzzing-baseline.yml` | `gh workflow view fuzzing-baseline.yml --yaml` und `gh run list --workflow fuzzing-baseline.yml --limit 10` | Workflow existiert und ist ausführbar | mindestens ein erfolgreicher Run in den letzten 30 Tagen |
| `CIIBestPracticesID` | Prozess-/Security-Baseline dokumentiert und nachvollziehbar | Audit-/Governance-Docs + CI-Evidence + Security Policy | `ls docs/audit` + `bash tools/audit/verify-security-claims.sh` | Audit-Index vorhanden und verlinkt | Security-Claims-Evidence liefert `pass` für Blocker-Claims |
Expand Down
3 changes: 2 additions & 1 deletion docs/0_de/versioning/002_HISTORY_VERSIONS.MD
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ Heuristik für die Rückwirkungs-Zuordnung:
- `docs|test|ci|chore|tooling|refactor|fix` => Patch

Aktueller Entwicklungsstand:
- Aktuelle Entwicklungslinie enthält `6.x` (aktueller Arbeitsstand: `v6.1.14`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
- Aktuelle Entwicklungslinie enthält `6.x` (aktueller Arbeitsstand: `v6.1.15`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).

Hinweis:
- Die Spalte `Keyword` verwendet den technischen Klassifizierungswert aus der Historie.
- Einzelne Committitel bleiben in der Originalsprache, wenn sie als exakter Quelltextnachweis übernommen wurden.

| Version | Kurzbeschreibung | Commit | Keyword |
|---|---|---|---|
| `6.1.15` | Governance-Drift geschlossen: Branch-Protection-Review-Policy und Scorecard-Governance-Mappings auf den verifizierten Ist-Stand `required_approving_review_count = 0` konsolidiert, inklusive aktualisierter Prozesskontrollen für verpflichtende Required-Checks und Review-Thread-Evidence gemäß `AGENTS.md` | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.14` | 6.1.14 Pipeline-Konvergenz geschlossen: Release-Workflow erzwingt NuGet-Online-Konvergenz jetzt fail-closed auch für `workflow_dispatch`, Release-Metadaten werden artefaktbasiert deterministisch aufgelöst und Fuzzing-Blocker-/Governance-Evidence-Dokumentation entsprechend nachgezogen | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.13` | FC-0016 abgeschlossen: In-Code-XML-Dokumentation im gesamten CSCore sprachlich auf Deutsch vereinheitlicht (inkl. konsistenter `<b>`- und `<br/>`-Verwendungsstruktur) und Terminologie für Audit-/Betriebskontexte konsolidiert | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.12` | FC-0015 abgeschlossen: Bilinguale Doku-Rasterstruktur in `docs/0_de` und `docs/1_en` mit identischer Dateimenge und verpflichtenden Language-Switch-Headern kanonisch eingeführt; Sync-Tooling fail-closed gehärtet (Parity/Switch-Checks + Stale-Pruning) und PR-Scope-Allowlist für die neue Struktur erweitert | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
Expand Down
8 changes: 8 additions & 0 deletions docs/0_de/versioning/003_CHANGELOG_RELEASES.MD
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,14 @@
Alle Änderungen werden hier technisch dokumentiert. Die Release-Version selbst ist
der Git-Tag `vX.Y.Z` (optional `-prerelease`) als SSOT.

## [6.1.15]
- Changed:
- Governance-Mapping für `CodeReviewID` auf den verifizierten Branch-Protection-Iststand harmonisiert (`required_approving_review_count = 0`, `require_code_owner_reviews = false`, `require_last_push_approval = false`).
- Aussagen „Merge ohne Review nicht möglich“ entfernt und durch prozessuale Pflichtkontrollen (Required Checks + Review-Thread-Evidence gemäß `AGENTS.md`) ersetzt.
- Docs/CI/Tooling:
- Scorecard-Governance-Alert-Mappings in Root und DE/EN-Spiegeln konsolidiert.
- Versionskonvergenz aktiv auf `6.1.15` gesetzt (`RepoVersion`, `Version`, `PackageVersion`, Versionshistorie DE/EN).

## [6.1.14]
- Added:
- Release-Metadaten-Artefaktpfad eingeführt (`write_release_meta_artifact.sh`) und asynchrone Auflösung für `workflow_dispatch` ergänzt.
Expand Down
12 changes: 6 additions & 6 deletions docs/1_en/audit/013_SCORECARD_GOVERNANCE_ALERT_MAPPING.MD
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

# Scorecard Governance Alert Mapping (Ruleset/Process)

As of: 2026-02-13
As of: 2026-02-22

## Verified Current State (2026-02-13)
## Verified Current State (2026-02-22)
- Branch protection `main`:
- `required_pull_request_reviews.required_approving_review_count = 1`
- `require_code_owner_reviews = true`
- `require_last_push_approval = true`
- `required_pull_request_reviews.required_approving_review_count = 0`
- `require_code_owner_reviews = false`
- `require_last_push_approval = false`
- Fuzzing:
- Workflow `.github/workflows/fuzzing-baseline.yml` active.
- Last manual evidence run: `22003901268` (`success`).
Expand All @@ -33,7 +33,7 @@ Map repo/governance-based Scorecard alerts without a concrete file (`no file ass
| Alert ID | Control (target) | Current implementation | Evidence (deterministic) | DoD A | DoD B |
|---|---|---|---|---|---|
| `BranchProtectionID` | `main` only via PR + required checks | branch protection/ruleset active, required checks configured | `gh api repos/tomtastisch/FileClassifier/branches/main/protection` | `required_status_checks` present | direct push to `main` is technically blocked |
| `CodeReviewID` | at least 1 PR review before merge | PR review policy in branch protection/ruleset | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count >= 1` | merge without review not possible |
| `CodeReviewID` | no mandatory approving review (workaround active) | branch protection sets `review_count=0`; quality is enforced via required checks + review-thread process per `AGENTS.md` | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count == 0` | merge without review is possible; process controls remain mandatory |
| `MaintainedID` | evidence of active maintenance | continuous commits/releases + active CI | `gh api repos/tomtastisch/FileClassifier/commits?per_page=20` and `gh api repos/tomtastisch/FileClassifier/actions/runs?per_page=20` | commits exist in last 90 days | successful workflow runs exist in last 30 days |
| `FuzzingID` | fuzzing baseline exists (additionally enforced as a release blocker) | workflow `.github/workflows/fuzzing-baseline.yml` | `gh workflow view fuzzing-baseline.yml --yaml` and `gh run list --workflow fuzzing-baseline.yml --limit 10` | workflow exists and is executable | at least one successful run in last 30 days |
| `CIIBestPracticesID` | process/security baseline documented and traceable | audit/governance docs + CI evidence + security policy | `ls docs/audit` + `bash tools/audit/verify-security-claims.sh` | audit index exists and links | security claims evidence returns `pass` for blocker claims |
Expand Down
3 changes: 2 additions & 1 deletion docs/1_en/versioning/002_HISTORY_VERSIONS.MD
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,14 @@ Heuristics for retroactive classification:
- `docs|test|ci|chore|tooling|refactor|fix` => patch

Current state:
- Current release line contains `6.x` (current working state: `v6.1.14`; details in `docs/versioning/103_CHANGELOG_RELEASES.MD`).
- Current release line contains `6.x` (current working state: `v6.1.15`; details in `docs/versioning/103_CHANGELOG_RELEASES.MD`).

Note:
- The \"short description\" column follows the original commit/PR intent text for deterministic traceability and is not normalized to a single language.

| Version | Short description | Commit | Keyword |
|---|---|---|---|
| `6.1.15` | Governance drift closed: branch-protection review policy and Scorecard governance mappings were aligned to the verified state `required_approving_review_count = 0`, including updated process controls for mandatory required checks and review-thread evidence per `AGENTS.md` | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.14` | 6.1.14 pipeline convergence closed: release workflow now enforces NuGet online convergence fail-closed for `workflow_dispatch` too, resolves release metadata deterministically via artifact, and aligns fuzzing-blocker/governance evidence documentation | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.13` | FC-0016 completed: unified in-code XML documentation language to German across CSCore (including consistent `<b>` and `<br/>` structure) and consolidated terminology for audit/operational contexts | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.12` | FC-0015 completed: introduced canonical bilingual docs grid under `docs/0_de` and `docs/1_en` with identical file sets and mandatory language-switch headers; hardened sync tooling fail-closed (parity/switch checks + stale file pruning) and expanded PR-scope allowlist for the new structure | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
Expand Down
8 changes: 8 additions & 0 deletions docs/1_en/versioning/003_CHANGELOG_RELEASES.MD
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,14 @@

All changes are documented here in technical terms. The release version itself is the Git tag `vX.Y.Z` (optional `-prerelease`) as SSOT.

## [6.1.15]
- Changed:
- Harmonized the governance mapping for `CodeReviewID` with the verified branch-protection state (`required_approving_review_count = 0`, `require_code_owner_reviews = false`, `require_last_push_approval = false`).
- Removed claims that merge without review is impossible and replaced them with mandatory process controls (required checks + review-thread evidence per `AGENTS.md`).
- Docs/CI/Tooling:
- Consolidated Scorecard governance alert mappings across root and DE/EN mirrors.
- Version convergence set to `6.1.15` (`RepoVersion`, `Version`, `PackageVersion`, DE/EN version history).

## [6.1.14]
- Added:
- Introduced release metadata artifact path (`write_release_meta_artifact.sh`) and asynchronous resolution for `workflow_dispatch`.
Expand Down
12 changes: 6 additions & 6 deletions docs/audit/013_SCORECARD_GOVERNANCE_ALERT_MAPPING.MD
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

# Scorecard Governance Alert Mapping (Ruleset/Prozess)

Stand: 2026-02-13
Stand: 2026-02-22

## Verifizierter Ist-Stand (2026-02-13)
## Verifizierter Ist-Stand (2026-02-22)
- Branch Protection `main`:
- `required_pull_request_reviews.required_approving_review_count = 1`
- `require_code_owner_reviews = true`
- `require_last_push_approval = true`
- `required_pull_request_reviews.required_approving_review_count = 0`
- `require_code_owner_reviews = false`
- `require_last_push_approval = false`
- Fuzzing:
- Workflow `.github/workflows/fuzzing-baseline.yml` aktiv.
- Letzter manueller Nachweis-Run: `22003901268` (`success`).
Expand All @@ -34,7 +34,7 @@ Diese Datei mappt die repo-/governance-basierten Scorecard-Alerts ohne konkrete
| Alert-ID | Steuerung (Soll) | Aktuelle Umsetzung | Evidence (deterministisch) | DoD A | DoD B |
|---|---|---|---|---|---|
| `BranchProtectionID` | `main` nur via PR + required checks | Branch Protection/Ruleset aktiv, required checks konfiguriert | `gh api repos/tomtastisch/FileClassifier/branches/main/protection` | `required_status_checks` vorhanden | direkter Push auf `main` technisch blockiert |
| `CodeReviewID` | Mindestens 1 PR-Review vor Merge | PR-Review-Policy in Branch Protection/Ruleset | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count >= 1` | Merge ohne Review nicht möglich |
| `CodeReviewID` | Keine verpflichtende Approving-Review (Workaround aktiv) | Branch-Protection setzt `review_count=0`; Qualitätssicherung über Required Checks + Review-Thread-Prozess gemäß `AGENTS.md` | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count == 0` | Merge ohne Review ist möglich; Prozesskontrollen bleiben verpflichtend |
| `MaintainedID` | Nachweis aktiver Wartung | Kontinuierliche Commits/Releases + aktive CI | `gh api repos/tomtastisch/FileClassifier/commits?per_page=20` und `gh api repos/tomtastisch/FileClassifier/actions/runs?per_page=20` | in den letzten 90 Tagen Commits vorhanden | in den letzten 30 Tagen erfolgreiche Workflow-Runs vorhanden |
| `FuzzingID` | Fuzzing-Baseline vorhanden (zusätzlich als Release-Blocker aktiviert) | Workflow `.github/workflows/fuzzing-baseline.yml` | `gh workflow view fuzzing-baseline.yml --yaml` und `gh run list --workflow fuzzing-baseline.yml --limit 10` | Workflow existiert und ist ausführbar | mindestens ein erfolgreicher Run in den letzten 30 Tagen |
| `CIIBestPracticesID` | Prozess-/Security-Baseline dokumentiert und nachvollziehbar | Audit-/Governance-Docs + CI-Evidence + Security Policy | `ls docs/audit` + `bash tools/audit/verify-security-claims.sh` | Audit-Index vorhanden und verlinkt | Security-Claims-Evidence liefert `pass` für Blocker-Claims |
Expand Down
12 changes: 6 additions & 6 deletions docs/audit/113_SCORECARD_GOVERNANCE_ALERT_MAPPING.MD
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@

# Scorecard Governance Alert Mapping (Ruleset/Process)

As of: 2026-02-13
As of: 2026-02-22

## Verified Current State (2026-02-13)
## Verified Current State (2026-02-22)
- Branch protection `main`:
- `required_pull_request_reviews.required_approving_review_count = 1`
- `require_code_owner_reviews = true`
- `require_last_push_approval = true`
- `required_pull_request_reviews.required_approving_review_count = 0`
- `require_code_owner_reviews = false`
- `require_last_push_approval = false`
- Fuzzing:
- Workflow `.github/workflows/fuzzing-baseline.yml` active.
- Last manual evidence run: `22003901268` (`success`).
Expand All @@ -33,7 +33,7 @@ Map repo/governance-based Scorecard alerts without a concrete file (`no file ass
| Alert ID | Control (target) | Current implementation | Evidence (deterministic) | DoD A | DoD B |
|---|---|---|---|---|---|
| `BranchProtectionID` | `main` only via PR + required checks | branch protection/ruleset active, required checks configured | `gh api repos/tomtastisch/FileClassifier/branches/main/protection` | `required_status_checks` present | direct push to `main` is technically blocked |
| `CodeReviewID` | at least 1 PR review before merge | PR review policy in branch protection/ruleset | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count >= 1` | merge without review not possible |
| `CodeReviewID` | no mandatory approving review (workaround active) | branch protection sets `review_count=0`; quality is enforced via required checks + review-thread process per `AGENTS.md` | `gh api repos/tomtastisch/FileClassifier/branches/main/protection --jq '.required_pull_request_reviews'` | `required_approving_review_count == 0` | merge without review is possible; process controls remain mandatory |
| `MaintainedID` | evidence of active maintenance | continuous commits/releases + active CI | `gh api repos/tomtastisch/FileClassifier/commits?per_page=20` and `gh api repos/tomtastisch/FileClassifier/actions/runs?per_page=20` | commits exist in last 90 days | successful workflow runs exist in last 30 days |
| `FuzzingID` | fuzzing baseline exists (additionally enforced as a release blocker) | workflow `.github/workflows/fuzzing-baseline.yml` | `gh workflow view fuzzing-baseline.yml --yaml` and `gh run list --workflow fuzzing-baseline.yml --limit 10` | workflow exists and is executable | at least one successful run in last 30 days |
| `CIIBestPracticesID` | process/security baseline documented and traceable | audit/governance docs + CI evidence + security policy | `ls docs/audit` + `bash tools/audit/verify-security-claims.sh` | audit index exists and links | security claims evidence returns `pass` for blocker claims |
Expand Down
3 changes: 2 additions & 1 deletion docs/versioning/002_HISTORY_VERSIONS.MD
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,15 @@ Heuristik für die Rückwirkungs-Zuordnung:
- `docs|test|ci|chore|tooling|refactor|fix` => Patch

Aktueller Entwicklungsstand:
- Aktuelle Entwicklungslinie enthält `6.x` (aktueller Arbeitsstand: `v6.1.14`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).
- Aktuelle Entwicklungslinie enthält `6.x` (aktueller Arbeitsstand: `v6.1.15`; Details in `docs/versioning/003_CHANGELOG_RELEASES.MD`).

Hinweis:
- Die Spalte `Keyword` verwendet den technischen Klassifizierungswert aus der Historie.
- Einzelne Committitel bleiben in der Originalsprache, wenn sie als exakter Quelltextnachweis übernommen wurden.

| Version | Kurzbeschreibung | Commit | Keyword |
|---|---|---|---|
| `6.1.15` | Governance-Drift geschlossen: Branch-Protection-Review-Policy und Scorecard-Governance-Mappings auf den verifizierten Ist-Stand `required_approving_review_count = 0` konsolidiert, inklusive aktualisierter Prozesskontrollen für verpflichtende Required-Checks und Review-Thread-Evidence gemäß `AGENTS.md` | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.14` | 6.1.14 Pipeline-Konvergenz geschlossen: Release-Workflow erzwingt NuGet-Online-Konvergenz jetzt fail-closed auch für `workflow_dispatch`, Release-Metadaten werden artefaktbasiert deterministisch aufgelöst und Fuzzing-Blocker-/Governance-Evidence-Dokumentation entsprechend nachgezogen | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.13` | FC-0016 abgeschlossen: In-Code-XML-Dokumentation im gesamten CSCore sprachlich auf Deutsch vereinheitlicht (inkl. konsistenter `<b>`- und `<br/>`-Verwendungsstruktur) und Terminologie für Audit-/Betriebskontexte konsolidiert | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
| `6.1.12` | FC-0015 abgeschlossen: Bilinguale Doku-Rasterstruktur in `docs/0_de` und `docs/1_en` mit identischer Dateimenge und verpflichtenden Language-Switch-Headern kanonisch eingeführt; Sync-Tooling fail-closed gehärtet (Parity/Switch-Checks + Stale-Pruning) und PR-Scope-Allowlist für die neue Struktur erweitert | [unreleased](https://github.com/tomtastisch/FileClassifier/compare/main...HEAD) | patch |
Expand Down
Loading
Loading