This commit introduces a comprehensive README.md for the dev_session.py script. The documentation covers the purpose, features, usage, installation, and important notes for the Notion-integrated development session manager. It also clarifies the Git branch naming convention suggested by the tool. The creation of this README.md fulfills task [2f388f42].
119 lines
6.1 KiB
Markdown
119 lines
6.1 KiB
Markdown
# `dev_session.py` - Notion Development Session Manager
|
|
|
|
## Übersicht
|
|
|
|
`dev_session.py` ist ein interaktives Kommandozeilen-Tool (CLI), das entwickelt wurde, um den Entwicklungs-Workflow durch die Integration mit Notion's "Ultimate Tasks"- und "Projects"-Datenbanken zu optimieren. Es ermöglicht Entwicklern, eine Entwicklungssitzung zu starten, indem sie ein Projekt und einen Task aus Notion auswählen, den Task-Status automatisch aktualisieren und einen formatierten Kontext für die Gemini CLI generieren.
|
|
|
|
## Funktionen
|
|
|
|
* **Interaktive Projekt- und Task-Auswahl:** Wähle Projekte und Tasks direkt aus deinen Notion-Datenbanken.
|
|
* **Automatisches Status-Update:** Der Status des ausgewählten Tasks wird automatisch auf 'Doing' (oder den ersten verfügbaren Status in neuen Projekten) gesetzt, um deinen Fortschritt in Notion widerzuspiegeln.
|
|
* **Task-Erstellung:** Erstelle neue Tasks direkt über das CLI im Kontext des ausgewählten Projekts.
|
|
* **Dynamische Status-Erkennung:** Fragt Notion API nach verfügbaren Status-Optionen ab, um Kompatibilität mit verschiedenen Notion-Templates zu gewährleisten.
|
|
* **Gemini CLI Kontext-Generierung:** Erzeugt einen strukturierten Kontext-Prompt, der alle relevanten Informationen (Projekt, Task, Task-ID, vorgeschlagener Git-Branch-Name) für die Gemini CLI enthält.
|
|
* **Vorgeschlagene Git Branch-Benennung:** Erstellt einen konsistenten Git-Branch-Namen basierend auf der Task-ID und dem Task-Titel.
|
|
|
|
## Voraussetzungen
|
|
|
|
* Python 3.6+
|
|
* `requests` Bibliothek (`pip install requests`)
|
|
* Ein Notion Integration Token mit Zugriff auf deine "Projects [UT]"- und "Tasks [UT]"-Datenbanken.
|
|
|
|
## Installation und Einrichtung
|
|
|
|
1. **Notion API Key:**
|
|
* Stelle sicher, dass du einen Notion Integration Token hast.
|
|
* Speichere deinen Token in einer Umgebungsvariablen namens `NOTION_API_KEY`. Alternativ fragt das Skript beim Start danach.
|
|
* Gewähre der Integration Zugriff auf deine "Projects [UT]"- und "Tasks [UT]"-Datenbanken in Notion.
|
|
|
|
2. **Abhängigkeiten installieren:**
|
|
```bash
|
|
pip install requests
|
|
```
|
|
|
|
## Nutzung
|
|
|
|
1. **Führe das Skript aus:**
|
|
```bash
|
|
python3 dev_session.py
|
|
```
|
|
|
|
2. **Notion API Key eingeben:** Wenn `NOTION_API_KEY` nicht als Umgebungsvariable gesetzt ist, wirst du zur Eingabe aufgefordert.
|
|
|
|
3. **Projekt auswählen:** Wähle dein gewünschtes Projekt aus der angezeigten Liste der Notion-Projekte.
|
|
|
|
4. **Task auswählen oder erstellen:**
|
|
* Wenn Tasks für das Projekt vorhanden sind, wähle einen aus.
|
|
* Wenn keine Tasks vorhanden sind oder du einen neuen erstellen möchtest, wähle die Option zum "Neuen Task für dieses Projekt erstellen". Du wirst dann nach dem Task-Titel gefragt.
|
|
|
|
5. **Git Branch erstellen (manuell):** Das Skript gibt einen `git checkout -b`-Befehl aus, den du kopieren und in deinem Terminal ausführen solltest, um einen neuen Branch für den Task zu erstellen.
|
|
|
|
6. **Gemini CLI Kontext:** Das Skript gibt einen formatierten Textblock aus, den du direkt in die Gemini CLI kopieren und einfügen kannst, um die KI mit dem relevanten Kontext zu versorgen.
|
|
|
|
### Beispiel-Interaktion (gekürzt)
|
|
|
|
```
|
|
Starte interaktive Entwicklungs-Session...
|
|
Bitte gib deinen Notion API Key ein (Eingabe wird nicht angezeigt): ****************
|
|
Suche nach Datenbank 'Projects [UT]' in Notion...
|
|
Datenbank 'Projects [UT]' gefunden mit ID: <PROJEKTE_DB_ID>
|
|
|
|
An welchem Projekt möchtest du arbeiten?
|
|
[1] My Awesome Project
|
|
[2] Sync Engine
|
|
[...]
|
|
Bitte wähle eine Nummer: 2
|
|
|
|
Projekt 'Sync Engine' ausgewählt.
|
|
|
|
--- Lade Tasks für das ausgewählte Projekt... ---
|
|
Keine offenen Tasks für dieses Projekt gefunden.
|
|
[1] Neuen Task für dieses Projekt erstellen
|
|
Bitte wähle eine Nummer: 1
|
|
|
|
--- Neuen Task erstellen ---
|
|
Bitte gib den Titel für den neuen Task ein: Create README.md for dev_session.py
|
|
✅ Task 'Create README.md for dev_session.py' erfolgreich erstellt.
|
|
|
|
Task 'Create README.md for dev_session.py' ausgewählt.
|
|
|
|
--- Aktualisiere Status von Task '<TASK_ID>' auf 'Doing'... ---
|
|
✅ Task-Status erfolgreich auf 'Doing' aktualisiert.
|
|
|
|
------------------------------------------------------------------
|
|
✅ Setup abgeschlossen!
|
|
|
|
Du solltest jetzt den Git-Branch manuell erstellen und auschecken:
|
|
git checkout -b feature/task-2f388f42-create-readmemd-for-devsessionpy
|
|
|
|
Der Notion-Task 'Create README.md for dev_session.py' wurde auf 'Doing' gesetzt.
|
|
---
|
|
|
|
Kontext für die Gemini CLI (bitte kopieren und einfügen):
|
|
|
|
Ich arbeite jetzt am Projekt 'Sync Engine'. Der Fokus liegt auf dem Task 'Create README.md for dev_session.py'.
|
|
|
|
Die relevanten Dateien für dieses Projekt sind wahrscheinlich:
|
|
- Die primäre Projektdokumentation: @readme.md
|
|
- Die spezifische Dokumentation für dieses Modul: @readme.md (falls vorhanden)
|
|
- Der Haupt-Code befindet sich wahrscheinlich in: @dev_session.py
|
|
|
|
Mein Ziel ist es, den Task 'Create README.md for dev_session.py' umzusetzen. Alle Commits für diesen Task sollen die Kennung `[2f388f42]` enthalten.
|
|
------------------------------------------------------------------
|
|
```
|
|
|
|
## Git Branch Benennungs-Konvention
|
|
|
|
Das Skript schlägt automatisch einen Git-Branch-Namen vor, der dem Muster `feature/task-{kurze_task_id}-{task_titel_slug}` folgt.
|
|
* `feature/task-`: Ein Präfix, das den Branch-Typ und die Beziehung zu einem Notion-Task anzeigt.
|
|
* `{kurze_task_id}`: Die ersten 8 Zeichen der Notion Task ID, für eine eindeutige Referenz.
|
|
* `{task_titel_slug}`: Eine "Slugified"-Version des Task-Titels (Kleinbuchstaben, Leerzeichen durch Bindestriche ersetzt, Sonderzeichen entfernt).
|
|
|
|
**Beispiel:** `feature/task-2f388f42-create-readmemd-for-devsessionpy`
|
|
|
|
## Wichtige Hinweise
|
|
|
|
* Stelle sicher, dass deine Notion-Datenbanken die Property `Status` mit mindestens einer Statusoption haben.
|
|
* Die `project_to_path_map` in `generate_cli_context` muss bei Bedarf erweitert werden, wenn neue Projekte mit spezifischen Basis-Pfaden hinzukommen. Das Projekt "Sync Engine" wird als Root-Level-Projekt ohne Unterverzeichnis behandelt.
|
|
* Die vom Skript generierten Pfade (`@company-explorer/backend/README.md`) sind Platzhalter und müssen manuell auf die tatsächlichen Dateien in deinem Projekt verweisen. Das `@dev_session.py` ist der korrekte Pfad für diese Datei.
|