Skip to main content

Commit Format

folksbase uses Conventional Commits. Every commit message follows this pattern:
Common types: Examples:

Branch Naming

Branches follow the same type prefix:

Pull Requests

  • PRs must pass CI before merge (Biome lint + typecheck + tests + build)
  • Squash merge to keep history clean
  • No force-pushes to main

CI Pipeline

The CI workflow (.github/workflows/ci.yml) runs on every PR to main:
  1. Lintpnpm lint (Biome)
  2. Typecheckpnpm typecheck
  3. Testpnpm test (Vitest)
  4. Buildpnpm build (runs only after lint, typecheck, and test pass)
  5. Claude Code Review — AI-powered review that checks the PR against AGENTS.md rules
Concurrent CI runs on the same branch are automatically cancelled.

Local Git Hooks

Git hooks live in .githooks/ and are auto-configured when you run pnpm install (via pnpm prepare, which sets core.hooksPath). These hooks catch issues before they reach CI. Don’t bypass them with --no-verify unless you have a good reason.
The pre-push hook runs typecheck, tests, and a full build. This can take a minute or two — it’s intentional. Better to catch issues locally than wait for CI.

Storybook Deploy

The Storybook deploy workflow (.github/workflows/deploy-storybook.yml) triggers on pushes to main when component files, Storybook config, or shared types change. It can also be triggered manually via workflow_dispatch.