Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
4a086fc
spec: add wave1 functional hardening
hindermath May 30, 2026
a166ee3
ci: harden DocFX Playwright install
hindermath May 31, 2026
946ad62
ci: use Playwright headless shell for DocFX
hindermath May 31, 2026
5681179
ci: use system Chrome for DocFX a11y
hindermath May 31, 2026
9a32191
ci: stabilize DocFX a11y smoke
hindermath May 31, 2026
1b46a3b
docs: clarify wave1 hardening spec
hindermath May 31, 2026
a582cdf
docs: plan wave1 functional hardening
hindermath May 31, 2026
c6be5b7
docs: add wave1 hardening plan checklist
hindermath May 31, 2026
f2952da
test: serialize history-dependent controls tests
hindermath Jun 1, 2026
237fce9
docs: expand 014 plan checklist guidance
hindermath Jun 2, 2026
1d0d6a0
docs: remediate 014 plan quality checklist
hindermath Jun 2, 2026
3dfb218
chore: update agent parity governance to v0.2.0
hindermath Jun 3, 2026
c0d1316
docs: add 014 implementation tasks
hindermath Jun 4, 2026
58f1b39
docs: align statistics x-y diagrams
hindermath Jun 4, 2026
7948090
docs: remediate 014 analyze findings
hindermath Jun 4, 2026
1acff62
docs: add wave hardening guidance intakes
hindermath Jun 4, 2026
9e30b6b
feat: update architecture governance preset to v0.3.0
hindermath Jun 11, 2026
248b3ab
chore: update governance presets
hindermath Jun 11, 2026
dfce123
docs: finalize 014 analyze remediation
hindermath Jun 13, 2026
acfa1a5
chore: rename Lastenheft to Lastenheft_Wave1-Functional-Hardening.014…
hindermath Jun 13, 2026
dfde46b
feat: implement wave1 functional hardening
hindermath Jun 13, 2026
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
17 changes: 16 additions & 1 deletion .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ jobs:
build:
name: Build DocFX site
runs-on: ubuntu-latest
timeout-minutes: 30

Comment on lines 18 to 24
Comment on lines 18 to 24
permissions:
contents: read
Expand Down Expand Up @@ -58,9 +59,23 @@ jobs:
working-directory: tests/web-a11y
run: npm ci

- name: Cache Playwright browsers
uses: actions/cache@v4
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('tests/web-a11y/package-lock.json') }}
restore-keys: |
${{ runner.os }}-playwright-

- name: Install Playwright system dependencies
working-directory: tests/web-a11y
timeout-minutes: 10
run: npx playwright install-deps chromium

- name: Install Playwright Chromium
working-directory: tests/web-a11y
run: npx playwright install --with-deps chromium
timeout-minutes: 15
run: npx playwright install chromium --only-shell

Comment on lines +64 to 66
- name: Run DocFX accessibility smoke tests
working-directory: tests/web-a11y
Expand Down
2 changes: 1 addition & 1 deletion .specify/feature.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"feature_directory": "specs/013-wave2-visual-component-remediation"
"feature_directory": "specs/014-wave1-functional-hardening"
}
6 changes: 3 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<Version>1.13.13.46</Version>
<AssemblyVersion>1.13.13.46</AssemblyVersion>
<FileVersion>1.13.13.46</FileVersion>
<Version>1.14.3.46</Version>
<AssemblyVersion>1.14.3.46</AssemblyVersion>
<FileVersion>1.14.3.46</FileVersion>
<!-- Fehlende XML-Docs sind in Release ein Build-Fehler (Constitution §III). -->
<!-- Missing XML documentation is a build error in Release (Constitution §III). -->
<WarningsAsErrors Condition="'$(Configuration)' == 'Release'">CS1591</WarningsAsErrors>
Expand Down
5 changes: 4 additions & 1 deletion docs/project-statistics.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Projektstatistik TuiVision

Stand: 2026-05-30 (aktualisiert inklusive Branch `011-port-wave2-examples`, Wave-2-Beispielen, Lastenheft fuer interaktive Wave-2-Demos, DocFX-Generated-Output-Cleanup, zweistufigem Beispielwellen-Liefermuster, Pflichtenheft-Abnahme fuer interaktive Beispielreife, 011-Review-Cleanup vor 012, Spec-Kit-Intake-Aufbereitung fuer 012, GitHub-Pages-Artefaktworkflow fuer DocFX, PR-#26-Review-Cleanup, `/speckit-specify`, `/speckit-clarify`, `/speckit-plan`, `/speckit-checklist`, `/speckit-tasks`, PR-#27-Review-Cleanup, `/speckit-analyze`-Remediation fuer 012, Wave-1-Folge-Lastenhefte, Wave-1-Visual-Component-Remediation-Umbenennung, Wave-3-/Wave-4-Visual-Component-Porting-Intakes, Lastenheft-Specify-Readiness-Harmonisierung, C#-Dev-Kit-Language-Service-Cache-Ignore, Claude-Code-Review-Remediation fuer 012-Tasks, `/speckit-implement` fuer `012-interactive-wave2-demos`, Lastenheft fuer Wave-2-Visual-Component-Remediation, `/speckit-specify`, zwei `/speckit-clarify`-Laeufe, `/speckit-plan`, gezieltem `security-governance`-v0.4.0-Plan-Nachlauf, `/speckit-checklist`, `/speckit-tasks`, `/speckit-analyze`-Remediation und `/speckit-implement` fuer `013-wave2-visual-component-remediation`, PR-#29-Copilot-Review-Cleanup, AI-SBOM-Governance-Preset-Rollout sowie allgemeiner historischer `tv203s`-Quellenreferenzregel)
Stand: 2026-05-31 (aktualisiert inklusive Branch `011-port-wave2-examples`, Wave-2-Beispielen, Lastenheft fuer interaktive Wave-2-Demos, DocFX-Generated-Output-Cleanup, zweistufigem Beispielwellen-Liefermuster, Pflichtenheft-Abnahme fuer interaktive Beispielreife, 011-Review-Cleanup vor 012, Spec-Kit-Intake-Aufbereitung fuer 012, GitHub-Pages-Artefaktworkflow fuer DocFX, PR-#26-Review-Cleanup, `/speckit-specify`, `/speckit-clarify`, `/speckit-plan`, `/speckit-checklist`, `/speckit-tasks`, PR-#27-Review-Cleanup, `/speckit-analyze`-Remediation fuer 012, Wave-1-Folge-Lastenhefte, Wave-1-Visual-Component-Remediation-Umbenennung, Wave-3-/Wave-4-Visual-Component-Porting-Intakes, Lastenheft-Specify-Readiness-Harmonisierung, C#-Dev-Kit-Language-Service-Cache-Ignore, Claude-Code-Review-Remediation fuer 012-Tasks, `/speckit-implement` fuer `012-interactive-wave2-demos`, Lastenheft fuer Wave-2-Visual-Component-Remediation, `/speckit-specify`, zwei `/speckit-clarify`-Laeufe, `/speckit-plan`, gezieltem `security-governance`-v0.4.0-Plan-Nachlauf, `/speckit-checklist`, `/speckit-tasks`, `/speckit-analyze`-Remediation und `/speckit-implement` fuer `013-wave2-visual-component-remediation`, PR-#29-Copilot-Review-Cleanup, `/speckit-specify` fuer `014-wave1-functional-hardening`, PR-#30-DocFX-Playwright-Install-Hardening, AI-SBOM-Governance-Preset-Rollout sowie allgemeiner historischer `tv203s`-Quellenreferenzregel)

## Zweck und Pflege

Expand Down Expand Up @@ -577,6 +577,9 @@ fortgeschrieben.
| 2026-05-30 | `/speckit-analyze`-Remediation fuer `013-wave2-visual-component-remediation` | Die vier relevanten Analyze-Funde wurden als gezielte Artefaktkorrektur eingepflegt: Der Lastenheft-Rename ist nun der letzte Polish-Task, die US4-Dokumentationsaufgaben verlangen German-first/English-second CEFR-B2-Inhalte, DocFX/web-a11y ist wegen der geplanten Guide-/README-Aenderungen deterministischer als erwarteter Nachweis formuliert, und der Acceptance-Contract vermeidet den platzhalterartigen `examples/<Example>`-Befehl. Validierung: 94/94 Tasks bleiben sequenziell, der Contract enthaelt keinen `examples/<Example>`-Platzhalter mehr, CEFR-B2 ist in den konkreten US4-Tasks sichtbar, `git diff --check` sauber; keine Build-/Testausfuehrung, weil nur Spec-Kit-Planungsdokumentation und Statistik geaendert wurden. Netto-Aenderungsvolumen vor diesem Ledger-Eintrag: `0` Produktionscode-Zeilen, `0` Testcode-Zeilen, Spec-Kit-Aufgaben-/Contract-Remediation ohne Nettozeilenaenderung plus diese Statistikfortschreibung. Sichtbares Arbeitsfenster: kurze Analyze-Remediation am 2026-05-30, als blended repository speedup und nicht als Stopwatch-Messung zu lesen. |
| 2026-05-30 | `/speckit-implement` fuer `013-wave2-visual-component-remediation` | Die sichtbare Wave-2-Komponenten-Remediation wurde umgesetzt: alle elf Wave-2-Beispiele besitzen jetzt eine echte sichtbare Hauptkomponente oder einen stabilen visuellen Runtime-Zustand, eine echte `TStatusLine`, einen tastaturerreichbaren `Help -> Description`-Pfad und primaere App-Loop-Smokes mit konkreter Zustandsassertion, View-Baum-Nachweis sowie Buffer-/Cell-Snapshot. Neu ist der gemeinsame Beispiel-Helfer `examples/Shared/Wave2Runtime.cs`; aktualisiert wurden die elf Beispiel-Apps, Example-Smokes, Guides, README, `Pflichtenheft.md`, Architektur-/Security-Nachweise, Agent-Guidance und `pr-evidence.md`. Zwischenvalidierung vor den finalen Gate-Kommandos: fokussierte Wave-2-Smokes `47/47` gruen und Matrix-Smokes `4/4` gruen. Netto-Aenderungsvolumen vor diesem Ledger-Eintrag: ca. `+980` Produktions-/Beispielcode-Zeilen, `+585` Testzeilen und ca. `+540` Dokumentations-/Evidence-/Governance-Zeilen; `Directory.Build.props` steht nach T094 und der finalen regulaeren Commit-Ausrichtung branchkonform auf `1.13.12.46`. Konservative Manualreferenz fuer rund `2105` fachliche Netto-Zeilen: `26,3` Tage (ca. `205,2` Stunden); Thorsten-Solo-Referenz: `16,8` Tage (ca. `131,4` Stunden); sichtbares Arbeitsfenster: eine Agentensitzung am 2026-05-30, als blended repository speedup und nicht als Stopwatch-Messung zu lesen. |
| 2026-05-30 | PR-#29-Copilot-Review-Cleanup fuer `013-wave2-visual-component-remediation` | Die zwei Copilot-Inline-Kommentare zu `scripts/check-homogeneity.sh` wurden geschlossen: Der JSON-Modus schreibt fuer `GIT-SCOPE-001` und `GIT-SCOPE-002` keine separaten `printf`-Objekte mehr; beide Warnungen laufen nur noch ueber `emit_result` und die finale Summary. `Directory.Build.props` steht fuer den dreizehnten 013-Branch-Commit auf `1.13.13.46`. Validierung: `./scripts/check-homogeneity.sh --json --dry-run .` erzeugt auf stdout genau ein JSON-Summary-Objekt; stderr meldet weiterhin die bereits vorhandenen fehlenden `hg_scan`-Helfer, weil `scripts/lib/hg-*.sh` in diesem Repo-Snapshot nicht vorhanden ist. `git diff --check` sauber. Netto-Aenderungsvolumen: kleine Script-Remediation plus Evidence-, Statistik- und Versionsmetadatenpflege; sichtbares Arbeitsfenster: kurze PR-Review-Nacharbeit am 2026-05-30, als blended repository speedup und nicht als Stopwatch-Messung zu lesen. |
| 2026-05-31 | `/speckit-specify` fuer `014-wave1-functional-hardening` | Aus `Lastenheft_Wave1-Functional-Hardening.md` wurde die Feature-Spezifikation fuer den Wave-1-Qualitaetsnachlauf erzeugt. Die Spec begrenzt den Scope auf `Desklogo`, `MsgCls`, `Tutorial` mit `tvguid01` bis `tvguid16` und `Videomode`, verlangt historische Read-only-Quellenreviews, eine Quellen-/C#-/Test-/Abweichungs-Matrix, fachlich relevante Smoke-Nachweise statt reiner Startup-/Textpraesenz, Helper-Klassifikation als `SetupOnly`, `PrimaryProof`, `SupplementalProof` oder `LegacyOrTemporary` und German-first/English-second Evidence. Wave-1-Visual-Component-Remediation, Wave 2 bis 4, breite Framework-Revisionen und interaktive Demo-Politur bleiben ausdruecklich ausser Scope; der Pflichtenheft-Marker auf Wave 3 bleibt offen. `Directory.Build.props` wurde fuer den ersten 014-Branch-Commit auf `1.14.1.46` ausgerichtet. Validierung: Spec-Kit-Branch-Hook fuer `014`, `.specify/feature.json` gueltig, keine offenen Spec-Platzhalter oder Clarification-Marker, Requirements-Checklist `PASS`, `git diff --check` sauber; keine Build-/Testausfuehrung, weil nur Specify-, Statistik- und Versionsmetadaten geaendert wurden. Netto-Aenderungsvolumen vor diesem Ledger-Eintrag: `0` Produktionscode-Zeilen, `0` Testcode-Zeilen, `+328` Spec-Kit-Dokumentationszeilen plus diese Statistikfortschreibung; `Directory.Build.props` ist reine Versionsmetadatenpflege. Konservative Manualreferenz fuer die neue Spezifikation und Checkliste: 80 Zeilen/Tag = `4,1` Tage (ca. `32,0` Stunden); Thorsten-Solo-Referenz: 125 Zeilen/Tag = `2,6` Tage (ca. `20,5` Stunden); sichtbares Arbeitsfenster: eine Agentensitzung am 2026-05-31, als blended repository speedup und nicht als Stopwatch-Messung zu lesen. |
| 2026-05-31 | DocFX-Pages-Workflow gegen Playwright-Install-Haenger gehaertet | Der fehlgeschlagene PR-#30-Check wurde als Infrastrukturhaenger im Schritt `Install Playwright Chromium` eingeordnet: DocFX selbst war gruen, der Chromium-Download erreichte 100 %, danach lief der Job bis zum GitHub-Actions-Abbruch nach rund sechs Stunden. `.github/workflows/pages.yml` begrenzt den Build-Job nun auf 30 Minuten, trennt Playwright-Systemabhaengigkeiten und Browserinstallation, setzt Schritt-Timeouts von 10 beziehungsweise 15 Minuten und cached `~/.cache/ms-playwright` ueber den `package-lock.json`-Hash. `Directory.Build.props` wurde fuer den zweiten 014-Branch-Commit auf `1.14.2.46` ausgerichtet. Validierung: YAML-Syntaxcheck, `git diff --check` sauber; keine Build-/Testausfuehrung, weil nur Workflow-, Statistik- und Versionsmetadaten geaendert wurden. |
| 2026-05-31 | PR-#30-DocFX-Playwright-Headless-Shell-Fix | Der zweite PR-#30-Run bestaetigte, dass der neue Timeout greift, der volle Playwright-Chromium-Install aber nach dem 100-%-Download weiter haengen kann. Der Pages-Workflow installiert fuer die headless DocFX-A11Y-Smokes deshalb nur noch die Chromium Headless Shell mit `npx playwright install chromium --only-shell`; das passt zur vorhandenen `playwright.config.ts`, weil kein Browser-`channel` gesetzt ist und die Tests headless laufen. `Directory.Build.props` wurde fuer den dritten 014-Branch-Commit auf `1.14.3.46` ausgerichtet. Validierung: YAML-Syntaxcheck, Playwright-Dry-Run fuer `chromium --only-shell`, realer `npx playwright install chromium --only-shell`, `npm test` in `tests/web-a11y/` mit 2/2 gruen, `git diff --check`; keine Dotnet-Build-/Testausfuehrung, weil nur Workflow-, Statistik- und Versionsmetadaten geaendert wurden. |

## Gesamtstatistik

Expand Down
44 changes: 44 additions & 0 deletions specs/014-wave1-functional-hardening/checklists/requirements.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# Specification Quality Checklist: Wave 1 Functional Hardening

**Purpose**: Validate specification completeness and quality before proceeding
to planning
**Created**: 2026-05-31
**Feature**: [spec.md](../spec.md)

## Content Quality

- [x] No implementation details beyond project/domain constraints,
historical-source anchors, and constitution-required governance facts
- [x] Focused on user value and business needs
- [x] Written for non-technical stakeholders where the feature scope allows it
- [x] All mandatory sections completed

## Requirement Completeness

- [x] No [NEEDS CLARIFICATION] markers remain
- [x] Requirements are testable and unambiguous
- [x] Success criteria are measurable
- [x] Success criteria are technology-agnostic except where repository
governance explicitly requires named evidence surfaces
- [x] All acceptance scenarios are defined
- [x] Edge cases are identified
- [x] Scope is clearly bounded
- [x] Dependencies and assumptions identified

## Feature Readiness

- [x] All functional requirements have clear acceptance criteria
- [x] User scenarios cover primary flows
- [x] Feature meets measurable outcomes defined in Success Criteria
- [x] No implementation details leak into specification beyond accepted
repository artefact names, historical source references, helper
classification labels, and governance evidence obligations

## Notes

- Validation pass completed on 2026-05-31 after generating
`specs/014-wave1-functional-hardening/spec.md`.
- The specification intentionally names Wave-1 examples, historical source
files, proof classification labels, and governance evidence obligations
because these are binding repository and Lastenheft constraints rather than
optional implementation design.
Loading
Loading