Utvid @bot-konvensjonen: generell samtalepartner med node-fangst

@bot er først og fremst en samtalepartner som svarer på alt.
I tillegg fanger den opp actionable innhold og oppretter noder
i bakgrunnen (bugs, ideer, features, tech-debt) med riktige
tags og mentions-edges. Brukeren ser bare chat-svaret.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
vegard 2026-03-18 10:30:25 +00:00
parent dac20102f5
commit 82c8f01c31

View file

@ -140,27 +140,62 @@ Bare **Neste → Pågår → Review → Ferdig** er aktive kanban-lanes.
## 6. @bot-konvensjonen
`@bot` er Synops sin generiske markør for AI-assistanse i
samtaler. Ruteren i maskinrommet bestemmer hvilken modell eller
agent som svarer — brukeren trenger ikke vite om det er Claude,
en annen modell, eller en spesialisert agent.
samtaler. Boten er først og fremst en **samtalepartner** — den
svarer på spørsmål, forklarer, diskuterer og hjelper. I tillegg
fanger den opp actionable innhold og oppretter noder i bakgrunnen.
### Boten er en generell samtalepartner
`@bot` svarer på alt:
```
"Hva betyr CTR?"
→ Forklaring i chatten. Ingen node.
"Lydkvaliteten var dårlig i dag"
→ Svar + diskusjon i chatten.
→ work_item i innboks: "Undersøk lydkvalitet" + tagged "bug"
"Kan du sjekke om RSS-feeden oppdaterte seg?"
→ Kjører synops-rss, rapporterer resultat i chatten.
"Vi bør legge til kapittelmerkering"
→ Diskuterer i chatten.
→ work_item i innboks: "Kapittelmerkering i podcast" + tagged "idea"
"Forklar hvordan edge-validering fungerer"
→ Forklaring i chatten. Ingen node.
```
Brukeren merker bare at de får svar. Noder dukker opp i
innboksen i bakgrunnen for Vegard å triagere.
### To output-kanaler
1. **Chat-svar** (alltid) — boten svarer i samtalen
2. **Noder** (når relevant) — boten oppretter work_items,
melder fra om feil, fanger opp forslag
Kanal 2 er usynlig for brukeren. De ser bare svaret.
### Slik fungerer det
1. En bruker skriver i en kommunikasjonsnode der bot-agenten er
`member_of`.
2. Maskinrommet trigger `agent_respond`-jobb (eksisterende flow).
2. Portvokteren trigger `agent_respond`-jobb (eksisterende flow).
3. Boten svarer i samtalen.
4. **Nytt:** Hvis samtalen inneholder actionable innhold, oppretter
boten også `work_item`-noder.
4. Boten vurderer: er noe her actionable?
5. Hvis ja: oppretter riktig node-type med riktig tag.
### Når opprettes work items?
### Hva fanges opp?
Deteksjonsheuristikker (i `synops-respond` eller et nytt
`synops-triage`-verktøy):
- Imperative setninger: "Fiks ...", "Legg til ...", "Vi bør ..."
- Spørsmål som impliserer arbeid: "Kan vi endre ...?"
- Eksplisitte markører: "TODO:", "oppgave:", "ide:"
| Innhold | Resultat | Tag |
|---------|----------|-----|
| Bug / feil / noe virker ikke | work_item + mentions berørt cli_tool | `bug` |
| Idé / forslag / "vi bør" | work_item | `idea` |
| Feature-forespørsel | work_item | `feature` |
| Teknisk gjeld / "dette er rotete" | work_item | `tech-debt` |
| Generelt spørsmål | Bare chat-svar, ingen node | — |
### Hva opprettes?
@ -169,6 +204,8 @@ For hvert actionable element:
- `belongs_to`-edge → arbeidstavlen
- `status`-edge med `value: "innboks"`
- `source_material`-edge → chat-meldingen (proveniens)
- `tagged`-edge med riktig kategori
- `mentions`-edges til berørte noder (verktøy, features)
- Eventuelt `assigned_to`-edge til agent-noden (om boten kan
gjøre det selv)
@ -176,7 +213,7 @@ Vegard triagerer innboksen og prioriterer.
### Ruting
`@bot` rutes av maskinrommet basert på kontekst:
`@bot` rutes av portvokteren basert på kontekst:
- Standard: Claude (nåværende `agent_respond`-flyt)
- Fremtidig: spesialiserte agenter, andre modeller, eller
regelbaserte svar — uten endring i brukergrensesnittet