Internal mono-repo for LeanCode AI plugins used in Flutter projects.
This repo is the shared source of truth for the plugins published to our team marketplaces in Cursor and Claude Code. Instead of one large ruleset, guidance is split into small plugins that teams can install per project.
For day-to-day usage, install plugins from the LeanCode team marketplace in Cursor or Claude Code.
You usually do not need to clone this repo unless you want to contribute.
- Pick the plugins that match the project you are working on.
- Install them from the team marketplace in your IDE.
- If a plugin requires extra tooling or MCP setup, finish the one-time setup from that plugin's
README.md.
Most plugins are pure rules and skills. Extra setup is mainly needed for:
flutter-patrol- Patrol CLI and Patrol MCPflutter-marionette- Marionette MCP and app-side binding
2026-04-21.20-04-38.mp4
2026-04-21.20-26-42.mp4
claude-code-cursor-plugins-setup.mp4
flutter-leancode-architecture- project structure, error handling, logging, plus architecture review and feature scaffolding skillsflutter-di-provider-based dependency injection, page-root providers,GlobalProviders, and async initialization patternsflutter-navigation-auto_routeandgo_router, typed routes, route guards, route tree organization, and deep linksflutter-analytics- analytics IDs, page/button tracking, plus skills to scaffold IDs and review coverageflutter-localization- ARB workflows, POEditor,poe2arb, andl10n(context)
flutter-bloc- BLoC/Cubit conventions, state modeling, presentation side effects,bloc_presentation, andflutter_hooksflutter-cubit-utils-QueryCubit,PaginatedQueryCubit,RequestCubit, and recipes for lists, details, and actionsflutter-cqrs- CQRS contracts, repositories, directcqrs.run/cqrs.getusage, and CQRS-backed cubitsflutter-forms-leancode_forms, validation behavior, naming conventions, and form cubit patterns
flutter-ui- design-system-driven UI, loading/error patterns, localized presentation text, and UI implementation checklistsflutter-patrol- Patrol test architecture, key conventions, and Patrol MCP workflow for AI-assisted E2E workflutter-marionette- runtime interaction with a live debug app through Marionette MCP for exploration, smoke checks, and UI debugging
Each plugin README lists the exact rules, skills, and setup details shipped with that plugin.
Each plugin also exposes a /<plugin>-usage skill (for example /flutter-bloc-usage) that explains what the plugin covers, when to use it, and example prompts to try next.
plugins/<plugin-name>/- one self-contained pluginplugins/<plugin-name>/rules/- source of truth for shared rulesplugins/<plugin-name>/skills/- shared skills used by both IDE targetsplugins/<plugin-name>/.cursor-plugin/andplugins/<plugin-name>/.claude-plugin/- plugin manifestsplugins/<plugin-name>/cursor-rules/andplugins/<plugin-name>/claude-rules/- generated IDE-specific rule outputs.cursor-plugin/marketplace.jsonand.claude-plugin/marketplace.json- marketplace indexes
- Keep plugins small, focused, and independently installable.
- Edit only
plugins/<plugin-name>/rules/*.mdas the rule source of truth. - Never hand-edit
cursor-rules/orclaude-rules/. - When adding or changing rules or globs, run
python scripts/generate-rules.pyand commit the generated files. - New rule files must include YAML frontmatter with
descriptionandglobs. - Each plugin should include
skills/<plugin>-usage/SKILL.md(for exampleskills/flutter-bloc-usage/SKILL.md) as the user-facing entry point that explains the plugin and suggests next requests. Use the unique, plugin-scoped skill name so/commands never collide across installed plugins. - Update the plugin
README.mdand both platform manifests when the plugin scope changes.