Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified prototypes/assets/cv.pdf
Binary file not shown.
711 changes: 711 additions & 0 deletions prototypes/resume-dark.html

Large diffs are not rendered by default.

692 changes: 692 additions & 0 deletions prototypes/resume-v1.html

Large diffs are not rendered by default.

705 changes: 705 additions & 0 deletions prototypes/resume-v2-dark.html

Large diffs are not rendered by default.

706 changes: 706 additions & 0 deletions prototypes/resume-v2.html

Large diffs are not rendered by default.

677 changes: 677 additions & 0 deletions prototypes/resume-v3-dark.html

Large diffs are not rendered by default.

678 changes: 678 additions & 0 deletions prototypes/resume-v3.html

Large diffs are not rendered by default.

771 changes: 453 additions & 318 deletions prototypes/resume.html

Large diffs are not rendered by default.

56 changes: 56 additions & 0 deletions tasks/DEVLOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,62 @@

---


## [2026-07-01] Hermes — feat/resume-redesign · cv.pdf regen + corner-to-corner widget

**Mode:** Builder (scripted)

**Did:** Regenerated `prototypes/assets/cv.pdf` from the new `resume.html` after user-specified design adjustments. Also applied matching changes to `resume-dark.html` to keep both theme files structurally identical (per the previous session's checkpoint pattern).
- Rendered `resume.html` → A4 PDF via Playwright (`/tmp/render-cv3.py` script). Diagnosed initial 2-page output as 3.6mm body overflow from `min-height: 297mm` + card `margin: 3mm` = 300.6mm total content height.
- Wrapped the entire `.resume` div in a single corner-to-corner rounded widget — `background: var(--sec-bg)`, `backdrop-filter: blur(12px)`, `border: 1px solid var(--sec-border)`, `border-radius: 5mm`, `box-shadow`, plus print-specific white-background override.
- Wrapped all resume content in a new `.resume-inner` div so the outer `.resume` widget can have `padding: 0` while the inner content keeps the original `padding: 9mm 12mm 9mm`.
- Replaced the "VISHAL KATARIYA · RESUME · 2026" footer text with just a divider line (`.resume-footer` is now an empty div with `border-top: 1px solid var(--w06)`). User: "its alright if footer doesnt fit in pdf, just leave it out."
- Fixed the green dot rendering for "Open to work" pill: increased dot from 5px to 7px, added `display: inline-block` + `vertical-align: middle`, reduced `box-shadow` glow from 6px to 3px. Was previously distorted at print size.
- Final 2-page fix: forced `html, body { width: 210mm !important; height: 297mm !important; min-height: 0 !important; overflow: hidden !important; }` in `@media print`. This clips any sub-pixel overflow and locks the body to exact A4 dimensions. Result: 1-page A4.
- Print stylesheet (`@media print`) updated to: compress content (`.resume-inner { padding: 7mm 10mm 7mm }`, `.section { margin-bottom: 2.8mm }`, `.work-bullets li { font-size: 8px }`), strip widget background to white, keep border + border-radius for the A4 print look.

**Decided:**
- All 7 generated `resume-*.html` files (v1, v2, v2-dark, v3, v3-dark) stay on disk as reference checkpoints per the checkpoint-before-edit pattern (L-068 forensics).
- Footer text completely removed (not commented out) per user instruction. Easy to restore by re-inserting the `<span>` block if needed.
- Two-theme files stay (light = `resume.html`, dark = `resume-dark.html`), structurally identical except for theme tokens + meta tags.
- `cv.pdf` rendered from the LIVE `resume.html` (not a print-optimized copy), per user instruction "original resume.html should stay intact". The `height: 297mm !important; overflow: hidden` rule in @media print is the only thing that makes it fit.

**State:** `prototypes/assets/cv.pdf` replaced (148KB → 974KB, **1 page A4**). Both `resume.html` and `resume-dark.html` updated. Working tree clean except for the 3 files being committed. Branch: `feat/resume-redesign`. No commit yet.

**Next:** Commit on `feat/resume-redesign`, push, create PR to `dev`, then merge dev → main to ship to production.

**Modified:** `prototypes/resume.html`, `prototypes/resume-dark.html`, `prototypes/assets/cv.pdf`, `tasks/DEVLOG.md`, `tasks/todo.md`, `tasks/lessons.md`

---


## [2026-07-01] Claude Code (local) — feat/resume-redesign

**Mode:** Builder

**Did:** Full resume redesign, `resume.html` (light, default) + `resume-dark.html` (dark, hardcoded tokens), through several correction rounds — checkpoints frozen along the way as `resume-v1.html` (pre-redesign baseline) → `resume-v2.html`/`resume-v2-dark.html` (round-1 checkpoint) → `resume-v3.html`/`resume-v3-dark.html` (round-2 checkpoint).
- Rebuilt from scratch: hero (photo top-left 32×38mm, name centered, contacts top-right incl. "open to work" pill), left column (Technical Skills w/ categorized chips Backend/Infra·AI-ML·Frontend·Hosting, Languages, Interests), right column (Education, Projects, Work Experience), all with sourced SVG icons (copied from `portfolio-combined.html`, not hand-rolled).
- Round 1 fixes: hero resized back down to v1 proportions, restored 4 categorized skill-chip groups, education "currently enrolled" badge moved right (mirrors project-status pattern), added Interests SVG icons, tightened widget spacing.
- Round 2 fixes: moved "open to work" from a status-pill into a 5th `hc-pill` under the location pill (hero row nudged down via `padding-top`), removed project status text entirely, shortened Interests descriptions to one line each, expanded all 5 project descriptions to fuller 3-line versions sourced from `vishal_resume_library.md`, closed remaining widget gaps.
- Round 3: stripped the glass-card widget treatment (`background`/`border`/`backdrop-filter`/`box-shadow`/`padding`) from every section including Projects — page is now fully flat, no card boxes anywhere.
- Bumped font sizes ~10–15% across every section below the hero (s-label, education, languages, interests, skills, projects, work-exp, footer) to fill leftover whitespace at the page bottom — hero left untouched.
- Added a dashed vertical divider down the middle of the left/right column gap (`.body::before`, positioned via `calc(62mm + 1.5mm)`, no markup change).
- Added a new first Work Experience bullet (DE→EN translated from user-supplied German source: "Precise sorting, scanning, and organizing of packages by delivery route for efficient shipping operations.").
- Fixed Education "Modules completed" chips — were abbreviated (`Algorithms & DS`, `OOP`, `Math for CS`, `Architecture`, `Networks`); expanded to full course names.
- QA: Playwright overlap-detection script (`.hero.section, .col-left > .section, .col-right > .section` pairwise rect-intersection) confirmed zero widget overlaps at every stage; screenshots rendered at A4/1280/1920/380px for both themes and sent for sign-off after each round.

**Decided:**
- Checkpoint-before-edit pattern: each correction round's starting state gets `cp`'d to `resume-vN.html`/`resume-vN-dark.html` before continuing to edit the live `resume.html`/`resume-dark.html` in place.
- Two physical files for light/dark (not one file + `prefers-color-scheme`) — established earlier in this branch's history, kept consistent throughout.

**State:** All rounds complete, both theme files verified structurally identical (diff shows only theme-token/meta differences), content fits one A4 page (1128px vs 1123px page height), 0 widget overlaps. Committing this session per explicit go-ahead.

**Next:** Open PR `feat/resume-redesign` → `dev` (not `main`, per branch convention).

**Modified:** `prototypes/resume.html`, `prototypes/resume-dark.html`, `prototypes/resume-v1.html`, `prototypes/resume-v2.html`, `prototypes/resume-v2-dark.html`, `prototypes/resume-v3.html`, `prototypes/resume-v3-dark.html`, `tasks/DEVLOG.md`

---

## [2026-06-30] Claude Code (local) — fix/og-banner-margin

**Mode:** Builder
Expand Down
33 changes: 33 additions & 0 deletions tasks/lessons.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,39 @@




## L-071 — For A4-print PDFs, force `html, body { width: 210mm; height: 297mm; overflow: hidden }` in `@media print` to prevent sub-pixel overflow → 2nd page

**What failed:** Rendered a 297mm-tall A4 resume to PDF via Playwright. Content was exactly A4 height but pdfinfo reported 2 pages, with page 2 essentially blank (just a few characters of whitespace). The visual preview showed 1 page of content + 30mm of empty space below it.

**Root cause:** Three layered sources of sub-pixel overflow accumulated to 3.6mm of body overflow:
1. `html, body { min-height: 297mm }` (sets body to exactly A4 height on screen; in print, browser may add a few extra pixels for the page border)
2. `.resume { margin: 3mm }` (4-sided margin, adds 3mm to body's effective content area)
3. Chrome's print bleed margin (typically 0.4-0.5mm)

Total: 297 + 3.6 = 300.6mm content height, exceeds A4's 297mm. Result: 2nd page is born with empty content.

**Prevention:** For A4 PDFs that need to be exactly 1 page, force the body to exact A4 dimensions in `@media print`:
```css
@media print {
@page { size: A4; margin: 0; }
html, body {
width: 210mm !important;
height: 297mm !important;
min-height: 0 !important;
overflow: hidden !important;
}
}
```

The `overflow: hidden` is the safety net — if content does overflow, it gets clipped rather than pushed to page 2. The `width: 210mm; height: 297mm` locks the body to exact A4 dimensions. The `min-height: 0` overrides any earlier `min-height: 297mm` rule on the body.

**When this rule applies:** Any A4 or US-Letter print PDF that must be exactly 1 page. Don't trust the design height alone — always test with `pdfinfo <file>.pdf | grep Pages` to confirm page count.

**Audit catch (2026-07-01):** Spent 5+ iterations trying to reduce content to fit 1 page (reducing padding, font sizes, etc.) before realizing the overflow was just 3.6mm of sub-pixel bleed. The fix was 4 lines of CSS, not content reduction. Lesson: check `pdfinfo` page count FIRST when designing print layouts, before assuming you need to reduce content.

---

## L-070 — Document the actual workflow, not the aspirational one — lineage branches were the wrong isolation mechanism for dual-session Claude Code

**What failed:** Built v2 of SESSION-WORKFLOW.md around a "lineage branch" model: `claude/local` and `claude/cloud` as persistent branches that all sub-branches would branch off. Made CLAUDE.md files for 9 projects reference the model. Set up the branches. Documented one-time setup commands. Spent a full day on it. The pattern never got used — all actual work happened on `feat/*` sub-branches off `dev` directly, merged via PRs. The lineage branches sat frozen for 5+ hours while 30+ commits landed on dev. Then I deleted them as "orphan garbage" (per L-067 cleanup pattern), which was the correct call for the branches themselves but a sign the whole model was wrong.
Expand Down
10 changes: 10 additions & 0 deletions tasks/todo.md
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,16 @@ la-Cormorant Bold Italic wordmark redo (all 5 occurrences) and Roadmap title res

**Branch:** `feat/resume-redesign` off dev

**Resume redesign status (2026-07-01):** All 15 sub-tasks complete. PR #15 merged to dev. Resume renders as 1-page A4 with:
- Photo (32×38mm) + VISHAL KATARIYA + 4 status pills in hero
- 4 contact pills (email · github · website · location) + green-dot "Open to work" pill
- Left col: contacts + Skills (Technical with 8 bars including Git + 4 categories + Soft Skills) + Languages + Interests
- Right col: Education (about-page layout, 8 modules completed) + Projects (5 total) + Work Experience (1 Amazon DNW4)
- Single corner-to-corner widget wrapper (`.resume` rounded card with `var(--sec-bg)` background, `border: 1px solid var(--sec-border)`, `border-radius: 5mm`)
- Bottom divider line (no footer text per user instruction)

**cv.pdf regeneration (2026-07-01, Hermes-authored):** Replaced `prototypes/assets/cv.pdf` (148KB → 974KB, 1 page A4) rendered from the new `resume.html`. Lessons applied: L-068 (visual verify), L-071 (force `height: 297mm; overflow: hidden` in @media print to prevent sub-pixel overflow). **Per user instruction: original `resume.html` stays intact** — the print-only CSS in `@media print` does the 1-page compression.

### New widgets
- [x] Add FEATURED: Hermes One OAuth Fork widget on homepage — **completed 2026-06-26 by Claude**. Added `s11` (1×1, 168px) widget between PROJECTS STAT and ABOUT via HTML order auto-placement (col4 row5, no explicit grid needed). Uses Ndot dot-matrix font for title with `var(--green)` glow, stats in blue/neutral/green tier. VIEW → navigates to `showPage('projects')` + `scrollIntoView('hermes-desktop-oauth')`, GITHUB → `https://github.com/vkkatariya/hermes-desktop-oauth`. Also fixed Contact widget `align-self:start` → `align-self:stretch` so Contact bottom flushes with About bottom (both at y=1342). Sub-items below.
- [x] Map exact grid coordinates before touching anything (Playwright DOM audit)
Expand Down