title: Compact Latest Results KPI section

description: Remove coachmark/pulse, move instruction text to heading row right area, enforce 1x4 mobile and 4x1 md+ KPI layout, reduce KPI card whitespace in PatientSummaryTile while preserving content/interactions.

status: closed


title: Validate KPI objective and close loop

description: Run typecheck/lint/build and confirm Latest Results KPI compaction acceptance criteria remain satisfied before LOOP_COMPLETE event.


title: Rename Active Projects language to Significant Interventions

description: Update Projects tile heading, SubNav label, and search palette section naming per Ralph prompt.


title: Add autoplay + reduced-motion behavior for carousel

description: Install Embla autoplay plugin, pause on interaction, disable autoplay for prefers-reduced-motion users.


title: Responsive polish and full verification for interventions carousel

description: Tune mobile/desktop viewport behavior and run lint/typecheck/build before closure.


title: Implement Embla carousel in ProjectsTile

description: Replace list layout with Embla carousel slides, preserve click/keyboard panel opening, add thumbnail placeholder region.


title: Implement sidebar-first navigation refactor from plan

description: Execute .ralph/plan.md: remove TopBar/SubNav flow, move section nav to Sidebar, add mobile collapsed rail/expanded drawer, fix sidebar scroll artifact, preserve smooth section navigation and accessibility, then run lint/typecheck/build.


title: Resolve build.blocked backpressure checks

description: Run lint/typecheck/build and emit build.done for sidebar-first refactor loop


title: Backpressure verification for sidebar refactor

description: Run lint, typecheck, and build; if passing, publish build.done


title: Route pending backpressure events

description: Handle build.task.abandoned and build.blocked by delegating with one allowed event based on latest verified state.


title: Review sidebar-first navigation refactor

description: Verify success criteria, run lint/typecheck/build, and publish review event


title: Route review.approved to completion handoff

description: Handle pending review.approved event by emitting one allowed coordination event and stopping.


title: Route pending build.blocked event

description: Publish one build.done event with required backpressure evidence fields and stop.


title: Define canonical timeline entity model

description: Create single source-of-truth dataset for career + education entries (titles, graph labels, date ranges, details, skills) and update shared types/data modules.


title: Stabilize pathway graph hover/render lifecycle

description: Refactor CareerConstellation highlight flow so hover from graph/cards shares one state without re-running force simulation or causing graph jiggle.


title: Unify experience + education card rendering

description: Replace split WorkExperienceSubsection/EducationSubsection flow with one unified timeline list; add Career Intervention and Education Intervention pills with education cards right-aligned; remove separate education section.


title: Aggregate sidebar tags from canonical timeline skills and verify

description: Derive top-frequency skills from canonical timeline entries for Sidebar tags; run lint/typecheck/build.


title: Constellation data parity: career-only role mapping

description: Add explicit career/education selectors in src/data/timeline.ts and ensure buildConstellationData derives role nodes/links from career entities only.


title: Constellation interaction remediation: hover/focus layer

description: Resolve pointer interception from accessibility overlay in CareerConstellation while preserving keyboard and touch behavior; stabilize hover/pin highlight transitions.


title: Timeline parity + token alignment

description: Align DashboardLayout/TimelineInterventionsSubsection role mapping with canonical timeline semantics and replace invalid mono token usages in constellation/timeline-adjacent components.


title: Backpressure and manual review evidence

description: Run lint/typecheck/build and capture required manual behavioral checks in .ralph/review.md.


title: Resolve build.blocked backpressure gate

description: Coordinate planner/builder pass to satisfy backpressure contract and emit compliant build.done payload fields.


title: Recover build.blocked gate after abandoned retries

description: Coordinate recovery for build.task.abandoned/build.blocked by delegating to Constellation Planner for a compliant backpressure closure plan and full build.done field contract.


title: Phase 2: Strength-weighted link styling (stroke width, domain color, bezier curves, highlight)

description: Links: width 0.5+strength*1.5, domain-colored opacity 0.08+strength*0.12, bezier offset by vertical distance, highlight width 1+strength*2


title: Phase 2: Skill node visual enhancements (stroke, size encoding, glow filter)

description: Skill nodes: domain-colored stroke at rest (width 1, opacity 0.4), size by connected role count (base+roleCount*0.8), glow filter on highlight (feGaussianBlur 2-3px)


title: Phase 2: Role node visual enhancements (gradient fill, highlight styling)

description: Role nodes: fill gradient left-right orgColor@0.08 to @0.18, highlight fill-opacity 0.25 stroke-width 2 shadow-md filter


title: Phase 2: Entry animation (timeline guides, staggered role/skill/link appearance)

description: Timeline guides fade 200ms, role nodes slide left staggered 80ms/300ms, skill nodes scale from 0 staggered 30ms/250ms, links stroke-dashoffset, skip if prefers-reduced-motion


title: Phase 2: Legend with domain node counts

description: Domain node counts in legend: Technical (8) · Clinical (6) · Leadership (7)


title: Data: Include education entities in buildConstellationData

description: Modify buildConstellationData() in timeline.ts to include education entities (A-Levels, MPharm). Update types if needed. Timeline order: A-Levels(2009) → MPharm(2011) → Pre-Reg(2015) → Duty Manager(2016) → Pharmacy Manager(2017) → High Cost Drugs(2022) → Deputy Head(2024) → Interim Head(2025)


title: Hook: Create useTimelineAnimation for chronological reveal

description: All nodes hidden initially (opacity:0), reveal chronologically per role/education entity. rAF+timestamp scheduler, state machine in refs (IDLE→PLAYING→PAUSED→HOLDING→RESETTING→PLAYING). Auto-play after sim settles. Loop: hold 3s → fade 400ms → pause 200ms → restart. Skills already visible get reinforcement pulse (1.3x→1.0x 350ms). Year indicator overlay.


title: Visual: Entry animation reveal effects

description: Role nodes scale from 0 with ease-out-back. New skill nodes scale from 0 with ease-out. Links draw on via stroke-dashoffset. Year indicator top-left monospace. Replace Phase 2 entry animation with timeline-driven animation.


title: Integration: Wire animation to highlight system (Phase 4)

description: Multiplicative opacity: animation(0/target) × highlight(1.0/0.15). Hover/tap pauses animation. Highlight only on revealed nodes. Resume 800ms after interaction ends. Explicit pause via button stays paused. Play/pause toggle bottom-right. Mobile accordion + keyboard nav + detail panel work during pause. prefers-reduced-motion shows final state.


title: Accessibility: reduced-motion + play/pause button

description: prefers-reduced-motion skips animation entirely, shows final state. Play/pause button with aria-label, subtle styling, larger touch target on mobile.


title: Plan Stage 1 canonical content schema

description: Planner hat: identify next unchecked stage and update .ralph/plan.md with scoped file-level migration plan


title: Stage1 Checkpoint A: add canonical profile content schema/module/helpers

description: Create src/types/profile-content.ts, src/data/profile-content.ts, and src/lib/profile-content.ts with typed, centralized descriptive text and selectors; no consumer migration in this task.


title: Stage 2 core UI migration to canonical profile content

description: Migrate patient summary, sidebar profile text, experience, education, and skills surfaces to read from src/data/profile-content.ts via typed helpers while preserving keys/interaction behavior.


title: Stage 3 secondary consumer migration (timeline/search/chat)

description: Migrate timeline/constellation narrative fields, detail supporting text, and search/chat context derivations to canonical profile content; remove duplicate hardcoded narratives where feasible.


title: Stage 4 cleanup hardening and one-file editing docs

description: Remove obsolete duplicate copy sources or reduce to compatibility adapters, tighten canonical content typing, and add concise documentation for single-file content editing workflow.


title: Resolve build.blocked backpressure and close loop

description: Handle pending build.blocked by running planner->builder->reviewer handoff to produce fresh verification evidence (tests/lint/typecheck/audit/coverage/complexity/duplication/specs as applicable) and determine whether completion can be emitted.


title: Backpressure recovery handoff

description: Handle pending build.blocked by delegating planner-led verification/evidence pass and producing compliant build.done payload fields.


title: Backpressure recovery after abandoned build task

description: Handle build.task.abandoned/build.blocked by producing a planner-led verification handoff for full build.done evidence contract.


description: Manually closed after objective completion to prevent stale verification-recovery loop rehydration.