Flytt ARCHITECTURE.md til docs/, CLAUDE.md som eneste startdokument
- 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 <noreply@anthropic.com>
This commit is contained in:
parent
6edd1fa091
commit
82ee710b47
8 changed files with 24 additions and 17 deletions
29
CLAUDE.md
29
CLAUDE.md
|
|
@ -4,11 +4,19 @@
|
||||||
Sidelinja er et redaksjonelt operativsystem og kunnskapsgraf for podcast-produksjon.
|
Sidelinja er et redaksjonelt operativsystem og kunnskapsgraf for podcast-produksjon.
|
||||||
Self-hosted på Hetzner VPS med full datakontroll.
|
Self-hosted på Hetzner VPS med full datakontroll.
|
||||||
|
|
||||||
## Nøkkelfiler
|
## Arbeidsflyt
|
||||||
- `ARCHITECTURE.md` — Overordnet arkitektur, stack, datamodell og infrastruktur
|
- **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.
|
||||||
- `docs/setup/produksjon.md` — Steg-for-steg oppsett av Hetzner VPS fra scratch
|
- **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.
|
||||||
- `docs/setup/lokal.md` — Steg-for-steg oppsett av lokalt WSL2 utviklingsmiljø
|
- **Diskusjon:** Forklar og diskuter før arkitekturendringer eller uvanlige valg. For implementering innenfor eksisterende spec — bare kjør.
|
||||||
- `docs/setup/migration_safety.md` — Sjekkliste for PostgreSQL-migrasjoner (RLS-verifisering)
|
|
||||||
|
## 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):
|
- `docs/concepts/` — Brukeropplevelser (integrerte produkter):
|
||||||
- `studioet.md` — Podcast-innspilling (LiveKit + Live AI + Aha-markør)
|
- `studioet.md` — Podcast-innspilling (LiveKit + Live AI + Aha-markør)
|
||||||
- `møterommet.md` — Interne møter (LiveKit + AI-referent + Whiteboard)
|
- `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
|
- `den_asynkrone_gjesten.md` — Asynkrone gjestebidrag via tidsbegrenset lenke
|
||||||
- `docs/features/` — Tekniske byggeklosser (brukes av flere konsepter):
|
- `docs/features/` — Tekniske byggeklosser (brukes av flere konsepter):
|
||||||
- `kunnskapsgraf_og_relasjoner.md` — Nodes & Edges datamodell i PostgreSQL
|
- `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
|
- `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)
|
- `whiteboard.md` — Sanntids frihåndstavle (møterom, chat, solo)
|
||||||
- `live_transkripsjon.md` — Whisper-pipeline (felles motor for studio/møter/fabrikk)
|
- `live_transkripsjon.md` — Whisper-pipeline (felles motor for studio/møter/fabrikk)
|
||||||
- `live_ai.md` — Live AI: faktoid-oppslag (studio) + referent (møter)
|
- `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
|
- `ai_research_klipper.md` — AI-drevet research-inntak til kunnskapsgrafen
|
||||||
- `lydmeldinger.md` — Lydmeldinger, diktering og tale-til-tekst
|
- `lydmeldinger.md` — Lydmeldinger, diktering og tale-til-tekst
|
||||||
- `podcast_statistikk.md` — IAB-kompatibel lytterstatistikk fra Caddy-logger
|
- `podcast_statistikk.md` — IAB-kompatibel lytterstatistikk fra Caddy-logger
|
||||||
- `kunnskaps_bridge.md` — Cross-workspace discovery via vector embeddings
|
- `kunnskaps_bridge.md` — Cross-workspace discovery via vector embeddings
|
||||||
- `prompt_lab.md` — Internt verktøy for testing og deploy av LLM-prompts
|
- `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):
|
- `docs/infra/` — Infrastruktur (ikke brukersynlig):
|
||||||
- `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber
|
- `jobbkø.md` — Felles PostgreSQL-basert køsystem for alle bakgrunnsjobber
|
||||||
- `synkronisering.md` — PostgreSQL ↔ SpacetimeDB dataflyt og eierskapsmodell
|
- `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`
|
- `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`
|
- `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
|
- **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
|
## Viktige regler
|
||||||
- Aldri eksponere databaseporter mot internett (kun port 80/443 via Caddy)
|
- Aldri eksponere databaseporter mot internett (kun port 80/443 via Caddy)
|
||||||
|
|
|
||||||
|
|
@ -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 (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. |
|
| **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 |
|
| Data | Kategori | Detaljer |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|
|
||||||
|
|
@ -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 |
|
| Data | Kategori | Detaljer |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|
|
||||||
|
|
@ -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)
|
2. Ved budsjett-nær: fall tilbake til `sidelinja/rutine` (Gemini gratis)
|
||||||
3. Ved budsjett-nådd: sett jobb i `paused`-status med varsel
|
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 |
|
| Data | Kategori | Detaljer |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
|
|
|
||||||
|
|
@ -145,4 +145,4 @@ WHERE c.column_name = 'workspace_id'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Automatisering
|
## 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).**
|
||||||
|
|
|
||||||
|
|
@ -255,7 +255,7 @@ Forgejo konfigureres med Authentik som OAuth2-kilde:
|
||||||
|
|
||||||
## 11. Backup-strategi
|
## 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)
|
### 11.1 PostgreSQL (daglig dump, 03:00)
|
||||||
```bash
|
```bash
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,7 @@ OUT="$SCRIPT_DIR/server_context.md"
|
||||||
|
|
||||||
files=(
|
files=(
|
||||||
# Overordnet
|
# Overordnet
|
||||||
"$ROOT/ARCHITECTURE.md"
|
"$ROOT/docs/arkitektur.md"
|
||||||
"$ROOT/CLAUDE.md"
|
"$ROOT/CLAUDE.md"
|
||||||
|
|
||||||
# Konsepter (brukeropplevelser)
|
# Konsepter (brukeropplevelser)
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue