C2 KOMPLETT (C2.1->C2.4). C2.4 var verifikasjon, ikke nybygg: privat-greinen
i onboarding kom i 6e1fc6d (FOER C2.1), saa audit §167-onboarding-residu var
allerede lukket i kode. Denne oekta beviser + laaser det.
- tests/test-onboarding-parity.sh (NY): 14 asserts mot KILDEN
(onboarding-agent.md Phase 1; onboarding er interaktivt AskUserQuestion ->
ingen output-fixture). Dekker sektortype-forgrening, privat sektor-grein
(bank slipper «Annet»), privat reg-sett (DORA/Finansforetaksloven/
Finanstilsynets IKT-forskrift/Verdipapirhandelloven/Hvitvaskingsloven), og
at private aldri spoerres Offentleglova/Arkivloven. TDD roed->groenn:
strippet offentlig-only-kopi -> 13/14 FAIL; ekte fil -> 14/14 PASS.
- tests/run-e2e.sh: wiret --onboarding (med i --all).
- §167 (d) bevisst IKKE bygget: «egen dataklassifiserings-taksonomi for privat
Fase 3» er gull-plating utenfor K4 (dagens taksonomi er alminnelig norsk
bedrifts-klassifisering; privat fullfoerer Fase 3 uhindret).
- Omdoept feildoept docs/onboarding-ros-analysis.md ->
docs/windows-clone-to-pr-ros-guide.md (Windows clone-to-PR-bidragsyterguide,
ikke onboarding-analyse); plan+brief-ref oppdatert.
Verifisert: onboarding-parity 14/14 (NY) · validate 239/0/0 · e2e alle suiter ·
discovery 13/13 · test-hooks 11/11 · kb-integrity 192/192 (220 baseline-warns) ·
gitleaks 3 PRE-EKSISTERENDE (playground/vendor/).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
64 lines
2.7 KiB
Bash
Executable file
64 lines
2.7 KiB
Bash
Executable file
#!/bin/bash
|
|
# test-onboarding-parity.sh — K4 (privat-sektor-paritet) regresjonsvakt for onboarding.
|
|
#
|
|
# Låser audit §5 punkt #1 (devils-advocate-audit-2026-06-18.md:167): en privat
|
|
# virksomhet skal kunne fullføre onboarding UTEN å velge «Annet» på sektor, med en
|
|
# relevant (privat) reguleringsliste, og uten å bli spurt rene offentlig-sektor-lover.
|
|
#
|
|
# Onboarding-intervjuet er interaktivt (AskUserQuestion) → ingen fixture-fangst som de
|
|
# andre output-testene. Vi asserterer derfor mot KILDEN (agents/onboarding-agent.md +
|
|
# commands/onboard.md): forgreningen og de private alternativene må være til stede.
|
|
set -euo pipefail
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
|
source "$SCRIPT_DIR/lib/e2e-helpers.sh"
|
|
|
|
PLUGIN_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
|
|
|
# Tillat override (rød-fase-diskrimineringsbevis kjører testen mot en strippet kopi).
|
|
AGENT="${ONBOARDING_AGENT_FILE:-$PLUGIN_ROOT/agents/onboarding-agent.md}"
|
|
ORCH="${ONBOARDING_ORCH_FILE:-$PLUGIN_ROOT/commands/onboard.md}"
|
|
|
|
if [ ! -f "$AGENT" ]; then
|
|
echo "ERROR: Onboarding agent not found: $AGENT"
|
|
exit 1
|
|
fi
|
|
|
|
init_suite "Onboarding Privat-sektor-paritet (K4)"
|
|
|
|
# === Forgrening: sektortype velges først og styrer oppfølgingen ===
|
|
assert_matches_pattern "$AGENT" "Sektortype.*Offentlig sektor, Privat sektor" \
|
|
"Sektortype forgrener offentlig/privat på toppnivå"
|
|
assert_matches_pattern "$AGENT" "forgren intervjuet" \
|
|
"Eksplisitt instruks om å forgrene intervjuet på sektortype"
|
|
|
|
# === K4 kjerne: privat virksomhet trenger IKKE velge «Annet» på sektor ===
|
|
# Den private sektor-greinen må liste navngitte private sektorer.
|
|
assert_matches_pattern "$AGENT" "Hvis Privat sektor.*Finans/bank/forsikring" \
|
|
"Privat sektor-grein lister Finans/bank/forsikring (bank slipper «Annet»)"
|
|
for sektor in "Industri/produksjon" "Handel" "Energi" "Telekom"; do
|
|
assert_matches_pattern "$AGENT" "Hvis Privat sektor.*${sektor}" \
|
|
"Privat sektor-grein lister ${sektor}"
|
|
done
|
|
|
|
# === K4 kjerne: relevant privat reguleringsliste ===
|
|
for reg in "DORA" "Finansforetaksloven" "Finanstilsynets IKT-forskrift" \
|
|
"Verdipapirhandelloven" "Hvitvaskingsloven"; do
|
|
assert_matches_pattern "$AGENT" "$reg" \
|
|
"Privat reg-sett inneholder ${reg}"
|
|
done
|
|
|
|
# === Forgrening verner private mot rene offentlig-sektor-lover ===
|
|
assert_matches_pattern "$AGENT" "ALDRI private virksomheter om Offentleglova" \
|
|
"Private spørres ALDRI Offentleglova/Arkivloven/Forvaltningsloven"
|
|
|
|
# === Orkestratoren er sektor-nøytral (delegerer, hardkoder ikke offentlig) ===
|
|
if [ -f "$ORCH" ]; then
|
|
if grep -qE "Onboarding-agenten styrer selve intervjuet" "$ORCH"; then
|
|
pass "Orkestrator delegerer intervjuet til agenten (sektor-nøytral)"
|
|
else
|
|
warn "Orkestrator: fant ikke delegerings-note (sjekk onboard.md)"
|
|
fi
|
|
fi
|
|
|
|
print_summary
|