# Feature: Responskvalitet (intelligens og innsats) ## Konsept Hvert bot-svar har to synlige dimensjoner: **intelligens** (hvilken modell) og **innsats** (hvor grundig). Brukeren ser en diskret indikator og har Γ©n knapp for Γ₯ be om bedre svar. ## NivΓ₯er ### Intelligens (modellvalg) | NivΓ₯ | Indikator | Modell | Bruk | |------|-----------|--------|------| | 1 | `πŸ§ β—β—‹β—‹` | Haiku | Klassifisering, triage, enkle oppslag | | 2 | `πŸ§ β—β—β—‹` | Sonnet | Chat-svar, oppsummering, daglig bruk | | 3 | `πŸ§ β—β—β—` | Opus | Arkitektur, analyse, koderevisjoner | ### Innsats (resonnering) | NivΓ₯ | Indikator | Effort | Bruk | |------|-----------|--------|------| | 1 | `πŸ’ͺ●○○` | low | Kort svar, ja/nei, lookup | | 2 | `πŸ’ͺ●●○` | medium | Normal respons, noe resonnering | | 3 | `πŸ’ͺ●●●` | high | Grundig analyse, lang gjennomgang | ## Brukeropplevelse ### Indikator Diskret visning i bot-svarens header: ``` β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ @bot πŸ§ β—β—β—‹ πŸ’ͺ●○○ [↑] β”‚ β”‚ β”‚ β”‚ Click-through rate β€” andel som β”‚ β”‚ klikker pΓ₯ en lenke. β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` ### ↑-knappen Γ‰n knapp. Trykk = bedre svar. Ingen meny, ingen konfigurasjon. ``` FΓΈrste svar: πŸ§ β—β—‹β—‹ πŸ’ͺ●○○ [↑] Trykk ↑: πŸ§ β—β—β—‹ πŸ’ͺ●●○ [↑] (nytt svar erstatter) Trykk ↑ igjen: πŸ§ β—β—β— πŸ’ͺ●●● [↑ dimmet] (maks) ``` Knappen bumper begge dimensjoner ett nivΓ₯. Ved maks er den dimmet/deaktivert. ### Ingen ↓-knapp Ingen ber om dΓ₯rligere svar. Systemet starter lavt, brukeren eskalerer ved behov. Kostnad ΓΈker bare nΓ₯r noen faktisk vil ha mer. ## Automatisk nivΓ₯valg Portvokteren velger startnivΓ₯ basert pΓ₯ heuristikker: | Signal | Intelligens | Innsats | |--------|-------------|---------| | Kort spΓΈrsmΓ₯l (< 20 ord) | 1 | 1 | | Normalt spΓΈrsmΓ₯l | 2 | 2 | | Refererer til arkitektur/kode | 2 | 3 | | Eksplisitt "grundig"/"detaljert" | 3 | 3 | | Work item med tag "bug" | 2 | 2 | | Work item med tag "feature" | 2 | 3 | Brukeren kan alltid overstyre med ↑-knappen. ## Metadata pΓ₯ svar-noden ```jsonc { "bot_response": true, "intelligence": 2, "effort": 2, "model": "claude-sonnet-4-6", "tokens_in": 1240, "tokens_out": 580, "retry_of": null } ``` Ved ↑-bump: ```jsonc { "bot_response": true, "intelligence": 3, "effort": 3, "model": "claude-opus-4-6", "tokens_in": 2100, "tokens_out": 1450, "retry_of": "uuid-av-forrige-svar" } ``` ## Edge-modell ``` nytt svar ──retry_of──→ forrige svar (erstattet) ``` Det nye svaret tar plassen til det gamle i samtalen β€” det dukker **ikke** opp som en ny melding under. Samtalen forlenges ikke. Forrige svar fΓ₯r `metadata.replaced: true` og er skjult som default, men tilgjengelig via en diskret "vis forrige versjon"-lenke. Som en revisjon, ikke en ny melding. Visuelt: ``` FΓΈr ↑: Bruker: "Forklar publiseringsflyten" Bot: "Kort svar..." [↑] Etter ↑: Bruker: "Forklar publiseringsflyten" Bot: "Grundig svar..." [↑ dimmet] (vis forrige versjon) ``` Ingen ekstra meldinger. Samtalen holder seg ryddig. ## CLI-integrasjon Portvokteren sender modellvalg til `synops-respond`: ```bash synops-respond \ --communication-id \ --message-id \ --model claude-opus-4-6 \ --effort high ``` `synops-respond` mapper `--model` til Claude CLI sitt `--model`-flagg og `--effort` til prompt-strategi (kort/normal/grundig systemprompt). ## cli_tool-noder og default-nivΓ₯ Hvert CLI-verktΓΈy har default intelligens/innsats i sin `cli_tool`-node metadata: ```jsonc { "binary": "synops-respond", "default_intelligence": 2, "default_effort": 2 } ``` Oppdaterbar i PG uten rekompilering. ## Bygger pΓ₯ - `docs/infra/robusthet.md` β€” LLM fallback-kjede - `docs/concepts/arbeidstavlen.md` β€” @bot-konvensjonen - `docs/retninger/unix_filosofi.md` β€” generisk dispatch, cli_tool-noder