synops/docs/features/feature_feedback.md

3.9 KiB

Feature Feedback — Levende spesifikasjoner med brukertilbakemelding

Konsept

Hver feature har to koblede noder:

  1. Spec-node (node_kind: 'content', metadata.feature_spec: true) — markdown-spesifikasjon synlig for brukerne
  2. Feedback-chat (node_kind: 'communication') — chattråd der brukere gir tilbakemelding, foreslår endringer, rapporterer bugs

Koblet via discusses-edge: feedback-chat --discusses--> spec-node.

Spec-noden vises som første/pinned melding i chatten (eller som eget panel i arbeidsflaten ved siden av chatten).

Prinsipp

Alle features er gjenstand for tilbakemelding. Ingen feature er "ferdig" — den har bare en gjeldende spec som brukerne kan påvirke.

Datamodell

spec-node (content, feature_spec: true)
  ├── belongs_to → samling (f.eks. "Synops Platform")
  └── <-- discusses -- feedback-chat (communication)
                         ├── owner → feature-eier (utvikler/admin)
                         └── member_of → relevante brukere/team

Spec-noden

  • node_kind: 'content'
  • metadata.feature_spec: true
  • metadata.feature_key: 'lydstudio' (unik nøkkel for kobling til kode)
  • content: markdown-spesifikasjon (samme format som docs/features/*.md)
  • visibility: 'readable' — alle innloggede brukere kan lese

Feedback-chatten

  • Standard kommunikasjonsnode
  • Claude er member_of og kan delta i diskusjonen
  • Brukerroller: alle med tilgang til samlingen kan delta

Brukeropplevelse

For brukere

  1. I arbeidsflaten eller mottaket: se liste over features med "Gi feedback"-knapp
  2. Klikk → åpner feedback-chatten med spec-noden synlig øverst
  3. Skriv kommentar, forslag, bug-rapport — vanlig chat
  4. Claude kan svare, oppsummere, og foreslå spec-endringer

For utviklere/Claude

  1. Les feedback-chatten for å forstå brukerbehov
  2. Oppdater spec-noden basert på feedback
  3. Commit oppdatert spec til disk (md-fil) for kodebruk

Synk: database ↔ disk

Feature-specs lever to steder:

  • Database (spec-node): autoritativ for brukere og feedback
  • Disk (docs/features/*.md): autoritativ for kode og Claude Code

DB → disk (eksport)

GET /query/feature_specs returnerer alle spec-noder som markdown. Periodisk jobb eller manuell trigger: maskinrommet skriver spec-noder til docs/features/ med frontmatter:

---
feature_key: lydstudio
node_id: 019cfda5-...
last_synced: 2026-03-18T12:00:00Z
---
# Lydstudio
...

Disk → DB (import)

Ved oppstart eller manuell trigger: maskinrommet leser docs/features/*.md, matcher på feature_key, og oppdaterer spec-noden hvis disk-versjonen er nyere (basert på git commit-tidspunkt vs node updated_at).

Konflikthåndtering

  • Disk vinner ved kodeendringer (utvikler oppdaterer spec)
  • DB vinner ved bruker-feedback som Claude har integrert
  • Ved ekte konflikt: opprett merge-node med begge versjoner, flagg for manuell løsning

Claude sin rolle

Claude er deltaker i feedback-chatten og kan:

  1. Oppsummere tilbakemeldinger: "3 brukere har bedt om X"
  2. Foreslå spec-endringer basert på feedback
  3. Integrere godkjente endringer i spec-noden
  4. Synke oppdatert spec til disk (md-fil) og committe

Trigger: agent_respond-jobben (eksisterende mekanisme) eller dedikert feature_feedback_digest-jobb som kjører periodisk.

Implementering

Fase 1: Grunnlag

  • Opprett spec-noder for eksisterende features (migrer fra docs/features/*.md)
  • Opprett feedback-chat per feature
  • Vis spec + chat i frontend

Fase 2: Synk

  • Eksport-endepunkt (GET /query/feature_specs)
  • Import ved oppstart
  • Periodisk synk-jobb

Fase 3: Claude-integrasjon

  • Claude som deltaker i feedback-chatter
  • Digest-jobb som oppsummerer ny feedback
  • Automatisk spec-oppdatering ved godkjenning

Bygger på

  • Kommunikasjonsnoder (fase 5)
  • Claude som chat-deltaker (fase 8 / docs/infra/claude_agent.md)
  • Arbeidsflaten (fase 19) — spec + chat som to paneler side om side