Appearance
Local setup
Requirements
| Ruby | 4.0.1 — pinned in .ruby-version |
| PostgreSQL | Three databases: primary, cache, cable |
| Node | Only for these docs. The app uses importmap and Propshaft and needs no Node build. |
Ruby is managed with mise, so every Ruby and Rails command is prefixed:
bash
mise exec -- bin/rails testFirst run
bash
bin/setupInstalls gems, prepares the databases and seeds. Seeds create the permission catalogue, the system role templates, the GCC countries and a development account with a user at dev@verity.test (password from VERITY_DEV_PASSWORD, defaulting to password).
Running it
bash
bin/devStarts the Rails server and the Solid Queue worker together. Do not run the server by hand if you want jobs processed — asynchronous checks and webhook deliveries need the worker.
The three databases
config/database.yml defines primary, cache and cable, each with its own schema file.
db:migrate can empty the auxiliary schemas
Running a migration re-dumps every configured database. If your local verity_development_cache and verity_development_cable databases do not have their tables, the dump writes emptydb/cache_schema.rb and db/cable_schema.rb back over the real ones.
test/config/solid_store_installation_test.rb catches it. To avoid it, make sure those two databases are prepared; if it has already happened, restore the two files from git.
Providers locally
Real provider credentials are not needed for most work. .claude/launch.json defines a wathq-mock server alongside the app for Wathq calls, and adapter tests inject payloads directly.
Provider configuration is read from environment variables — see the operability runbook in docs/ for each provider's required keys.
Useful commands
bash
mise exec -- bin/rails test # the full suite
mise exec -- bin/rails test test/invariants/ # the honesty invariants
mise exec -- bin/rails console
mise exec -- bin/ci # everything CI runsbash
DESIGN_AUDIT=1 mise exec -- bin/rails test test/design_audit/Screenshot capture of every screen at desktop and mobile widths, into tmp/design_audit/. Skipped during a normal run.
Helper scripts
| Script | Purpose |
|---|---|
script/dev_http_session.sh | Cookie-jar and CSRF-aware helpers for driving the dev server over HTTP |
script/dev_review_cycle_fixture.rb | Builds a realistic review cycle locally |
script/dev_isic_fixture.rb | Loads ISIC vocabulary fixtures |
script/dev_smoke_test | Provider smoke checks |