project

project is a cursor rule for Cursor from FouadMagdy01/RNCopilot. It costs 1,546 tokens per session, scanned A, original, MIT.

A set of mandatory rules for a production React Native app built with Expo, including its navigation, styling, data handling, forms, storage, translations, and network requests.

In plain words
What is it for?
Use it as a reference when building or reviewing screens, feature modules, forms, API calls, state, themes, and English or Arabic layouts.
Why use it?
It gives coding agents project-specific constraints so new code matches the template's architecture and avoids unsupported patterns.

Cursor rule for Cursor

Written for Cursor: installed under .cursor/.

Good fit Use it as a reference when building or reviewing screens, feature modules, forms, API calls, state, themes, and English or Arabic layouts.

Compare 6 cursor rules from other repositories ↓
Install with agentmods
npx agentmods add rules/fouadmagdy01/rncopilot/project
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Clone the repo
git clone --depth 1 https://github.com/FouadMagdy01/RNCopilot

Made for: Cursor.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for project

README.md
[![agentmods](https://agentmods.dev/badge/rules/fouadmagdy01/rncopilot/project/github.svg)](https://agentmods.dev/rules/fouadmagdy01/rncopilot/project)
Your own site
<a href="https://agentmods.dev/rules/fouadmagdy01/rncopilot/project"><img src="https://agentmods.dev/badge/rules/fouadmagdy01/rncopilot/project/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for project

Your own site · 80×15
<a href="https://agentmods.dev/rules/fouadmagdy01/rncopilot/project"><img src="https://agentmods.dev/badge/rules/fouadmagdy01/rncopilot/project.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,546 This file is loaded in full into every session.
When invoked 1,546 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.01546 $0.01546
Opus 5.5 $0.00618 $0.00618
Sonnet 5.5 $0.00309 $0.00309
Haiku 4.5 $0.00155 $0.00155

Measured 2mo ago against content hash b710fd303d94, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

project scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/project.mdc · 208 lines

How it starts

The opening of the file, as written. The whole thing — 208 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Project Rules

This is a production-grade React Native Expo template. All rules below are mandatory.

See CONVENTIONS.md for detailed conventions and docs/AI-GUIDE.md for patterns and recipes.

Stack Summary

  • React Native 0.83.2 + Expo SDK 55, expo-router (file-based)
  • TypeScript 5.9 strict, path aliases: @/* = src/*, ~/* = app/*
  • Styling: react-native-unistyles 3.x (NOT react-native StyleSheet)
  • Server state: @tanstack/react-query
  • Client state: Zustand (auth via useAuthStore)
  • Forms: react-hook-form + zod/v4
  • Storage: react-native-mmkv via @/utils/storage
  • i18n: react-i18next, EN + AR (RTL)
  • HTTP: Axios via @/services/api (auto-attaches Bearer token)

Non-Negotiable Rules

Styling

// Import ALWAYS from react-native-unistyles
import { StyleSheet } from 'react-native-unistyles';

// ALWAYS use theme callback
const styles = StyleSheet.create((theme) => ({
  container: {
    padding: theme.metrics.spacing.p16,          // NOT padding: 16
    backgroundColor: theme.colors.background.surface,  // NOT '#FFFFFF'
    borderRadius: theme.metrics.borderRadius.md,
  },
}));

// NEVER inline styles
// WRONG: <View style={{ padding: 16, backgroundColor: '#fff' }}>
// RIGHT: <View style={styles.container}>

Components

// Always use project Text, not React Native Text
import { Text } from '@/common/components/Text';
<Text variant="h1">{t('home.title')}</Text>

// Always use ScreenContainer as screen root
import { ScreenContainer } from '@/common/components/ScreenContainer';
export default function MyScreen() {
  return <ScreenContainer scrollable>{/* content */}</ScreenContainer>;
}

// Import from barrel, not implementation
import { Button } from '@/common/components/Button';           // CORRECT
import { Button } from '@/common/components/Button/Button';    // WRONG

i18n - Every String Must Be Translated

const { t } = useTranslation();
<Text>{t('home.welcome')}</Text>      // CORRECT
<Text>Welcome</Text>                  // WRONG - hardcoded

// Update BOTH files when adding text:
// src/i18n/locales/en.json
// src/i18n/locales/ar.json

Read the full file on GitHub · 208 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2mo ago First seen · 208 lines · 1,546 tokens per session scan A b710fd303d94

Subscribe to this mod's changes

project is a cursor rule published in the GitHub repository FouadMagdy01/RNCopilot (43 stars, last pushed 7mo ago), licensed MIT. It adds 1,546 tokens to every session, about $0.0062 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.