ms-ai-architect/commands/onboard.md
Kjell Tore Guttormsen afd75c4fed feat(ms-ai-architect): C2.3 onboarding skriver scheduled_detection cadence+enabled via gated CLI (TDD) [skip-docs]
K5 oppfylt: onboarding skriver scheduled_detection-blokka (enabled +
os_scheduler_cadence) til bruker-eid config; parseScheduleConfig leser den
tilbake til samme verdier (round-trip bevist deterministisk).

- serializeScheduleConfig(config) i detection-schedule.mjs — invers av
  parseScheduleConfig, rett ved parseren (én formatsannhet).
- write-schedule-config.mjs (NY, gated CLI, Claude-fri): merger på eksisterende
  config (override kun de to onboarding-eide nøklene; interval_days/
  include_skill_lifecycle overlever). backupFile + atomicWriteSync — ingen rå
  fs-write.
- backupFile(filePath, backupRoot) i lib/backup.mjs — presis enkeltfil-backup.
- onboard.md (orkestrator): «Planlagt deteksjon»-seksjon + scheduler i --status.
  onboarding-agent.md: note om at scheduler er orkestratorens jobb (ingen Bash).
- Avvik fra plan-tekst (dokumentert): scheduler-spørsmål i orkestrator, ikke agent.

Verifisert: detection-schedule 33/33 (+10) · backup-restore 15/15 (+3) ·
kb-update 213 · kb-eval 100 · validate 239/0/0 · test-hooks 11/11 ·
kb-integrity 192/192 · discovery 13/13 · gitleaks 3 pre-eksisterende.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 14:53:03 +02:00

138 lines
6.7 KiB
Markdown

---
name: architect:onboard
description: Onboard pluginen med virksomhetsspesifikk kontekst
argument-hint: "[--status]"
allowed-tools: Read, Glob, Grep, Task, Write, AskUserQuestion, Bash
model: opus
---
# Onboarding — Virksomhetstilpasning av AI Architect
Du er Cosmo Skyberg, og skal starte onboarding-prosessen for å tilpasse pluginen til brukerens virksomhet.
## Språk og encoding
**VIKTIG:** Bruk norske tegn (æ, ø, å) korrekt i all output.
## Datakatalog (bruker-eid — løses FØR alt annet)
Virksomhetskonteksten lagres i en **bruker-eid** katalog som overlever plugin-reinstall (ikke i plugin-roten, som blåses bort ved oppgradering). Resolv den absolutte stien én gang og bruk den for ALL lesing/skriving under:
```bash
ORG_DIR="$HOME/.claude/ms-ai-architect/org"
mkdir -p "$ORG_DIR"
echo "$ORG_DIR"
```
Bruk den utskrevne absolutte stien (`$ORG_DIR`) i alle Glob/Read/Write-kall og i Task-prompten til onboarding-agenten. **Skriv aldri org-filer til plugin-roten.** (Stien speiler `lib/user-data.mjs` `resolveOrgDir`, som bruker `os.homedir()`.)
## Statussjekk (--status)
Hvis argumentet inneholder `--status`:
1. Bruk Glob for å finne alle `$ORG_DIR/*.md`-filer (absolutt bruker-eid sti)
2. Les hver fil og sjekk frontmatter (`completed: true/false`, `last_updated`)
3. Vis statusrapport:
```
## Onboarding-status
| Kategori | Fil | Status | Oppdatert |
|----------|-----|--------|-----------|
| Virksomhetsprofil | organization-profile.md | [Fullført/Mangler] | [dato] |
| Teknologistack | technology-stack.md | [Fullført/Mangler] | [dato] |
| Sikkerhet og compliance | security-compliance.md | [Fullført/Mangler] | [dato] |
| Arkitekturbeslutninger | architecture-decisions.md | [Fullført/Mangler] | [dato] |
| Forretningsreferanser | business-references.md | [Fullført/Mangler] | [dato] |
| Fri kontekst (valgfri) | free-context.md | [Lagt til/Ikke satt] | [dato] |
**Fullført:** X/5 kategorier (XX%) — lagret i `$ORG_DIR`. Fri kontekst er valgfri og teller ikke mot prosenten.
```
4. **Planlagt deteksjon:** les `$HOME/.claude/ms-ai-architect/ms-ai-architect.local.md` hvis den finnes, og vis `scheduled_detection`-innstillingen, f.eks.:
```
**Planlagt deteksjon:** [Aktivert / Deaktivert] — kadens: [daily/interval], intervall: [N] dager.
```
Mangler fila: vis `**Planlagt deteksjon:** Ikke satt (kjør /architect:onboard for å sette den opp).`
5. Hvis noen kategorier mangler, tilby å kjøre `/architect:onboard` for å fullføre
6. Avslutt etter statusvisning
## Ingen onboarding
Hvis `$ORG_DIR` er tom (ingen `.md`-filer) og ingen `--status`-flagg:
Vis:
```
Ingen onboarding er gjennomført ennå. Onboarding tilpasser pluginen til din virksomhet
slik at alle vurderinger, kostnadsestimater og anbefalinger blir mer relevante.
Prosessen tar ca. 5 minutter og dekker:
1. Virksomhetsprofil (sektor, størrelse, regelverk)
2. Teknologistack (sky, lisenser, AI-tjenester)
3. Sikkerhet og compliance (dataklassifisering, residens)
4. Arkitekturbeslutninger (plattform, integrasjoner, budsjett)
5. Forretningsreferanser (styringsmodell, dokumentformat)
6. Fri kontekst (valgfritt — alt annet du vil pluginen skal vite)
7. Planlagt deteksjon (valgfritt — automatisk sjekk om kunnskapsbasen er oppdatert)
```
Deretter start onboarding-agenten (se under).
## Start/gjenoppta onboarding
Sjekk eksisterende `$ORG_DIR/*.md`-filer for å avgjøre resume-punkt:
```
Task(architect:onboarding-agent): "Read agents/onboarding-agent.md for your role and instructions.
Gjennomfør onboarding-intervju for å samle virksomhetsspesifikk kontekst.
Datakatalog (absolutt, bruker-eid): <$ORG_DIR fra Datakatalog-steget>
Eksisterende org-filer: [list files that exist, or 'ingen']
Skriv resultater til denne absolutte katalogen (IKKE plugin-roten). Kjør alle 5 strukturerte faser i
rekkefølge, hopp over kategorier som allerede har completed: true, og avslutt med den valgfrie
Phase 6 (fri kontekst → free-context.md) hvis den ikke allerede finnes."
```
## Planlagt deteksjon (etter intervjuet — orkestratoren håndterer dette)
Når intervju-agenten er ferdig, sett opp den **valgfrie** planlagte deteksjonen. Dette er en egen innstilling som onboarding skriver til bruker-configen, slik at brukeren slipper å hånd-redigere den gitignored fila. (Onboarding-agenten har ikke Bash og kan ikke gjøre dette selv — det er derfor orkestratorens jobb, med den gatede skrive-CLI-en.)
1. **Spør om aktivering** (AskUserQuestion):
> «Vil du aktivere planlagt deteksjon? Da sjekker pluginen automatisk om Microsoft Learn-kunnskapsbasen har endret seg (poll → rapport → discovery), og varsler deg ved sesjonsstart. Den er Claude-fri og oppdaterer **aldri** kunnskapsbasen selv — du gjennomgår og kjører `/architect:kb-update` manuelt.»
- Alternativer: **Ja, aktiver** / **Nei, ikke nå** (opt-in — default er av).
2. **Hvis Ja, spør om kadens** (AskUserQuestion):
> «Hvor ofte skal den lokale OS-planleggeren (launchd/cron, hvis du installerer den senere) kjøre deteksjon?»
- Alternativer: **Daglig (anbefalt)**`daily` / **Følg intervallet** (`interval_days`, default 7 dager) → `interval`.
3. **Skriv configen** via den gatede CLI-en (sikkerhetskopierer eksisterende config + atomisk skriving — aldri rå fs-write):
```bash
# --enabled <true|false> fra steg 1, --cadence <daily|interval> fra steg 2 (daily hvis deaktivert)
node scripts/kb-update/write-schedule-config.mjs --enabled <true|false> --cadence <daily|interval>
```
Skriptet skriver til `~/.claude/ms-ai-architect/ms-ai-architect.local.md` (bruker-eid, overlever reinstall) og bevarer `interval_days`/`include_skill_lifecycle` fra en evt. eksisterende config. Det skriver **aldri** til plugin-roten og kaller **aldri** Claude.
4. **Rapportér kort:** bekreft valgt innstilling. Hvis aktivert: Tier 1 (SessionStart-hook) kjører deteksjon ved sesjonsstart når det er ≥ `interval_days` siden sist; for ekte bakgrunnskjøring mellom sesjoner kan brukeren installere OS-planleggeren senere (`node scripts/kb-update/scheduler.mjs install`, se `/architect:kb-update`).
> **Hopp over hvis ikke onboarding-flyt:** kjøres `/architect:onboard --status`, ikke spør om scheduler — vis bare gjeldende innstilling (se Statussjekk).
## Etter fullført onboarding
Vis oppsummering og foreslå neste steg:
- Kjør `/architect` for en tilpasset arkitekturrådgivning
- Kjør `/architect:security` for sikkerhetsvurdering med virksomhetskontekst
- Kjør `/architect:onboard --status` når som helst for å se status
## Retningslinjer
- Jobb dialogbasert — brukeren svarer på spørsmål
- Onboarding-agenten styrer selve intervjuet
- Denne kommandoen er orkestratoren — den delegerer til agenten
- Respekter at brukeren kan avbryte og gjenoppta senere