refactor(examples): replace sector-specific example material with generic, fictitious examples

Reference files, test fixtures, the playground demo project and one design
document now use generic, fictitious examples (buildings, energy, water,
grants, municipal services). The playground demo (17 fixtures plus the
embedded demo state) tells one consistent story: a municipal customer
chatbot that pre-screens housing-benefit applications, classified under
Annex III point 5(a). The embedded demo copies were edited in place rather
than regenerated, because they already carry newer AI Act dates than the
fixture files.

Legal text is unchanged. Test semantics are unchanged. Four dark-theme
onboarding screenshots with outdated placeholder text are removed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Kjell Tore Guttormsen 2026-09-23 14:03:53 +02:00
commit 544934dc57
Signed by: ktg
SSH key fingerprint: SHA256:JakMjO6FTBBzN0Bhfj9saOoEjaFxlSdYuZQQpM/lF9Q
77 changed files with 363 additions and 368 deletions

View file

@ -163,12 +163,12 @@ Fabric Data Factory stotter fire typer avhengigheter mellom aktiviteter:
from datetime import timedelta
pipeline_activities = {
"ingest_traffic": {"duration": timedelta(minutes=15), "depends_on": []},
"ingest_energy": {"duration": timedelta(minutes=15), "depends_on": []},
"ingest_weather": {"duration": timedelta(minutes=10), "depends_on": []},
"ingest_road_conditions": {"duration": timedelta(minutes=12), "depends_on": []},
"validate_traffic": {"duration": timedelta(minutes=5), "depends_on": ["ingest_traffic"]},
"ingest_building_data": {"duration": timedelta(minutes=12), "depends_on": []},
"validate_energy": {"duration": timedelta(minutes=5), "depends_on": ["ingest_energy"]},
"validate_weather": {"duration": timedelta(minutes=3), "depends_on": ["ingest_weather"]},
"join_datasets": {"duration": timedelta(minutes=20), "depends_on": ["validate_traffic", "validate_weather", "ingest_road_conditions"]},
"join_datasets": {"duration": timedelta(minutes=20), "depends_on": ["validate_energy", "validate_weather", "ingest_building_data"]},
"generate_features": {"duration": timedelta(minutes=30), "depends_on": ["join_datasets"]},
"train_model": {"duration": timedelta(minutes=45), "depends_on": ["generate_features"]},
"evaluate_model": {"duration": timedelta(minutes=10), "depends_on": ["train_model"]},
@ -202,7 +202,7 @@ def find_critical_path(activities):
total, paths = find_critical_path(pipeline_activities)
print(f"Kritisk sti total tid: {total}")
# Kritisk sti: ingest_traffic -> validate_traffic -> join -> features -> train -> evaluate -> deploy
# Kritisk sti: ingest_energy -> validate_energy -> join -> features -> train -> evaluate -> deploy
# = 15 + 5 + 20 + 30 + 45 + 10 + 5 = 130 minutter
```
@ -453,7 +453,7 @@ def log_pipeline_metrics(pipeline_name: str, run_id: str, metrics: dict):
| SLA-type | Definisjon | Eksempel |
|----------|-----------|---------|
| **Freshness SLA** | Data skal vaere tilgjengelig innen X tid | "Gaarsdagens data klar for 06:00" |
| **Completeness SLA** | Alle forventede data skal vaere med | "100% av tellepunkter representert" |
| **Completeness SLA** | Alle forventede data skal vaere med | "100% av maalepunkter representert" |
| **Quality SLA** | Data skal oppfylle kvalitetskrav | "< 0.1% feilrater i features" |
| **Availability SLA** | Pipeline skal kjore X% av tiden | "99.5% tilgjengelighet" |
@ -556,7 +556,7 @@ default_args = {
"owner": "ai-team",
"depends_on_past": True,
"email_on_failure": True,
"email": ["ai-team@statens-ddt.no"],
"email": ["ai-team@ddt.example"],
"retries": 2,
"retry_delay": timedelta(minutes=5)
}