5.9 KiB
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+
requestsBibliothek (pip install requests)- Ein Notion Integration Token mit Zugriff auf deine "Projects [UT]"- und "Tasks [UT]"-Datenbanken.
Installation und Einrichtung
-
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.
-
Abhängigkeiten installieren:
pip install requests
Nutzung
-
Führe das Skript aus:
python3 dev_session.py -
Notion API Key eingeben: Wenn
NOTION_API_KEYnicht als Umgebungsvariable gesetzt ist, wirst du zur Eingabe aufgefordert. -
Projekt auswählen: Wähle dein gewünschtes Projekt aus der angezeigten Liste der Notion-Projekte.
-
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.
-
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. -
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
Statusmit mindestens einer Statusoption haben. - Der
Readme Pathwird dynamisch aus dem in Notion ausgewählten Projekt geladen. Falls in Notion kein spezifischer Pfad hinterlegt ist, wird standardmäßigreadme.mdverwendet. Dies eliminiert die Notwendigkeit einer manuellenproject_to_path_mapim Skript.