Project State — projekt-dashboard (Agent-Cockpit-Erweiterung)
Letzte Entscheidung
Agent-Cockpit Stufe 1 + 2 + 3 KOMPLETT live. P6 /cockpit-Übersichtsseite + Sidebar-Link, P7 push-state.mjs + S3-Sync mit Diff-Check + Local-Mirror nach public/api/states/, P8 <LiveCockpit /> mit SWR-Polling 5s + Page-Visibility-Pause + Sync-Indikator (grüner Pulse-Dot), P9 CloudFront-Behavior /api/states/* mit eigener Cache-Policy av-states-livesync (TTL 10s). Cloudflare Access schützt automatisch — kein zusätzliches Auth-Setup. Sub-10s Live-Updates funktionieren lokal verifiziert. Production-Endpoint propagiert in CloudFront (~5-15 min). (2026-05-21)
Nächste Frage
Stufe 3 läuft. Soll project-diagram Skill (P5 optional) jetzt noch, oder erst Marvin alles in Prod-Deploy testen + bei Bedarf später angreifen?
Decisions-Log
- 2026-05-21 — CloudFront-Cache-Policy
av-states-livesyncmitDefaultTTL=10s, MaxTTL=30s— bestehendeav-dashboard-data-shortcache(300s) wäre zu lang für 5s-Polling - 2026-05-21 — Push-Script schreibt parallel nach
s3://av-dashboard-data/api/states/UNDpublic/api/states/— Dev-Mode liest aus public/ (gleiche URL/api/states/*funktioniert lokal + prod) - 2026-05-21 —
pushedAtrauspatchen aus JSON-Body (war im Body, brach den Diff-Check via SHA256) — jetzt nur als S3-Metadata - 2026-05-21 —
--localFlag im push-state für AWS-loginlos Test - 2026-05-21 — Cloudflare Access schützt
/api/states/*automatisch — kein S3-CORS, kein zusätzliches Auth - 2026-05-21 — SyncIndicator zeigt 4 Zustände:
live(grün+Pulse),verbinde…(grau),paused(Tab hidden),sync-fehler(warn) - 2026-05-21 — Stripe-Redesign via frontend-design Skill: flache Page-Sektionen statt Mega-Karte, vertikale Phasen-Liste statt horizontaler Pfeil, Mini-Stepper als Quick-Visual
- 2026-05-21 — Phasenpfeil zweistufig:
<PhaseStepper />mini (12px Dots, kein Label) +<PhaseList />vertikal (Stripe-Rows mit Status-Label rechts in mono-num) - 2026-05-21 —
<details>-Akkordeons raus, alles flach. Hierarchie über Typo-Größen (19px / 14px / 13.5px) undlabel-caps, nicht über Boxen - 2026-05-21 —
<PhaseArrow />als eigenes SVG statt Recharts — simpler Stepper braucht keine Chart-Lib. Animation für active-Phase via SMIL<animate>(kein JS, kein Hydration-Cost) - 2026-05-21 — Vault-Links nutzen
obsidian://-URI — öffnet Files direkt in Obsidian.app. Fallback: Pfad sichtbar im title-Attribut - 2026-05-21 —
generateStaticParamsfür alle Projekte beim Build → keine Runtime-Route-Lookups, voll statisch - 2026-05-21 — Body-Parser nutzt deutsche Headings („Letzte Entscheidung”, „Nächste Frage”, „Decisions-Log”, „Offene Baustellen”). Strikt — Headings müssen exakt matchen sonst leerer String. Schema-Validierung passiert beim Pflegen, nicht beim Parsen.
- 2026-05-21 —
STALE_THRESHOLD_DAYS = 7als Modul-Konstante. Verschieben nach_meta/config-planning.mdfalls weitere Module den brauchen. - 2026-05-21 —
loadAllProjectStates()sortiert nachupdatedAt DESCfür/cockpit. Filter „nur aktive Projekte” passiert in der Route, nicht im Loader (Loader bleibt generisch). - 2026-05-21 — Rule 24 hat „geh tief”-Override + Skill-Ausnahmen (brainstorm/plan/reproduce-bug/compound) damit Deep-Dives moeglich bleiben
- 2026-05-21 — Eigenes
chat-output-disziplin.mdstattclaude-output-praeferenzen.mdzu erweitern — neue Datei ist Coding-Pipeline-spezifisch, alte bleibt generelle Praeferenz - 2026-05-21 — Live-Push via
push-state.mjsScript + S3 + SWR-Polling, kein WebSocket, kein dedizierter MCP (KISS) - 2026-05-21 — Stufe 3 (Live-Cockpit) in Scope statt geteilt — passt mit ~10-13h Aufwand auf bestehende Infra ohne neue AWS-Ressource
- 2026-05-21 —
state.mdseparates File pro Projekt, nicht in_index.mdgemerged (Frontmatter-Trennung stabil vs flüchtig) - 2026-05-21 — Markdown-Body mit
## Sektionenstatt reines YAML (human-readable für Marvin direkt im Vault) - 2026-05-21 — Schwester-Skill
project-diagramstatt customer-diagram-Mode (andere Sektionen, klarer abgegrenzt) - 2026-05-21 — Persona-Switch über CLAUDE.md Rule 24: Tech-Lead reportet an Direktor, Override-Trigger „geh tief”
Offene Baustellen
- Open Questions — alle deferred-to-implementation Fragen warten auf jeweilige Unit
- Recharts vs eigener SVG für Phasenpfeil → Unit 4
- SWR-Polling-Intervall 5s vs 10s → Unit 8 (start 5s)
- Stale-Schwelle in Tagen (7 vs 14) → Unit 4
- Kollision mit bestehenden
phase-N.md(z.B. bedrock-cost-optimize) → Pilot-Anlegen klären, state.md verlinkt nur - MCP-Wrapper für Push als Welle 2 → 3 Monate nach Go-Live re-evaluieren