Imported from derjust/sebastian-just.com (
AGENTS.md). Install upstream withnpx skills add derjust/sebastian-just.com. Copyright stays with the author.
AGENTS.md — sebastian-just.com
Primary personal site. The site is a resume generated from resume.json (JSON Resume
schema) using resume-cli with the
macchiato theme.
Repo layout
resume.json— the single source of truth for the site content.package.json— pinsresume-cli+jsonresume-theme-macchiato; defines the scripts below..github/workflows/validate.yml— runs on PRs tomain..github/workflows/deploy.yml— runs on push tomain(+ manual dispatch).CNAME,favicon.ico— static assets copied into the published site.profile.jpeg— present but NOT used by the macchiato theme (it ignoresbasics.image).public/,node_modules/— generated/installed, git-ignored.
Commands
- Install:
PUPPETEER_SKIP_DOWNLOAD=true npm install(see note below). - Validate:
npm run validate→resume validate resume.json. - Build:
npm run build→mkdir -p public && resume export public/index.html --format html --theme macchiato.resume exportdoes NOT create parent dirs — alwaysmkdir -pfirst.
Important gotchas
- PDF export is intentionally not used.
resume-clipulls in fullpuppeteer, whose postinstall downloads Chromium. We only export HTML, so setPUPPETEER_SKIP_DOWNLOAD=truefor installs (the workflows set it as a jobenv). The bundled Chromium is also broken on Apple Silicon locally (spawn error -88). - Node 24. Use
node-version: 24and node24-runtime actions (actions/checkout@v7,actions/setup-node@v7); node20-runtime actions are deprecated.
Deployment (GitHub Pages)
- On merge to
main,deploy.ymlbuilds and publishes./publicto thegh-pagesbranch viapeaceiris/actions-gh-pages@v4(force_orphan), copyingCNAME/favicon.icoin. - GitHub Pages source =
gh-pagesbranch, path/. Custom domainsebastian-just.comis kept alive by theCNAMEfile in the published output. sebastian-just.deandsebastianjust.deare separate repos that redirect here.
Branch protection on main
- PRs required before merge; the
validatestatus check must pass (strict / up-to-date). enforce_admins = false— repo admins (derjust) can bypass when needed.- Direct force-pushes and branch deletion are disabled.
- The required check name is
validate(the job id invalidate.yml) — keep them in sync.