feat(ms-ai-architect): Spor E E-polish — per-kategori typisk/sjelden-hint i onboarding Phase 1–5 (TDD) [skip-docs]
Speiler Phase 6-coachingen til de fem strukturerte fasene: hver Phase 1–5 får et `**Hint — typisk relevant / sjelden relevant:**`-prosahint som agenten deler med brukeren før AskUserQuestion-spørsmålene, slik at intervjuet coacher mot riktig alternativ i stedet for å fyres av blankt. Hintene er grunnet i filens egne option-lister (ingen nye eksterne påstander → verifiseringsplikt ivaretatt). Agent-fil, ikke skill → ingen judge-/score-effekt. TDD: 4 nye assert i test-onboarding-parity.sh (RED→GREEN) — ASCII-only anker «typisk relevant / sjelden relevant» ×5 + «Del med brukeren» + begge framing-ord. Bash 3.2-fix: ankeret holdes ASCII-only fordi multibyte em-dash i en shell-var under `set -u` + gåseøyne-interpolasjon kræsjer scriptet. e2e onboarding-parity 25/25, validate 0/0, discovery 13/13, kb-integrity 192/0, full e2e grønn. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
c413d335bc
commit
59b4de938f
2 changed files with 33 additions and 0 deletions
|
|
@ -35,6 +35,8 @@ On start, check for existing onboarding state:
|
|||
|
||||
### Phase 1: Organization Profile (`org/organization-profile.md`)
|
||||
|
||||
**Hint — typisk relevant / sjelden relevant:** Del med brukeren før spørsmålene: kryss kun av de reguleringene som faktisk gjelder dere (Personopplysningsloven/GDPR gjelder praktisk talt alle). Sjelden relevant: ikke velg en regulering «for sikkerhets skyld» — DORA gjelder kun finanssektoren, Sikkerhetsloven kun virksomheter med nasjonal sikkerhetsbetydning.
|
||||
|
||||
Collect:
|
||||
- **Sektortype:** Use AskUserQuestion with options: Offentlig sektor, Privat sektor. Dette valget styrer hvilke oppfølgingsalternativer som presenteres (forgren intervjuet — ikke still private virksomheter offentlig-sektor-spørsmål).
|
||||
- **Sektor:**
|
||||
|
|
@ -75,6 +77,8 @@ last_updated: [YYYY-MM-DD]
|
|||
|
||||
### Phase 2: Technology Stack (`org/technology-stack.md`)
|
||||
|
||||
**Hint — typisk relevant / sjelden relevant:** Del med brukeren før spørsmålene: oppgi lisensen dere faktisk har i dag — den avgjør hvilke Copilot-kapabiliteter som allerede er tilgjengelige. Sjelden relevant: AI-tjenester dere bare har vurdert men ikke tatt i bruk — velg «Ingen i dag» heller enn å overrapportere.
|
||||
|
||||
Collect:
|
||||
- **Skyplattform:** Use AskUserQuestion with multiSelect: Azure, Microsoft 365, Power Platform, On-premises, Hybrid, Annet
|
||||
- **Lisenstype:** Use AskUserQuestion with options: E3, E5, F1/F3, A3/A5 (Education), G3/G5 (Government), Annet
|
||||
|
|
@ -84,6 +88,8 @@ After answers, write `technology-stack.md` to the data directory with same YAML
|
|||
|
||||
### Phase 3: Security & Compliance (`org/security-compliance.md`)
|
||||
|
||||
**Hint — typisk relevant / sjelden relevant:** Del med brukeren før spørsmålene: oppgi den høyeste dataklassifiseringen AI-systemet faktisk skal behandle. Sjelden relevant: «Hemmelig (sikkerhetsloven)» med mindre dere reelt håndterer skjermingsverdig informasjon — det nivået utløser helt andre krav enn ordinære AI-prosjekter.
|
||||
|
||||
Collect:
|
||||
- **Dataklassifisering:** Use AskUserQuestion with multiSelect: Åpen, Intern, Fortrolig, Strengt fortrolig, Hemmelig (sikkerhetsloven)
|
||||
- **Dataresidens-krav:** Use AskUserQuestion with options: Norge, Norden, EU/EØS, Ingen spesifikke krav
|
||||
|
|
@ -94,6 +100,8 @@ After answers, write `security-compliance.md` to the data directory.
|
|||
|
||||
### Phase 4: Architecture Decisions (`org/architecture-decisions.md`)
|
||||
|
||||
**Hint — typisk relevant / sjelden relevant:** Del med brukeren før spørsmålene: «Ikke bestemt» / «Ikke definert» er fullgode svar tidlig — rådene tilpasses da bredere. Sjelden relevant: å låse plattformvalget her før dere har kjørt en sammenligning (`/architect:compare`).
|
||||
|
||||
Collect:
|
||||
- **Foretrukket plattform for AI:** Use AskUserQuestion with options: Azure AI Foundry, Copilot Studio, Power Platform/AI Builder, Semantic Kernel, Ikke bestemt
|
||||
- **Integrasjonsbehov:** Use AskUserQuestion with multiSelect: Microsoft 365, SharePoint, Dynamics 365, SAP, Fagsystemer, REST API-er, Annet
|
||||
|
|
@ -103,6 +111,8 @@ After answers, write `architecture-decisions.md` to the data directory.
|
|||
|
||||
### Phase 5: Business References (`org/business-references.md`)
|
||||
|
||||
**Hint — typisk relevant / sjelden relevant:** Del med brukeren før spørsmålene: beskriv styringsmodellen dere faktisk har i dag, selv om den er umoden. Sjelden relevant: ønsket fremtidig modell — den hører heller hjemme i Fri kontekst (Phase 6).
|
||||
|
||||
Collect:
|
||||
- **Styringsmodell for AI:** Use AskUserQuestion with options: Sentralisert (IT/digital avdeling), Desentralisert (fagavdelinger), Hybrid (CoE + fagmiljøer), Ikke etablert
|
||||
- **Dokumentformat-preferanser:** Use AskUserQuestion with multiSelect: Markdown, Word (.docx), PDF, Confluence, SharePoint Wiki, Annet
|
||||
|
|
|
|||
|
|
@ -73,6 +73,29 @@ assert_matches_pattern "$AGENT" "(secrets|sensitive personopplysninger).*ALDRI"
|
|||
assert_matches_pattern "$AGENT" "ordrett" \
|
||||
"Phase 6 lagrer fortsatt brukerens prosa ordrett (regresjonsvakt)"
|
||||
|
||||
# === Spor E (E-polish): per-kategori prosa-hint Phase 1–5 (speilet på Phase 6-coachingen) ===
|
||||
# De fem strukturerte fasene bruker AskUserQuestion, men skal IKKE fyres av blankt: hver fase
|
||||
# skal gi et kort «typisk relevant / sjelden relevant»-hint slik at agenten coacher brukeren mot
|
||||
# riktig alternativ — samme multiplikator-tanke som Phase 6, komprimert til strukturerte valg.
|
||||
# ASCII-only anker (ingen em-dash/gåseøyne i shell-var → bash 3.2 + set -u-trygt).
|
||||
HINT_ANCHOR='typisk relevant / sjelden relevant'
|
||||
hint_count=$(grep -cF "$HINT_ANCHOR" "$AGENT" || true)
|
||||
if [ "${hint_count:-0}" -ge 5 ]; then
|
||||
pass "Alle 5 strukturerte faser har et per-kategori typisk/sjelden-hint ($hint_count funnet)"
|
||||
else
|
||||
fail "Per-kategori hint mangler — fant kun ${hint_count:-0}/5 hint-ankere"
|
||||
fi
|
||||
|
||||
# Agenten skal faktisk DELE hintet med brukeren (speiler Phase 6 «Presenter de to listene ... FØR»)
|
||||
assert_matches_pattern "$AGENT" "Del med brukeren" \
|
||||
"Per-kategori hint instrueres delt med brukeren før spørsmålene"
|
||||
|
||||
# Begge framing-ordene finnes (inkludering + ekskludering, som Phase 6s to lister)
|
||||
assert_matches_pattern "$AGENT" "typisk relevant" \
|
||||
"Hint-framing inneholder «typisk relevant» (inkludering)"
|
||||
assert_matches_pattern "$AGENT" "[Ss]jelden relevant" \
|
||||
"Hint-framing inneholder «sjelden relevant» (ekskludering)"
|
||||
|
||||
# === Orkestratoren er sektor-nøytral (delegerer, hardkoder ikke offentlig) ===
|
||||
if [ -f "$ORCH" ]; then
|
||||
if grep -qE "Onboarding-agenten styrer selve intervjuet" "$ORCH"; then
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue