Phase 1 — Candidate-Schema Spike + ADR #453
Labels
No labels
app/archiv
app/einkaufslisten
app/imap-client
app/wissensbasis
arch-answered
arch-question
area/api
area/auth
area/infra
area/mobile
area/shared
area/ui
area/web
portfolio-status
prio/high
prio/low
prio/medium
roadmap/public
size/l
size/m
size/s
size/xl
size/xs
status/blocked
status/needs-info
type/bug
type/chore
type/docs
type/feature
type/idea
type/refactor
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
admin-mrrm/mrrmlabapp#453
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Kontext
Phase-1 des Day-Planner-Epics (#360) — gemäss Epic-Body: "Voraussetzung für alle weiteren Phasen". Ohne Candidate-Schema kann weder die Tracking-Migration (#328/#329/#330) noch Mail-as-Source (#178) auf das neue Pattern umgestellt werden.
Ziel
Stabiles
Candidate-Schema entwerfen + als ADR im Repo dokumentieren + Drizzle-Migration + generierte Types. Kein UI, keine Planner-Logik — nur die Datenhülle, auf die alle Sources schreiben.Scope
source,sourceRef,lifecycleState), Planungs-Constraints (earliestAt/latestAt,estDuration,locationHints[],dependsOn[],priority,recurrence), Planner-Ergebnis (plannedSlot,plannedAfter/plannedBefore), Completion-PolicyCLAUDE.md)@mrrmlab/shared-typesdurchreichendocs/adr/(oder Wiki) mit Begründung der vier Arch-Entscheidungen (siehe nächster Abschnitt)Vier zu klärende Architektur-Entscheidungen
(aus #360 übernommen — gehen in separate
arch-question-Konsultation und werden hier nur referenziert/umgesetzt)ownerSub?candidate_refs) oder JSONB-Feld?lifecycleStateals Enum oder mehrere Boolean-Flags (isPlanned,isDone,isObsolete)?Out-of-scope (für dieses Issue)
Akzeptanzkriterien
candidate(und ggf.candidate_refs)@mrrmlab/shared-typesre-exportiert das Candidate-TypeBezug
Die vier offenen Architektur-Entscheidungen sind als arch-question #454 an arch-bot gegeben. Phase-1-Implementierung wartet auf Antwort dort. PM-Position: ich entscheide nicht selbst — wir warten und übersetzen das Ergebnis ins ADR.
Phase-1-Scope ist bereits ausgeliefert (vor diesem PM-Sub-Issue, Datum ADR: 2026-05-20). Beim Anlegen von #453 wurde übersehen, dass die Arbeit bereits im Repo liegt:
docs/adr/0001-candidate-model.md(Status: Accepted)apps/api/src/modules/candidates/candidates.schema.ts(alle Felder gemäss Epic-Body)apps/api/drizzle/0017_slim_lady_bullseye.sqlapps/api/test/integration/candidates-schema.int-spec.tsCandidate/NewCandidatevia$inferSelect/$inferInsertÜber Phase 1 hinaus bereits implementiert (gehört in andere Epic-Phasen, aber wirft die Frage auf, ob #360 inhaltlich Re-Scope braucht):
apps/api/src/modules/tracking/tracking-candidate-writer.service.ts+ Testsapps/api/src/modules/mail/mail-candidate-writer.service.ts+ Testsapps/api/src/modules/habits/habit-candidate-writer.service.ts+ Testsapps/api/src/modules/planner/planner.{service,controller}.ts+slot-plan.tsWas tatsächlich noch fehlt (separat zu scopen, nicht hier):
Schließe #453 als already-implemented. Korrektur-Kommentar auf #360 folgt.