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.
git clone --depth 1 https://github.com/moasq/ios-dev-agentWrote 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.
[](https://agentmods.dev/rules/moasq/ios-dev-agent/file-structure)<a href="https://agentmods.dev/rules/moasq/ios-dev-agent/file-structure"><img src="https://agentmods.dev/badge/rules/moasq/ios-dev-agent/file-structure/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.
<a href="https://agentmods.dev/rules/moasq/ios-dev-agent/file-structure"><img src="https://agentmods.dev/badge/rules/moasq/ios-dev-agent/file-structure.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00733 | $0.00733 |
| Opus 5 | $0.00367 | $0.00367 |
| Sonnet 5 | $0.00147 | $0.00147 |
| Haiku 4.5 | $0.00073 | $0.00073 |
Grade A, and why
file-structure 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 6d 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.
How it starts
The opening of the file, as written. The whole thing — 99 lines — stays where its author put it; the contents beside it link to each section on GitHub.
File Structure Rules
Line Limit
- Target: 150 lines per file — aim for this
- Hard limit: 200 lines — files exceeding 200 lines MUST be split using extensions (
View+Sections.swift) - Files between 150-200 lines are acceptable if splitting would hurt readability
Body as Table of Contents
The body property should read like a table of contents — only referencing computed properties, not containing implementation:
// Good
var body: some View {
VStack {
headerSection
contentSection
footerSection
}
}
// Bad — implementation directly in body
var body: some View {
VStack {
HStack {
Image(systemName: "person")
Text(user.name)
.font(AppTheme.Fonts.headline)
Spacer()
Button("Edit") { showEdit = true }
}
// ... 80+ more lines
}
}
Extension Splitting Pattern
When a view grows beyond 150 lines, split into extensions by section:
// ProfileView.swift — main file
struct ProfileView: View {
@State var viewModel: ProfileViewModel
var body: some View {
ScrollView {
headerSection
statsSection
settingsSection
}
}
}
// ProfileView+Sections.swift — extracted sections
extension ProfileView {
var headerSection: some View { ... }
var statsSection: some View { ... }
var settingsSection: some View { ... }
}
Directory Structure
Models/ → Data model structs (with static sampleData)
Shared/ → Shared utility types (e.g. Loadable.swift)
Config/ → App configuration (e.g. AppConfig.swift with API keys, endpoints)
Repositories/<Entity>/ → Repository protocols + concrete implementations, grouped by entity
(e.g. Repositories/Users/UserRepository.swift,
Repositories/Users/LocalUserRepository.swift)
External-service repositories only when that service is explicitly configured
Theme/ → AppTheme.swift only
Services/<Domain>/ → Domain services (Auth, Networking, etc.) — NOT in Features/
Features/<Name>/ → Co-locate View + ViewModel (e.g. Features/TodoList/TodoListView.swift)
Features/Common/ → Shared reusable views used by multiple features
App/ → @main app entry point only
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.
- 6d ago First seen · 99 lines · 733 tokens per session scan A a41139740aca
file-structure is a cursor rule published in the GitHub repository moasq/ios-dev-agent (4 stars, last pushed 3mo ago), licensed MIT. It adds 733 tokens to every session, about $0.0037 per session on Opus 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-09-03.
Other cursor rules, from other repositories
nativescript
NativeScript best practices and patterns for mobile applications.
performance-optimization
// Use weak/unowned references appropriately class ViewController: UIViewController { private var timer: Timer?
webkit-browser
Cursor rule "webkit-browser" from duckduckgo/apple-browsers, covering webkit & browser development guidelines, webview configuration, basic webview setup, user scripts management and tab management.
maestro-device-selection
Maestro tests can run on either iPhone or iPad simulators based on tags in the test YAML files. This allows you to test iPad-specific UI layouts and features while maintaining a single test suite.
cursorrules
Kortix is a React Native + Expo app built with TypeScript, NativeWind (Tailwind CSS), and a custom design system.
gradle
Enforce modern Gradle build practices for Java and Android projects, focusing on Kotlin DSL, modularity, version catalogs, and performance optimizations.