Contributing Index - drizztdourden08/relic-of-the-past GitHub Wiki

Contributing Guide

Thanks for helping improve Relic of the Past! This is the contributor hub; the repo-root CONTRIBUTING.md is the short version GitHub surfaces, and points here.

[!IMPORTANT] This is an unofficial fan project, not affiliated with Nintendo. Keep ROMs and other user-provided game assets out of commits, since they're gitignored and never committed.

Start here

  1. Build from Source needs Node ≥ 24, npm install, npm run dev. The WASM core is committed prebuilt, so you don't need Emscripten for normal work.
  2. Coding Standards sets ≀200 lines/file, arrow functions, exports at end, one-thing-per-file, deep folders. ESLint and hooks enforce all of it.
  3. Under File Tagging & Analysis, every file carries @layer/@kind, and npm run analyze gates changed files. New file → npm run analyze:tag.
  4. Under Plan Format, every implementation plan names its design pattern(s), shows a CRUD filetree, the data model in TS, and a flow diagram.

When your change touches

Area Read
C / the game core Building the WASM Core, Adding a WASM Function
The C↔JS boundary Game Hooks Reference
Renderer ↔ main (Electron IPC) Adding an IPC Channel, Electron & IPC
Architecture / where code goes Architecture overview
UI components Design System, Design Language
Anything user-visible run the app and verify; see Testing
Linux / Android targets Testing on a Linux VM & Android emulator
Sharing files or bug reports with other contributors The Sanctuary

Before you open a PR

npm run ci    # tsc + eslint + repo analysis
  • Conventional Commits (feat:, fix:, docs:, and so on), scoped where helpful.
  • Branch from master, keep PRs small and focused, and fill out the PR template.
  • Update docs in docs/ when behavior changes. They're the source of truth and sync to the Wiki.
  • For security-sensitive reports, use private disclosure, not a public issue.