ktg-plugin-marketplace/plugins/ms-ai-architect/commands/kb-update.md
Kjell Tore Guttormsen a7a334c8d1 feat(ms-ai-architect): v1.12.0 manuell KB-refresh — fjern launchd/cron-arkitektur
ToS-vurdering konkluderte med at autonom cron-kjøring er unødvendig kompleks
for en solo-fork-and-own-plugin. Apply-fasen krever LLM-resonnering uansett,
så manuell trigger fra en aktiv Claude Code-sesjon er enklere og holder
pluginen klart innenfor Anthropic Consumer Terms paragraf 3 (automated access
only via API key or where explicitly permitted — Claude Code CLI er
eksemptert som offisielt verktøy).

Lagt til:
- commands/kb-update.md — ny /architect:kb-update slash-kommando som driver
  poll, endringsrapport, microsoft_docs_fetch-update og commit fra sesjonen.
  Argumenter: --skip-discover, --priorities, --dry-run, --single-commit
- Catalog-entry i playground HTML for kb-update (categori: tool, 4 input-felt)

Slettet (Wave 3-5 reversert, ~1500 linjer + 7 testmoduler):
- scripts/install-kb-cron.mjs (cross-OS scheduler-installer)
- scripts/kb-update/weekly-kb-cron.mjs (cron-orkestrator med pre-flight, lock,
  backup, claude -p subprocess, post-run verify, rollback)
- scripts/kb-update/templates/ (4 scheduler-templates: launchd plist, systemd
  service+timer, Windows ps1 + README)
- scripts/kb-update/lib/auth-mode.mjs (cron-spesifikk auth validation)
- scripts/kb-update/lib/lock-file.mjs (PID+mtime stale-detection)
- scripts/kb-update/lib/cost-estimat.mjs (pre-flight budget-cap)
- 7 testmoduler under tests/kb-update/ for slettet kode
- tests/test-kb-update.sh (Bash-3.2-shim, erstattet av direkte node --test)

Beholdt (utility-laget fortsatt brukbart):
- run-weekly-update.mjs, report-changes.mjs, build-registry.mjs,
  discover-new-urls.mjs (KB change-detection-pipelinen)
- lib/atomic-write, lib/backup, lib/cross-platform-paths, lib/log-rotate
- 4 testmoduler (42/42 tester PASS)

Endret:
- hooks/scripts/session-start-context.mjs: fjern kb-update-status.json-overvaaking
- tests/run-e2e.sh --kb-update kaller node --test direkte i stedet for shim
- README.md, CLAUDE.md: KB-vedlikehold-seksjon rewriter for manuell modell
- plugin.json: 1.11.0 -> 1.12.0
- Rot README + CLAUDE.md: ms-ai-architect-versjon bumpet

Schedulering er bevisst utenfor scope og overlatt til brukeren — eventuelle
forks som vil ha periodisk varsling kan sette opp egen cron / launchd /
GitHub Actions som kjører rapport-fasen og varsler om aa kjore
/architect:kb-update i CC-sesjon.

Verifisering:
- bash tests/validate-plugin.sh: 219 PASS, 0 FAIL
- bash tests/run-e2e.sh --kb-update: 42/42 inner + suite PASS
- bash tests/run-e2e.sh --playground: 271/271 PASS (statisk + parsers)

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-05 12:03:45 +02:00

6.5 KiB
Raw Blame History

name description argument-hint allowed-tools model
architect:kb-update Manuell oppdatering av kunnskapsbasen — poller Microsoft Learn-sitemaps, sammenligner mot lokale `Last updated`-headere, oppdaterer endrede filer og oppdager nye relevante URLer [valgfritt: --skip-discover | --priorities critical,high,medium,low | --dry-run] Bash, Read, Edit, Write, Glob, Grep, mcp__microsoft-learn__microsoft_docs_search, mcp__microsoft-learn__microsoft_docs_fetch, mcp__microsoft-learn__microsoft_code_sample_search opus

/architect:kb-update — Manuell KB-oppdatering

Holder Microsoft AI-kunnskapsbasen i skills/*/references/ ferskt ved å sammenligne lokale referansefiler mot Microsoft Learn-sitemaps. All kjøring er manuell — pluginen schedulerer ingenting, og brukere som ønsker periodisk kjøring sørger for det selv (cron, launchd, GitHub Actions, etc.).

Hva kommandoen gjør

  1. Polle sitemaps: kjører node scripts/kb-update/run-weekly-update.mjs --force for å hente fersk <lastmod> for hver Microsoft Learn-URL i registeret
  2. Optional discovery: med default --discover finner nye relevante URLer i sitemap som ikke er i registeret (scripts/kb-update/discover-new-urls.mjs --limit 500)
  3. Generere endringsrapport: report-changes.mjs produserer data/change-report.json med per-fil prioritering (critical/high/medium/low) basert på antall endrede kilder + alder på lokal fil
  4. Vise rapporten: lese rapport, presentere oppsummering til bruker, vente på go
  5. Oppdatere filer: for hver fil i valgt prioritetsbøtte (default: critical + high):
    • Hente fersk innhold fra alle endrede kildene via microsoft_docs_fetch
    • Oppdatere relevante seksjoner i den lokale .md-fila
    • Oppdatere Last updated:-header til dagens dato
  6. Committe: én git-commit per fil med chore(ms-ai-architect): refresh KB <fil> [skip-docs]-format (eller én samlet commit om brukeren foretrekker det)

Argumenter

Flagg Effekt
--skip-discover Hopp over discovery-passet (raskere, ingen nye URLer oppdages)
--priorities <list> Komma-separert subset av critical,high,medium,low. Default: critical,high
--dry-run Generer rapport, men ikke oppdater filer eller committ
--single-commit Samle alle filendringer i én commit i stedet for én per fil

Instruksjoner til assistenten

1. Pre-flight

  • pwd — bekreft at du står i plugins/ms-ai-architect/ (eller delegere via absolutt sti)
  • git status --porcelain | grep -E '\.md$' && echo "WARN: ucommittede skill-endringer — kommandoen vil blande dem inn" — advar bruker hvis det finnes lokale skill-endringer
  • Parse argumenter

2. Kjør pollingsfasen

node scripts/kb-update/run-weekly-update.mjs --force${ARG_DISCOVER}

Hvor ${ARG_DISCOVER} er --discover med mindre --skip-discover ble gitt.

Output forventes å skrive data/change-report.json og evt. nye registry-entries hvis discovery kjørte.

3. Vis rapport-oppsummering

node scripts/kb-update/report-changes.mjs | head -40

Presenter til bruker:

  • Antall filer per prioritet
  • Hvilke prioriteter som blir behandlet (default: critical + high)
  • Estimert antall microsoft_docs_fetch-kall (≈ sum av endrede kilder per fil)
  • Spør: "Fortsett med oppdatering? (y/n)"

Hvis --dry-run: stopp her, ikke oppdater filer.

4. Per-fil oppdatering (etter brukerens y)

For hver fil i valgte prioriteter:

a. Les nåværende fil: Read på filstien b. Hent oppdaterte kilder: for hver URL i change-report.json[file].changed_urls, kjør microsoft_docs_fetch på URLen c. Identifiser endringer: sammenlign hentet markdown mot eksisterende seksjoner i fila. Fokuser på faktuelle endringer (ny info, oppdaterte features, deprecation-varsler) — ikke små formuleringsendringer d. Oppdater fila: Edit med relevante endringer. Behold "For Cosmo"-seksjonen og overordnet struktur. Oppdater Last updated: YYYY-MM-DD-header til dagens dato e. Committ: git add <fil> + git commit -m "chore(ms-ai-architect): refresh KB $(basename <fil>) [skip-docs]" med mindre --single-commit ble gitt

5. Single-commit modus

Hvis --single-commit: skip committer per fil, og lag én samlet commit til slutt:

git add skills/
git commit -m "chore(ms-ai-architect): refresh KB — N files [skip-docs]"

6. Push (om bruker bekrefter)

Spør: "Push til Forgejo origin/main? (y/n)". Per global push-policy er direkte main-push pre-autorisert, men spør likevel her siden dette er en bulk-operasjon.

git push origin main

7. Oppsummering

Rapporter:

  • Antall filer oppdatert per prioritet
  • Antall commits laget
  • Hvis discovery kjørte: antall nye URLer oppdaget og lagt til registry
  • Eventuelle filer som ble hoppet over (f.eks. ingen reelle endringer i hentet innhold)
  • data/change-report.json blir værende på disk for diagnose

Fallgruver

  • Sitemap-coverage: ~69% av URLene matche mot sitemap. ~31% (mest azure/ai-foundry/openai/) finnes ikke pga. URL-restrukturering på Microsofts side. Disse rapporteres som "always stale" og må vurderes manuelt
  • Microsoft_docs_fetch latency: hver fetch tar 2-5 sek. 9 critical + 44 high filer × ~1.5 kilder hver = ~80 fetches = ~3-7 minutter
  • Modellvalg: Opus brukes fordi diff-resonnering + tekst-syntese krever nyanse. For enklere "just refresh dates"-oppdateringer er Sonnet tilstrekkelig — bruker kan overstyre med eksplisitt --model claude-sonnet-4-6 i Claude Code config
  • MCP-tilgjengelighet: kommandoen krever at microsoft-learn MCP-serveren er aktiv. Sjekk med claude mcp list ved første kjøring

Når kjøre

  • Anbefalt: ukentlig eller månedlig, avhengig av hvor sensitive prosjektene dine er for KB-ferskhet
  • Før viktig vurdering: kjør med --priorities critical,high,medium før en stor /architect:utredning eller /architect:adr
  • Etter Microsoft-events: Build, Ignite, eller annen større Microsoft-konferanse → forvent mange endringer

Schedulering

Pluginen schedulerer ingenting. Hvis du vil ha periodisk kjøring, sett opp en cron-jobb / launchd-jobb / systemd timer / GitHub Actions-workflow som kjører node scripts/kb-update/run-weekly-update.mjs --force --discover (uten apply-fasen) og varsler deg om å kjøre /architect:kb-update i en interaktiv Claude Code-sesjon.

Apply-fasen (oppdatere filer + committe) kan ikke automatiseres innenfor denne pluginen — den krever LLM-resonnering på endringene og menneskelig vurdering, og er bevisst designet for kjøring fra en åpen Claude Code-sesjon.