AGENTS.md

Repo-specific notes for Codex and other coding agents working on this portfolio.

Project Shape

  • This is a self-contained Jekyll 4 personal research portfolio for GitHub Pages.
  • The site is built without an external Jekyll theme gem; layouts, includes, CSS, and JS live in this repo.
  • The homepage is _pages/about.md with permalink: /.
  • Top-level navigation comes from _data/nav.yml.
  • Blog posts live in _posts/ and must use YYYY-MM-DD-title.md filenames.
  • Project entries live in the projects collection under _projects/ and are output at /projects/:name/.

Local Build And Verification

  • Use Ruby 3.x. GitHub Pages deploys from the main branch per README.md.
  • Run bundle exec jekyll build before finishing changes that affect templates, config, assets, or content rendering.
  • Use bundle exec jekyll serve for local preview when visual/layout changes need browser verification.
  • _site/, .jekyll-cache/, and Gemfile.lock are currently ignored. Do not commit generated build output or cache files unless the user changes repo policy.

Editing Rules

  • Keep changes surgical. Do not rewrite placeholder content unless the user asks for real portfolio copy.
  • Do not edit _site/; it is generated by Jekyll.
  • When adding a page, put the page in _pages/, give it explicit front matter, and add nav order in _data/nav.yml only if it should appear in the header.
  • When adding a project, create one Markdown file under _projects/ with layout, title, description, and order front matter.
  • When adding a post, use layout: post, title, date, optional tags, and optional excerpt.

Design Notes

  • The visual system is defined mainly in assets/css/main.css and documented in DESIGN.md.
  • Preserve the current direction: light frosted header, centered nav, cool gray/white surfaces, cool rose/blue/orange gradients, lo-fi texture, and dark-mode support.
  • Keep layout responsive around desktop widths and mobile widths near 390px.
  • Use existing classes such as app-surface, interactive-card, empty-state, btn, btn-primary, and btn-outline before adding new patterns.
  • Theme behavior is split between the no-flash inline script in _includes/head.html and the click handler in assets/js/theme.js; update both only when changing theme semantics.

Known Notes

  • The LinkedIn URL in _data/socials.yml, profile copy, CV, publications, and example project are placeholders.