Company template for Cursor, Claude Code, and Android Studio Gemini. Single source of truth for Clean Architecture Android apps (XML + View Binding or Jetpack Compose via uiFramework, MVI, Koin module / lazyModule).
Apps copy these folders into the project root — do not fork rules/skills inside an app.
| Tool | Copy this folder |
|---|---|
| Cursor | .cursor/ |
| Claude Code | .claude/ |
| Android Studio Gemini | .agents/ |
Keep .cursor/, .claude/, and .agents/ in sync. If you change a rule or skill in one, update the twins. Skill names differ only by prefix: Cursor /sonic-…, Claude Code /sonicc-…, Gemini @sonicg-…. Android Studio loads skills from .agents/skills (not .skills or .gemini).
| Path | Role |
|---|---|
.cursor/rules/ |
Company law (architecture, naming, invariants) |
.cursor/skills/ |
Cursor playbooks (/sonic-skill-name) |
.claude/rules/ |
Same law, Claude Code format |
.claude/skills/ |
Claude Code playbooks (/sonicc-skill-name) |
.agents/rules/ |
Same law, Gemini format |
.agents/skills/ |
Gemini playbooks (@sonicg-skill-name) |
MUST_READ_BEFORE_SKILL_CHANGES.md |
How to edit this template |
Full skill map and rules index:
- Cursor:
.cursor/README.md - Claude Code:
.claude/README.md - Gemini:
.agents/README.md
- Copy
.cursor/,.claude/, and/or.agents/into the Android app root. - Open the app in Cursor, run
claudeat the repo root, or open the app in Android Studio (Gemini Agent). - Cursor: type
/sonic(for example/sonic-setup-new-project). Claude Code: type/sonicc(for example/sonicc-setup-new-project). Android Studio Gemini: type@sonicg(for example@sonicg-setup-new-project). Cursor skills say Sonic Cursor Skill:; Claude skills say OrbitalSonic Claude Skill:; Gemini skills say OrbitalSonic Gemini Skill:. Do not pick Figma plugin skills (“Created by Figma”) for Android screens. - After setup, obey
.cursor/project-settings.json(or the twin under.claude//.agents/) — especiallyuiFramework.
Use this from Android Studio Gemini Agent after .agents/ is in the app root. Invoke @sonicg-localize (type @sonicg). Cursor and Claude twins are /sonic-localize and /sonicc-localize. Description starts with OrbitalSonic Gemini Skill:.
- Gemini finds
LanguageDataSource.ktand lists language codes. - You confirm languages, then complete vs missing-only localization.
- It snapshots source strings once, then translates each locale in parallel (one worker per language, disjoint
values-*folders), preserves placeholders/XML, and reports files created/modified.
Cursor: /sonic-… · Claude Code: /sonicc-… · Gemini: @sonicg-… (same steps)
/sonic-setup-new-projector/sonicc-setup-new-projector@sonicg-setup-new-project(greenfield) ·/sonic-setup-old-projector/sonicc-setup-old-projector@sonicg-setup-old-project(existing app)/sonic-setup-design-systemor/sonicc-setup-design-systemor@sonicg-setup-design-system— Figma tokens/themes in:core-ui/sonic-figma-to-xmlor/sonicc-figma-to-xmlor@sonicg-figma-to-xmlif xml;/sonic-figma-to-composeor/sonicc-figma-to-composeor@sonicg-figma-to-composeif compose/sonic-create-mvior/sonicc-create-mvior@sonicg-create-mvi— Intent / State / Effect / ViewModel + Fragment or*Screen/sonic-create-clean-architectureor/sonicc-create-clean-architectureor@sonicg-create-clean-architecture— only when new domain / data is required/sonic-review-completeor/sonicc-review-completeor@sonicg-review-completebefore PR
Shortcut: /sonic-create-screen / /sonicc-create-screen / @sonicg-create-screen runs steps 3–5 in one invoke.
Read MUST_READ_BEFORE_SKILL_CHANGES.md before editing anything under .cursor/, .claude/, or .agents/.
Hard rules:
- Do not invent local rules inside an app — update this repo, then copy into apps.
- Do not delete rule meaning; prefer move / merge / link.
- Update related skills/rules in the same change (Cursor
sonic-↔ Claudesonicc-↔ Geminisonicg-). - New product skills: learn from the reference apps, show a plan, wait for acceptance.
https://github.com/orbitalsonic/AndroidPilot
Copyright OrbitalSonic. Licensed under the Apache License, Version 2.0 — see LICENSE.