Files
Brancheneinstufung2/README_dev_session.md

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+
  • 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:

    pip install requests
    

Nutzung

  1. Führe das Skript aus:

    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.
  • Der Readme Path wird dynamisch aus dem in Notion ausgewählten Projekt geladen. Falls in Notion kein spezifischer Pfad hinterlegt ist, wird standardmäßig readme.md verwendet. Dies eliminiert die Notwendigkeit einer manuellen project_to_path_map im Skript.