feat: portfolio-first site — drop Work and Skills sections, résumé carries career history#156
Conversation
…rries career history The site is a lobby, not a brochure: hero (identity, proof, action) → Open Source tri-panel (what a résumé can't show) → contact. Work and Skills duplicated the résumé, which is one click away in HTML and DOCX. External research on exemplar staff-engineer sites (Chiang, Hashimoto, Brandur, Evans, Luu, McKinley, Robinson, matklad, Majors, swyx) independently flagged the skills listing as the strongest template/junior tell — no staff-level site has one — and confirmed the lobby model for hire-me sites when career detail lives in the résumé. Also: ClassPass work entry deleted — everything pre-Symbiont (2017) lives in the Earlier Career paragraph (its cost win, fleet scale, and early-IaC claim were already quoted there). Symbiont, the long-term salaried role, is the start of the listed history. Nav reduces to Open Source · Contact · Résumé. Decision: site shows only what the résumé cannot; career history starts at Symbiont Why: user directive (redundancy + pre-2017 one-year roles read better as prose); research-validated Resolves: 'do we NEED a work section' / 'Symbiont should be the start of actual roles' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 51 minutes and 57 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughThis PR restructures the portfolio site to prioritize open-source work over employment history, replacing lucide-react brand icons with custom SVG components, adding OOXML post-processing to fix turbodocx layout defects, enhancing the QC pipeline with dual-engine rendering (LibreOffice and Pages), and updating tests to validate the new structure. ChangesPortfolio-first site redesign
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Review Summary
This PR successfully implements the portfolio-first site redesign by removing Work and Skills sections and simplifying the navigation structure. The changes are clean and well-tested.
Key Changes Verified:
- Work and Skills sections removed from site (JobList and SkillSheet components no longer imported)
- Navigation reduced to Open Source and Contact anchors
- ClassPass work entry removed from resume data (pre-2017 roles consolidated in Earlier Career paragraph)
- All tests updated to match new structure and assertions verified
Testing: All changes are covered by updated e2e tests that verify the absence of Work/Skills sections and the presence of Open Source content. The PR description confirms 24 unit + 13 e2e tests passing with 0 TypeScript errors and clean biome linting.
No blocking issues identified. The implementation correctly reflects the architectural decision to make the site a "lobby" focused on open-source portfolio with career history delegated to the résumé.
You can now have the agent implement changes and create commits directly on your pull request's source branch. Simply comment with /q followed by your request in natural language to ask the agent to make changes.
There was a problem hiding this comment.
Code Review
This pull request simplifies the main application page by removing the 'Work' (JobList) and 'Skills' (SkillSheet) sections, as this information is already accessible via the HTML and DOCX resume. The navigation links, associated component files, and E2E tests have been updated or removed accordingly. Additionally, the ClassPass entry was removed from the resume's work history list since it is already covered in the 'Earlier Career' paragraph. Feedback on these changes suggests removing the top border from the 'Open Source' section in src/App.tsx because it is now the first section following the hero, ensuring a cleaner visual layout.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
…nkedin icons Unblocks the npm-major dependabot bump (#129) whose lucide upgrade turned the long-standing deprecation warnings into type errors. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…X QC The DOCX showed spacing voids and indented headings that QC missed for two reasons: it rendered only through LibreOffice (the user views in Pages — different layout engine) and reviewed downscaled thumbnails. Root causes in @turbodocx/html-to-docx v1.21.0 (verified in source): - tblCellMar is hardcoded to 160 twips l/r + 80 t/b on every table, so layout tables (heading rules, title/date rows) rendered indented against body text with inflated padding - an empty paragraph is emitted after every table — a dead line between each heading rule and its section body postprocess.ts rewrites word/document.xml after conversion: zeroes the cell margins and strips the dead paragraphs (whitespace-tolerant match; keeps the OOXML-required trailing paragraph before sectPr). Structural tests lock both invariants. qc.ts now renders through BOTH local engines at 200 DPI — LibreOffice (Word proxy, CI-available) and Apple Pages via AppleScript (the engine that exposed these bugs) — emitting <engine>-<page>.png for review. Decision: fix converter defects by post-processing OOXML in our build, not by switching converters Why: turbodocx hardcodes the values (no options); it remains the only converter validated in both Word-proxy and Pages engines Resolves: 'docx showing weird spacing gaps and alignment issues' + 'need a way to capture the docx as it actually shows up' Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…st section after the hero Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Why
Two user directives plus external research:
What
JobList.tsx,SkillSheet.tsxdeleted); nav reduces toOpen Source · Contact · Résumé.Verification
Research follow-ups (not in this PR)
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Bug Fixes
Documentation