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:
Kjell Tore Guttormsen 2026-06-23 20:00:07 +02:00
commit 59b4de938f
2 changed files with 33 additions and 0 deletions

View file

@ -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 15 (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