Skip to content

Contributing Guide

AI Assistance Notice

IMPORTANT

If you are using any kind of AI assistance to contribute to fate, it must be disclosed in the pull request.

If you are using any kind of AI assistance while contributing to fate, this must be disclosed in the pull request, along with the extent to which AI assistance was used (e.g. docs only vs. code generation).

If PR responses are being generated by an AI, disclose that as well. As a small exception, trivial tab-completion doesn't need to be disclosed, so long as it is limited to single keywords or short phrases.

An example disclosure:

This PR was written primarily by Claude Code.

Or a more detailed disclosure:

I consulted ChatGPT to understand the codebase but the solution was fully authored manually by myself.

When using AI assistance, we expect contributors to understand the code that is produced and be able to answer critical questions about it. It isn't a maintainer's job to review a PR so broken that it requires significant rework to be acceptable.

Please be respectful to maintainers and disclose AI assistance.

Thanks to Ghostty's Contribution Guidelines for inspiring this policy.

Initial Setup

You'll need Node.js 24+ and Vite+.

  • Run vp install && vp run dev:setup.
  • Set up a Postgres database locally and add the connection string to example/server-prisma/.env as DATABASE_URL or run docker-compose up -d to start postgres in a docker container.
  • Postgres setup:
SQL
CREATE ROLE fate WITH LOGIN PASSWORD 'echo';
CREATE DATABASE fate;
ALTER DATABASE fate OWNER TO fate;

Then, at the root of the project, run:

  • vp run prisma migrate dev to create the database and run the migrations.
  • You might want to run vp run prisma migrate reset and vp run prisma db seed to seed the database with initial data.
  • Run vp run dev to run the example.

Running Tests

  • When changing framework code, you need to run vp run build.
  • Run vp test to run all tests.
  • Run vp check to run linting and type checking.
  • If @nkzw/fate or react-fate modules cannot be resolved it means you forgot to run vp run build.

Released under the MIT License