- user-settings/settings.json: new codeGeneration.instruction forces agents to read PROJECT_CONTEXT.md on session start and write history log on session end - git-templates/.github/copilot-instructions.md: prominent MANDATORY section at top of file (highest priority, cannot be ignored) - .github/copilot-instructions.md: same protocol for this repo itself
5 KiB
5 KiB
GitHub Copilot – Project Instructions
⚡ Agent Session Protocol (MANDATORY)
Diese Sektion hat höchste Priorität und darf nicht ignoriert werden.
Session START – Bevor du irgendetwas tust:
- Lies
history/summary/PROJECT_CONTEXT.md(falls vorhanden) - Verstehe den aktuellen Projektzustand bevor du anfängst
Session END – Nach jeder bedeutenden Aufgabe (auch ohne explizite Aufforderung):
- Erstelle
history/prompts/YYYY-MM-DD_kurztitel.mdmit vollständigem Log der Session - Aktualisiere
history/summary/PROJECT_CONTEXT.mdmit dem neuen Projektstand - Stage beide Dateien:
git add history/
Kein Bypass. Kein Vergessen. Kein "mache ich beim nächsten Mal". Die History ist das Gedächtnis des Projekts.
Project
Stack
- Language:
- Framework:
- Database:
- Infrastructure:
Architecture
- Pattern (MVC / Hexagonal / Event-driven / ...):
- Key constraints:
- ADR location:
docs/adr/
Project Structure Conventions
Persistent Data (/data/)
- Alle persistenten Service-Daten gehören in
/data/<service-name>/(Repo-Root) - Nie Daten-Dateien committen –
/data/ist vollständig gitignored - Einen Unterordner pro Service (z.B.
data/postgres/,data/redis/,data/uploads/) - Erforderliche Unterordner in
docs/ADMIN.mddokumentieren
Agent History (/history/)
- Vollständige Konversationen →
history/prompts/YYYY-MM-DD_beschreibung.md(committed – vollständige History bleibt erhalten) - Komprimierter Kontext →
history/summary/PROJECT_CONTEXT.md(committed, immer aktuell halten!) - Beim Start einer neuen Session:
history/summary/PROJECT_CONTEXT.mdzuerst lesen - Am Ende jeder Session: beide Dateien committen
- Copilot Chat:
/history→ History loggen + Summary aktualisieren
Documentation (3 Zielgruppen – alle 3 müssen existieren)
| Datei | Zielgruppe | Inhalt |
|---|---|---|
docs/USER.md |
Endnutzer | Features, How-To, FAQ – keine technischen Details |
docs/ADMIN.md |
Administratoren | Deployment, Konfiguration, Monitoring, Backup |
docs/MAINTAINER.md |
Entwickler | Architektur, ADRs, Konventionen, Erweiterung |
Regel: Jede bedeutende Änderung muss mindestens eine dieser Dateien aktualisieren. Der pre-commit Hook prüft dies automatisch.
Conventions
- Branch naming:
feat/<ticket>-description,fix/<ticket>-description - Commit format: Conventional Commits (
feat|fix|chore|docs|refactor|test|ci) - File structure:
- Naming:
Engineering Process
Before starting any task
- Clarify requirements – user story + acceptance criteria vorhanden?
- Impact analysis – welche bestehenden Komponenten sind betroffen?
- Architecture check – passt die geplante Lösung zur bestehenden Architektur?
- Test strategy – wie wird das Feature getestet?
Definition of Ready (DoR)
A task can only be started when:
- Acceptance criteria are clear and unambiguous
- Non-functional requirements defined (performance, security, scalability)
- Architectural approach agreed upon
- No unresolved external blockers
Definition of Done (DoD)
A task is only done when ALL of the following are true:
- Code implements the acceptance criteria
- Unit tests written and passing
- Integration tests (where applicable) passing
- No linter / type errors
- No secrets or credentials in code
- OWASP Top 10 reviewed
- Relevant documentation updated:
docs/USER.mdand/ordocs/ADMIN.mdand/ordocs/MAINTAINER.md - Alle 3 Zielgruppen-Dokumente vorhanden (
docs/USER.md,docs/ADMIN.md,docs/MAINTAINER.md) - Persistente Daten liegen ausschließlich in
/data/<service>/(nie woanders) history/summary/PROJECT_CONTEXT.mdaktualisiert- Commit message follows Conventional Commits
- No dead code, no TODOs left behind (or tracked as issues)
- pre-commit Quality Gate bestanden (oder Bypass bewusst begründet)
Testing Strategy
- Framework:
- Coverage target: ≥ 80% (critical paths: 100%)
- Test pyramid: unit > integration > e2e
- Test location:
tests/mirroring source structure
Security
- No secrets in code or config files – use environment variables
- Validate all inputs at system boundaries
- Principle of least privilege for all permissions
- Dependency vulnerabilities: check before adding new deps
Documentation Standards
- Code comments: explain WHY, not WHAT
- Public APIs: always documented
- Architecture decisions: write ADR in
docs/adr/(template:docs/adr/000-template.md) - CHANGELOG.md: update with every release
- 3-Zielgruppen-Regel: USER.md (Endnutzer) + ADMIN.md (Ops) + MAINTAINER.md (Dev) – immer alle 3 pflegen
Non-Functional Requirements
- Response time:
- Availability:
- Data retention: