Akashic meldte (coord, 2026-08-11) at project_dir i F-001s brief var en død
peker og antok det var fase-7-MALEN. Premiss-verifisering mot A5 (commit
a96b3a9, samme dag 6t tidligere) viser malen allerede var korrigert — men
samme dødpeker-klasse levde fortsatt i vår egen eksempel-brief
(domain-packs/ios-app/examples/feature-brief-local-notification-window.md),
rettet nå til A5-konvensjonen (features/{NN}-{slug}/voyage/).
Kryssjekk mot akashic-intelligence sin faktiske B1-fremdrift (ground truth,
2026-08-13) avdekket to nye funn, loggført som friksjon:
- #20: F-001 kjørte /trekresearch + /trekplan fortsatt på brief_version 2.0
(rev 10) — B1s nøkkelantakelse "2.2-brief passerer strict" er uverifisert.
- #21: Akashics faktiske fix (features/01-sun-position/, uten /voyage/-
underkatalog) matcher ikke A5s dokumenterte konvensjon, og deres kopi-
drift-innvending rammer symmetrisk A5s egen mekanikk. Åpent spørsmål for
B2/D — ikke besluttet, § Fase 7 ikke re-åpnet.
Coord-svar sendt til akashic-intelligence med full premiss-korreksjon.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GBoxVNFnK5QeZsfhLeGWgi
6 KiB
--- Voyage-påkrevde (Handover 1, brief_version 2.0) ---
type: trekbrief brief_version: "2.0" created: 2026-06-01 task: "Lokale notifikasjoner som varsler brukeren når hvert av de tre daglige soltidsvinduene åpner, av/på per vindu, Focus-bevisst" slug: notification-on-window-open project_dir: features/02-notification-on-window-open/voyage/ # A5-konvensjon, ikke .claude/projects/ — se phase-design-draft.md § Fase 7 «Handover-mekanikk» research_topics: 0 research_status: complete brief_quality: complete source: manual
--- app-creator-interne (Voyage ignorerer / strippes ved handover) ---
brief_type: feature phase: 7 parent_app: akashic-intelligence parent_feature: F-002 domain_pack: "ios-app@0.1.0" revision: 0 length_words: 480 voyage_run_dir: null voyage_run_status: null
Task: Lokale notifikasjoner når et soltidsvindu åpner
Generert av app-creator fase 7 på 2026-06-01 fra akashic-intelligence feature F-002.
Intent
Praksisen Akashic støtter krever at brukeren bukker innenfor tre tidsvinduer som flytter seg med soltidene der brukeren er. Det definerende problemet er at det er lett å glemme — uten en påminnelse i tide forsvinner vanen. Denne featuren leverer den primære eksterne forsterkningen: én notifikasjon når hvert vindu åpner, slik at brukeren kan handle der og da. Den henger sammen med, men er separat fra, den visuelle in-app-klokka (F-003) — notifikasjonen er for når appen ikke er åpen.
Goal
Når et soltidsvindu åpner, mottar brukeren én lokal notifikasjon (med mindre vinduet er slått av eller allerede markert fullført den dagen). Notifikasjonen kan trykkes for å åpne appen direkte til markeringssjermen for det vinduet. Brukeren kan slå hver av de tre notifikasjonene av/på uavhengig i innstillinger. Notifikasjonene respekterer brukerens Focus-modus. Tidene re-beregnes og re-planlegges når appen kommer i forgrunnen og posisjonen har endret seg vesentlig (delt logikk med F-001). Ingen notifikasjon fyrer på feil tidspunkt etter en lokasjons- eller dato-endring.
Non-Goals
- Push-notifikasjoner / server (appen er all-local, ingen backend).
- Snooze, gjentatte påminnelser innenfor samme vindu, eller "du glemte i går"-varsler.
- Notifikasjons-handlinger utover "åpne appen" (in-notification "marker gjort" vurderes i en senere feature, ikke her).
- Konfigurerbar tekst / lyd per notifikasjon (standard system-lyd, fast tekst i v1).
- Time Sensitive / Critical interruption-nivå (krever Apple-entitlement; bruk standard
.activei v1).
Constraints
- Ingen nye tredjeparts-deps (app-invariant).
- All in-app- og notifikasjons-tekst skal være forsiktig med effekt-claims — speil kildens framing, hevd ingenting (app-brief constraint-signal, [enforce]).
- Permission-transparens: notifikasjons-tillatelsen forklares på en onboarding-skjerm før
requestAuthorization(GDPR + App Review-forventning, [enforce]). - Maks ~64 ventende lokale notifikasjoner per app (iOS-grense) — planlegg rullerende (f.eks. neste N dager), ikke et helt år.
Preferences
UNUserNotificationCenter+UNCalendarNotificationTrigger; re-planlegging vedscenePhase == .active(jf. domain-packpatterns/local-notifications.mdogpatterns/current-location-regeneration.md).- Del soltids-/vindu-beregningen med F-001 og F-003 — ikke dupliser logikken.
- MVVM, SwiftUI; interruption-nivå
.active.
Non-Functional Requirements
- Re-planlegging ved app-foreground fullfører på < 100 ms (synkron del); ingen merkbar UI-stall.
- Appen krasjer ikke og viser ingen dead-end hvis notifikasjons-tillatelse er nektet — degraderer til in-app-klokka (F-003) med en CTA for å aktivere varsler.
- Ingen sensitiv data i notifikasjons-payload (det er ingen — men prinsippet står).
Success Criteria
- Given notifikasjons-tillatelse gitt og alle tre vinduer på, When et vindu åpner mens appen er i bakgrunnen, Then leveres nøyaktig én notifikasjon for det vinduet, og trykk åpner markeringssjermen for det vinduet.
- Given et vindu er slått av ELLER allerede markert fullført i dag, When vinduet åpner, Then leveres ingen notifikasjon for det vinduet.
- Given brukeren flytter seg vesentlig (eller krysser midnatt), When appen kommer i forgrunnen, Then er ventende notifikasjoner re-planlagt mot de nye soltidene, og ingen utdatert notifikasjon gjenstår.
- Given notifikasjons-tillatelse er nektet, When brukeren åpner appen, Then vises in-app-klokka og en CTA for å aktivere varsler — ingen krasj, ingen tom skjerm.
- Alle eksisterende tester passerer:
xcodebuild test -scheme Akashicexit 0. - Ingen nye Swift Package-dependencies i
Package.resolved.
Research Plan
No external research needed — the codebase and this brief contain sufficient context for planning. (Soltids-beregning og vindu-modell etableres av F-001, som er en avhengighet; se context.md.)
Open Questions / Assumptions
- [ANTAKELSE] F-001 (soltids-/vindu-beregning) er ferdig og eksponerer en stabil API for "neste vindu-åpningstider" — denne featuren bygger på den. Hvis F-001 ikke er klar, blokkér.
- [ANTAKELSE] Standard
.active-interruption-nivå er godt nok i v1. Hvis bruker-feedback senere tilsier at varslene drukner i Focus, vurder time-sensitive-entitlement (egen feature).
How to continue
mkdir -p features/02-notification-on-window-open/voyage/ && cp features/02-notification-on-window-open/brief.md features/02-notification-on-window-open/voyage/brief.md
/trekplan --project features/02-notification-on-window-open/voyage/
/trekexecute --project features/02-notification-on-window-open/voyage/