com um clique
validate-conventions
Review changed code against project conventions and rules
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Menu
Review changed code against project conventions and rules
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Baseado na classificação ocupacional SOC
Transform the base template into a specific application
Add or update i18n keys in both English and Arabic locale files
Scaffold a UI component with unistyles variants pattern
Scaffold a complete feature module with types, service, hooks, schema, and constants
Generate a validated form with Zod schema, react-hook-form, and i18n
Add a new screen or tab to the app with routing and i18n
| name | validate-conventions |
| description | Review changed code against project conventions and rules |
| auto-invocable | true |
| triggers | ["review my code","check conventions","validate changes","lint my changes","check my code"] |
Review changed code against all project conventions defined in CONVENTIONS.md.
Run git diff --name-only HEAD to find modified files. If no uncommitted changes, check git diff --name-only HEAD~1 for the last commit.
If the user specifies particular files, use those instead.
Read each changed file to inspect the code.
For each file, check ALL of the following rules:
StyleSheet imported from react-native-unistyles, NOT react-nativeText imported from @/common/components/Text, NOT react-nativez imported from zod/v4, NOT zod@/ or ~/), no deep relative imports (../../..)@/ internal > relativeimport type { ... }@/common/components/Button not @/common/components/Button/Button)src/ filesapp/ screen filesstyles.useVariants() called before accessing styles (if using variants)StyleSheet.createaccessibilityRole on Pressable, TouchableOpacity, buttonsaccessibilityLabel on interactive elementsaccessibilityState for disabled/busy/selected statesStyleSheet.create((theme) => ({...})) pattern with theme callback#hex, rgb(), named colors) - use theme.colors.*theme.metrics.spacing.* or theme.metrics.spacingV.*theme.fonts.size.*theme.metrics.borderRadius.*useStore((s) => s.field), NOT useStore()useAuthStore() without selectoruseAuthStore.getState() inside React components (only in non-React code)t('key') from useTranslation()en.json and ar.json updated together (check git diff for both)any typesimport type{ComponentName}PropsButton.tsx, Button.styles.ts, Button.types.ts)order-details.tsx)use (useProducts.ts)Service (productService.ts)Schema (productSchema.ts)Store (authStore.ts)api from @/services/api, not raw fetch or axiosconsole.log in production code (use if (__DEV__) guard or remove)expo-router (router.push, router.replace)useAuthStoreFor each issue found, report:
[RULE] <rule name>
[FILE] <file_path>:<line_number>
[ISSUE] <description of the violation>
[FIX] <how to fix it>
Group findings by file. Show clean files too: <file_path> - No issues found
Run npm run validate as a final automated check (TypeScript + ESLint + Prettier).
Report the results.
Checked: X files
Issues found: Y
- Import issues: N
- Style issues: N
- i18n issues: N
- TypeScript issues: N
- Other: N
npm run validate: PASS/FAIL
npm run validate as the final step