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/.envasDATABASE_URLor rundocker-compose up -dto start postgres in a docker container. - Postgres setup:
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 devto create the database and run the migrations.- You might want to run
vp run prisma migrate resetandvp run prisma db seedto seed the database with initial data. - Run
vp run devto run the example.
Running Tests
- When changing framework code, you need to run
vp run build. - Run
vp testto run all tests. - Run
vp checkto run linting and type checking. - If
@nkzw/fateorreact-fatemodules cannot be resolved it means you forgot to runvp run build.