Spec: feature feedback — levende spesifikasjoner med brukertilbakemelding
This commit is contained in:
parent
20b07131da
commit
88f51dc487
1 changed files with 118 additions and 0 deletions
118
docs/features/feature_feedback.md
Normal file
118
docs/features/feature_feedback.md
Normal file
|
|
@ -0,0 +1,118 @@
|
||||||
|
# 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:
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
---
|
||||||
|
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
|
||||||
Loading…
Add table
Reference in a new issue