Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.
日本語の概要は準備中です。原文の説明を表示しています。
Generate NowStack Mobile app icons and logos. Use for `/ns icon`, app icon, iOS logo, launcher icon, favicon, or logo refresh. By default ALWAYS generate exactly 8 different iOS-quality icon candidates first, then finalize one icon and derive app/web assets.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
Generate a store-quality icon/logo system from the product concept and brand palette.
This skill is based on the stronger Glow AI runs:
ns-images-style iOS app icon prompt, then derived favicon/logos from that source.imagegen path and treating the first pass as clean logo-mark exploration, not heavy 3D app-icon blobs.Scope: app icon and logo assets: iOS icon, Android adaptive icon, favicon/web icons, and optional splash/logo derivations when the app already expects them. Onboarding backgrounds and non-icon brand art stay in .agents/skills/ns-images/SKILL.md.
Default behavior is non-negotiable: generate exactly 8 different iOS-quality icon candidates first. Do not generate 1, 2, 4, or "a few" candidates. Do not start by generating only one final icon. Do not skip the 8-candidate stage just because an existing icon or previous generated image exists, unless the user explicitly says: "do not generate candidates" or "use this exact icon as the final source."
<required_context> Before generating anything, read:
site-config.ts for app name, product concept, brand colors, and tone.mobile-app/app.config.ts or mobile-app/app.json for current icon/adaptive/splash paths and background colors.mobile-app/assets/ and web public/icon files so stale default art is not reused accidentally.~/.codex/generated_images/ and any repo .agents/artifacts/ folders before regenerating.Use any user-provided screenshot, brief, generated image, or selected candidate as the visual source of truth. </required_context>
<quality_bar> The winning result should feel like a real app brand system, not a generic AI-generated icon.
Pass criteria:
Reject immediately:
imagegen path when available. The first pass explores eight finished-feeling directions, not flat placeholder logos and not one single final icon.If the user asks for an app icon, launcher icon, logo refresh, favicon update, or /ns icon, the default action is still to generate exactly 8 different iOS-quality icon candidates first. Skip this only when the user explicitly instructs you to use one exact source image and not generate candidates.
</workflow>
<quality_loop> Do not treat image generation as a one-shot command. The quality loop is part of the skill.
logo-brand, but make the sheet cleaner: centered geometric marks, full square icon artwork, subtle iOS depth only, no glossy blobs, no dark vignettes, no complex 3D scenes.<tool_choice> Prefer generators in this order:
imagegen skill / built-in image_gen tool for both the 8-mark exploration and final iOS icon.gemini-cli image generate --model gemini-3-pro-image-preview if imagegen is not available.Do not fake image generation with SVG/canvas exports. If no image tool is reachable, give the user the filled prompts and resume from post-processing when they provide images. </tool_choice>
<phase_1_prompt> Use this prompt for the first pass. It deliberately asks for 8 different iOS-quality app icon candidates with clean logo logic and the same premium quality anchors as the successful Glow AI icon prompt.
Use case: logo-brand
Asset type: 8 different iOS app icon candidates for <AppName>, each 1024x1024-style square artwork.
Primary request: Create a premium icon exploration sheet for <AppName>, an app that <short product concept>. Make every candidate feel modern, professional, polished, native to iOS, and app-store ready, not flat or amateur.
Create exactly 8 distinct app icon candidate directions arranged in a clean 4x2 grid. Each candidate should be a standalone full-square icon artwork with a simple centered brand mark, generous safe padding, and enough finish that it could become the final iOS launcher icon after selection. No text, no letters, no numbers, no monograms.
Subject directions to explore: <8 relevant symbolic directions from the product, such as glow, camera aperture, portrait outline, sparkle, photo frame, transformation, assistant, shield, calendar, finance mark, etc.>. Keep every mark simple enough to work at favicon size.
Style/medium: modern 3D-ish iOS app icon design with crisp geometric forms, balanced negative space, smooth gradients, subtle depth, clean edges, and refined highlights. The mark should feel ownable and professional, not like clip art and not like a random generated object.
Composition/framing: each candidate centered in its own full-square brand-colored tile with generous safe padding, no border, no baked rounded-corner mask, all 8 candidates clearly separated. Add a tiny 60px preview beside each candidate if possible.
Color palette: <brand colors as names, not hex>. Use full-bleed brand backgrounds, clean white or light highlights, strong contrast, and at most one refined accent glow. Use a restrained palette: 2-4 colors maximum. Avoid noisy gradients unless the brand requires them.
Materials/textures: smooth matte or lightly glass-like iOS icon finish, subtle shadow and highlight, premium luminous glow only if it supports the brand, clean edges.
Lighting/mood: clean, bright, premium. No dark vignette, no smoky blur, no glossy blob effects, no complex 3D scene.
Constraints: exactly 8 different candidates, no text anywhere, no letters, no numbers, no watermark, no phone mockup, no app-store rounded square masks baked into the artwork, no transparent background, no tiny details, no complicated illustration, no realistic faces, no photos, no 3D mascot unless the product explicitly needs a mascot. Every candidate must remain readable at 60px. Make the icons feel simple, sharp, ownable, professional, and finished.
</phase_1_prompt>
<candidate_handling> After generation:
.agents/artifacts/imagegen-logo/<date>/ when working in a repo.1024x1024, RGB, no alpha if they may become source assets.Selection criteria:
<candidate_output_standard> When the 8-candidate sheet is strong, make it operational:
app-logo-imagegen-sheet-01.png.app-logo-imagegen-candidate-01.png through app-logo-imagegen-candidate-08.png when feasible.1024x1024, RGB, no alpha.~/.codex/generated_images/; copy into repo artifacts instead of moving it.If the split files accidentally come out retina-scaled, transparent, or mis-cropped, correct them before using them as source assets. </candidate_output_standard>
<phase_2_prompt> Use this for the final standalone icon after selecting a candidate. This mirrors the successful "Mettre à jour favicon et logos" direction: polished iOS app icon, but still based on the clean mark.
Use case: logo-brand
Asset type: iOS app icon for <AppName>, 1024x1024 square.
Primary request: Create a modern, professional iOS app icon for an app that <short product concept>. Make it polished, premium, native to iOS, and app-store ready, not flat or amateur.
Subject: a single centered <selected logo-mark direction>. Keep the mark simple, crisp, and highly readable at small sizes.
Style/medium: modern iOS app icon, clean geometric symbol, smooth gradients, subtle depth, refined highlight, no photoreal objects.
Composition/framing: centered icon mark with generous safe padding, no text, no border, full square artwork suitable for iOS masking.
Color palette: <brand colors as names>. Use a full-bleed brand background, clean highlights, strong contrast, and at most one refined accent glow.
Materials/textures: smooth matte or lightly glass-like iOS icon finish, subtle shadow and highlight, premium luminous glow only if it supports the brand, clean edges.
Constraints: no words, no letters, no numbers, no watermark, no phone mockup, no rounded-corner mask baked into the icon, no transparent background, no tiny details, no complex scene. Must remain readable at 60px. Output should be a finished app icon artwork.
</phase_2_prompt>
<post_processing> Create final assets from the selected standalone final icon.
Target files:
| Asset | Target file | Spec |
|---|---|---|
| iOS app icon | mobile-app/assets/icon.png | 1024x1024, square, no transparency, no baked rounded mask |
| Android adaptive icon | mobile-app/assets/adaptive-icon.png | foreground layer, subject inside central safe area, padded |
| Mobile favicon | mobile-app/assets/favicon.png | 192x192 derived from final icon |
| Web favicons/logos | project-specific files under web-app/public/ | derive from final icon if present |
Use sips for macOS resizing. Use ImageMagick (magick) when available for alpha removal, padding, ICO, SVG fallback, and splash derivations.
SOURCE=.agents/artifacts/imagegen-logo/<date>/selected-icon.png
BG="<brand-bg-color>"
sips -z 1024 1024 "$SOURCE" --out /tmp/ns-icon-1024.png
# If the generator baked a rounded mask, border, or halo, push it off-canvas.
sips -z 1126 1126 /tmp/ns-icon-1024.png --out /tmp/ns-icon-up.png
sips -c 1024 1024 /tmp/ns-icon-up.png --out /tmp/ns-icon-fullbleed.png
sips -s format png /tmp/ns-icon-fullbleed.png --out mobile-app/assets/icon.png
if command -v magick >/dev/null; then
magick mobile-app/assets/icon.png -background "$BG" -alpha remove -alpha off mobile-app/assets/icon.png
magick mobile-app/assets/icon.png -resize 66% -background "$BG" -gravity center -extent 1024x1024 mobile-app/assets/adaptive-icon.png
else
cp mobile-app/assets/icon.png mobile-app/assets/adaptive-icon.png
fi
sips -z 192 192 mobile-app/assets/icon.png --out mobile-app/assets/favicon.png
sips -g pixelWidth -g pixelHeight -g hasAlpha mobile-app/assets/icon.png mobile-app/assets/adaptive-icon.png mobile-app/assets/favicon.png
If web-app/public/ has existing icon.png, apple-icon.png, favicon.ico, favicon.svg, or favicon.png, update them from the same selected icon. If the app has Convex/email logo assets or splash assets already wired, derive them too only when the user asked for favicon/logos or full logo refresh.
Update mobile-app/app.config.ts only when the adaptive icon or splash background color must match the generated asset. Use a sampled/brand background color, not white by default.
</post_processing>
<splash_note> When deriving a splash from a full square icon, avoid showing the icon's square tile on a similar background. The Glow AI fix was to create a clean centered mark treatment for splash while keeping the full square image for the launcher icon.
If a splash is requested, create it from the mark, not by placing the full square app icon on a flat background. A visible square-on-square splash is a failure even when dimensions are correct. </splash_note>
<verification> Run applicable checks after writing assets:cd mobile-app && npx tsc --noEmit
cd web-app && npm run typecheck
For Convex/email logo changes, run the repo's Convex validation command if available.
Launcher icon and splash changes require a native rebuild (cd mobile-app && npm run ios or npm run android) before they appear on device. Hot reload is not enough.
Fail the run if:
<failure_modes>
まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
Complete guide for building beautiful apps with Expo Router. Covers fundamentals, styling, components, navigation, animations, patterns, and native tabs.
日本語の概要は準備中です。原文の説明を表示しています。
Routes general Convex requests to the right project skill. Use when the user asks which Convex skill to use or gives an underspecified Convex app task.
日本語の概要は準備中です。原文の説明を表示しています。
Use when optimizing Convex database read bandwidth, documents-read cost, query indexes, full-table scans, function-level usage dashboard findings, or code that uses .filter(), unbounded .collect(), N+1 reads, or expensive reactive Convex queries.
日本語の概要は準備中です。原文の説明を表示しています。
Build reusable Convex components with isolated tables and app-facing wrappers. Use for defineComponent, app.use, ComponentApi, or shared backend modules.
日本語の概要は準備中です。原文の説明を表示しています。
Plan safe Convex schema and data migrations. Use for widen-migrate-narrow rollouts, backfills, breaking field changes, table splits, or failed schema deploys.
日本語の概要は準備中です。原文の説明を表示しています。
Audit Convex performance for hot reads, write contention, subscriptions, function limits, OCC conflicts, latency, read amplification, and expensive reactive queries.
日本語の概要は準備中です。原文の説明を表示しています。