Spesifiser selvdokumenterende system: Synops dokumenterer seg selv som noder
Nytt konseptdokument: systemdokumentasjon (arkitektur, features, CLI-verktøy, retninger) lever som noder i grafen — ikke bare markdown-filer. Én offentlig Synops-rotnode med undersamlinger. - Claude traverserer via synops-context, ikke fillesing - Nye utviklere navigerer fra én rotnode i webgrensesnittet - CLAUDE.md krymper til bootstrap-peker + fallback - docs/-filer migreres i faser: seed → dobbeltliv → noder er kilden - synops-snapshot genererer docs fra noder (ikke omvendt) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
91a80d49a6
commit
c9f7b8ce17
2 changed files with 177 additions and 1 deletions
|
|
@ -44,7 +44,8 @@ CLAUDE.md er eneste startdokument. Alt annet ligger under `docs/`:
|
|||
- `docs/concepts/` — Brukeropplevelser/produktområder:
|
||||
- `studioet.md`, `møterommet.md`, `redaksjonen.md`, `podcastfabrikken.md`,
|
||||
`kunnskapsgrafen.md`, `valgomaten.md`, `den_asynkrone_gjesten.md`,
|
||||
`publisering.md`, `adminpanelet.md`, `arbeidstavlen.md`
|
||||
`publisering.md`, `adminpanelet.md`, `arbeidstavlen.md`,
|
||||
`selvdokumenterende_system.md`
|
||||
- `docs/features/` — Tekniske byggeklosser:
|
||||
- Se individuelle filer for chat, kanban, kalender, meldingsboks,
|
||||
kunnskapsgraf, whiteboard, live transkripsjon, ressursforbruk, m.fl.
|
||||
|
|
|
|||
175
docs/concepts/selvdokumenterende_system.md
Normal file
175
docs/concepts/selvdokumenterende_system.md
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
# Konsept: Selvdokumenterende system
|
||||
**Filsti:** `docs/concepts/selvdokumenterende_system.md`
|
||||
|
||||
## 1. Konsept
|
||||
|
||||
Synops dokumenterer seg selv som noder i seg selv. Arkitektur,
|
||||
features, CLI-verktøy, retninger og erfaringer er noder i grafen
|
||||
— ikke bare markdown-filer i et repo. En offentlig synlig
|
||||
Synops-node er roten, og alt systemrelevant henger under den
|
||||
via edges.
|
||||
|
||||
## 2. Hvorfor
|
||||
|
||||
Markdown-filer i `docs/` har tre problemer:
|
||||
|
||||
1. **Rotner.** Koden endres, docs oppdateres ikke. Ingen kobling
|
||||
mellom spec og implementasjon.
|
||||
2. **Frakoblet.** Docs kan ikke lenkes fra chat, work items eller
|
||||
andre noder via `n:`-referanser.
|
||||
3. **Dobbeltvedlikehold.** Samme informasjon lever i docs-filer
|
||||
OG i kode/database. Endring ett sted glemmes det andre.
|
||||
|
||||
Løsningen: docs er noder. De deltar i grafen, lenkes med
|
||||
`n:`-referanser, traverseres av bot og brukere, og oppdateres
|
||||
der de lever.
|
||||
|
||||
## 3. Synops-noden
|
||||
|
||||
Én rot-node som er inngangspunkt til alt systemrelevant:
|
||||
|
||||
```
|
||||
Synops (collection, visibility: readable)
|
||||
│
|
||||
├── Synops CLI (collection)
|
||||
│ ├── synops-transcribe (cli_tool)
|
||||
│ ├── synops-render (cli_tool)
|
||||
│ ├── synops-audio (cli_tool)
|
||||
│ ├── synops-tasks (cli_tool)
|
||||
│ ├── synops-snapshot (cli_tool)
|
||||
│ └── ...
|
||||
│
|
||||
├── Synops Arkitektur (collection)
|
||||
│ ├── Portvokteren (content)
|
||||
│ ├── Datalaget (content)
|
||||
│ ├── Noder og edges (content)
|
||||
│ ├── Trait-systemet (content)
|
||||
│ └── ...
|
||||
│
|
||||
├── Synops Features (collection)
|
||||
│ ├── Nodereferanser (content)
|
||||
│ ├── Kanban (content)
|
||||
│ ├── Lydstudio (content)
|
||||
│ ├── Universell overføring (content)
|
||||
│ └── ...
|
||||
│
|
||||
├── Synops Retninger (collection)
|
||||
│ ├── Unix-filosofi (content)
|
||||
│ ├── Arbeidsflaten (content)
|
||||
│ ├── Noder er sentrum (content)
|
||||
│ └── ...
|
||||
│
|
||||
├── Arbeidstavlen (collection, kanban-trait)
|
||||
│ └── (work_items)
|
||||
│
|
||||
└── Synops Erfaringer (collection)
|
||||
├── SpacetimeDB-integrasjon (content)
|
||||
├── Authentik OIDC (content)
|
||||
└── ...
|
||||
```
|
||||
|
||||
`visibility: readable` — alle autentiserte brukere kan se
|
||||
systemdokumentasjonen. Skrivetilgang via `admin`-edge.
|
||||
|
||||
## 4. Hva dette gir
|
||||
|
||||
### For Claude
|
||||
```bash
|
||||
synops-context --node-id <synops-uuid>
|
||||
→ Hele systemdokumentasjonen via grafen
|
||||
→ Traverserer edges til CLI-verktøy, arkitektur, features
|
||||
→ Alltid oppdatert — leser fra PG, ikke stale filer
|
||||
```
|
||||
|
||||
### For ny utvikler
|
||||
Åpner Synops-noden i web → navigerer alt via klikkbare
|
||||
`n:`-referanser. Ingen "les CLAUDE.md, deretter docs/arkitektur.md,
|
||||
deretter docs/retninger/README.md" — bare én node som rot.
|
||||
|
||||
### For CLAUDE.md
|
||||
Krymper til:
|
||||
```markdown
|
||||
## Systemkontekst
|
||||
Synops-noden er n:<uuid>. Start der.
|
||||
Bruk `synops-context --node-id <uuid>` for full oversikt.
|
||||
Resten av denne filen er fallback ved PG-nedetid.
|
||||
```
|
||||
|
||||
CLAUDE.md beholder arkitektur-oversikten som fallback (jf.
|
||||
`synops-snapshot`), men den autoritative kilden er grafen.
|
||||
|
||||
### For oppdateringer
|
||||
Endre en feature-spec → oppdater noden. Alle `n:`-referanser
|
||||
til den fra chat, work items og andre docs peker til oppdatert
|
||||
versjon. Ingen stale lenker.
|
||||
|
||||
## 5. Innholdsformat
|
||||
|
||||
Dokumentasjonsnoder bruker `content` for ren tekst (søkbar)
|
||||
og `metadata.document` for strukturert innhold (TipTap JSON).
|
||||
Samme format som artikler og notater — redigerbart i editoren
|
||||
på web, lesbart via CLI.
|
||||
|
||||
For lange spesifikasjoner: noden *er* dokumentet. Ingen separat
|
||||
fil å vedlikeholde.
|
||||
|
||||
## 6. Edge-modell
|
||||
|
||||
| Edge | Source → Target | Betydning |
|
||||
|------|----------------|-----------|
|
||||
| `belongs_to` | child → Synops | Del av systemdokumentasjonen |
|
||||
| `belongs_to` | cli_tool → Synops CLI | Verktøy i verktøykassen |
|
||||
| `belongs_to` | feature → Synops Features | Feature-spec |
|
||||
| `mentions` | work_item → feature | Arbeid relatert til feature |
|
||||
| `mentions` | chat-melding → cli_tool | Diskusjon om verktøy |
|
||||
| `source_material` | feature → retning | Feature bygger på retning |
|
||||
|
||||
## 7. Migrering fra docs/
|
||||
|
||||
### Fase 1: Seed fra markdown
|
||||
Script leser `docs/`-filene, oppretter noder med innholdet,
|
||||
bygger edge-strukturen. Deterministiske UUID-er (uuid5 fra
|
||||
filsti) for idempotent kjøring.
|
||||
|
||||
### Fase 2: Dobbeltliv
|
||||
Markdown-filer og noder lever parallelt. `synops-snapshot`
|
||||
genererer markdown fra noder — docs-filene blir *output*, ikke
|
||||
*input*.
|
||||
|
||||
### Fase 3: Noder er kilden
|
||||
Docs-filer fjernes eller erstattes med genererte snapshots.
|
||||
Redigering skjer i grafen. CLAUDE.md beholder kun
|
||||
bootstrap-info og fallback.
|
||||
|
||||
## 8. Avgrensning
|
||||
|
||||
- **CLAUDE.md forsvinner ikke.** Den er bootstrap-loader for
|
||||
Claude Code — lastes automatisk og må være en fil i repo.
|
||||
Men den krymper til en peker + fallback.
|
||||
- **Git-historikk bevares.** Markdown-filer i docs/ har verdifull
|
||||
git-historikk. De slettes ikke — de fryses og erstattes av
|
||||
genererte snapshots.
|
||||
- **Ikke alt er noder.** Kode er kode (Rust, Svelte, SQL).
|
||||
Bare dokumentasjon, spesifikasjoner og prosjektstyring
|
||||
migreres til noder.
|
||||
|
||||
## 9. Utviklingsfaser
|
||||
|
||||
1. Opprett Synops rot-node og undersamlinger (CLI, Arkitektur,
|
||||
Features, Retninger, Erfaringer).
|
||||
2. Seed `cli_tool`-noder fra eksisterende verktøy.
|
||||
3. Seed dokumentasjonsnoder fra `docs/`-filene.
|
||||
4. Oppdater `synops-context` til å traversere Synops-noden.
|
||||
5. Oppdater `synops-snapshot` til å generere docs/ fra noder.
|
||||
6. Oppdater CLAUDE.md til minimal bootstrap + fallback.
|
||||
|
||||
## 10. Komponenter
|
||||
|
||||
| Feature | Rolle |
|
||||
|---------|-------|
|
||||
| Synops-noden | Rot for all systemdokumentasjon |
|
||||
| `n:`-referanser | Lenking mellom docs, verktøy, work items |
|
||||
| `synops-context` | CLI-traversering av dokumentasjonsgrafen |
|
||||
| `synops-snapshot` | Genererer fallback-filer fra noder |
|
||||
| Editoren (web) | Redigering av docs-noder i nettleseren |
|
||||
| KanbanTrait | Arbeidstavlen som del av Synops-treet |
|
||||
Loading…
Add table
Reference in a new issue