Thank you for contributing! This document outlines the standards and workflows for maintaining the repository.
- Structure over Content: Focus on structural, presentation, and data integrity improvements. Content changes (resume text, personal details) are typically handled separately by the owner.
- Data-Driven Architecture: Most pages are generated from YAML data in
_data/. Avoid manual edits to HTML files ininterviews/orvideos/as they are overwritten by generators. - Impeccable Standards: Maintain clean markup, WCAG-compliant accessibility, and ATS-friendly semantic structures.
# Install Ruby dependencies
bundle install
# Install Node dependencies (for Playwright smoke tests)
npm install# Run local Jekyll server
./bin/serverBefore submitting changes, ensure the full pipeline passes:
# Run build, unit tests, and validation
./bin/pipeline ci
# Run browser smoke checks
./bin/pipeline smoke- Atomic Commits: Keep changes focused and well-described.
- Validated Output: Every PR must include the updated
_site/output (until the modernization phase to move this to CI is complete). - Test Coverage: Add or update RSpec tests in
spec/for any changes to generator logic or template filters. - Repository Hygiene: Follow the Repository Hygiene Policy. Declare any new top-level files in
_data/repo_hygiene.yml.
This project uses a local Backlog.md file for task tracking.
- Search First: Before creating a task, search for duplicates.
- Lifecycle: Follow the standard Draft -> To Do -> In Progress -> Done workflow.
- Documentation: Use the
backlog://workflow/overviewMCP resource for detailed guidance.
- Static Site Generator: Jekyll 4.x
- CSS: Minimal custom SCSS in
_sass/, compiled toassets/css/site.css. - Validation:
htmlprooferfor link and structure checks.Playwrightfor browser smoke tests.- Custom Ruby validators for data integrity.
- Optimization: Use
svgofor vector assets and theimage_optimplugin for raster images.
Major changes to the system architecture should be documented via an ADR (Architecture Decision Record) in docs/adr/.