Files
sufw-taetigkeitsnachweise/.github/copilot-plan.md
T

4.1 KiB

SAB Taetigkeitsnachweise Generator - Implementierungsplan

Ziel

Monatliche SAB-Taetigkeitsnachweise automatisiert erzeugen auf Basis von:

  • PS_PW.xlsx (monatliche gefoerderte Stunden je Projektanteil)
  • Stellenbeschreibungen.xlsx (Stammdaten je Mitarbeiter/Funktion)
  • Taetigkeitsnachweis Stellenfoerderung.xlsx (Ausgabevorlage)

Scope

  • Nur Verzeichnisse unter Tool verwenden.
  • Eingaben nur aus input.
  • Vorlage nur aus template.
  • Ausgaben nur nach output.

Annahmen

  • PS_PW.xlsx und Stellenbeschreibungen.xlsx enthalten jeweils Tabelle1.
  • Monatsmarker in PS_PW.xlsx stehen in Zeile 2 im Format ab 01.MM.YYYY.
  • Name ist primaerer Match-Schluessel zwischen beiden Quellen.
  • Template hat genau ein Quellblatt, das geklont wird.

Architektur

  • cli: Kommandozeilen-Einstieg und Orchestrierung
  • parser: Einlesen und Normalisierung der beiden Quelldateien
  • matcher: Zuordnung und Disambiguierung
  • validator: Source- und Business-Validierung
  • writer: Template-Klonen, Zellen befuellen, Speichern
  • model: gemeinsame Datentypen
  • util: Konvertierung, Datums-/Text-Helfer, Logging

Reihenfolge (Task-Flow)

  1. T1 Plan finalisieren
  2. T2 Konfiguration definieren
  3. T3 Projektgeruest anlegen
  4. T4 Abhaengigkeiten einrichten
  5. T5 Parser PS_PW
  6. T6 Parser Stellenbeschreibungen
  7. T7 Foerderquote berechnen
  8. T8 Matching-Engine
  9. T9 Source-Validierung
  10. T10 Business-Validierung
  11. T11 Template-Verarbeitung
  12. T12 Dateinamen + Persistenz
  13. T13 CLI Pipeline
  14. T14 Vorschau + Bestaetigung
  15. T15 Smoke-Test
  16. T16 Fachtests
  17. T17 Ergebnisabnahme

Definition of Done je Task

T1 Plan final

  • DoD: Dieser Plan ist vollstaendig, nachvollziehbar und in Reihenfolge mit klarer DoD-Liste dokumentiert.

T2 config.json

  • DoD: Alle Pfade, Dateinamen, Sheetnamen, Spalten, Zielzellen und Dateinamenregeln sind extern konfigurierbar.

T3 Projektgeruest

  • DoD: Ordner-/Modulstruktur steht, zentrale Datentypen und Fehler-/Log-Basis sind vorhanden.

T4 Abhaengigkeiten

  • DoD: requirements gepflegt, lokale Installation dokumentiert, Ausfuehrung startet ohne Importfehler.

T5 Parser PS_PW

  • DoD: Monatsspalte wird eindeutig gefunden, Records sind normalisiert und Mitarbeiterkontext korrekt vererbt.

T6 Parser Stellenbeschreibungen

  • DoD: Stammdaten sauber eingelesen, Prozentwerte robust konvertiert, Mehrfacheintraege bleiben erhalten.

T7 Foerderquote

  • DoD: Formel korrekt implementiert, Grenz-/Rundungsfaelle dokumentiert und testsicher.

T8 Matching

  • DoD: Eindeutige Zuordnung pro aktivem Record oder klarer Fehlerstatus (missing/ambiguous).

T9 Source-Validierung

  • DoD: Alle Struktur- und Formatpruefungen laufen vor Verarbeitung und liefern konkrete Fehlermeldungen.

T10 Business-Validierung

  • DoD: Aktivitaet, Eindeutigkeit, Template-Regeln und Dateinamenkollisionen werden vor dem Schreiben geprueft.

T11 Template-Verarbeitung

  • DoD: Ein Quellblatt wird pro Zuordnung geklont und korrekt mit assignment-spezifischen Werten befuellt.

T12 Dateinamen/Speichern

  • DoD: Ausgabedateien folgen Muster Taetigkeitsnachweis_YYYY_MM_Vorname_Nachname.xlsx und werden konfliktfrei gespeichert.

T13 CLI

  • DoD: generate.py akzeptiert month/year, orchestriert End-to-End und liefert sinnvolle Exit-Codes.

T14 Vorschau/Bestaetigung

  • DoD: Vor Schreibzugriff wird Vorschau angezeigt; Abbruch ist ohne Dateiaenderung moeglich.

T15 Smoke-Test

  • DoD: Mindestens ein realer Monatslauf erzeugt valide Dateien in output.

T16 Fachtests

  • DoD: Abdeckung fuer Mehrfachzuordnung, fehlende Matches, ungueltige Monatsmarker und fehlende Struktur.

T17 Ergebnisabnahme

  • DoD: Pflichtfelder, Monats-/Datumswerte und Taetigkeitstexte stimmen mit Template- und Fachregeln ueberein.

Risiko- und Entscheidungslog

  • Name-Matching kann uneinheitliche Schreibweisen enthalten; ggf. Normalisierung (Whitespace/Kommas) zentral in util.
  • Prozentvergleich kann Rundungsabweichungen haben; toleranzbasierten Vergleich definieren.
  • Mehrdeutige Matches nicht still aufloesen; immer sichtbar validieren.

Start der Umsetzung

  • Aktiver Schritt: T2 (Konfiguration als naechste technische Umsetzung)