Opinionated Claude Code setup for Flutter apps — Clean Architecture, flutter_bloc + bloc_concurrency, freezed + fpdart (Either<Failure, T>), typed go_router, get_it, dio + OpenAPI client, drift + sqlcipher. Ships skills, agents, and slash commands including /init-flutter-app to scaffold a new app end-to-end.
Add a Bloc (or Cubit) to an existing feature — freezed events/states, bloc_concurrency transformers, a bloc_test with state assertions.
Add a drift schema migration with a schema snapshot and round-trip test.
Add a new screen to an existing feature — typed go_router route, BlocProvider-wired page, stateless view, and a widget test.
Add a domain use case to a feature when it earns its keep (real logic, multi-repo orchestration, or reuse).
1. Run the targeted test set:
Use PROACTIVELY after any change to a Flutter widget — new screen, refactored widget, tweaks to typography/interactions. Reviews against Flutter accessibility guidelines: `Semantics`, labels, tap target size, `MediaQuery.textScaler`, RTL, focus traversal. Read-only; does not write code.
Use PROACTIVELY for architectural decisions in a Flutter app — where code belongs, how to model state, when to add a use case, when to split a feature, how a new domain concept should surface. Not for writing UI code or running tests.
Use PROACTIVELY for any Flutter build, dependency, or toolchain issue. Owns `pubspec.yaml`, `build.yaml`, `analysis_options.yaml`, the `build_runner` toolchain (freezed, json_serializable, drift, go_router_builder), flavor setup (Android Gradle + Xcode schemes), CocoaPods, and build-performance tuning. Trigger on build failures, "add this library", version bumps, codegen issues, lint tweaks, or questions about flavor setup.
Use PROACTIVELY when the user reports jank, scroll stutter, slow startup, memory growth, or before shipping a release build. Proposes a measurement plan (DevTools Performance, CPU Profiler, Memory, rebuild tracker) and reads widget code to identify likely hotspots. Read-only.
Use PROACTIVELY for Flutter release tasks — `pubspec.yaml` version bumps, Android App Bundle + iOS `.ipa` production, signing configs, store metadata via fastlane, Crashlytics mapping uploads. Handles both platforms from the Flutter project's release perspective. Write-capable; scoped to release-time files.
How state is shaped with flutter_bloc in this project — Bloc vs Cubit, freezed unions for states/events, bloc_concurrency transformers instead of manual in-flight flags, one-shot effects, and testing with bloc_test.
How MVVM + Clean Architecture is applied in this Flutter codebase — feature layout, layer rules, repository contract, when to add a use case, error model. Load when designing a new feature, deciding where code belongs, adding a repository or use case, or reviewing layer boundaries.
Dart 3 idioms and conventions for this project — null safety, sealed classes and pattern matching, records, async cleanup, equality via freezed, and when to use each keyword. Load whenever writing or reviewing Dart.
Networking patterns for this Flutter project — dio configuration, auth interceptor, the generated OpenAPI client package, DTO → entity mappers, repository error mapping to Failure. Load whenever writing or editing a network call, interceptor, or API client wrapper.
Local database patterns for this Flutter project — drift with sqlcipher, schema definition, DAOs, migrations, watch queries, and repository integration. Load whenever writing or editing a table, DAO, or migration.
Uses power tools
Uses Bash, Write, or Edit tools
Runs pre-commands
Contains inline bash commands via ! syntax
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
This folder holds per-stack Claude Code configurations. Each subfolder is a self-contained setup you can drop into (or start from, inside) a project of that stack.
android/ — Kotlin + Jetpack Compose, MVVM + Clean Architecture, Hilt, Retrofit.ios/ — Swift + SwiftUI, MVVM + Clean Architecture, @Observable, URLSession.kmm/ — Kotlin Multiplatform shared module (Ktor + Koin + shared ViewModels) consumed by native Compose/SwiftUI apps.flutter/ — Dart + Flutter, Clean Architecture, flutter_bloc + bloc_concurrency, freezed + fpdart (Either<Failure, T>), typed go_router, get_it, dio + OpenAPI client, drift + sqlcipher. Includes /init-flutter-app for scaffolding a new app end-to-end.<stack>/
├── CLAUDE.md # Project context & conventions (stack-specific)
├── README.md # Overview of the stack's setup
└── .claude/
├── settings.json # Permissions, env
├── agents/ # Specialist subagents
├── skills/ # Domain knowledge packs (one per topic)
└── commands/ # Slash commands
Claude Code picks up CLAUDE.md and everything under .claude/ automatically when you open the folder.
Alongside the stack folders, the repo also ships a Claude Code plugin for each stack under plugins/ and a marketplace manifest at .claude-plugin/marketplace.json. See Distribution via marketplace.
Option A — install the plugin (recommended for teams). Each stack ships as a Claude Code plugin via the cc-mobile marketplace. See Distribution via marketplace below. This gives you the skills, agents, and slash commands (including /init-<stack>-app) without copying files around.
Option B — start a project here. Initialize the project inside the corresponding subfolder, then open that subfolder in Claude Code. /init-<stack>-app will scaffold the whole app (folders, manifests, core/ base classes, routing, tests) with a few clarifying questions.
Option C — bring your own project. Copy the subfolder's CLAUDE.md and .claude/ into the root of your existing project.
This repo is itself a Claude Code plugin marketplace. .claude-plugin/marketplace.json at the repo root advertises the four stack plugins in plugins/.
Coworkers install once:
/plugin marketplace add <git-url-of-this-repo>
/plugin install cc-mobile-android@cc-mobile
/plugin install cc-mobile-ios@cc-mobile
/plugin install cc-mobile-kmm@cc-mobile
/plugin install cc-mobile-flutter@cc-mobile
Installing just the stacks they work with is fine — they're independent.
KMM is the one stack that needs three plugins together: cc-mobile-kmm covers the shared module only, while the native UI lives in androidApp/ (Compose) and iosApp/ (SwiftUI). Install all three:
/plugin install cc-mobile-kmm@cc-mobile
/plugin install cc-mobile-android@cc-mobile
/plugin install cc-mobile-ios@cc-mobile
A few things to know:
plugins/cc-mobile-kmm/CLAUDE.md to your project root — it already references the androidApp/ + iosApp/ layout. The android and ios plugin CLAUDE.md files assume a standalone single-stack repo and will mislead the agent./new-feature, /add-usecase, /add-migration, /fix-tests, /upgrade-deps). When invoked unprefixed, Claude Code may pick any of the three. To target a specific stack, use the prefixed form: /cc-mobile-kmm:new-feature, /cc-mobile-android:add-screen, /cc-mobile-ios:add-view.:app isn't a gradle module (it expects KMM's :androidApp). The ios plugin's hook skips itself when there's no Package.swift / .xcodeproj / .xcworkspace at the repo root. The kmm plugin's hook is the only one that runs in a KMM repo, gating commits on :shared:allTests and :androidApp:lintDebug.kmm-reviewer, android-ui-engineer, ios-tester). Pick the one that matches the file you're working on.Getting updates:
/plugin marketplace update cc-mobile
Re-running install on an updated plugin refreshes its skills, agents, and commands. The stack's CLAUDE.md is shipped inside the plugin; if a coworker has dropped a copy into their project root, they should re-copy it when the template evolves (see each plugin's README for the copy step).
Publishing a new version:
npx claudepluginhub dimitriremoiville/cc-mobile --plugin cc-mobile-flutterOpinionated Claude Code setup for iOS apps — Swift + SwiftUI, MVVM + Clean Architecture, @Observable state holders, URLSession + Codable, SwiftData + Keychain, NavigationStack typed routes. Ships skills, agents, and slash commands including /init-ios-app to scaffold a new app end-to-end.
Opinionated Claude Code setup for Android apps — Kotlin + Jetpack Compose, MVVM + Clean Architecture, Hilt DI, Retrofit + OkHttp + kotlinx.serialization, Room + DataStore. Ships skills, agents, and slash commands including /init-android-app to scaffold a new app end-to-end.
Opinionated Claude Code setup for Kotlin Multiplatform Mobile — shared module with MVVM + Clean Architecture in commonMain, Ktor Client + kotlinx.serialization, Koin DI, shared ViewModels over StateFlow, SQLDelight, multiplatform-settings. Ships skills, agents, and slash commands including /init-kmm-app to scaffold a new shared module end-to-end.
Comprehensive skill pack with 66 specialized skills for full-stack developers: 12 language experts (Python, TypeScript, Go, Rust, C++, Swift, Kotlin, C#, PHP, Java, SQL, JavaScript), 10 backend frameworks, 6 frontend/mobile, plus infrastructure, DevOps, security, and testing. Features progressive disclosure architecture for 50% faster loading.
Complete creative writing suite with 10 specialized agents covering the full writing process: research gathering, character development, story architecture, world-building, dialogue coaching, editing/review, outlining, content strategy, believability auditing, and prose style/voice analysis. Includes genre-specific guides, templates, and quality checklists.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Intelligent draw.io diagramming plugin with AI-powered diagram generation, multi-platform embedding (GitHub, Confluence, Azure DevOps, Notion, Teams, Harness), conditional formatting, live data binding, and MCP server integration for programmatic diagram creation and management.
Comprehensive startup business analysis with market sizing (TAM/SAM/SOM), financial modeling, team planning, and strategic research
v9.44.1 — Patch release for Gemini environment/version detection and qwen auth gating. Run /octo:setup.