Ctrl K
ComunidadGuías…

CONTRIBUTING.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# Beitragen zu PBP

Danke, dass du PBP verbessern möchtest! Hier findest du alles, was du dafür wissen musst.

## Schnellstart

```bash
# Repository klonen
git clone https://github.com/MadGapun/PBP.git
cd PBP

# Python-Umgebung einrichten
python -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[all,dev]"
playwright install chromium

# Tests ausführen
python -m pytest tests/ -q

# Dashboard starten
python start_dashboard.py   # → http://localhost:8200

# Frontend entwickeln (Hot Reload)
cd frontend
pnpm install
pnpm run dev                # → http://localhost:5173
```

## Wie du beitragen kannst

### Bugs melden

Nutze das [Bug-Template](https://github.com/MadGapun/PBP/issues/new?template=bug_report.yml). Je mehr Details (Version, Betriebssystem, Schritte zum Reproduzieren), desto schneller können wir helfen.

**Issues sind öffentlich.** Schreibe keine Namen von Firmen, bei denen du dich beworben hast, keine Namen von Personen, keine E-Mail-Adressen oder Telefonnummern hinein — auch nicht in Log-Auszügen und Screenshots. Ersetze sie durch Platzhalter (`<FIRMA>`, `<PERSON>`). Ein Issue, das so etwas enthält, lässt sich nur durch Löschen bereinigen.

### Features vorschlagen

Nutze das [Feature-Template](https://github.com/MadGapun/PBP/issues/new?template=feature_request.yml). Beschreibe das Problem, das du lösen möchtest — nicht nur die gewünschte Lösung.

### Code beitragen

1. **Fork** das Repository
2. Erstelle einen **Branch** von `main`: `git checkout main && git checkout -b feature/mein-feature`
   (betrifft der Fehler auch die stabile Version, siehe unten)
3. Entwickle und teste lokal
4. Stelle sicher, dass alle Tests grün sind: `python -m pytest tests/ -q`
5. Erstelle einen **Pull Request** gegen `main`

### Branch-Strategie

```
main            → Laufende Entwicklung = die Beta-Linie (1.8.0-beta.N, "Pre-release" auf GitHub)
hotfix/v1.7.N   → Die stabile Linie (1.7.x, "Latest" auf GitHub)
feature/*       → Einzelne Features/Bugfixes, werden nach main gemergt
```

- **Stabile Releases** (z.B. `v1.7.148`) entstehen auf einem Zweig `hotfix/v1.7.N`, der vom Tag
  der vorigen stabilen Version abzweigt, und werden dort getaggt → GitHub "Latest Release"
- **Beta-Releases** (z.B. `v1.8.0-beta.15`) werden auf `main` getaggt → GitHub "Pre-release". Solange ein großer Pull Request
  noch nicht gemergt ist, wird auf dessen Zweig getaggt (so `v1.8.0-beta.16` auf `feature/v18-firmen-1080`).
- **Ein Fehler, der auch die stabile Version betrifft**, gehört zuerst in die 1.7-Linie
  (`hotfix/…`) und danach per Rückführung nach `main` — nicht nur in die Beta, die kaum jemand
  nutzt. Gib im Pull Request an, ob der Fehler die stabile Version betrifft.

### Tipp für die Zusammenarbeit mit Claude/Codex

Claude (und andere KI-Assistenten) brauchen manchmal explizite, wiederholte Anweisungen — besonders bei komplexeren Aufgaben. Wenn etwas nicht beim ersten Mal klappt: Nochmal klar sagen, was genau erwartet wird. Das ist kein Fehler, sondern Teil des Workflows.

## Konventionen

### Code-Stil

- **Python:** Keine strikten Linter-Regeln, aber sauberer, lesbarer Code
- **Deutsche UI:** Alle Texte, Tooltips und Fehlermeldungen auf Deutsch
- **Docstrings:** Für neue Tools und Services erwünscht

### Commit-Messages

```
feat: Kurze Beschreibung     # Neues Feature
fix: Kurze Beschreibung      # Bugfix
docs: Kurze Beschreibung     # Dokumentation
refactor: Kurze Beschreibung # Refactoring ohne Funktionsänderung
```

### Tests

- Neue Features sollten Tests haben
- Tests liegen in `tests/`
- Ausführen: `python -m pytest tests/ -q`
- Browser-Tests brauchen Playwright: `playwright install chromium`

### Projektstruktur

```
src/bewerbungs_assistent/
├── tools/          ← MCP-Tools, nach Themen in Modulen
├── services/       ← Service-Layer
├── job_scraper/    ← Jobportal-Scraper
├── database.py     ← SQLite Schema
├── dashboard.py    ← FastAPI + REST-API
└── server.py       ← MCP-Server (Composition Root)

frontend/           ← React 19 + Vite + Tailwind
tests/              ← pytest Test-Suite
```

## Fragen?

Erstelle ein [Issue](https://github.com/MadGapun/PBP/issues) — wir antworten auf Deutsch und Englisch.

## Lizenz

Mit deinem Beitrag stimmst du zu, dass er unter der [MIT-Lizenz](LICENSE) veröffentlicht wird.