Skip to main content

Set up from a clean clone

You install one thing system-wide, mise. It provisions the rest from mise.toml.
1

Install mise

2

Provision the toolchain

This reads mise.toml and installs the pinned tools.
3

Install dependencies

This resolves every member against the catalogs in pnpm-workspace.yaml and installs the git hooks through the prepare script (lefthook install). If hooks do not run after install, check that pnpm was allowed to run lefthook’s install script in pnpm-workspace.yaml.
4

Verify the setup

This is the full gate. If it is green locally, CI should be green (CI).

Mobile

The mobile app needs more only when you run it on a device or simulator: Xcode with an iOS simulator for iOS, Android Studio for Android. pnpm mobile starts Expo (Metro on port 8081). Release builds are EAS’s job, not your laptop’s (Mobile release).

Secrets

Day-to-day development needs no secret. The only tokens are for MCP servers (.mcp.json), and they come from the Infisical vault at /agents through tools/scripts/mcp.sh. There is no .env file. See Secrets.

Encore

Services are plain TypeScript workspace members under services/<name> with no Encore files. Encore is the generated runtime target: stackra gen will emit the Encore app into the gitignored .stackra/encore/ (0091, 0124). The generator is not built yet, so there is no Encore app to run today.

Daily commands

Run one member’s task with a filter: pnpm turbo run test --filter=@figentra/console. Or cd into the member and call its script directly when you do not want Turborepo’s ordering.

Troubleshooting

  • pnpm install fails on the pnpm version. mise.toml and packageManager must agree; run mise install and retry.
  • Git hooks never run. Run pnpm install again, or pnpm exec lefthook install. The hooks only check; they never rewrite files.
  • A step works locally and fails in CI. Compare the tool version in mise.toml with what CI installs, and check the step did not rely on a file git ignores.
  • gitleaks is not installed. The pre-commit hook skips it with a notice and CI still scans; run mise install to get it.
See also Definition of done and Commits and releases.