Task-Priorisierung Skill
Analysiert PROJEKT.md und berechnet Priority-Scores für alle Tasks basierend auf Dependencies, Effort und Known Issues.
Unterschied zu /run-next-tasks
| Feature | /run-next-tasks |
/prioritize-tasks |
|---|---|---|
| Dependency-Resolution | ✅ | ✅ |
| Ready/Blocked Kategorisierung | ✅ | ✅ |
| Priority Scoring | ❌ | ✅ |
| Sortierung nach Score | ❌ | ✅ |
| Known Issues Integration | ❌ | ✅ |
| Neue Task-Vorschläge | ❌ | ✅ |
Empfehlung: /prioritize-tasks zuerst aufrufen (Analyse + Sortierung), dann /run-next-tasks (Execution).
Funktionalität
1. Parse Phase
Input: docs/PROJEKT.md
Process:
- Task-Tabelle extrahieren (7-Column Schema)
- Known Issues / Blockers Section extrahieren
- Dependencies in Graph-Struktur konvertieren
2. Analyze Phase (Think Harder)
Scoring-Faktoren:
| Faktor | Gewicht | Rationale |
|---|---|---|
| Effort (invertiert) | 3x | Quick Wins zuerst |
| Dependencies (invertiert) | 1x | Unabhängige Tasks flexibler |
| Unblocks (positiv) | 0.5x | Freischaltende Tasks wichtiger |
| Known Issues (negativ) | -2x | Blockierte Tasks deprioritisieren |
Formel:
Priority-Score =
(1 / effort_hours) * 3 # Kleine Tasks zuerst
+ (1 / (dependencies_count + 1)) # Weniger Dependencies besser
+ (unblocks_count * 0.5) # Tasks die andere freischalten
- (known_issue_impact * 2) # Known Issues reduzieren Score
3. Integrate Phase
Known Issues Strategie:
- Falls Issue in bestehenden Task passt → Integration-Empfehlung
- Falls SoC sinnvoller → Neuen Task vorschlagen (TASK-NNN+1)
4. Sort Phase
- Tasks nach Priority-Score absteigend sortieren
- Ergebnis: Optimale Execution-Reihenfolge
5. Output Phase
Generiert Report mit:
- Sortierte Task-Liste mit Scores
- Empfehlung: Top 3 Tasks für nächste Session
- Geblockte Tasks mit Begründung
- Vorgeschlagene neue Tasks (aus Known Issues)
Usage
Standard-Aufruf (Analyse only)
/prioritize-tasks
Mit PROJEKT.md Aktualisierung
/prioritize-tasks --reorder
Sortiert Task-Tabelle in PROJEKT.md nach Priority-Score um.
Spezifischer Pfad
/prioritize-tasks /path/to/PROJEKT.md
Output-Format
## Task-Priorität Analyse
### 🚀 Empfohlene Reihenfolge
| Rang | Task | Score | Begründung |
|------|------|-------|------------|
| 1 | TASK-024 | 8.5 | Low effort (2h), keine Dependencies |
| 2 | TASK-023 | 6.2 | Medium effort, unblocks TASK-025 |
| 3 | TASK-025 | 4.1 | High effort, wartet auf TASK-023 |
### ⚠️ Geblockt durch Known Issues
| Task | Known Issue | Empfehlung |
|------|-------------|------------|
| TASK-026 | API-Key fehlt | User-Input erforderlich |
### 💡 Vorgeschlagene neue Tasks (aus Known Issues)
- **TASK-027:** API-Credentials Setup (abgeleitet aus Known Issue #2)
### 📊 Scoring-Details
| Task | Effort | Deps | Unblocks | Issues | Score |
|------|--------|------|----------|--------|-------|
| TASK-024 | 2h | 0 | 1 | 0 | 8.5 |
| TASK-023 | 4h | 1 | 2 | 0 | 6.2 |
...
Integration mit anderen Skills
| Skill | Integration |
|---|---|
/run-next-tasks |
Nutzt Priorität für Execution-Reihenfolge (optional) |
/session-refresh |
Kann /prioritize-tasks vor Restructuring aufrufen |
/task-orchestrator |
Priorisierte Reihenfolge für Execution |
Scripts
prioritize.sh
Hauptscript: ${CLAUDE_PLUGIN_ROOT}/skills/prioritize-tasks/scripts/prioritize.sh
prioritize.sh [PROJEKT_PATH] [--reorder]
Funktionen:
extract_task_table(): Parse Task-Tabelle (wiederverwendet von task-scheduler)extract_known_issues(): Parse Known Issues Sectionbuild_dependency_graph(): Adjacency-Liste für Dependenciescalculate_unblocks(): Welche Tasks werden durch diesen Task freigeschaltet?calculate_priority_score(): Scoring-Algorithmussort_by_priority(): Sortierung via jqgenerate_report(): Output-Formatierungreorder_projekt_md(): PROJEKT.md Task-Tabelle updaten (optional)
Error Handling
Keine Tasks gefunden
Resolution: Hinweis auf PROJEKT.md Format + Link zu 7-Column Schema
Known Issues Section fehlt
Resolution: Graceful degradation - Scoring ohne Known Issues Impact
Ungültiger Effort-Wert
Resolution: Default zu 4h (Medium), Warnung ausgeben
Zirkuläre Dependencies
Resolution: Warnung, betroffene Tasks mit Score 0
Configuration
Environment Variables
PRIORITIZE_EFFORT_WEIGHT=3 # Gewicht für Effort-Faktor
PRIORITIZE_DEPS_WEIGHT=1 # Gewicht für Dependency-Faktor
PRIORITIZE_UNBLOCKS_WEIGHT=0.5 # Gewicht für Unblocks-Faktor
PRIORITIZE_ISSUES_WEIGHT=2 # Gewicht für Known Issues (negativ)
Known Issues Section Format (in PROJEKT.md)
Unterstützte Formate:
## Known Issues / Blockers
- **Issue 1:** Beschreibung (Affects: TASK-001, TASK-002)
- **Issue 2:** Beschreibung ohne Task-Referenz
oder:
### Known Issues
| # | Issue | Betroffene Tasks | Status |
|---|-------|------------------|--------|
| 1 | API-Key fehlt | TASK-026 | Open |
Effort-Parsing
| Input | Parsed Hours |
|---|---|
1h |
1 |
2h |
2 |
4h |
4 |
1d |
8 |
2d |
16 |
3d+ |
24 |
| (leer/invalid) | 4 (default) |
Execution Instructions for Claude
Wenn dieser Skill getriggert wird (/prioritize-tasks), führe folgende Schritte aus:
Schritt 1: Script ausführen
${CLAUDE_PLUGIN_ROOT}/skills/prioritize-tasks/scripts/prioritize.sh [PROJEKT_PATH]
Das Script gibt einen vollständigen Report aus mit:
- Kritischer Pfad (Tasks die andere freischalten)
- Empfohlene Reihenfolge (sortiert nach Score)
- Known Issues Impact
- Scoring-Details
- JSON-Block mit sortierten UUIDs
Schritt 2: Report dem User zeigen
Präsentiere den Report dem User. Erkläre kurz:
- Warum diese Reihenfolge empfohlen wird
- Welche Tasks auf dem kritischen Pfad liegen
- Ob Known Issues die Priorisierung beeinflussen
Schritt 3: User fragen (WICHTIG!)
Nutze AskUserQuestion Tool:
Soll ich die Task-Tabelle in PROJEKT.md entsprechend dieser Reihenfolge umsortieren?
- Ja, sortiere um
- Nein, nur anzeigen
Schritt 4: Bei "Ja" - PROJEKT.md aktualisieren
Wenn User "Ja" wählt:
- Extrahiere aus dem JSON-Block die
sorted_uuidsListe - Lese aktuelle PROJEKT.md
- Finde die Task-Tabelle(n) - erkennbar am 7-Column Header:
| UUID | Task | Status | Dependencies | Effort | Deliverable | Task-File | - Sortiere die Tabellenzeilen entsprechend der
sorted_uuidsReihenfolge:- Pending/In-Progress Tasks: Nach Score-Reihenfolge (wie in
sorted_uuids) - Completed/Cancelled Tasks: Am Ende der Tabelle
- Blocked Tasks: Nach den Pending, vor den Completed
- Pending/In-Progress Tasks: Nach Score-Reihenfolge (wie in
- Verwende
EditTool um die Tabelle zu aktualisieren - Bestätige: "✅ Task-Tabelle in PROJEKT.md wurde nach Priorität sortiert."
Sortier-Reihenfolge innerhalb der Tabelle:
1. Pending/In-Progress (nach Score absteigend)
Tie-Break: in_progress vor pending (Kontinuitaet der Arbeit)
2. Blocked (nach Score absteigend)
3. Completed/Cancelled (chronologisch oder alphabetisch)
Hinweis: Das Script realisiert den Tie-Break ueber einen Mini-Bonus (+0.01) auf den Score von in_progress-Tasks, sodass sie bei sonst identischen Bedingungen vor pending einsortiert werden.
Schritt 5: Zusammenfassung
Zeige dem User:
- Was geändert wurde (oder nicht)
- Nächster empfohlener Task: "Nächster Schritt: TASK-XXX (Score: Y.YY)"
- Optional: Link zu
/run-next-tasksfür Dependency-Check
Beispiel-Workflow
User: /prioritize-tasks
Claude:
1. Führt prioritize.sh aus
2. Zeigt Report mit kritischem Pfad und Scoring
3. Fragt: "Soll ich PROJEKT.md umsortieren?"
User: "Ja"
Claude:
4. Liest PROJEKT.md
5. Findet Task-Tabelle
6. Sortiert Zeilen nach Score
7. Speichert mit Edit-Tool
8. Bestätigt: "✅ Sortierung abgeschlossen. Nächster Task: TASK-024"
Autor: Claude Opus 4.5 Erstellt: 2026-01-23 Aktualisiert: 2026-01-23 (User-Prompt + Edit-Workflow hinzugefügt) Status: ✅ Implementiert