Du bist Claude Code. Deine Aufgabe ist Task 4 von 7: Implementiere die Enabler-Blockade-Logik in index-3.html.

VORAUSSETZUNG: Task 1 und 2 müssen implementiert sein.

KONTEXT:

AUFGABEN:

  1. HILFSFUNKTION isTaskBlocked IMPLEMENTIEREN Füge folgende Funktion in den globalen JS-Bereich ein:

function isTaskBlocked(taskId) { return kanbanData.enablers.some(enabler => { const blocked = Array.isArray(enabler.blockedTaskIds) ? enabler.blockedTaskIds : (enabler.blockedTaskIds || '').toString().split(',').map(id => Number(id.trim())).filter(Boolean); return blocked.includes(Number(taskId)); }); }

function getBlockingEnablers(taskId) { return kanbanData.enablers.filter(enabler => { const blocked = Array.isArray(enabler.blockedTaskIds) ? enabler.blockedTaskIds : (enabler.blockedTaskIds || '').toString().split(',').map(id => Number(id.trim())).filter(Boolean); return blocked.includes(Number(taskId)); }); }

  1. TASK-CARD-RENDERING ERWEITERN Suche die Render-Funktion für Kanban-Task-Cards. Direkt beim Erstellen der Card:

const blocked = isTaskBlocked(task.id); if (blocked) { cardElement.classList.add('is-blocked'); const blockers = getBlockingEnablers(task.id); const blockerNames = blockers.map(e => e.title || Enabler #${e.id}).join(', '); // Badge hinzufügen (z.B. als innerHTML-Ergänzung): // <span class="kanban-badge blocker-badge">⚠ Blocked: ${blockerNames}</span> }

  1. CSS ERGÄNZEN Füge im <style>-Block von index-3.html folgende Klassen hinzu (falls nicht vorhanden):

.kanban-card.is-blocked { border-left: 3px solid #ef4444; opacity: 0.85; }

.kanban-badge.blocker-badge { background: #fef2f2; color: #dc2626; border: 1px solid #fecaca; border-radius: 4px; padding: 2px 6px; font-size: 11px; display: inline-block; margin-top: 4px; }

  1. SESSION-CARD: BLOCKIERTE STORIES KENNZEICHNEN Im Rendering der Session-Task-Liste (session-tasks-list): Für jede verknüpfte Story prüfe isTaskBlocked(task.id). Wenn true: Hänge "⚠" oder "(blocked by Enabler)" an den Eintrag. Wenn die primäre Story der Session blockiert ist: Füge der

Implementierungs-Ergebnis

Implementiert am 2026-03-27 | Agent: Claude Opus 4.6 | Datei: index.html v2.3.0