Files
build_webstatic/AGENTS.md
T
2026-07-11 13:43:52 +02:00

2.2 KiB

AGENTS — GCBoK.WebStaticBuilder

Guidelines für KI-Agenten, die an diesem Tool (nicht an der GCBoK-Website) arbeiten.

Wesen des Projekts

  • Eigenständiger Static-Site-Generator (C# / .NET 10, kompilierte Konsolen-App, Assembly webstatic).
  • Früher: Submodul OSS/build_webstatic innerhalb der GCBoK-Website (www/build/). Seit 2026-07 eigenständiges OSS-Tool unter /opt/GitCover/webstatic (KMU-fähig).
  • Kein Python. Einzige externe Build-Abhängigkeit: npx pagefind (Suchindex, optional).
  • Lizenz: MIT (LICENSE).

Build & Verify (kanonisch)

dotnet build -c Release                              # kompiliert src/ -> bin/Release/net10.0/webstatic.dll
dotnet bin/Release/net10.0/webstatic.dll build --env work --verbose   # Beispiel in webstatic.example/
dotnet bin/Release/net10.0/webstatic.dll serve --port 8000            # lokale Vorschau

Konventionen

  • Namespace: GCBoK.WebStaticBuilder (jede .cs in src/ deklariert ihn; Program.cs nutzt using GCBoK.WebStaticBuilder;).
  • Packages: Markdig, YamlDotNet (Versionen explizit gepinnt — CPM ist deaktiviert via <ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>).
  • Keine unversionierten PackageReference (führt zu NU1015).
  • Config-Priorität: CLI-Flags > webstatic.json > eingebaute Defaults (BuildConfig.Defaults()).
  • Pfade generisch: nie hartkodiert auf www/ — alles über Directories (aus BuildConfig.Paths relativ zum Site-Root).
  • i18n: UI-Texte über {{ i18n.<bereich>.<key> }} in Templates; Daten in i18n.json; Substitution via I18n.cs (Fallback Englisch).

Verzeichnisstruktur

plans/ (Pläne), docs/ (Anleitungen), diary/ (Dev-Tagebuch), src/ (Code), tests/ (Tests), webstatic.example/ (KMU-Vorlage), install.sh, LICENSE.

Guardrails

  • Umlaute in Prosa verwenden (ä ö ü ß), nicht ae/oe/ue.
  • § (nicht ausgeschrieben) für Gesetzesparagraphen.
  • Kein Commit ohne expliziten Wunsch. Bei Release: signierte Commits.
  • dist/, bin/, obj/, .translation-drafts/ sind gitignored.
  • Machine-Translation liefert nur Entwürfe (.translation-drafts/), nie Auto-Überschreibung.