- ARCHITECTURE.md: Kanban markert [~] i Lag 2, authentik_oidc lagt til erfaringslogg - docs/features/kanban.md: Full rewrite med implementert status, API-docs, datamodell Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2.7 KiB
2.7 KiB
Feature: Kanban (Planlegging)
Filsti: docs/features/kanban.md
1. Konsept
Et drag-and-drop Kanban-brett for planlegging. Primært brukt til episodeplanlegging i Redaksjonen, men også mottaker av AI-genererte action points fra Møterommet.
2. Status
PG-adapter ferdig og deployet (mars 2025). SpacetimeDB-sync gjenstår.
Implementert
- Migrering
0002_kanban.sql:kanban_boards,kanban_columns,kanban_cards - Kanban-kort er nodes i kunnskapsgrafen (arver workspace-isolasjon)
- REAL-posisjon for midpoint-innsetting (
(1.0 + 2.0) / 2 = 1.5) — ingen re-nummerering - REST API: GET brett, POST kolonne/kort, PATCH kort/flytt, DELETE kort
- PG polling-adapter (
pg.svelte.ts) med 5 sek intervall og optimistisk UI - Adapter-factory (
create.svelte.ts) — klar for SpacetimeDB-hybrid - KanbanBlock.svelte: drag & drop, redigeringsmodal (tittel/beskrivelse/slett), enkelt kort-input som legger til i første kolonne
Gjenstår
- SpacetimeDB-modul + hybrid-adapter for sanntidsoppdatering
- Reposisjonering ved dra innad i kolonne (sortert rekkefølge)
- Tildeling (assignee) UI
- Fargekoder/labels på kort
- AI-integrasjon: møtereferent → nye kort
3. Datamodell
kanban_boards (id FK→nodes, parent_id FK→nodes, name)
kanban_columns (id, board_id FK→kanban_boards, name, color, position REAL)
kanban_cards (id FK→nodes, column_id FK→kanban_columns, title, description, assignee_id, position REAL, created_by, created_at)
Kort og brett er nodes — all workspace-isolasjon arves automatisk via nodes.workspace_id.
4. API-endepunkter
| Metode | Sti | Beskrivelse |
|---|---|---|
| GET | /api/kanban/[boardId] |
Hent brett med kolonner og kort |
| POST | /api/kanban/[boardId]/columns |
Opprett kolonne |
| POST | /api/kanban/[boardId]/cards |
Opprett kort (oppretter node + kort) |
| PATCH | /api/kanban/[boardId]/cards/[cardId] |
Oppdater tittel/beskrivelse |
| PATCH | /api/kanban/[boardId]/cards/[cardId]/move |
Flytt kort til kolonne/posisjon |
| DELETE | /api/kanban/[boardId]/cards/[cardId] |
Slett kort (cascader fra node) |
5. Brukes av
| Konsept | Bruk |
|---|---|
| Redaksjonen | Episodeplanlegging — dra Temaer inn i Kjøreplanen |
| Møterommet | AI-referenten foreslår nye kort basert på action points |
| Foreningen Liberalistene | Styreoppgaver (Å gjøre / Pågår / Ferdig) |
6. Instruks for Claude Code
- Bruk native HTML5 Drag and Drop i SvelteKit, unngå tunge biblioteker.
- PG-adapter er autoritativ inntil SpacetimeDB-sync er på plass.
- Alt er workspace-scopet via node-modellen.
- Sjekk
docs/erfaringer/adapter_moenster.mdfor hybrid-strategi.