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>
138 lines
6.7 KiB
Markdown
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
|