3.9 KiB
Feature Feedback — Levende spesifikasjoner med brukertilbakemelding
Konsept
Hver feature har to koblede noder:
- Spec-node (
node_kind: 'content',metadata.feature_spec: true) — markdown-spesifikasjon synlig for brukerne - 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: truemetadata.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_ofog kan delta i diskusjonen - Brukerroller: alle med tilgang til samlingen kan delta
Brukeropplevelse
For brukere
- I arbeidsflaten eller mottaket: se liste over features med "Gi feedback"-knapp
- Klikk → åpner feedback-chatten med spec-noden synlig øverst
- Skriv kommentar, forslag, bug-rapport — vanlig chat
- Claude kan svare, oppsummere, og foreslå spec-endringer
For utviklere/Claude
- Les feedback-chatten for å forstå brukerbehov
- Oppdater spec-noden basert på feedback
- 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:
- Oppsummere tilbakemeldinger: "3 brukere har bedt om X"
- Foreslå spec-endringer basert på feedback
- Integrere godkjente endringer i spec-noden
- 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