From 82ee710b4731cf084c52dd5757b45c4e261d7f03 Mon Sep 17 00:00:00 2001 From: vegard Date: Sun, 15 Mar 2026 15:50:49 +0100 Subject: [PATCH] Flytt ARCHITECTURE.md til docs/, CLAUDE.md som eneste startdokument MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ARCHITECTURE.md → docs/arkitektur.md - CLAUDE.md: ny arbeidsflyt-seksjon (commit/push fritt, deploy krever ok) - CLAUDE.md: dokumentasjonstre med alle docs/-referanser - Alle interne referanser oppdatert (6 filer) Co-Authored-By: Claude Opus 4.6 --- CLAUDE.md | 29 +++++++++++++++++---------- ARCHITECTURE.md => docs/arkitektur.md | 0 docs/concepts/valgomaten.md | 2 +- docs/features/lydmeldinger.md | 2 +- docs/infra/ai_gateway.md | 2 +- docs/setup/migration_safety.md | 2 +- docs/setup/produksjon.md | 2 +- scripts/collect-docs.sh | 2 +- 8 files changed, 24 insertions(+), 17 deletions(-) rename ARCHITECTURE.md => docs/arkitektur.md (100%) diff --git a/CLAUDE.md b/CLAUDE.md index e2a4cda..8e6ec97 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,11 +4,19 @@ Sidelinja er et redaksjonelt operativsystem og kunnskapsgraf for podcast-produksjon. Self-hosted på Hetzner VPS med full datakontroll. -## Nøkkelfiler -- `ARCHITECTURE.md` — Overordnet arkitektur, stack, datamodell og infrastruktur -- `docs/setup/produksjon.md` — Steg-for-steg oppsett av Hetzner VPS fra scratch -- `docs/setup/lokal.md` — Steg-for-steg oppsett av lokalt WSL2 utviklingsmiljø -- `docs/setup/migration_safety.md` — Sjekkliste for PostgreSQL-migrasjoner (RLS-verifisering) +## Arbeidsflyt +- **Commit og push:** Bruk egen vurdering. Commit når arbeidet er logisk komplett, push til Forgejo når det gir mening. Ingen grunn til å spørre — det er trygt og reverserbart. +- **Deploy til produksjon:** Krever alltid eksplisitt godkjenning fra Vegard. Deploy = SSH til server + pull + docker compose up. Aldri gjør dette uten å spørre først. +- **Diskusjon:** Forklar og diskuter før arkitekturendringer eller uvanlige valg. For implementering innenfor eksisterende spec — bare kjør. + +## Dokumentasjonstre +CLAUDE.md er eneste startdokument. Alt annet ligger under `docs/`: + +- `docs/arkitektur.md` — Overordnet arkitektur, stack, datamodell, infrastruktur, bygge-rekkefølge +- `docs/setup/` — Oppsett og drift: + - `produksjon.md` — Steg-for-steg oppsett av Hetzner VPS fra scratch + - `lokal.md` — Steg-for-steg oppsett av lokalt WSL2 utviklingsmiljø + - `migration_safety.md` — Sjekkliste for PostgreSQL-migrasjoner (RLS-verifisering) - `docs/concepts/` — Brukeropplevelser (integrerte produkter): - `studioet.md` — Podcast-innspilling (LiveKit + Live AI + Aha-markør) - `møterommet.md` — Interne møter (LiveKit + AI-referent + Whiteboard) @@ -19,20 +27,20 @@ Self-hosted på Hetzner VPS med full datakontroll. - `den_asynkrone_gjesten.md` — Asynkrone gjestebidrag via tidsbegrenset lenke - `docs/features/` — Tekniske byggeklosser (brukes av flere konsepter): - `kunnskapsgraf_og_relasjoner.md` — Nodes & Edges datamodell i PostgreSQL - - `chat.md` — Trådet chat med mentions og autocomplete (SpacetimeDB) + - `meldingsboks.md` — Universell diskusjonsprimitiv (erstatter chat/kanban-kort/kalender/faktoider/notater) + - `chat.md` — Trådet chat med mentions og autocomplete - `kanban.md` — Drag-and-drop planlegging + - `kalender.md` — Redaksjonell kalender med abonnementsmodell og ICS-eksport + - `notater.md` — Scratchpad/notatblokk med auto-save og debounce - `whiteboard.md` — Sanntids frihåndstavle (møterom, chat, solo) - `live_transkripsjon.md` — Whisper-pipeline (felles motor for studio/møter/fabrikk) - `live_ai.md` — Live AI: faktoid-oppslag (studio) + referent (møter) - - `visuell_graf.md` — Interaktiv graf-visning (D3.js/Vis.js) + - `visuell_graf.md` — Interaktiv graf-visning - `ai_research_klipper.md` — AI-drevet research-inntak til kunnskapsgrafen - `lydmeldinger.md` — Lydmeldinger, diktering og tale-til-tekst - `podcast_statistikk.md` — IAB-kompatibel lytterstatistikk fra Caddy-logger - `kunnskaps_bridge.md` — Cross-workspace discovery via vector embeddings - `prompt_lab.md` — Internt verktøy for testing og deploy av LLM-prompts - - `kalender.md` — Redaksjonell kalender med abonnementsmodell og ICS-eksport - - `notater.md` — Scratchpad/notatblokk med auto-save og debounce - - `meldingsboks.md` — Universell diskusjonsprimitiv (erstatter chat/kanban-kort/kalender/faktoider/notater) - `docs/infra/` — Infrastruktur (ikke brukersynlig): - `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber - `synkronisering.md` — PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodell @@ -61,7 +69,6 @@ Self-hosted på Hetzner VPS med full datakontroll. - `server` — app-kode, infra, arkitektur: `ssh://git@git.sidelinja.org:222/sidelinja/server.git` - `sidelinja` — podcastinnhold (transkripsjoner, show notes, research): `ssh://git@git.sidelinja.org:222/sidelinja/sidelinja.git` - **Domener:** sidelinja.org, auth.sidelinja.org (Authentik), git.sidelinja.org (Forgejo), vegard.info -- **Status:** Lag A komplett + SvelteKit deployet (PG-adapter, Authentik OIDC, workspace-modell). SpacetimeDB kun lokalt. ## Viktige regler - Aldri eksponere databaseporter mot internett (kun port 80/443 via Caddy) diff --git a/ARCHITECTURE.md b/docs/arkitektur.md similarity index 100% rename from ARCHITECTURE.md rename to docs/arkitektur.md diff --git a/docs/concepts/valgomaten.md b/docs/concepts/valgomaten.md index ef35dc0..88249e6 100644 --- a/docs/concepts/valgomaten.md +++ b/docs/concepts/valgomaten.md @@ -79,7 +79,7 @@ Av kostnads- og ytelseshensyn skjer all AI-bruk asynkront i backend via jobbkøe | **Rust Worker (Sync)** | Synkroniserer batcher av svar fra SpacetimeDB over til PostgreSQL-lagringen via standard sync-mekanismen (se `synkronisering.md`). | | **Rust Worker (AI)** | Kjører `valgomat_generate_profile` og `valgomat_moderation` via jobbkøen. | -## 8. Dataklassifisering (ref. ARCHITECTURE.md 2.2) +## 8. Dataklassifisering (ref. docs/arkitektur.md 2.2) | Data | Kategori | Detaljer | |---|---|---| diff --git a/docs/features/lydmeldinger.md b/docs/features/lydmeldinger.md index 0664b0e..6289716 100644 --- a/docs/features/lydmeldinger.md +++ b/docs/features/lydmeldinger.md @@ -112,7 +112,7 @@ Ved workspace-opprettelse opprettes en privat channel per bruker for usorterte l } ``` -## 5. Dataklassifisering (ref. ARCHITECTURE.md 2.2) +## 5. Dataklassifisering (ref. docs/arkitektur.md 2.2) | Data | Kategori | Detaljer | |---|---|---| diff --git a/docs/infra/ai_gateway.md b/docs/infra/ai_gateway.md index d917086..a99bad1 100644 --- a/docs/infra/ai_gateway.md +++ b/docs/infra/ai_gateway.md @@ -181,7 +181,7 @@ Jobbkøen støtter automatisk modell-nedgradering ved kostnadsmål: 2. Ved budsjett-nær: fall tilbake til `sidelinja/rutine` (Gemini gratis) 3. Ved budsjett-nådd: sett jobb i `paused`-status med varsel -## 7. Dataklassifisering (ref. ARCHITECTURE.md 2.2) +## 7. Dataklassifisering (ref. docs/arkitektur.md 2.2) | Data | Kategori | Detaljer | |---|---|---| diff --git a/docs/setup/migration_safety.md b/docs/setup/migration_safety.md index f477915..ddfc395 100644 --- a/docs/setup/migration_safety.md +++ b/docs/setup/migration_safety.md @@ -145,4 +145,4 @@ WHERE c.column_name = 'workspace_id' ``` ## Automatisering -Disse sjekkene kjøres automatisk i migrasjonstestene (se `ARCHITECTURE.md` §10.2). Manuell kjøring er kun nødvendig ved prod-migrasjoner til automatiserte tester er på plass. **RLS Leak Hunter bør prioriteres som første CI-steg — den beskytter mot den mest alvorlige feilkategorien (cross-workspace datalekkasje).** +Disse sjekkene kjøres automatisk i migrasjonstestene (se `docs/arkitektur.md` §10.2). Manuell kjøring er kun nødvendig ved prod-migrasjoner til automatiserte tester er på plass. **RLS Leak Hunter bør prioriteres som første CI-steg — den beskytter mot den mest alvorlige feilkategorien (cross-workspace datalekkasje).** diff --git a/docs/setup/produksjon.md b/docs/setup/produksjon.md index 1708d49..70c6d4e 100644 --- a/docs/setup/produksjon.md +++ b/docs/setup/produksjon.md @@ -255,7 +255,7 @@ Forgejo konfigureres med Authentik som OAuth2-kilde: ## 11. Backup-strategi -Se `ARCHITECTURE.md` seksjon 2.2 for full dataklassifisering. Kun kategori 1 (kritisk) og Forgejo-data backupes. +Se `docs/arkitektur.md` seksjon 2.2 for full dataklassifisering. Kun kategori 1 (kritisk) og Forgejo-data backupes. ### 11.1 PostgreSQL (daglig dump, 03:00) ```bash diff --git a/scripts/collect-docs.sh b/scripts/collect-docs.sh index 306b45c..c181a2b 100755 --- a/scripts/collect-docs.sh +++ b/scripts/collect-docs.sh @@ -11,7 +11,7 @@ OUT="$SCRIPT_DIR/server_context.md" files=( # Overordnet - "$ROOT/ARCHITECTURE.md" + "$ROOT/docs/arkitektur.md" "$ROOT/CLAUDE.md" # Konsepter (brukeropplevelser)