diff --git a/agents/onboarding-agent.md b/agents/onboarding-agent.md index 763f8dc..8ef25b9 100644 --- a/agents/onboarding-agent.md +++ b/agents/onboarding-agent.md @@ -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 diff --git a/tests/test-onboarding-parity.sh b/tests/test-onboarding-parity.sh index c8a1675..b72c6b7 100755 --- a/tests/test-onboarding-parity.sh +++ b/tests/test-onboarding-parity.sh @@ -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