diff --git a/docs/concepts/arbeidstavlen.md b/docs/concepts/arbeidstavlen.md index ed8c65b..636affb 100644 --- a/docs/concepts/arbeidstavlen.md +++ b/docs/concepts/arbeidstavlen.md @@ -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