Keep the git history useful for a human maintainer.
- Start every task by checking
git status --short --branchand recent history. - Treat existing uncommitted changes as user work unless there is clear evidence they were generated by the current task. Do not revert, overwrite, or fold unrelated changes into a commit.
- Keep generated output, local state, dependency libraries, credentials, and
scratch files out of git. In this repo,
_site/,.quarto/,tmp/, andrenv/library/should remain ignored. - Split commits by intent. Prefer separate commits for repository hygiene, source/pipeline changes, content updates, generated tracked artifacts, and formatting-only changes when those concerns are distinct.
- Use concise imperative commit messages that explain the change, for example
Integrate CV into Quarto siteorRefresh homepage introduction. - Before committing, inspect the staged diff with
git diff --cached --statand run an appropriate validation command. At minimum, usegit diff --cached --check; for website changes, runquarto renderwhen the local environment supports it. - If validation updates tracked generated artifacts, commit those updates with the source change that caused them, or as a small follow-up commit with a clear message.
- Do not rewrite published history, force-push, reset, or delete branches unless the user explicitly asks for that operation.
- Do not push automatically unless the user asks. Leave local commits ahead of
originand report that state clearly.
Google Drive is the canonical source for structured CV data. In this repo,
cv/data/snapshots/ is a committed cache used for offline and reproducible
renders, and cv/content_html/ is generated output.
When changing CV records:
- Edit the source record in Google Drive first.
- Run
Rscript --vanilla cv/scripts/sync_drive_snapshots.R --checkfrom the repository root to check whether snapshots drift from Drive. - Run
Rscript --vanilla cv/scripts/sync_drive_snapshots.R --applyto refresh raw synced snapshots from Drive. - Run
Rscript --vanilla cv/scripts/render_cv_fragments.Rto regenerate committed HTML fragments. - Render the CV with
quarto render cv/index.qmd --no-cachewhen validating the final page.
Do not hand-edit files in cv/data/snapshots/ or cv/content_html/ except for
emergency repairs. Any emergency repair must be backfilled to the canonical
Drive source immediately, then re-synced and regenerated.
Some CV sections are projections from richer Drive data rather than raw copies: funding is based on Drive funding/proposal records, and work experience is based on the Drive jobs/work history records. Treat the Drive records as canonical and the repo snapshot as the rendered CV projection cache.