Files
jobtrackingapp/docs/redesign/phase-3/OPEN_DECISIONS.md
T
2026-09-10 18:15:05 +02:00

73 lines
9.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Open decisions and requirement boundaries
No answer is required to complete this documentation checkpoint. This register makes future dependent work reviewable; proposals are not silent product decisions.
## Decisions required from Connor
| ID / decision | Proposal / alternatives | When it affects implementation |
|---|---|---|
| OD-01 Product name | Keep Jobjakt until chosen. Explore Norwegian-first descriptive vs Scandinavian professional/supportive internationally readable naming; no proposed name is trademark/domain-vetted | Before brand/public-copy rollout; does not block state/focus foundations |
| OD-02 Logo/identity | New wordmark + compact mark + favicon in both modes; retain existing mark meanwhile. Avoid generic AI-sparkle identity | Before branded shell assets; no logo generated/selected here |
| OD-03 Final primary color | One hue. Current indigo #5B5BD6 is continuity only; muted Nordic blue/teal direction is an untested alternative | Before palette identity sign-off; semantic contrast fixes can use current hue |
| OD-04 Dashboard persistence | Recommend owner-scoped device-local layout first; alternative account-synced layout. Both satisfy per-user isolation, only latter follows devices | Before Phase 8 persistence; server option needs API/recovery/migration assessment |
| OD-05 Email delivery provider | Existing SMTP architecture remains. Managed transactional provider choice can change deployment/config, not the redesign's ownership of notification/mail flows | Before new email rollout or infrastructure change |
| OD-06 External jobs/calendar scope | Preserve NAV and existing Google/Outlook deadline/follow-up + ICS. Decide separately on scheduled interviews, wider event sync or additional providers | Before NEW-06; no LinkedIn integration or auto-apply presumed |
| OD-07 Monetisation-specific UX | Retain server Free/Pro capabilities and honest unavailable billing; no invented prices/trial countdown/checkout promises | Before new trial, paywall, pricing or aggregate subscription UI |
| OD-08 Favourite vs priority | Recommend optional favourite only initially; richer priority levels need clear user need and persistence semantics | Before NEW-09 schema/API/UI, not a phase-4 prerequisite |
| OD-09 Aggregate admin/privacy scope | Start with a small approved total/period set; fixed coarse breakdowns, proposed suppression threshold 10, no individual drill-down | Before NEW-08 API/retention and privacy review; threshold alone does not guarantee anonymity |
| OD-10 Job-seeker intent intake | Optional, skippable desired role/work preferences vs retaining only current onboarding checklist | Before NEW-13 profile/personalization storage |
| OD-11 Weekly-goal measurement | Recommend optional user-chosen application target, disabled until set; broader effort goals need their own recorded facts | Before NEW-05. No universal default number or punitive state |
Ordinary route grouping, MUI reuse, current language defaults and current providers are answered by the repository and this scope; they do not require more questions. Current English fallback with EN/NB authenticated preference stays. No implicit change to Norwegian-first market focus or requirement for new users to speak English.
## Stable new-requirement registry
NEW IDs do not replace or renumber PRES IDs. “Required” means part of the target brief, not approved to implement in Phase 3.
| ID | Requirement / classification | Existing boundary / target implementation owner |
|---|---|---|
| NEW-01 | Dashboard order/resize/reset and persisted layout — required | Five visibility flags already exist; Phase 8, OD-04 |
| NEW-02 | Expanded command entities/actions — required, staged by data availability | Jobs/companies + six commands exist; command owner |
| NEW-03 | User-configured status definitions/mapping — required target | Raw custom values exist; new server/UI semantics needed before configuration |
| NEW-04 | Per-task due dates/reminders — required target | Checklist has no due dates; separate scheduling contract |
| NEW-05 | Optional editable/disableable weekly goals — required target | No goal preference exists; OD-11 and period definition |
| NEW-06 | Scheduled interviews / broader calendar events — conditional future | Only job follow-up/deadline event actions and ICS proven |
| NEW-07 | Shared contextual AI panel/access — required | Existing domain actions/review retained, no general chat engine |
| NEW-08 | Aggregate admin product dashboard — required target, metric-qualified | Operational admin exists; new authorized aggregation/definitions, OD-09 |
| NEW-09 | Favourite/priority — conditional proposal | No job-level field found; do not reuse operation Priority |
| NEW-10 | Active quick-preview host — optional UX improvement | Reusable workspace props exist, production host absent; read-only proposal |
| NEW-11 | Bounded cross-job document/task/activity/metric reads — required where target needs them | Existing job-scoped functions are not global query endpoints; separate read projections |
| NEW-12 | Manual CV preview zoom — optional incremental control | Automatic fit/page boundaries already exist |
| NEW-13 | Intent-led onboarding and unsupported career preferences — conditional proposal | Existing onboarding/completeness protected; no inferred personal facts |
| NEW-14 | Comfortable/Compact application density — required | Distinct from current CV document density and table page size |
| NEW-15 | New logo/final identity — required logo; rename/color undecided | Keep existing assets/name until OD-01–03 |
| NEW-16 | Consistent AI source explanation and unsupported-claim checks — required safety target | Existing review/prompt context is partial evidence, not universal factual grounding/provenance |
## Contradictions resolved against source
| Original suggestion / ambiguity | Source-backed resolution |
|---|---|
| Calendar integration described as wholly future | ApplicationCalendarActions already creates Google/Outlook follow-up/deadline events and ICS. Preserve these; broader scheduled events are new |
| Choose email provider as though mail does not exist | SMTP account/reminder delivery plus Gmail/Graph/IMAP connections exist; deployment provider remains open, no replacement here |
| “Active applications” and conversion funnel | stats.active = non-deleted jobs; current-stage counts ≠ historical conversions. Use precise catalogue definitions |
| Upcoming interviews widget | Interview-prep task/status is not a dated appointment; new schedule data required |
| Shared quick overlay already in production | Phase 2 call-site check finds only full-page host. Preserve reusable props; add/test real preview deliberately |
| Short CV customization list | Full C08/C09 controls stay under Advanced; no silent removal |
| Suggested stages include Accepted/Screening/Final Interview | Preserve ten current stages, Waiting/Ghosted and raw custom values; new mapping needs explicit contract |
| Career Profile versus account Profile | /career owns canonical facts; /profile owns identity/security, organized under Settings |
| Simplified menu omits mail, companies, offers, reminders/operations | Each has an explicit primary/secondary/utility home; none deleted |
| CV “used by jobs” suggests arbitrary many-to-many reuse | Current CvVariant has optional single job reference; attach may repoint, detach preserves CV |
| API metadata implies native package success | P2-D01 capture/tailoring fails on SQLite; expected failure is not frozen-package proof |
| Earlier Phase 1 docs say TypeScript gate missing | Phase 2 added gate; TS2571 corrected earlier. Remote gate execution still unverified |
| Phase 2 C06 gap row calls the preview issue F15 | The validated accessibility finding and queue A01–A03 are F14; use F14 here. Preserve the historical row rather than renumbering audit findings |
| Phase 1 describes TanStack Table as used | Dependency exists, but current src search finds no @tanstack/useReactTable/useTable import or call. JobTable uses MUI Table directly; preserve its actual owner, not an assumed engine |
| Latest brief mentions pre-Phase-4 layout work | Phase 4 remains shared foundations; broad shell/screens are Phase 5 after contracts/gates |
## Separately recorded baseline debt
**P3-O01 — analytics presentation semantics, source-confirmed limitations.** Dashboard currently labels non-deleted tracked count as active applications, an interview-prep count as upcoming, and uses datasets with different windows. Source: DashboardView, AnalyticsService, JobApplicationAnalyticsController. Future chart migration must use definitions in [Dashboard architecture](DASHBOARD_ARCHITECTURE.md), explicitly separate snapshots/cohorts/periods and avoid summing truncated breakdowns. This is not a new production incident or a fix performed in Phase 3. Aggregate data quality and timezone corrections remain separately scoped.
**P3-O02 — navigation metadata retention, source observation.** ApplicationWorkspace go() replaces search with only section, so followMode may be lost; QuickCommandDialog maps fetch failure to empty results. Preserve current successful workflows but target explicit query retention and error states when those owners migrate. No incident, severity escalation or implementation is claimed.
Keep [P2-D01/P2-O01 and intentional gaps](../phase-2/BASELINE_DEFECTS.md) separate. F01/data concurrency, D04 creation idempotency, timezone, storage/recovery, billing and worker/release issues retain the [validated queue](../../audits/2026-09-07/validation/implementation-queue.md) owners. No schema before restore/rollback readiness. **F04 remains open** pending actual ingress runtime/production evidence; no operator/credential action was taken in this phase.