# Cosmo-persona — full utfasing (brief) **Opprettet:** 2026-06-24 **Status:** PLANLAGT — godkjent av operatør, men skal gjøres **SIST** (etter pågående arbeid). Operatør: «Fjern hele Cosmo-personaen (også i README), men vent med dette som det siste vi gjør, HVIS ikke du anbefaler at det gjøres før.» Anbefaling gitt: **ikke tidligere** — KB-refresh (faktaferskhet) og Cosmo-fjerning (persona-ramming) er ortogonale; egen plan + egen versjonsbump (sannsynlig **minor**, f.eks. v1.17.0, siden persona er en dokumentert feature). ## Bakgrunn Operatør-direktiv 2026-06-24: «Cosmo-pedagogikken er en gammel idé og må ikke fortsettes.» «Cosmo Skyberg» er advisor-personaen i `ms-ai-advisor`-skillen og brukes som et pedagogisk grep både i dialog (`/architect` «med Cosmo Skyberg») og som `## For Cosmo`-notater adressert til personaen i KB-filene. Utfasing er **startet** i v1.16.5: «For Cosmo»-seksjonene fjernet i `agent-framework.md` (omskrevet) og `disconnected-ai-scenarios.md` (erstattet med «## Oppsummering»). Resten gjenstår. ## Omfang (ground truth, målt 2026-06-24) - **417 filer** nevner «Cosmo» · **956 totale forekomster** - **188 filer** har en `## For Cosmo`- / `For Cosmo:`-seksjon - Fordeling (topp): ms-ai-engineering 154 · ms-ai-governance 77 · ms-ai-security 61 · ms-ai-advisor 56 · ms-ai-infrastructure 35 - Arkitektur-lag (utenfor KB-seksjonene): `ms-ai-advisor/SKILL.md` (persona-definisjon), `commands/architect.md` (+ flere kommandoer: vendor, utredning, transparency, summary, security, ros …), `README.md`, `NOTICE.md`, `CLAUDE.md` («Cosmo Skyberg-persona»), `scripts/skill-gen`, `scripts/kb-update`, playground/docs. > Reproduser tellingen: `grep -rl "Cosmo" --include="*.md" . | wc -l` · `grep -rao "Cosmo" --include="*.md" . | wc -l` · `grep -rl "## For Cosmo\|For Cosmo:" --include="*.md" . | wc -l`. ## Foreslått tilnærming (utkast — krever egen plan før start) 1. **Avklar erstatning FØRST (operatør-beslutning):** Skal advisor-dialogen ha en ny nøytral ramme («arkitekturrådgiver»), en ny navngitt persona, eller ingen persona? Dette styrer SKILL.md + kommando-omskrivingen og er den eneste reelle designbeslutningen — resten er mekanisk. 2. **KB-seksjonene (188 `## For Cosmo`):** erstatt med nøytral heading («## Oppsummering» / «## Nøkkelpunkter for rådgivning») — innholdet (bullets) er stort sett nøytrale arkitekt-takeaways og kan beholdes. Kandidat for batch (men header varierer; per-fil eller forsiktig sed med review). 3. **Persona-lag:** SKILL.md, kommandoer, README, NOTICE, CLAUDE.md, scripts — kirurgisk, per-fil (her sitter den faktiske persona-definisjonen). 4. **Verifisering:** `bash tests/validate-plugin.sh` (239/0), `grep -rc Cosmo` → 0 (eller dokumentert restmengde), skill-re-score uendret (≥90 %). 5. **Release:** egen versjonsbump + CHANGELOG; oppdater CLAUDE.md (fjern «Cosmo Skyberg-persona»-beskrivelsen). ## Sammenfall: registry-herding Fase 1a endring C (utsatt hit — operatør 2026-06-26) Fase 1a A+B (sitemap-prefiks + skjemaløs URL-ekstraksjon) er levert (`e74646d`). **Endring C** (redirect-følging) ble bevisst utsatt og foldet inn HER, fordi **20 av 21 filer med legacy-citater er `ms-ai-advisor`** (copilot-extensibility) — de samme filene Cosmo-utfasingen uansett redigerer. Når du redigerer advisor copilot-extensibility-filene: - **Re-kanonikaliser 44 legacy `/microsoft-365-copilot/...`-citater → `/microsoft-365/copilot/...`** via **ekte redirect-resolusjon** (ikke streng-rewrite: slug-en kan endres, f.eks. `overview-graph-connector`→`overview-copilot-connector`, verifisert 2026-06-26). Disse står i dag som `not_in_sitemap`. - **3 omdøpte microsoftsearch-citater** (`connectors-overview`, `federated-connectors-overview`, `licensing`) — samme redirect-fiks. - Etterpå: `node scripts/kb-update/build-registry.mjs --merge` + poll fanger dem som tracked. Gjør dette som ren citat-fiks (root-cause), ikke en ny redirect-map-mekanisme. ## Sammenfall: store-fil-TOC / ref-KB Fase 1b (foldet inn hit — operatør 2026-06-26) Fase 1b (innholdsfortegnelse i de **20 filene >800 linjer**) ble opprinnelig skopet som «trygt håndverk, uavhengig av Cosmo». Ground truth motbeviste premisset: **11 av 12 ikke-advisor-storfiler** (og alle advisor-storfilene) har en `## …Cosmo…`-seksjon på nivå 2. En TOC bygget fra `##`-overskriftene ville da emittere en **ny Cosmo-anker** (`- [For arkitekten (Cosmo)](#…)`) → bryter «aldri ny Cosmo-innhold», og å nøytralisere overskriften er nettopp denne persona-fjerningen (ikke en sidehandling). Store-fil-TOC folder derfor inn her. - **Når du nøytraliserer `## …Cosmo…`-overskriften i en storfil (R13/R14):** bygg `## Innhold` på nytt via `transform.insertToc` (primitiven overlever; det tidligere TOC-backfill-CLI-scriptet er **retired i R6 Step 6** — ikke-atomisk `writeFileSync`, 0 programmatiske kallere, superseded av `insertToc` i `transform.mjs` / `migrate-corpus`). NB: `migrate-corpus` fencer ut advisor OG mangler single-fil-modus, så den er **ikke** en drop-in for den advisor-rettede cosmo-use-casen — R13/R14 håndterer TOC via et advisor-kapabelt single-fil-steg, ELLER heading-fjerningen løser det selv. - **§8-residual (gap-discipline, [[gap-discipline-must-close]]):** `insertToc` er en no-op på en fil som allerede har `## Innhold`, så en heading-nøytralisering som endrer en **oppført** overskrift etterlater en stale TOC-entry (latent link-rot). Lukkes i R13/R14 ved å regenerere TOC etter nøytralisering (eller nøytralisere før TOC-en bygges). - **Mekanismen** er `transform.insertToc` (testet, `tests/kb-update/test-transform.test.mjs`). Nye filer fødes allerede med TOC via `composeKbFile` (Fase 1c, `2240f1e`). - **Verifisering:** `node scripts/kb-eval/eval.mjs` → `checkN4 hasToc` = true for de berørte filene; ingen diff-churn på små filer (<100 linjer røres ikke). - Eneste storfil uten `##`-Cosmo-overskrift: `zero-trust-ai-services.md` (eneste Cosmo-token er inline `**For Cosmo:**`) — kan TOC-es uten å skape Cosmo-anker, men tas naturlig i samme pass. ## Risiko / merknader - **Ikke en bugfix-sidehandling.** Persona er en dokumentert feature — full plan + godkjenning før start (scope-guard). - Batch-sed på 188 filer er fristende, men `## For Cosmo`-seksjonene har varierende innhold/lengde — review `git diff` per fil eller per klynge. - Hold KB-faktainnhold urørt; dette er ren ramme-/persona-endring, ikke en ny KB-refresh.