All docs

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 packageManager in 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:

  • quality lint and typecheck;
  • semgrep-sast security scanning (template);
  • build production build with dist/ artifact;
  • secret_detection secret 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).