Skip to content

Commit 57a12f0

Browse files
committed
feat: agents instructions extended
1 parent 6978943 commit 57a12f0

1 file changed

Lines changed: 196 additions & 1 deletion

File tree

AGENTS.md

Lines changed: 196 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,4 +48,199 @@ Diese Richtlinie gilt für alle AI-Agenten, die Code oder Systemkonfigurationen
4848
- [ ] Gesamte Testsuite (`pytest`) ohne Fehler durchgelaufen
4949
- [ ] Änderungen mit den Projekt‑Konventionen konsistent
5050

51-
Diese Richtlinie gewährleistet, dass Code‑Änderungen nicht isoliert, sondern im Kontext des gesamten Projekts betrachtet werden und die langfristige Wartbarkeit sowie die Zuverlässigkeit der Software erhalten bleibt.
51+
Diese Richtlinie gewährleistet, dass Code‑Änderungen nicht isoliert, sondern im Kontext des gesamten Projekts betrachtet werden und die langfristige Wartbarkeit sowie die Zuverlässigkeit der Software erhalten bleibt.
52+
53+
## Architecture-First Development Process
54+
55+
Dieser Abschnitt definiert den verbindlichen Arbeitsablauf für die Entwicklung neuer Funktionen im PySignalduino-Projekt. Der zentrale Grundsatz lautet: **Jede neue Funktion beginnt mit einer vorausschauenden Erweiterung der Architekturdokumentation.** Diese dokumentierte Architektur dient als die einzige verbindliche Spezifikation und der primäre Leitfaden für alle nachfolgenden Implementierungsschritte.
56+
57+
### Grundprinzipien
58+
59+
1. **Architektur vor Code:** Design-Entscheidungen müssen zuerst in der Dokumentation reflektiert und abgestimmt werden, bevor jeglicher Code geschrieben wird.
60+
2. **Dokumentation als Single Source of Truth:** Die Architekturdokumentation ist die autoritative Referenz für alle Implementierungsentscheidungen.
61+
3. **Traceability:** Jede Code-Änderung muss auf eine spezifische Architekturentscheidung zurückführbar sein.
62+
4. **Compliance-Checks:** Implementierungen müssen regelmäßig auf Konformität mit der dokumentierten Architektur überprüft werden.
63+
64+
### Vier-Phasen-Prozess
65+
66+
#### Phase 1: Architekturdefinition mit verbindlichem Architekturproposal
67+
- **Ziel:** Erstellung eines vollständigen Architekturproposals, das alle Design-Entscheidungen dokumentiert
68+
- **Aktivitäten:**
69+
- Anforderungsanalyse und Scope-Definition
70+
- Erstellung von Architekturdiagrammen (Mermaid, PlantUML)
71+
- Definition von Schnittstellen und Datenmodellen
72+
- Risikoanalyse und Alternativenbewertung
73+
- Erstellung eines Architecture Decision Record (ADR)
74+
- **Deliverables:**
75+
- Architekturproposal im AsciiDoc-Format
76+
- Mermaid-Diagramme für Komponenten- und Sequenzabläufe
77+
- ADR im `docs/architecture/decisions/` Verzeichnis
78+
- Review-Protokoll mit Genehmigung durch Architecture Owner
79+
80+
#### Phase 2: Implementierungsplanung basierend auf genehmigter Architektur
81+
- **Ziel:** Detaillierte Planung der Implementierungsschritte unter strikter Einhaltung der Architektur
82+
- **Aktivitäten:**
83+
- Aufteilung in konkrete Arbeitspakete (Tasks)
84+
- Definition von Akzeptanzkriterien für jede Komponente
85+
- Planung von Teststrategien (Unit, Integration, System)
86+
- Ressourcen- und Zeitplanung
87+
- Erstellung von Mockups/Prototypen für kritische Pfade
88+
- **Deliverables:**
89+
- Implementierungsplan mit Task-Breakdown
90+
- Testplan mit Coverage-Zielen
91+
- Prototypen für Risikokomponenten
92+
- Genehmigung durch Feature Developer und Reviewer
93+
94+
#### Phase 3: Implementierung mit strikter Konformität zur Architektur
95+
- **Ziel:** Code-Entwicklung unter ständiger Referenzierung der Architekturdokumentation
96+
- **Aktivitäten:**
97+
- Iterative Entwicklung gemäß Implementierungsplan
98+
- Regelmäßige Architektur-Compliance-Checks
99+
- Dokumentation von Abweichungen und deren Begründung
100+
- Kontinuierliche Integration und Code-Reviews
101+
- Anpassung der Dokumentation bei notwendigen Änderungen
102+
- **Deliverables:**
103+
- Vollständiger implementierter Code
104+
- Aktualisierte Dokumentation (Inline-Kommentare, Docstrings)
105+
- Testsuite mit ausreichender Coverage
106+
- Compliance-Report gegenüber Architekturproposal
107+
108+
#### Phase 4: Validation & Integration mit Architektur-Compliance-Checks
109+
- **Ziel:** Validierung der Implementierung gegen Architekturanforderungen und Integration in das Gesamtsystem
110+
- **Aktivitäten:**
111+
- Ausführung aller Tests (Unit, Integration, System)
112+
- Architektur-Compliance-Review durch Architecture Owner
113+
- Performance- und Sicherheitsaudits
114+
- Integrationstests mit bestehenden Komponenten
115+
- Endgültige Dokumentationsprüfung
116+
- **Deliverables:**
117+
- Testberichte und Coverage-Report
118+
- Compliance-Zertifizierung durch Architecture Owner
119+
- Finalisierte Dokumentation
120+
- Merge-Request mit vollständiger Nachweisbarkeit
121+
122+
### Rollen und Verantwortlichkeiten
123+
124+
#### Architecture Owner
125+
- **Verantwortlichkeiten:**
126+
- Genehmigung von Architekturproposals
127+
- Durchführung von Architektur-Reviews
128+
- Compliance-Checks während der Implementierung
129+
- Finale Freigabe für Integration
130+
- **Befugnisse:**
131+
- Veto-Recht bei Architekturverstößen
132+
- Anforderung von Design-Änderungen
133+
- Genehmigung von ADRs
134+
135+
#### Feature Developer
136+
- **Verantwortlichkeiten:**
137+
- Erstellung von Architekturproposals
138+
- Implementierung gemäß genehmigter Architektur
139+
- Dokumentation von Design-Entscheidungen
140+
- Durchführung von Selbst-Checks auf Compliance
141+
- **Befugnisse:**
142+
- Vorschlag von Architekturalternativen
143+
- Beantragung von Architektur-Änderungen via ADR
144+
- Code-Reviews für Teammitglieder
145+
146+
#### Reviewer
147+
- **Verantwortlichkeiten:**
148+
- Code-Review mit Fokus auf Architekturkonformität
149+
- Prüfung der Testabdeckung
150+
- Validierung der Dokumentationsaktualität
151+
- Sicherstellung der Wartbarkeit
152+
- **Befugnisse:**
153+
- Blockierung von Merge-Requests bei Compliance-Problemen
154+
- Anforderung zusätzlicher Tests
155+
- Empfehlung für Architecture Owner
156+
157+
### Architecture Documentation Standards
158+
159+
#### AsciiDoc-Templates
160+
Alle Architekturdokumente müssen den standardisierten Templates folgen:
161+
- **Architekturproposal:** `docs/architecture/templates/proposal_template.adoc`
162+
- **ADR (Architecture Decision Record):** `docs/architecture/templates/adr_template.adoc`
163+
- **Komponentenbeschreibung:** `docs/architecture/templates/component_template.adoc`
164+
165+
#### Mermaid-Diagramme
166+
- **Verpflichtende Diagrammtypen:**
167+
- Komponentendiagramm (Component Diagram)
168+
- Sequenzdiagramm (Sequence Diagram)
169+
- Zustandsdiagramm (State Diagram) bei komplexen Zustandsmaschinen
170+
- **Einbettung:** Direkte Einbettung in AsciiDoc-Dokumente via `[mermaid]`-Block
171+
- **Versionierung:** Diagramme müssen im `docs/architecture/diagrams/` Verzeichnis als `.mmd`-Dateien gespeichert werden
172+
173+
#### ADRs (Architecture Decision Records)
174+
- **Format:** Lightweight ADR gemäß MADR-Standard
175+
- **Speicherort:** `docs/architecture/decisions/`
176+
- **Nummerierung:** Sequentiell (ADR-001, ADR-002, ...)
177+
- **Inhalt:** Kontext, Entscheidung, Konsequenzen, Alternativen
178+
179+
### Erweiterte Checkliste vor dem Commit
180+
181+
Diese Checkliste erweitert die bestehende Checkliste um Architektur-spezifische Prüfpunkte:
182+
183+
#### Architektur-Compliance
184+
- [ ] Architekturproposal liegt vor und ist genehmigt
185+
- [ ] ADR für alle wesentlichen Design-Entscheidungen erstellt
186+
- [ ] Implementierung folgt den spezifizierten Schnittstellen
187+
- [ ] Keine Verletzung von Architekturprinzipien (z.B. Single Responsibility)
188+
- [ ] Datenmodelle entsprechen den definierten Schemata
189+
190+
#### Dokumentation
191+
- [ ] Architekturdokumentation aktualisiert (AsciiDoc-Dateien)
192+
- [ ] Mermaid-Diagramme auf Aktualität geprüft
193+
- [ ] Inline-Kommentare und Docstrings angepasst
194+
- [ ] API-Referenzen konsistent mit Implementierung
195+
- [ ] README.md und andere Markdown-Dateien geprüft
196+
197+
#### Tests
198+
- [ ] Bestehende Tests angepasst und erfolgreich ausgeführt
199+
- [ ] Neue Tests für geänderte/neue Logik erstellt
200+
- [ ] Architektur-spezifische Integrationstests vorhanden
201+
- [ ] Test-Coverage mindestens 80% für neue Komponenten
202+
- [ ] Gesamte Testsuite (`pytest`) ohne Fehler durchgelaufen
203+
204+
#### Code-Qualität
205+
- [ ] Code-Review durch Reviewer durchgeführt
206+
- [ ] Architektur-Compliance-Check durch Architecture Owner
207+
- [ ] Linting (`ruff`, `black`) ohne Fehler
208+
- [ ] Type-Checks (`mypy`) erfolgreich
209+
- [ ] Änderungen mit den Projekt-Konventionen konsistent
210+
211+
### Prozessvisualisierung
212+
213+
```mermaid
214+
flowchart TD
215+
A[Neue Funktionsanforderung] --> B[Phase 1: Architekturdefinition]
216+
B --> C{Architekturproposal<br/>genehmigt?}
217+
C -->|Ja| D[Phase 2: Implementierungsplanung]
218+
C -->|Nein| B
219+
D --> E[Phase 3: Implementierung]
220+
E --> F[Regelmäßige Compliance-Checks]
221+
F --> G{Compliance<br/>verletzt?}
222+
G -->|Ja| H[ADR für Änderung<br/>oder Rückführung]
223+
H --> E
224+
G -->|Nein| I[Phase 4: Validation & Integration]
225+
I --> J{Alle Tests bestanden<br/>und Compliance ok?}
226+
J -->|Ja| K[Merge & Deployment]
227+
J -->|Nein| I
228+
229+
subgraph "Architektur-Governance"
230+
L[Architecture Owner Review]
231+
M[ADR Management]
232+
N[Compliance Monitoring]
233+
end
234+
235+
B --> L
236+
D --> L
237+
I --> L
238+
H --> M
239+
F --> N
240+
```
241+
242+
### Verbindlichkeit
243+
244+
Dieser Architecture-First Development Process ist für **alle** neuen Funktionen und wesentlichen Änderungen verbindlich. Ausnahmen sind nur bei kritischen Bugfixes erlaubt und müssen durch einen Emergency-ADR dokumentiert werden. Jede Abweichung vom Prozess muss vom Architecture Owner genehmigt werden.
245+
246+
Die Einhaltung dieses Prozesses gewährleistet, dass Design-Entscheidungen bewusst getroffen, dokumentiert und nachvollziehbar sind, was die langfristige Wartbarkeit, Skalierbarkeit und Qualität des PySignalduino-Projekts sicherstellt.

0 commit comments

Comments
 (0)