Source screenshots from the current EuroTolls app at /Volumes/Satechi/Developer/EuroTollsapp; do not use App Store listing images or generated/fabricated UI.
Prefer the deterministic AppStoreScreenshotView harness and its -appStoreScreenshotScenario launch argument. The website currently uses overview, plan, compare, tolls, and stops; overview must use MapKit rather than the drawn ShowcaseMap.
Build with the newest configured Xcode integration first. Use simctl only for Simulator operations the integration does not expose.
Never capture on booted or another agent’s Simulator. Create or reuse the dedicated iPhone 17 Pro Max device named EuroTolls Website Localizations, then target its explicit UDID. Shut it down after the capture run; do not delete it.
Set the status bar to 9:41. Select localization with app launch arguments such as -AppleLanguages '(pt-PT)' -AppleLocale pt_PT; do not use simctl launch -e AppleLanguages.
Preserve the app repository’s existing branch and changes. If a temporary screenshot-harness adjustment is necessary, restore only that adjustment after capture and confirm the app repo has no new tracked diff.
Locale and asset mapping
_data/languages.yml is the website locale inventory. Every listed locale must have all five WebP captures under assets/screenshot/localized/<website-locale>/.
Map website pt to app language pt-PT and locale pt_PT. Other locale identifiers should resolve to an app .lproj; use a region-appropriate AppleLocale for formatting.
The homepage mapping is: hero overview.webp; product rail plan.webp, compare.webp, tolls.webp; summer composition stops.webp.
Capture at the Simulator’s native resolution and generate WebP copies with cwebp -q 88. Keep intrinsic width and height attributes in the templates.
Refresh the Media Kit from the same app build with full-resolution English PNGs and rebuild assets/media-kit/EuroTolls-Media-Kit.zip. Keep the real route-overview image unless a newer real capture is provided.
Verification and release
Inspect representative English, Portuguese, German/long-copy, Arabic or Hebrew/RTL, Punjabi, and Simplified Chinese captures.
Validate that the asset count equals website locales × five scenarios, every WebP decodes at the expected dimensions, every built locale page references its own directory, and representative local/live routes return HTTP 200.
Build this Jekyll site with its bundled Ruby 2.6 gems when the default Ruby is incompatible:
SITE_GEMS="$PWD/.bundle/gems/ruby/2.6.0"; GEM_HOME="$SITE_GEMS" GEM_PATH="$SITE_GEMS" JEKYLL_NO_BUNDLER_REQUIRE=true /usr/bin/ruby "$SITE_GEMS/bin/jekyll" build
If browser control is available, check desktop and phone widths for the homepage and Media Kit. Do not claim interactive viewport QA when that browser surface is unavailable.
Deploy only when requested: commit the website changes, push HEAD to origin/master, wait for GitHub Pages success, and verify localized HTML, WebP assets, and the Media Kit archive on https://eurotolls.ezequiel.app.
Do not add email addresses. Contact links must use https://support.ezequiel.app.