The canonical agent instructions for this project live in AGENTS.md. Read that first; it is the shared, agent-neutral guide (architecture, critical files, task patterns, conventions, security rules, gotchas). Keep it as the single source of truth and update it there, not here.
@AGENTS.md
These build/release specifics are not in AGENTS.md.
Before opening any PR, read the connected Maestri note "Checklist pré-PR —
SkateHive mobile" (CLI name: checklist-pre-pr-skatehive) and review the diff
against it:
maestri note read "checklist-pre-pr-skatehive"It is the review checklist, not a copy of AGENTS.md: theme tokens, security, build steps, scope of the diff, PR conventions.
If you discover a new convention or a gotcha while working, write it into the note yourself instead of only mentioning it in chat:
maestri note edit "checklist-pre-pr-skatehive" "<existing line>" "<existing line>
- [ ] <new check>"Prefer edit over write so nothing already in the note is lost. This is about
the check; a convention that belongs to the codebase itself still goes in
AGENTS.md as well.
The note lives on the repo owner's Maestri canvas, so maestri will not be on
PATH for everyone. If the command is missing or the note is not connected, skip
this section and review the diff against AGENTS.md, which covers the repository
conventions. Say in the PR that the Maestri-specific checks were unavailable,
rather than treating the review as complete.
Builds are made locally in Xcode and uploaded to App Store Connect under the
owner's personal Apple account. EAS is not used (free Expo account, queue too
long) — ignore the eas build/eas submit flow in eas.json. ios/ is
gitignored and regenerated by prebuild, so app.json is the single source of
version truth (the old "bump 4 places" checklist no longer applies).
git pull, thenpnpm install. Use pnpm 9, nevercorepack pnpm— v11 ignores.npmrc'snode-linker=hoistedand the bundler then can't resolvebabel-preset-expo. (package.jsonpinspnpm@9.7.1viapackageManager.)- Bump
expo.ios.buildNumberinapp.json(must be unique per upload). pnpm prebuild:ios— clean-prebuilds iOS (adds the SkateSpots widget target via@bacons/apple-targets) and runsscripts/sync-widget-version.js, which copies the build number onto the widget target. apple-targets resets the widget'sCURRENT_PROJECT_VERSIONto 1, and App Store Connect rejects an extension whose build number ≠ the app's.- Open
ios/SkateHive.xcworkspace, set destination to Any iOS Device, then Product → Archive (not Build) → Organizer → Distribute App → App Store Connect → Upload.
- iOS App Store ID:
6751173076 - iOS bundle:
com.bgrana.skatehive· widgetcom.bgrana.skatehive.widget - App Group:
group.com.bgrana.skatehive· Apple Team ID:JBJ68VAF83 - Android package:
com.skatehive.app