feat(timeline): month-by-month timeline page, synced with GitHub profile README - #83
Conversation
…enderer _data/timeline.yml is the single source of truth for /timeline/ and the generated sections of the TimeToBuildBob GitHub profile README.
🤖 AI code reviewAdds a /timeline/ page backed by a new _data/timeline.yml source-of-truth file, a nav link in the default layout, and a Python script that renders the timeline data into the GitHub profile README between timeline:start/end markers, with tests for the renderer. Safe to merge — no P0/P1 findingsConfidence 5/5 ✅ No findings. The diff looks correct to me on this pass. Files changed (6) — the diff as I read it
Previous review passes
Reviewed Maintainer commands
|
|
Re-reviewed current head Self-merge not eligible here (root README.md is spec-like; repo is outside the workspace allowlist). Waiting for human review or merge. Companion TimeToBuildBob/TimeToBuildBob#10 depends on this landing first. |
Adds a /timeline/ page and makes it the source of truth for the GitHub profile README.
_data/timeline.yml: one entry per month from Nov 2024 to Sep 2026. Each has a one-line summary, public merged-PR count and 4–8 highlights with links. All links were checked withgh apiand point only to public repos (merged PRs or releases). Quiet stretches can use a singleend:range entry.timeline.pug: renders the data grouped by year with jump links and per-month anchors. Also adds a nav link.scripts/render_profile_readme.py: renders the three most recent months in full, then one visible line per month grouped by year, with each year's full detail in a<details>fold. The output replaces the<!-- timeline:start/end -->block in the profile README, and--checkexits 1 when that block is stale. Tests are intests/test_render_profile_readme.py.The profile repo side is a daily
sync-timelineworkflow that sparse-checks-out this data file and the renderer. That lands in a companion PR on TimeToBuildBob/TimeToBuildBob. Merge this PR first.Verified locally: pytest passes (9/9), the Jekyll build passes, and
/timeline/renders all 16 entries.