Follow the workspace engineering contract. It takes priority over these repo notes. Keep each change in the smallest existing owner.
- Paid feature code belongs in the private
pro/submodule. Core uses the existing registration seams. Commit Pro changes in its own repo. - For UI work, use
@offgrid/designand the relevant guide indocs/design/. For customer-facing copy, readdocs/brand_tone_voice.md. - Keep capture opt-in with a visible recording indicator. Do not publish private device data.
- During device checks, do not enter credentials or passcodes. Open private content only when the changed journey requires it.
- Verify the changed journey on the affected device. For a change that affects both platforms, check iOS and Android before claiming both work.
- Debug builds use
ai.offgridmobile.dev. Read the in-app Debug Logs or the dev-onlyoffgrid-debug.login the app container when diagnosing device behavior. - If asked to push, use a branch and PR; do not push directly to
main.
Generated from
shared/CLAUDE.md- do not edit this section here. Runnode scripts/mirror-doctrine.mjsinshared/after changing the canonical copy.--checkfails the build when a mirror drifts, so these cannot silently disagree.
Read the observed behavior and the owning code. Use logs or a live reproduction when needed. Fix the reported cause without assuming that every bug needs a new source of truth or abstraction.