Commit Graph

416 Commits

Author SHA1 Message Date
admin 661dba4b75 audit: verify patient.ts against reference documents
- Address corrected from 'Norwich, NR1' to 'Norwich, UK' to match CV
- Created References/unverified-content.md to track audit findings
- Flagged retained-but-unverifiable personal data (DOB, GPhC number, LinkedIn slug)
- All other fields verified against CV_v4.md
2026-02-17 03:11:47 +00:00
admin 9e31843fc9 chore: merge secondary reference documents into single deduplicated source
Create References/andy_charlwood_complete_reference.md by merging
andy_charlwood_career_knowledge.md and andy_charlwood_career_knowledge_dump.md.
Structured by career timeline, projects, skills, education, leadership, and
career goals. Where sources conflicted, the more detailed version was preferred.
Original files preserved unchanged.
2026-02-17 03:09:55 +00:00
admin f7469f487f chore: bypass boot sequence for faster dev iteration
Temporarily set initial phase to 'pmr' to skip boot/ECG/login
during content audit work. Will be reverted in Phase 3.3.
2026-02-17 03:04:51 +00:00
admin 9a58b3c312 chore: auto-commit before merge (loop primary) 2026-02-17 02:26:42 +00:00
admin 01a48ce691 fix: re-enable boot sequence after refactor
Restore useState<Phase>('boot') in App.tsx, completing the refactoring
cycle (was temporarily set to 'pmr' for faster visual review).
2026-02-17 02:24:44 +00:00
admin 5eb46b02d8 refactor: remove dead code — orphaned files, unused types and functions
Delete 3 orphaned files (SubNav, TopBar, problems.ts), remove 4 unused
type definitions from pmr.ts (ViewId, NavItem, ReferralFormData, Problem),
trim types/index.ts to only Phase, and remove unused utility functions
(calculateSkillOffset, formatBootLine, getProfileContent, DotColorName).
2026-02-17 02:24:40 +00:00
admin 1b19087782 refactor: extract LastConsultationCard from DashboardLayout
Move the self-contained LastConsultationSubsection component (191 lines)
into its own file as LastConsultationCard. It uses only context and one
prop, with no dependency on DashboardLayout state. DashboardLayout drops
from 493 to 293 lines.
2026-02-17 02:16:10 +00:00
admin 49c9e0cecf refactor: centralise detail panel inline styles into detail-styles.ts
Extract 5 shared style constants (detailRootStyle, sectionHeadingStyle,
bulletListStyle, bodyTextStyle, paragraphStyle) used across 5 of 6 detail
components. Replaces ~30 inline style object definitions with imports.
Net reduction: 274 lines across detail panel components.
2026-02-17 02:09:26 +00:00
admin 7528935d2b refactor: extract ExpandableCardShell from WorkExperience and TimelineInterventions subsections
Single source of truth for expand/collapse card interaction pattern:
container styling, keyboard handling, chevron rotation, AnimatePresence
animation, and expanded content wrapper. Each consumer retains unique
header and body content via render props.
2026-02-17 02:03:13 +00:00
admin 8f4ddc454a refactor: centralise color maps, org color fallback, and motion-safe transitions
Create src/lib/theme-colors.ts with DOT_COLORS, KPI_COLORS,
PROJECT_STATUS_COLORS, and DEFAULT_ORG_COLOR constants. Add
motionSafeTransition() utility to src/lib/utils.ts.

Removes 6 duplicate color map definitions across Card, DetailPanel,
PatientSummaryTile, KPIDetail, ProjectsTile, and ProjectDetail.
Replaces 9 hardcoded '#0D6E6E' fallbacks and 7 inline motion ternaries.
Fixes project status color inconsistency between ProjectsTile and
ProjectDetail (Ongoing was teal in tile, amber in detail).
2026-02-17 01:58:10 +00:00
admin 296b18f025 refactor: extract hexToRgba and prefersReducedMotion to shared utils
Move hexToRgba() (3 identical copies) and prefersReducedMotion (5 module-level
copies) to src/lib/utils.ts. Re-export prefersReducedMotion from
constellation/constants.ts to preserve existing importers. Add clarifying
comments to constellation.ts and tags.ts re-export layers (Phase 1.4).
2026-02-17 01:48:43 +00:00
admin 45b87466be refactor: extract LLM system prompt from profile-content to dedicated module
Move the ~110-line LLM system prompt to src/data/llm-prompt.ts, removing
the LLMCopy type, getLLMCopy() accessor, and llm field from ProfileContent.
llm.ts now imports the prompt directly. profile-content.ts drops from 246
to 133 lines, retaining only UI copy and search metadata.
2026-02-17 01:42:55 +00:00
admin bbe7900968 refactor: inline timeline narrative into timeline.ts, remove indirection
Timeline entities now contain their narrative data (description, details,
outcomes, codedEntries) directly instead of fetching via
getTimelineNarrativeEntry(). Removes ~155 lines from profile-content.ts,
the accessor function, and three dead types.
2026-02-17 01:37:32 +00:00
admin 0ee7b5d44c refactor: skip boot/ECG/login sequence for dev iteration speed
Temporarily set initial phase to 'pmr' to bypass the ~10s boot animation
during the refactoring process. Will be reverted in Phase 4.3.
2026-02-17 01:28:48 +00:00
admin 83b327d58e Refactor to pull all text enteries into single location 2026-02-17 01:10:31 +00:00
admin 6605966fab feat: add canonical profile content schema and access helpers 2026-02-16 23:32:25 +00:00
admin 8178d03cb2 Rehaul of graph component 2026-02-16 23:16:46 +00:00
admin e9a7581aa5 chore: auto-commit before merge (loop primary) 2026-02-16 15:06:20 +00:00
admin aca57714e4 chore: auto-commit before merge (loop primary) 2026-02-16 14:36:25 +00:00
admin 9276955fa8 refactor: extract PlayPauseButton + screen-reader-description from orchestrator
Reduces CareerConstellation orchestrator from 334 to 285 lines to meet
the <300 line success criterion.
2026-02-16 14:35:15 +00:00
admin 8b674ffe14 feat: phase 3+4 timeline animation + education entities
- Add education entities (A-Levels, MPharm) to constellation data
- Add 'education' node type with dashed border styling
- Create useTimelineAnimation hook with rAF scheduler + state machine
  (IDLE → PLAYING → PAUSED → HOLDING → RESETTING → loop)
- Chronological reveal: entities oldest-first with skill stagger,
  link draw-on, reinforcement pulse for already-visible skills
- Year indicator overlay (monospace, top-left)
- Multiplicative opacity: animation visibility × highlight emphasis
- Highlight system respects visibleNodeIdsRef (unrevealed stay hidden)
- Interaction pause/resume wired to animation hook
- Play/pause button (bottom-right, larger touch target on mobile)
- prefers-reduced-motion: shows final state immediately, no animation
- Remove Phase 2 entry animation (replaced by timeline animation)
2026-02-16 14:31:11 +00:00
admin 7d7628c8a7 feat: phase 2 visual improvements for CareerConstellation
- Links: domain-colored with strength-weighted width/opacity, improved bezier curves
- Skill nodes: domain-colored stroke, size encoding by connected role count, glow filter on highlight
- Role nodes: gradient fill (orgColor 0.08→0.18), enhanced highlight with fill-opacity and stroke-width
- Entry animation: staggered reveal (guides→roles→skills→links with stroke-dashoffset), skipped under prefers-reduced-motion
- Legend: domain node counts displayed
2026-02-16 14:16:36 +00:00
admin 65b265733e refactor: decompose CareerConstellation monolith into focused modules
Break 1102-line CareerConstellation.tsx into:
- constellation/constants.ts: sizing, opacity, domain color tokens
- constellation/types.ts: SimNode, SimLink, LayoutParams interfaces
- hooks/useForceSimulation.ts: D3 simulation lifecycle
- hooks/useConstellationHighlight.ts: highlight/dim logic
- hooks/useConstellationInteraction.ts: mouse/touch/pin handlers
- constellation/MobileAccordion.tsx: tap-to-expand role details
- constellation/ConstellationLegend.tsx: domain legend
- constellation/AccessibleNodeOverlay.tsx: keyboard navigation buttons
- constellation/CareerConstellation.tsx: 288-line orchestrator

All existing behaviour preserved. Quality gates pass.
2026-02-16 14:06:41 +00:00
admin b34ecb89e2 clean up 2026-02-16 13:27:51 +00:00
admin 4dfb1607c1 Updated chart 2026-02-16 13:23:04 +00:00
admin 2e242a650a chore: auto-commit before merge (loop primary) 2026-02-16 12:44:34 +00:00
admin 683275416e Removed top bar, and updating sidebar 2026-02-16 12:25:19 +00:00
admin 18d2704677 Updated hats 2026-02-16 11:39:13 +00:00
admin c3a72d0bee Cleanup 2026-02-16 11:33:47 +00:00
admin 5a657c4aac chore: add ralph sidebar workflow setup files 2026-02-16 11:33:13 +00:00
admin 78e994ec5e chore: auto-commit before merge (loop primary) 2026-02-16 11:04:21 +00:00
admin 68f92fb9a0 feat: polish interventions carousel responsiveness 2026-02-16 11:04:08 +00:00
admin be7a65ef8a feat: tune carousel autoplay for reduced motion 2026-02-16 11:02:32 +00:00
admin 5fa01b8d66 feat: implement Embla carousel in ProjectsTile 2026-02-16 11:00:46 +00:00
admin 98d767fa7f feat: rename Active Projects references to Significant Interventions 2026-02-16 10:58:29 +00:00
admin a6df900605 merge codex/kpi (prefer codex/kpi on conflicts) 2026-02-16 10:52:24 +00:00
admin 5637d56e02 Cleanup 2026-02-16 10:50:14 +00:00
admin 24ffe03c0f chore: auto-commit before merge (loop primary) 2026-02-16 10:43:44 +00:00
admin e5c7d9bb41 chore: document KPI objective verification 2026-02-16 10:43:28 +00:00
admin 960c9b7729 Init 2026-02-16 10:41:41 +00:00
admin dad638e68e Added task files 2026-02-16 10:37:11 +00:00
admin b67c3b041f chore: auto-commit before merge (loop primary) 2026-02-16 10:36:47 +00:00
admin ab80d65958 feat: compact latest results kpi section 2026-02-16 10:36:30 +00:00
admin 2306d2ec2e codex setup 2026-02-16 10:27:55 +00:00
admin b418338cd7 feat: US-008 - Re-tune force simulation for 8 timeline entries in narrower column 2026-02-16 10:23:03 +00:00
admin c9dd93ac70 feat: US-007 - Colour-match work experience cards to constellation node colours 2026-02-16 10:09:34 +00:00
admin a258706bf3 feat: US-006 - Mobile accordion expansion for role details 2026-02-16 10:04:35 +00:00
admin 67fe5567a9 feat: US-005 - Hover-to-highlight interaction on desktop 2026-02-16 09:58:27 +00:00
admin f3e9b58e8d feat: US-004 - Viewport-proportional scaling for large screens 2026-02-16 09:50:07 +00:00
admin 76692682da feat: US-003 - Increase default skill visibility and reduce constellation column width 2026-02-16 09:44:10 +00:00