DOC/ Updated 2026-09-14
Development
Setup, commands, and contribution workflow for this repo.
Prerequisites
- Node.js 22.12 or newer
- pnpm 12 (pinned via
packageManagerin package.json)
Setup
pnpm install
Commands
pnpm dev # local dev server with HMR
pnpm check # astro check: types and diagnostics
pnpm lint # eslint (astro + jsx-a11y rules)
pnpm build # production build into dist/
pnpm preview # serve the production build locally
All checks must pass before pushing: pnpm lint with zero errors, pnpm check with zero errors, and a successful pnpm build.
Git identity
Repository commits are authored with the project owner’s GitLab identity so that CI jobs run with identity verification, and every commit carries a co-author trailer:
Co-authored-by: Ella Mizuki
This is required for the pipeline to run; see deployment.md.
Branch protection
main is protected: push by Maintainers, force push disabled. History
rewrites (such as re-authoring commits) require temporarily removing the
protection, force pushing, and restoring it with the exact same settings.
CI/CD
The pipeline defined in .gitlab-ci.yml runs four jobs:
qualitylint and typecheck;semgrep-sastsecurity scanning (template);buildproduction build withdist/artifact;secret_detectionsecret scanning (template).
The pnpm setup (corepack enable) is scoped to the quality and build
jobs only. Security template images do not include corepack and must not
inherit it.
Testing before merge
The site is static and currently has no unit test suite. Validation is:
- lint, typecheck, build;
- browser pass at 375, 768, 1024, 1440, and 1920px with zero horizontal overflow;
- reduced-motion pass: no shimmer or transitions active, content visible;
- check anchor navigation clears the fixed header (scroll padding).