From 063befae6cab7d8986f3adcc870020ad2c412a85 Mon Sep 17 00:00:00 2001 From: Thorsten Hindermann Date: Mon, 17 Aug 2026 15:20:54 +0200 Subject: [PATCH 1/2] chore: sync agentic maintenance package MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Propagate the canonical Level-0 maintenance hardening and shared governance templates.\n\nDocumentation Impact: UpdateRequired — the shared templates are part of the synchronized maintenance contract. --- scripts/lib/agentic_workspace_fleet.py | 6 +- .../lib/windows-maintenance-hardening.psm1 | 2 +- scripts/maintain-agentic-workspace.ps1 | 71 ++++++++++++++++--- scripts/templates/AGENTS.md.tmpl | 4 +- scripts/templates/CLAUDE.md.tmpl | 4 +- scripts/templates/GEMINI.md.tmpl | 4 +- scripts/templates/copilot-instructions.tmpl | 4 +- scripts/templates/speckit-workflow-section.md | 4 +- 8 files changed, 76 insertions(+), 23 deletions(-) diff --git a/scripts/lib/agentic_workspace_fleet.py b/scripts/lib/agentic_workspace_fleet.py index 54cd7279..e89b6044 100644 --- a/scripts/lib/agentic_workspace_fleet.py +++ b/scripts/lib/agentic_workspace_fleet.py @@ -74,7 +74,7 @@ def is_transient_git_failure(detail: str) -> bool: return False return bool( re.search( - r"timed?\s*out|timeout|connection\s+(?:reset|closed|aborted)|temporary failure|" + r"timed?\s*out|timeout|connection\s+(?:was\s+)?(?:reset|closed|aborted)|temporary failure|" r"could not resolve host|name resolution|http\s+50[234]", detail, re.IGNORECASE, @@ -532,13 +532,13 @@ def classify_repository( upstream=upstream_name, retryAttempts=pull_attempts, resumeAccepted=resume_accepted, freshnessAttempt=freshness, defaultBranchEvidence=default_evidence, pullAttempt=pull_evidence, - mutationAllowed=not dirty + mutationAllowed=not dirty or resume_accepted ) return target_result( target, branch=branch_name, upstream=upstream_name, retryAttempts=fetch_attempts, resumeAccepted=resume_accepted, freshnessAttempt=freshness, defaultBranchEvidence=default_evidence, - mutationAllowed=not dirty + mutationAllowed=not dirty or resume_accepted ) diff --git a/scripts/lib/windows-maintenance-hardening.psm1 b/scripts/lib/windows-maintenance-hardening.psm1 index 6b7056c4..335bcef6 100644 --- a/scripts/lib/windows-maintenance-hardening.psm1 +++ b/scripts/lib/windows-maintenance-hardening.psm1 @@ -204,7 +204,7 @@ function Test-HBTransientFailure { if ($Summary -match '(?i)auth(?:entication|orization)?|permission|forbidden|not found|dirty|ahead|diverged') { return $false } - return $Summary -match '(?i)timed?\s*out|timeout|connection\s+(?:reset|closed|aborted)|temporary failure|could not resolve host|name resolution|http\s+50[234]' + return $Summary -match '(?i)timed?\s*out|timeout|connection\s+(?:was\s+)?(?:reset|closed|aborted)|temporary failure|could not resolve host|name resolution|http\s+50[234]' } function Invoke-HBWithRetry { diff --git a/scripts/maintain-agentic-workspace.ps1 b/scripts/maintain-agentic-workspace.ps1 index 75bd3587..2aa0a036 100644 --- a/scripts/maintain-agentic-workspace.ps1 +++ b/scripts/maintain-agentic-workspace.ps1 @@ -581,6 +581,7 @@ $script:RepairApplied = $false $script:PreviewDrift = $false $script:NonBlockingWarnings = 0 $script:ResumeAllowedPaths = @() +$script:ResumeEvidenceFiles = @() $exitCode = 0 $transcriptStarted = $false $runId = if ($requestedRunId) { @@ -694,6 +695,8 @@ function Invoke-HBPythonCommand { param([Parameter(Mandatory)][string[]]$Arguments) $commandArguments = @($script:HBPythonLauncher.PrefixArguments) + @($Arguments) & $script:HBPythonLauncher.FilePath @commandArguments + $pythonExitCode = $LASTEXITCODE + Set-Variable -Name LASTEXITCODE -Value $pythonExitCode -Scope 1 } function ConvertTo-HBEventStatus { @@ -1060,6 +1063,13 @@ function Initialize-HBResumeState { throw "Resume-Evidence passt nicht exakt / does not match exactly: $($validation.Reason)" } $script:ResumeAllowedPaths = @($evidence.files | ForEach-Object { [string]$_.path }) + $script:ResumeEvidenceFiles = @($evidence.files | ForEach-Object { + [pscustomobject]@{ + Path = [string]$_.path + BeforeSha256 = [string]$_.beforeSha256 + AfterSha256 = [string]$_.afterSha256 + } + }) $script:RepairApplied = $true Write-Host "OK: Resume-Evidence exakt validiert / exact resume evidence validated: $($validation.RunId)" return @@ -1070,10 +1080,20 @@ function Initialize-HBResumeState { } function Get-HBPropagationPlan { - $manifestPath = Join-Path $sourceRoot 'scripts/config/agentic-toolchain-maintenance-files.json' - $manifest = Get-Content -LiteralPath $manifestPath -Raw -Encoding UTF8 | ConvertFrom-Json + $propagationManifestPath = Join-Path $sourceRoot 'scripts/config/agentic-toolchain-maintenance-files.json' + $manifest = Get-Content -LiteralPath $propagationManifestPath -Raw -Encoding UTF8 | ConvertFrom-Json + $propagationExceptions = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase) + $exceptionsProperty = $manifest.PSObject.Properties['exceptions'] + if ($null -ne $exceptionsProperty) { + foreach ($exception in @($exceptionsProperty.Value)) { + [void]$propagationExceptions.Add( + "$([string]$exception.repositoryPath)`n$([string]$exception.path)" + ) + } + } $changes = [Collections.Generic.List[object]]::new() foreach ($repository in Get-HBManagedRepositories) { + $repositoryRelative = [IO.Path]::GetRelativePath($HomeDir, $repository.Path).Replace('\', '/') foreach ($file in @($manifest.files)) { $source = Join-Path $sourceRoot ([string]$file.path) $target = Join-Path $repository.Path ([string]$file.path) @@ -1086,6 +1106,11 @@ function Get-HBPropagationPlan { $different = $sourceHash -ne $targetHash } if (-not $different) { continue } + if ($propagationExceptions.Contains("${repositoryRelative}`n$([string]$file.path)") -and + (Test-Path -LiteralPath $target -PathType Leaf)) { + $null = & git -C $repository.Path ls-files --error-unmatch -- ([string]$file.path) 2>$null + if ($LASTEXITCODE -eq 0) { continue } + } $changes.Add([pscustomobject]@{ Path = [IO.Path]::GetRelativePath($HomeDir, $target).Replace('\', '/') BeforeSha256 = Get-HBFileSha256 -Path $target @@ -1178,8 +1203,14 @@ function Invoke-HBPropagation { if ($plannedChanges.Count -eq 0) { throw 'Propagation meldet Drift ohne aktionsfaehige Dateien / reported drift without actionable files.' } + $plannedPaths = [Collections.Generic.HashSet[string]]::new([StringComparer]::OrdinalIgnoreCase) + foreach ($change in $plannedChanges) { [void]$plannedPaths.Add([string]$change.Path) } + $evidenceChanges = @( + $script:ResumeEvidenceFiles | Where-Object { -not $plannedPaths.Contains([string]$_.Path) } + $plannedChanges + ) $null = Write-HBResumeEvidence -Path $resumeEvidenceFile -RunId $runId ` - -Phase 'propagation' -Files $plannedChanges -Status Prepared ` + -Phase 'propagation' -Files $evidenceChanges -Status Prepared ` -NextAction 'Propagation ausfuehren und Hashes verifizieren / execute propagation and verify hashes' & $propagation -HomeDir $HomeDir -Registry $registry if ($LASTEXITCODE -ne 0) { throw 'Propagation fehlgeschlagen / failed.' } @@ -1190,7 +1221,7 @@ function Invoke-HBPropagation { } } $null = Write-HBResumeEvidence -Path $resumeEvidenceFile -RunId $runId ` - -Phase 'propagation' -Files $plannedChanges -Status Applied ` + -Phase 'propagation' -Files $evidenceChanges -Status Applied ` -NextAction 'Geaenderte Ziel-Repositories separat pruefen und liefern / review and deliver changed target repositories separately' if ((Invoke-HBPropagationCheck) -ne 0) { throw 'Propagation-Abschlusspruefung fehlgeschlagen / final check failed.' } $script:RepairApplied = $true @@ -1336,6 +1367,21 @@ function Remove-HBPresetValidationTarget { } } +function Invoke-HBPresetInstallerProcess { + param( + [Parameter(Mandatory)][string] $Installer, + [Parameter(Mandatory)][object[]] $Arguments + ) + + # The installer deliberately throws when CheckOnly detects drift. A child + # process converts that terminating error into the exit-code contract the + # orchestrator needs before deciding whether repair is permitted. + $output = @(& pwsh -NoProfile -NonInteractive -File $Installer @Arguments 2>&1) + $status = if ($null -eq $LASTEXITCODE) { 0 } else { [int]$LASTEXITCODE } + $output | ForEach-Object { Write-Host "$_" } + return $status +} + function Invoke-HBPresetProfiles { $installer = Join-Path $sourceRoot 'scripts/install-spec-kit-governance-presets.ps1' if (-not (Test-Path -LiteralPath $installer -PathType Leaf)) { @@ -1350,11 +1396,16 @@ function Invoke-HBPresetProfiles { try { $validationTarget = New-HBPresetValidationTarget -Repository $target.Path if ($WhatIfPreference) { - & $installer -Repo @($validationTarget.Path) -PresetConfig $config -WhatIf + $previewStatus = Invoke-HBPresetInstallerProcess -Installer $installer -Arguments @( + '-Repo', $validationTarget.Path, '-PresetConfig', $config, '-WhatIf' + ) + if ($previewStatus -ne 0) { throw "Preset-Vorschau fehlgeschlagen / preview failed: $($target.Path)" } continue } - & $installer -Repo @($validationTarget.Path) -PresetConfig $config -CheckOnly - if ($LASTEXITCODE -eq 0) { continue } + $checkStatus = Invoke-HBPresetInstallerProcess -Installer $installer -Arguments @( + '-Repo', $validationTarget.Path, '-PresetConfig', $config, '-CheckOnly' + ) + if ($checkStatus -eq 0) { continue } if ($validationTarget.Isolated) { Write-HBWarning "Preset-Profil-Drift auf dem kanonischen Default-Branch erfordert einen eigenen Branch/PR / requires a dedicated branch/PR: $($target.Path)" $script:Findings++ @@ -1365,8 +1416,10 @@ function Invoke-HBPresetProfiles { $script:Findings++ continue } - & $installer -Repo @($target.Path) -PresetConfig $config -Force - if ($LASTEXITCODE -ne 0) { throw "Preset-Reparatur fehlgeschlagen / repair failed: $($target.Path)" } + $repairStatus = Invoke-HBPresetInstallerProcess -Installer $installer -Arguments @( + '-Repo', $target.Path, '-PresetConfig', $config, '-Force' + ) + if ($repairStatus -ne 0) { throw "Preset-Reparatur fehlgeschlagen / repair failed: $($target.Path)" } $script:RepairApplied = $true } catch { Write-HBWarning $_.Exception.Message diff --git a/scripts/templates/AGENTS.md.tmpl b/scripts/templates/AGENTS.md.tmpl index f27459c9..128057a1 100644 --- a/scripts/templates/AGENTS.md.tmpl +++ b/scripts/templates/AGENTS.md.tmpl @@ -232,13 +232,13 @@ Neue Lernreihen fuer Fachinformatiker*innen und weitere IT-Ausbildungsberufe wer ## Spec-Kit-Presets / Spec Kit Presets -- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.3.6 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. +- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.4.1 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. - Optionale Presets: `model-routing-governance` v0.1.4 prio 61 sowie Intake Authoring v0.3.1 prio 64, Intake Review v0.2.1 prio 65 und Intake Sequencing v0.2.3 prio 66 bleiben ausserhalb der Standard-Achtermatrix. Thorstens verwaltete Flotte installiert alle vier ueber `model-routing-twelve-governance-presets`; bestehende Neun-, Zehn- und Elf-Preset-Profile bleiben kompatibel, ersetzen aber nicht das Zwölfer-Flottenprofil. Konkrete Modelle werden pro Rechner erkannt und nie aus einem Remote-Repository uebernommen. *Optional Model Routing v0.1.4 and the three Intake Governance presets remain outside the standard eight. Thorsten's managed fleet installs all four through `model-routing-twelve-governance-presets`; compatible nine-, ten-, and eleven-preset profiles do not replace that fleet profile. Concrete models are discovered per machine and never copied from a remote repository.* - Intake Authoring trennt Create, Read, Update und logisches Delete, beschraenkt URL-Quellen auf oeffentliches HTTPS und publiziert mehrere Intakes erst nach einem vollstaendigen, ausdruecklich genehmigten Series-Vorschlag. Archive, Tombstones und Receipts bleiben hashgebunden. Review oder Ausfuehrung startet nie automatisch. *Intake Authoring separates CRUD, bounds public HTTPS sources, requires explicit series approval, and never starts downstream review or execution.* - Intake Review akzeptiert bei aktiver Projekt- oder Kampagnenpolicy nur aktuelle `Ready`- oder menschlich akzeptierte `ReadyWithAcceptedRisks`-Ergebnisse; Critical/High, offene materielle Fragen, Hash-Drift oder fehlende Worker-Coverage blockieren. Review und Status sind read-only, Repair benoetigt ausdrueckliche Aenderungsautoritaet. Series-Reviews verwenden Schema 1.1, binden den normalisierten Request-Hash und pruefen exakte Zielreihenfolge, explizite Roots sowie einen azyklischen Graphen; nicht belegbare Vorgaengerbeziehungen fuehren zu `NeedsClarification`. *Series reviews use schema 1.1, bind the normalized request hash, and verify exact target order, explicit roots, and an acyclic graph; unprovable predecessor relations result in `NeedsClarification`.* - Intake Sequencing verwaltet nur Reihenfolge und Lifecycle bereits vorhandener Intakes. Create/Update/Delete benoetigen ausdrueckliche aktuelle Autoritaet; Read/Status/Next bleiben read-only. `next` meldet startfaehige Ziele oder konkrete Blocker und startet keine Folgeaktion. *Intake Sequencing manages only order and lifecycle, requires explicit write authority, and never starts downstream work.* - Community-Katalog-Einreichungen an `github/spec-kit` strikt einzeln erstellen und aktivieren: erst den erzeugten PR pruefen und mergen lassen sowie das Issue abschliessen, dann das naechste Issue einreichen. Bei einer bereits vorhandenen Warteschlange nur den naechsten Kandidaten fuer `preset-submission` benennen; keine neuen Batch-Issues oder parallelen Label-Anfragen. Grundlage ist der Maintainer-Hinweis in `github/spec-kit#3679`; der Betriebsvertrag steht in `docs/maintenance/Preset-and-Fleet-Operations-Lessons-Learned.md`. *Submit and activate `github/spec-kit` community catalog updates strictly one at a time. Complete the generated PR and issue before filing the next issue; for an existing queue, name only the next label candidate. Do not create new batch issues or parallel label requests.* -- `autonomous-run-governance` v0.3.6 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. +- `autonomous-run-governance` v0.4.1 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. - `parallel-autonomous-run-governance` v0.2.6 prio 80 ist Teil der Standard-Achtermatrix. Die Installation startet keine Kampagne und erteilt keine zusaetzlichen Remote-, Merge-, Bypass-, Abbruch-, Secret- oder Provider-Rechte. Kampagnen bleiben ausdruecklich delegationspflichtig, verwenden getrennte Worktrees und maximal drei gleichzeitig aktive Worker. Schema 1.1 erlaubt ein `runnerProfile` je Worker mit Kampagnen-Fallback; Modell und Reasoning-Stufe sind optionale, nicht geheime Metadaten und werden ohne Deklaration nicht erraten. Konsolidierung verlangt exakten Head, aktuelle Review- und Check-Evidenz, ist nach Teilmerges fortsetzbar und setzt `Completed` erst nach Synchronisation, manifestdeklarierten idempotenten Post-Merge-Aktionen und Abschlussvalidierung. - Reale Preset-8-Kampagnen setzen in jedem Worker-Repository ein installiertes und aktiviertes `autonomous-run-governance >=0.2.2` voraus. Preset 7 mit Prioritaet `70` liefert Lebenszyklus, Evidenz und Berechtigungsgrenzen; Preset 8 mit Prioritaet `80` koordiniert die Kampagne. Fehlt Preset 7, ist es deaktiviert oder zu alt, endet der Preflight vor dem Worker-Start. `requireAutonomousPreset: false` bleibt auf isolierte interne Fixtures begrenzt und ist kein Produktionsmodus. *Real Preset 8 campaigns require installed and enabled `autonomous-run-governance >=0.2.2` in every worker repository. Preset 7 at priority `70` supplies lifecycle, evidence, and authority boundaries; Preset 8 at priority `80` coordinates the campaign. Missing, disabled, or outdated Preset 7 fails preflight before worker start. `requireAutonomousPreset: false` remains limited to isolated internal fixtures and is not a production mode.* - `a11y-governance` v0.4.3 ergaenzt didaktische Inline-Code-Kommentar-Governance fuer neue oder geaenderte nicht-triviale Logik. diff --git a/scripts/templates/CLAUDE.md.tmpl b/scripts/templates/CLAUDE.md.tmpl index 59732e0a..48e83059 100644 --- a/scripts/templates/CLAUDE.md.tmpl +++ b/scripts/templates/CLAUDE.md.tmpl @@ -222,13 +222,13 @@ Neue Lernreihen fuer Fachinformatiker*innen und weitere IT-Ausbildungsberufe wer ## Spec-Kit-Presets / Spec Kit Presets -- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.3.6 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. +- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.4.1 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. - Optionale Presets: `model-routing-governance` v0.1.4 prio 61 sowie Intake Authoring v0.3.1 prio 64, Intake Review v0.2.1 prio 65 und Intake Sequencing v0.2.3 prio 66 bleiben ausserhalb der Standard-Achtermatrix. Thorstens verwaltete Flotte installiert alle vier ueber `model-routing-twelve-governance-presets`; bestehende Neun-, Zehn- und Elf-Preset-Profile bleiben kompatibel, ersetzen aber nicht das Zwölfer-Flottenprofil. Konkrete Modelle werden pro Rechner erkannt und nie aus einem Remote-Repository uebernommen. *Optional Model Routing v0.1.4 and the three Intake Governance presets remain outside the standard eight. Thorsten's managed fleet installs all four through `model-routing-twelve-governance-presets`; compatible nine-, ten-, and eleven-preset profiles do not replace that fleet profile. Concrete models are discovered per machine and never copied from a remote repository.* - Intake Authoring trennt Create, Read, Update und logisches Delete, beschraenkt URL-Quellen auf oeffentliches HTTPS und publiziert mehrere Intakes erst nach einem vollstaendigen, ausdruecklich genehmigten Series-Vorschlag. Archive, Tombstones und Receipts bleiben hashgebunden. Review oder Ausfuehrung startet nie automatisch. *Intake Authoring separates CRUD, bounds public HTTPS sources, requires explicit series approval, and never starts downstream review or execution.* - Intake Review akzeptiert bei aktiver Projekt- oder Kampagnenpolicy nur aktuelle `Ready`- oder menschlich akzeptierte `ReadyWithAcceptedRisks`-Ergebnisse; Critical/High, offene materielle Fragen, Hash-Drift oder fehlende Worker-Coverage blockieren. Review und Status sind read-only, Repair benoetigt ausdrueckliche Aenderungsautoritaet. Series-Reviews verwenden Schema 1.1, binden den normalisierten Request-Hash und pruefen exakte Zielreihenfolge, explizite Roots sowie einen azyklischen Graphen; nicht belegbare Vorgaengerbeziehungen fuehren zu `NeedsClarification`. *Series reviews use schema 1.1, bind the normalized request hash, and verify exact target order, explicit roots, and an acyclic graph; unprovable predecessor relations result in `NeedsClarification`.* - Intake Sequencing verwaltet nur Reihenfolge und Lifecycle bereits vorhandener Intakes. Create/Update/Delete benoetigen ausdrueckliche aktuelle Autoritaet; Read/Status/Next bleiben read-only. `next` meldet startfaehige Ziele oder konkrete Blocker und startet keine Folgeaktion. *Intake Sequencing manages only order and lifecycle, requires explicit write authority, and never starts downstream work.* - Community-Katalog-Einreichungen an `github/spec-kit` strikt einzeln erstellen und aktivieren: erst den erzeugten PR pruefen und mergen lassen sowie das Issue abschliessen, dann das naechste Issue einreichen. Bei einer bereits vorhandenen Warteschlange nur den naechsten Kandidaten fuer `preset-submission` benennen; keine neuen Batch-Issues oder parallelen Label-Anfragen. Grundlage ist der Maintainer-Hinweis in `github/spec-kit#3679`; der Betriebsvertrag steht in `docs/maintenance/Preset-and-Fleet-Operations-Lessons-Learned.md`. *Submit and activate `github/spec-kit` community catalog updates strictly one at a time. Complete the generated PR and issue before filing the next issue; for an existing queue, name only the next label candidate. Do not create new batch issues or parallel label requests.* -- `autonomous-run-governance` v0.3.6 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. +- `autonomous-run-governance` v0.4.1 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. - `parallel-autonomous-run-governance` v0.2.6 prio 80 ist Teil der Standard-Achtermatrix. Die Installation startet keine Kampagne und erteilt keine zusaetzlichen Remote-, Merge-, Bypass-, Abbruch-, Secret- oder Provider-Rechte. Kampagnen bleiben ausdruecklich delegationspflichtig, verwenden getrennte Worktrees und maximal drei gleichzeitig aktive Worker. Schema 1.1 erlaubt ein `runnerProfile` je Worker mit Kampagnen-Fallback; Modell und Reasoning-Stufe sind optionale, nicht geheime Metadaten und werden ohne Deklaration nicht erraten. Konsolidierung verlangt exakten Head, aktuelle Review- und Check-Evidenz, ist nach Teilmerges fortsetzbar und setzt `Completed` erst nach Synchronisation, manifestdeklarierten idempotenten Post-Merge-Aktionen und Abschlussvalidierung. - Reale Preset-8-Kampagnen setzen in jedem Worker-Repository ein installiertes und aktiviertes `autonomous-run-governance >=0.2.2` voraus. Preset 7 mit Prioritaet `70` liefert Lebenszyklus, Evidenz und Berechtigungsgrenzen; Preset 8 mit Prioritaet `80` koordiniert die Kampagne. Fehlt Preset 7, ist es deaktiviert oder zu alt, endet der Preflight vor dem Worker-Start. `requireAutonomousPreset: false` bleibt auf isolierte interne Fixtures begrenzt und ist kein Produktionsmodus. *Real Preset 8 campaigns require installed and enabled `autonomous-run-governance >=0.2.2` in every worker repository. Preset 7 at priority `70` supplies lifecycle, evidence, and authority boundaries; Preset 8 at priority `80` coordinates the campaign. Missing, disabled, or outdated Preset 7 fails preflight before worker start. `requireAutonomousPreset: false` remains limited to isolated internal fixtures and is not a production mode.* - `a11y-governance` v0.4.3 ergaenzt didaktische Inline-Code-Kommentar-Governance fuer neue oder geaenderte nicht-triviale Logik. diff --git a/scripts/templates/GEMINI.md.tmpl b/scripts/templates/GEMINI.md.tmpl index 82085f5d..512cabde 100644 --- a/scripts/templates/GEMINI.md.tmpl +++ b/scripts/templates/GEMINI.md.tmpl @@ -214,13 +214,13 @@ Neue Lernreihen fuer Fachinformatiker*innen und weitere IT-Ausbildungsberufe wer ## Spec-Kit-Presets / Spec Kit Presets -- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.3.6 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. +- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.4.1 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. - Optionale Presets: `model-routing-governance` v0.1.4 prio 61 sowie Intake Authoring v0.3.1 prio 64, Intake Review v0.2.1 prio 65 und Intake Sequencing v0.2.3 prio 66 bleiben ausserhalb der Standard-Achtermatrix. Thorstens verwaltete Flotte installiert alle vier ueber `model-routing-twelve-governance-presets`; bestehende Neun-, Zehn- und Elf-Preset-Profile bleiben kompatibel, ersetzen aber nicht das Zwölfer-Flottenprofil. Konkrete Modelle werden pro Rechner erkannt und nie aus einem Remote-Repository uebernommen. *Optional Model Routing v0.1.4 and the three Intake Governance presets remain outside the standard eight. Thorsten's managed fleet installs all four through `model-routing-twelve-governance-presets`; compatible nine-, ten-, and eleven-preset profiles do not replace that fleet profile. Concrete models are discovered per machine and never copied from a remote repository.* - Intake Authoring trennt Create, Read, Update und logisches Delete, beschraenkt URL-Quellen auf oeffentliches HTTPS und publiziert mehrere Intakes erst nach einem vollstaendigen, ausdruecklich genehmigten Series-Vorschlag. Archive, Tombstones und Receipts bleiben hashgebunden. Review oder Ausfuehrung startet nie automatisch. *Intake Authoring separates CRUD, bounds public HTTPS sources, requires explicit series approval, and never starts downstream review or execution.* - Intake Review akzeptiert bei aktiver Projekt- oder Kampagnenpolicy nur aktuelle `Ready`- oder menschlich akzeptierte `ReadyWithAcceptedRisks`-Ergebnisse; Critical/High, offene materielle Fragen, Hash-Drift oder fehlende Worker-Coverage blockieren. Review und Status sind read-only, Repair benoetigt ausdrueckliche Aenderungsautoritaet. Series-Reviews verwenden Schema 1.1, binden den normalisierten Request-Hash und pruefen exakte Zielreihenfolge, explizite Roots sowie einen azyklischen Graphen; nicht belegbare Vorgaengerbeziehungen fuehren zu `NeedsClarification`. *Series reviews use schema 1.1, bind the normalized request hash, and verify exact target order, explicit roots, and an acyclic graph; unprovable predecessor relations result in `NeedsClarification`.* - Intake Sequencing verwaltet nur Reihenfolge und Lifecycle bereits vorhandener Intakes. Create/Update/Delete benoetigen ausdrueckliche aktuelle Autoritaet; Read/Status/Next bleiben read-only. `next` meldet startfaehige Ziele oder konkrete Blocker und startet keine Folgeaktion. *Intake Sequencing manages only order and lifecycle, requires explicit write authority, and never starts downstream work.* - Community-Katalog-Einreichungen an `github/spec-kit` strikt einzeln erstellen und aktivieren: erst den erzeugten PR pruefen und mergen lassen sowie das Issue abschliessen, dann das naechste Issue einreichen. Bei einer bereits vorhandenen Warteschlange nur den naechsten Kandidaten fuer `preset-submission` benennen; keine neuen Batch-Issues oder parallelen Label-Anfragen. Grundlage ist der Maintainer-Hinweis in `github/spec-kit#3679`; der Betriebsvertrag steht in `docs/maintenance/Preset-and-Fleet-Operations-Lessons-Learned.md`. *Submit and activate `github/spec-kit` community catalog updates strictly one at a time. Complete the generated PR and issue before filing the next issue; for an existing queue, name only the next label candidate. Do not create new batch issues or parallel label requests.* -- `autonomous-run-governance` v0.3.6 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. +- `autonomous-run-governance` v0.4.1 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. - `parallel-autonomous-run-governance` v0.2.6 prio 80 ist Teil der Standard-Achtermatrix. Die Installation startet keine Kampagne und erteilt keine zusaetzlichen Remote-, Merge-, Bypass-, Abbruch-, Secret- oder Provider-Rechte. Kampagnen bleiben ausdruecklich delegationspflichtig, verwenden getrennte Worktrees und maximal drei gleichzeitig aktive Worker. Schema 1.1 erlaubt ein `runnerProfile` je Worker mit Kampagnen-Fallback; Modell und Reasoning-Stufe sind optionale, nicht geheime Metadaten und werden ohne Deklaration nicht erraten. Konsolidierung verlangt exakten Head, aktuelle Review- und Check-Evidenz, ist nach Teilmerges fortsetzbar und setzt `Completed` erst nach Synchronisation, manifestdeklarierten idempotenten Post-Merge-Aktionen und Abschlussvalidierung. - Reale Preset-8-Kampagnen setzen in jedem Worker-Repository ein installiertes und aktiviertes `autonomous-run-governance >=0.2.2` voraus. Preset 7 mit Prioritaet `70` liefert Lebenszyklus, Evidenz und Berechtigungsgrenzen; Preset 8 mit Prioritaet `80` koordiniert die Kampagne. Fehlt Preset 7, ist es deaktiviert oder zu alt, endet der Preflight vor dem Worker-Start. `requireAutonomousPreset: false` bleibt auf isolierte interne Fixtures begrenzt und ist kein Produktionsmodus. *Real Preset 8 campaigns require installed and enabled `autonomous-run-governance >=0.2.2` in every worker repository. Preset 7 at priority `70` supplies lifecycle, evidence, and authority boundaries; Preset 8 at priority `80` coordinates the campaign. Missing, disabled, or outdated Preset 7 fails preflight before worker start. `requireAutonomousPreset: false` remains limited to isolated internal fixtures and is not a production mode.* - `a11y-governance` v0.4.3 ergaenzt didaktische Inline-Code-Kommentar-Governance fuer neue oder geaenderte nicht-triviale Logik. diff --git a/scripts/templates/copilot-instructions.tmpl b/scripts/templates/copilot-instructions.tmpl index 115c6b53..bfd93942 100644 --- a/scripts/templates/copilot-instructions.tmpl +++ b/scripts/templates/copilot-instructions.tmpl @@ -211,13 +211,13 @@ Neue Lernreihen fuer Fachinformatiker*innen und weitere IT-Ausbildungsberufe wer ## Spec-Kit-Presets / Spec Kit Presets -- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.3.6 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. +- Standard-Preset-Set: `security-governance` v0.6.2 prio 10, `architecture-governance` v0.5.2 prio 20, `isaqb-architecture-governance` v0.2.2 prio 30, `a11y-governance` v0.4.3 prio 40, `cross-platform-governance` v0.2.2 prio 50, `agent-parity-governance` v0.4.2 prio 60, `autonomous-run-governance` v0.4.1 prio 70, `parallel-autonomous-run-governance` v0.2.6 prio 80. - Optionale Presets: `model-routing-governance` v0.1.4 prio 61 sowie Intake Authoring v0.3.1 prio 64, Intake Review v0.2.1 prio 65 und Intake Sequencing v0.2.3 prio 66 bleiben ausserhalb der Standard-Achtermatrix. Thorstens verwaltete Flotte installiert alle vier ueber `model-routing-twelve-governance-presets`; bestehende Neun-, Zehn- und Elf-Preset-Profile bleiben kompatibel, ersetzen aber nicht das Zwölfer-Flottenprofil. Konkrete Modelle werden pro Rechner erkannt und nie aus einem Remote-Repository uebernommen. *Optional Model Routing v0.1.4 and the three Intake Governance presets remain outside the standard eight. Thorsten's managed fleet installs all four through `model-routing-twelve-governance-presets`; compatible nine-, ten-, and eleven-preset profiles do not replace that fleet profile. Concrete models are discovered per machine and never copied from a remote repository.* - Intake Authoring trennt Create, Read, Update und logisches Delete, beschraenkt URL-Quellen auf oeffentliches HTTPS und publiziert mehrere Intakes erst nach einem vollstaendigen, ausdruecklich genehmigten Series-Vorschlag. Archive, Tombstones und Receipts bleiben hashgebunden. Review oder Ausfuehrung startet nie automatisch. *Intake Authoring separates CRUD, bounds public HTTPS sources, requires explicit series approval, and never starts downstream review or execution.* - Intake Review akzeptiert bei aktiver Projekt- oder Kampagnenpolicy nur aktuelle `Ready`- oder menschlich akzeptierte `ReadyWithAcceptedRisks`-Ergebnisse; Critical/High, offene materielle Fragen, Hash-Drift oder fehlende Worker-Coverage blockieren. Review und Status sind read-only, Repair benoetigt ausdrueckliche Aenderungsautoritaet. Series-Reviews verwenden Schema 1.1, binden den normalisierten Request-Hash und pruefen exakte Zielreihenfolge, explizite Roots sowie einen azyklischen Graphen; nicht belegbare Vorgaengerbeziehungen fuehren zu `NeedsClarification`. *Series reviews use schema 1.1, bind the normalized request hash, and verify exact target order, explicit roots, and an acyclic graph; unprovable predecessor relations result in `NeedsClarification`.* - Intake Sequencing verwaltet nur Reihenfolge und Lifecycle bereits vorhandener Intakes. Create/Update/Delete benoetigen ausdrueckliche aktuelle Autoritaet; Read/Status/Next bleiben read-only. `next` meldet startfaehige Ziele oder konkrete Blocker und startet keine Folgeaktion. *Intake Sequencing manages only order and lifecycle, requires explicit write authority, and never starts downstream work.* - Community-Katalog-Einreichungen an `github/spec-kit` strikt einzeln erstellen und aktivieren: erst den erzeugten PR pruefen und mergen lassen sowie das Issue abschliessen, dann das naechste Issue einreichen. Bei einer bereits vorhandenen Warteschlange nur den naechsten Kandidaten fuer `preset-submission` benennen; keine neuen Batch-Issues oder parallelen Label-Anfragen. Grundlage ist der Maintainer-Hinweis in `github/spec-kit#3679`; der Betriebsvertrag steht in `docs/maintenance/Preset-and-Fleet-Operations-Lessons-Learned.md`. *Submit and activate `github/spec-kit` community catalog updates strictly one at a time. Complete the generated PR and issue before filing the next issue; for an existing queue, name only the next label candidate. Do not create new batch issues or parallel label requests.* -- `autonomous-run-governance` v0.3.6 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. +- `autonomous-run-governance` v0.4.1 prio 70 ist Teil der Standard-Achtermatrix. Ein vollständiger autonomer Lauf bleibt ausdrücklich delegationspflichtig; die Installation allein erteilt weder Ausführungsberechtigung noch Remote-, Merge-, Bypass- oder Provider-Rechte und `LocalImplementation` bleibt Default. Dokumentations-, Status-, Schema- oder Evidence-Änderungen gelten erst dann als testfrei, wenn keine ausführbaren Validatoren die geänderten Pfade, Marker, Schemas oder Zustandswerte konsumieren. Vor autorisierten Commits wird der exakt beabsichtigte Kandidat mit `git diff --cached --check` und Statusabgleich geprüft; fremde Änderungen bleiben unberührt. Vor einem Merge wird jeder Acceptance-Gate dem tatsächlich ausgeführten Workflow, Job, Runner beziehungsweise der Plattform und dem Befehl zugeordnet; grüne Namen oder ein Bypass ersetzen keinen technischen Nachweis. Bewusst pausierte Läufe werden als `PausedByUser` gespeichert und nur über `speckit.autonomous-resume` fortgesetzt; `speckit.autonomous-stop` wirkt kooperativ am nächsten sicheren Grenzpunkt, und ein gespeicherter Delivery-Modus ist keine aktuelle Berechtigung. Nach Preset- oder Governance-Drift werden neue zwingende Korrektheits-, Sicherheits-, Berechtigungs- und Evidenzregeln minimal mit akzeptierten Plan-, Task- und Checklist-Artefakten abgeglichen; reine Effizienzpräferenzen lösen keine rückwirkende Neugenerierung aus. Die lesbare Skill-Überschrift `Deliver` ist kein Run-State-Wert; für Remote-Closeout gelten ausschließlich `Publish`, `Review` oder `MergeAndSync`. - `parallel-autonomous-run-governance` v0.2.6 prio 80 ist Teil der Standard-Achtermatrix. Die Installation startet keine Kampagne und erteilt keine zusaetzlichen Remote-, Merge-, Bypass-, Abbruch-, Secret- oder Provider-Rechte. Kampagnen bleiben ausdruecklich delegationspflichtig, verwenden getrennte Worktrees und maximal drei gleichzeitig aktive Worker. Schema 1.1 erlaubt ein `runnerProfile` je Worker mit Kampagnen-Fallback; Modell und Reasoning-Stufe sind optionale, nicht geheime Metadaten und werden ohne Deklaration nicht erraten. Konsolidierung verlangt exakten Head, aktuelle Review- und Check-Evidenz, ist nach Teilmerges fortsetzbar und setzt `Completed` erst nach Synchronisation, manifestdeklarierten idempotenten Post-Merge-Aktionen und Abschlussvalidierung. - Reale Preset-8-Kampagnen setzen in jedem Worker-Repository ein installiertes und aktiviertes `autonomous-run-governance >=0.2.2` voraus. Preset 7 mit Prioritaet `70` liefert Lebenszyklus, Evidenz und Berechtigungsgrenzen; Preset 8 mit Prioritaet `80` koordiniert die Kampagne. Fehlt Preset 7, ist es deaktiviert oder zu alt, endet der Preflight vor dem Worker-Start. `requireAutonomousPreset: false` bleibt auf isolierte interne Fixtures begrenzt und ist kein Produktionsmodus. *Real Preset 8 campaigns require installed and enabled `autonomous-run-governance >=0.2.2` in every worker repository. Preset 7 at priority `70` supplies lifecycle, evidence, and authority boundaries; Preset 8 at priority `80` coordinates the campaign. Missing, disabled, or outdated Preset 7 fails preflight before worker start. `requireAutonomousPreset: false` remains limited to isolated internal fixtures and is not a production mode.* - `a11y-governance` v0.4.3 ergaenzt didaktische Inline-Code-Kommentar-Governance fuer neue oder geaenderte nicht-triviale Logik. diff --git a/scripts/templates/speckit-workflow-section.md b/scripts/templates/speckit-workflow-section.md index 746086ea..2f7ea15e 100644 --- a/scripts/templates/speckit-workflow-section.md +++ b/scripts/templates/speckit-workflow-section.md @@ -30,7 +30,7 @@ Workspace-Familie ist: | `a11y-governance` | A11Y Governance | `v0.4.3` | `40` | | `cross-platform-governance` | Cross-Platform Governance | `v0.2.2` | `50` | | `agent-parity-governance` | Agent Parity Governance | `v0.4.2` | `60` | -| `autonomous-run-governance` | Autonomous Run Governance | `v0.3.6` | `70` | +| `autonomous-run-governance` | Autonomous Run Governance | `v0.4.1` | `70` | | `parallel-autonomous-run-governance` | Parallel Autonomous Run Governance | `v0.2.6` | `80` | Optional koennen `model-routing-governance` v0.1.4 mit Prioritaet `61`, @@ -171,7 +171,7 @@ workspace family is: | `a11y-governance` | A11Y Governance | `v0.4.3` | `40` | | `cross-platform-governance` | Cross-Platform Governance | `v0.2.2` | `50` | | `agent-parity-governance` | Agent Parity Governance | `v0.4.2` | `60` | -| `autonomous-run-governance` | Autonomous Run Governance | `v0.3.6` | `70` | +| `autonomous-run-governance` | Autonomous Run Governance | `v0.4.1` | `70` | | `parallel-autonomous-run-governance` | Parallel Autonomous Run Governance | `v0.2.6` | `80` | Optionally install `model-routing-governance` v0.1.4 at priority `61`, From e0cb0390ce033fad8c2ee188faeff13c34845c29 Mon Sep 17 00:00:00 2001 From: Thorsten Hindermann Date: Mon, 17 Aug 2026 15:22:51 +0200 Subject: [PATCH 2/2] docs: refresh project statistics Regenerate the Profile 2 statistics block after the maintenance package synchronization.\n\nDocumentation Impact: GeneratedUpdate. --- docs/project-statistics.md | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/project-statistics.md b/docs/project-statistics.md index aed2f188..857a6462 100644 --- a/docs/project-statistics.md +++ b/docs/project-statistics.md @@ -1199,18 +1199,18 @@ Profil 2 verwendet Git-getrackte Textdateien und sichtbare Git-Aktivitaet. Die W | Kennzahl / Metric | Wert / Value | |---|---:| -| Textbasis / Text base | 611832 lines | +| Textbasis / Text base | 611885 lines | | Textdateien / Text files | 3039 | -| Beobachtbarer Zeitraum / Observable period | 2025-08-24..2026-08-16 | -| Aktivtage / Active days | 90 | -| Relevante Commits / Relevant commits | 551 | -| Zeilen je Aktivtag / Lines per active day | 6798.1 | +| Beobachtbarer Zeitraum / Observable period | 2025-08-24..2026-08-17 | +| Aktivtage / Active days | 91 | +| Relevante Commits / Relevant commits | 552 | +| Zeilen je Aktivtag / Lines per active day | 6724.0 | | Peak-Tag im Fenster / Peak day in window | 2026-03-22 / 321183 | | Peak-Woche im Fenster / Peak week in window | 2026-03-22 / 373576 | | Laengste Serie / Longest streak | 17 days | -| Speedup vs. 80 lines/day | 85.0x | -| Speedup vs. 125 lines/day | 54.4x | -| Methodik / Methodology | v2; source `841de095cf8d` | +| Speedup vs. 80 lines/day | 84.1x | +| Speedup vs. 125 lines/day | 53.8x | +| Methodik / Methodology | v2; source `063befae6cab` | ### Artefaktmix / Artifact Mix @@ -1218,7 +1218,7 @@ Profil 2 verwendet Git-getrackte Textdateien und sichtbare Git-Aktivitaet. Die W Produktiv / Production [####................] 22.4% | 137243 Tests [##..................] 8.0% | 48722 Dokumentation / Documentation [#########...........] 43.5% | 265869 -Skripte / Scripts [#...................] 3.7% | 22435 +Skripte / Scripts [#...................] 3.7% | 22488 Konfiguration / Configuration [#...................] 6.2% | 37729 Daten und Medien / Data and media [#...................] 0.0% | 1 Sonstiger Text / Other text [###.................] 16.3% | 99833 @@ -1244,7 +1244,7 @@ Sa/Sa 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ```text Wochen / Weeks 27..52 | 2026-02-22..2026-08-22 So/Su 0 4 4 0 4 4 0 4 0 0 4 4 0 0 4 0 4 0 0 0 4 4 4 1 4 4 -Mo/Mo 0 0 0 4 4 4 0 1 4 0 4 0 0 0 1 0 2 0 3 1 4 4 0 0 0 - +Mo/Mo 0 0 0 4 4 4 0 1 4 0 4 0 0 0 1 0 2 0 3 1 4 4 0 0 0 2 Di/Tu 0 0 0 3 3 4 0 0 0 0 3 4 0 3 2 0 0 0 2 0 4 4 4 0 0 - Mi/We 0 0 0 1 4 0 0 0 3 0 4 1 0 0 2 0 4 0 2 0 4 2 4 0 0 - Do/Th 0 0 0 0 0 0 0 0 0 4 0 0 3 3 3 4 2 0 0 0 4 4 0 0 4 - @@ -1409,8 +1409,8 @@ Die festen Slots halten den Phasenvergleich auch bei fehlenden oder spaeter erga ```text Scale: 0..100x -80 lines/day [#################...] 85.0x -125 lines/day [###########.........] 54.4x +80 lines/day [#################...] 84.1x +125 lines/day [###########.........] 53.8x ``` Die Faktoren vergleichen sichtbare Lieferdichte mit den dokumentierten manuellen Referenzen. Sie messen keine Arbeitszeit. @@ -1423,7 +1423,7 @@ Die Faktoren vergleichen sichtbare Lieferdichte mit den dokumentierten manuellen Scale: 0..10000 lines/day Experienced manual [#...................] 80 Thorsten solo [#...................] 125 -Visible repository [##############......] 6798.1 +Visible repository [#############.......] 6724.0 ``` Die gemeinsame Skala vergleicht Referenzen und sichtbare Lieferdichte. Sie schreibt die Git-Aktivitaet keiner Person oder KI pauschal zu. @@ -1432,9 +1432,9 @@ Die gemeinsame Skala vergleicht Referenzen und sichtbare Lieferdichte. Sie schre ### Textalternative / Text Alternative -DE: Das Fenster beginnt am 2025-08-24 und endet am 2026-08-16. Es enthaelt 90 aktive und 268 inaktive vergangene Tage. Peak-Tag: 2026-03-22 / 321183. Peak-Woche: 2026-03-22 / 373576. Laengste Serie: 17 Tage (2026-07-10..2026-07-26). +DE: Das Fenster beginnt am 2025-08-24 und endet am 2026-08-17. Es enthaelt 91 aktive und 268 inaktive vergangene Tage. Peak-Tag: 2026-03-22 / 321183. Peak-Woche: 2026-03-22 / 373576. Laengste Serie: 17 Tage (2026-07-10..2026-07-26). -*EN: The window starts on 2025-08-24 and ends on 2026-08-16. It contains 90 active and 268 inactive elapsed days. Peak day: 2026-03-22 / 321183. Peak week: 2026-03-22 / 373576. Longest streak: 17 days (2026-07-10..2026-07-26).* +*EN: The window starts on 2025-08-24 and ends on 2026-08-17. It contains 91 active and 268 inactive elapsed days. Peak day: 2026-03-22 / 321183. Peak week: 2026-03-22 / 373576. Longest streak: 17 days (2026-07-10..2026-07-26).* | Monat / Month | Geaenderte Textzeilen / Changed text lines | |---|---:| @@ -1449,6 +1449,6 @@ DE: Das Fenster beginnt am 2025-08-24 und endet am 2026-08-16. Es enthaelt 90 ak | 2026-05 | 273853 | | 2026-06 | 42176 | | 2026-07 | 205615 | -| 2026-08 | 23729 | +| 2026-08 | 23828 |