8.5 KiB
Task: Content Accuracy Audit & Boot Sequence Redesign
Audit all user-facing text content on the portfolio website against authoritative reference documents. Replace hallucinated or inaccurate content with verified text. Redesign the boot sequence to remove the ECG phase and create a polished software-launch transition.
Reference Documents (Sources of Truth)
Primary (highest authority — written and reviewed by Andy):
References/CV_v4.md
Secondary (comprehensive but compiled by AI from conversations — may contain inaccuracies):
References/andy_charlwood_complete_reference.md(merged file you create in Phase 1)
Original secondary sources (kept for reference, do not modify):
References/andy_charlwood_career_knowledge.mdReferences/andy_charlwood_career_knowledge_dump.md
Content Files to Audit
Every file below contains user-facing text that must be verified:
| File | Content Type |
|---|---|
src/data/timeline.ts |
Career roles (6) + education (2) with descriptions, details, outcomes, codedEntries |
src/data/skills.ts |
21 skills with prescribing history narratives |
src/data/kpis.ts |
4 KPIs with values, labels, story context, outcomes |
src/data/llm-prompt.ts |
~100 line system prompt with full professional profile |
src/data/profile-content.ts |
UI copy: profile narrative, achievements, education entries, skill summaries |
src/data/patient.ts |
Personal details: name, contact, location, registration |
src/data/alerts.ts |
2 alert banner messages |
src/data/investigations.ts |
5 projects with methodology, results, tech stack |
src/data/documents.ts |
Education credentials, grades, research detail |
src/data/educationExtras.ts |
Extracurriculars, research descriptions, OSCE score |
src/components/BootSequence.tsx |
Terminal boot text: system name, user, role, location |
Checklist
Work through IN ORDER. Each phase leaves the codebase in a passing state (lint + typecheck + build).
Phase 0: Dev Shortcut
- 0.1 — Disable boot/login sequence for faster iteration
- In
src/App.tsxline 48, changeuseState<Phase>('boot')touseState<Phase>('pmr') - Do NOT remove components or imports — just bypass them
- Verify:
npm run buildpasses
- In
Phase 1: Merge Secondary Reference Documents
- 1.1 — Create merged secondary reference file
- Read both
References/andy_charlwood_career_knowledge.mdandReferences/andy_charlwood_career_knowledge_dump.md - Create
References/andy_charlwood_complete_reference.md— a single, deduplicated document - Structure: logical sections (Career Timeline, Projects, Skills, Education, Leadership, Goals, etc.)
- Where the two files conflict, prefer the more detailed/specific version
- Where the two files duplicate, keep only one copy
- Do NOT modify the original files
- The merged file is your secondary source of truth for all subsequent phases
- Read both
Phase 2: Content Audit & Correction
For each file in the audit list, compare every piece of text content against the reference documents. Apply these rules:
Rule 1 — Primary source match: If text can be verified against References/CV_v4.md, ensure the language matches closely. Prefer lifting phrasing directly from the CV where it reads naturally.
Rule 2 — Secondary source match: If text isn't in the CV but IS in the merged secondary reference, it can stay — but flag for review if the wording seems embellished or AI-generated. Tighten the language to sound natural and factual.
Rule 3 — No source match: If text content (facts, claims, metrics, descriptions) cannot be verified against ANY reference document, add it to References/unverified-content.md and remove it from the website. Format: file path, the unverified text, and why it couldn't be verified.
Rule 4 — Missed opportunities: While auditing, note any skills, projects, achievements, or goals from the reference documents that are NOT represented on the website but could be valuable additions. Add these to a "Missed Opportunities" section in References/unverified-content.md for future consideration.
Work through files in this order:
- 2.1 — Audit patient.ts (personal details — quick win, easy to verify)
- 2.2 — Audit timeline.ts (career narratives — largest content file, most critical)
- 2.3 — Audit kpis.ts (metrics and values — must match CV exactly)
- 2.4 — Audit investigations.ts (projects — verify methodology, results, tech stack)
- 2.5 — Audit skills.ts (skill descriptions and prescribing history)
- 2.6 — Audit documents.ts and educationExtras.ts (education credentials)
- 2.7 — Audit profile-content.ts (UI copy and narrative text)
- 2.8 — Audit llm-prompt.ts (system prompt — must reflect accurate profile)
- 2.9 — Audit alerts.ts (banner messages)
- 2.10 — Audit BootSequence.tsx (terminal boot text)
- 2.11 — Final sweep for any remaining hardcoded strings in components
Phase 3: Boot Sequence Redesign
-
3.1 — Remove ECG phase entirely
- Delete
src/components/ECGAnimation.tsx - Remove ECG import, phase, and rendering from
src/App.tsx - Remove
'ecg'from thePhasetype insrc/types/(or wherever it's defined) - Update flow: boot → login (no ECG intermediary)
- Delete
-
3.2 — Redesign boot-to-login transition
- Create a convincing "software launching" experience that transitions from the terminal boot into the login screen
- The boot sequence already has a terminal/CLI aesthetic — lean into this
- Ideas to consider (pick what works best):
- Boot terminal completes its checks, then smoothly morphs/dissolves into the login screen
- A loading progress bar or spinner after boot completes, then login fades in
- Terminal text clears line-by-line (or collapses) as the login interface materialises
- A brief "system ready" state with a visual flourish before transitioning
- The transition should feel intentional and polished, not abrupt
- Must respect
prefers-reduced-motion(instant transition if reduced motion preferred) - Keep the Skip button visible during boot — it should skip directly to the dashboard (
'pmr'phase)
-
3.3 — Verify boot sequence flow
- Re-enable boot sequence: change
useState<Phase>('pmr')back touseState<Phase>('boot') - Manually verify: boot → transition → login → dashboard
- Skip button works and goes straight to dashboard
npm run buildpasses
- Re-enable boot sequence: change
Phase 4: Final Validation
-
4.1 — Compile unverified content summary
- Ensure
References/unverified-content.mdis complete and well-formatted - Sections: "Removed Content" (with file/line references) and "Missed Opportunities" (from reference docs)
- Ensure
-
4.2 — Final quality gates
npm run lintpasses with zero errorsnpm run typecheckpasses with zero errorsnpm run buildsucceeds- Boot sequence plays correctly (not bypassed)
Success Criteria
ALL of the following must be true:
References/andy_charlwood_complete_reference.mdexists as a clean, deduplicated merge- Every text claim on the website is verifiable against at least one reference document
- Language in career/achievement descriptions closely matches CV_v4.md phrasing
References/unverified-content.mdlists all removed content and missed opportunities- ECG phase is completely removed (component deleted, type removed, no references)
- Boot → login transition is smooth, polished, and respects reduced motion
- Skip button skips directly to dashboard
npm run lint && npm run typecheck && npm run buildpasses cleanly- No runtime errors — app loads and all content renders correctly
Constraints
- TypeScript strict mode must be maintained
- Preserve all existing path aliases (
@/*) - Follow existing naming conventions (PascalCase components, kebab-case utils)
- Conventional commit messages for each logical change
- Do not change Tailwind classes or visual styling (except for boot sequence redesign)
- Do not add new dependencies (unless genuinely needed for boot transition — prefer CSS/Framer Motion which are already installed)
- Do not remove the CLAUDE.md file
- Do not modify the original reference files (
andy_charlwood_career_knowledge.md,andy_charlwood_career_knowledge_dump.md) - The
References/directory is for reference only — not deployed with the site
Status
Track progress here. Mark items complete as you go. When ALL success criteria are met, print LOOP_COMPLETE.