mirror of
https://github.com/we-promise/sure.git
synced 2026-04-07 14:31:25 +00:00
2.4 KiB
2.4 KiB
Repository Guidelines
Project Structure & Module Organization
- Code:
app/(Rails MVC, services, jobs, mailers, components), JS inapp/javascript/, styles/assets inapp/assets/(Tailwind, images, fonts). - Config:
config/, environment examples in.env.local.exampleand.env.test.example. - Data:
db/(migrations, seeds), fixtures intest/fixtures/. - Tests:
test/mirroringapp/(e.g.,test/models/*_test.rb). - Tooling:
bin/(project scripts),docs/(guides),public/(static),lib/(shared libs).
Build, Test, and Development Commands
- Setup:
cp .env.local.example .env.local && bin/setup— install deps, set DB, prepare app. - Run app:
bin/dev— starts Rails server and asset/watchers viaProcfile.dev. - Test suite:
bin/rails test— run all Minitest tests; addTEST=test/models/user_test.rbto target a file. - Lint Ruby:
bin/rubocop— style checks; add-Ato auto-correct safe cops. - Lint/format JS/CSS:
npm run lintandnpm run format— uses Biome. - Security scan:
bin/brakeman— static analysis for common Rails issues.
Coding Style & Naming Conventions
- Ruby: 2-space indent,
snake_casefor methods/vars,CamelCasefor classes/modules. Follow Rails conventions for folders and file names. - Views: ERB checked by
erb-lint(see.erb_lint.yml). Avoid heavy logic in views; prefer helpers/components. - JavaScript:
lowerCamelCasefor vars/functions,PascalCasefor classes/components. Let Biome format code. - Commit small, cohesive changes; keep diffs focused.
Testing Guidelines
- Framework: Minitest (Rails). Name files
*_test.rband mirrorapp/structure. - Run:
bin/rails testlocally and ensure green before pushing. - Fixtures/VCR: Use
test/fixturesand existing VCR cassettes for HTTP. Prefer unit tests plus focused integration tests.
Commit & Pull Request Guidelines
- Commits: Imperative subject ≤ 72 chars (e.g., "Add account balance validation"). Include rationale in body and reference issues (
#123). - PRs: Clear description, linked issues, screenshots for UI changes, and migration notes if applicable. Ensure CI passes, tests added/updated, and
rubocop/Biome are clean.
Security & Configuration Tips
- Never commit secrets. Start from
.env.local.example; use.env.localfor development only. - Run
bin/brakemanbefore major PRs. Prefer environment variables over hard-coded values.