feat(marketplace): replace flutter plugin with official flutter/agent-plugins - #274
Conversation
…-plugins Swap the `pleaseai/flutter-plugin` entry for the official Flutter team plugin at `flutter/agent-plugins`, which ships Flutter/Dart skills and the Dart MCP server. Drop the now-unused `external-plugins/flutter` submodule and update the README and ARCHITECTURE rosters. BREAKING CHANGE: the install name changes from `flutter@pleaseai` to `dart-flutter@pleaseai`. Upstream's plugin.json declares `"name": "dart-flutter"`, and every github-source entry in this marketplace must match its upstream manifest name. Existing users must reinstall under the new name.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
…mory Capture the three unwritten conventions for github-source (external) marketplace entries surfaced while swapping flutter for dart-flutter in #274: the entry name must match the upstream plugin.json name, no submodule is added for upstreams that do not accept PRs, and no release-please entry is created.
Up to standards ✅🟢 Issues
|
# Conflicts: # ARCHITECTURE.md
|
There was a problem hiding this comment.
Code Review
This pull request updates the Flutter plugin to the official 'dart-flutter' plugin. It renames the plugin, updates its metadata, tags, and description, and points its source repository to 'flutter/agent-plugins' instead of 'pleaseai/flutter-plugin'. Additionally, the 'external-plugins/flutter' git submodule is removed, and references in ARCHITECTURE.md and README.md are updated accordingly. There are no review comments, and I have no feedback to provide.
Greptile flagged two references to the removed `external-plugins/flutter` submodule. The CLAUDE.md one was already fixed while resolving the merge with main; this removes the remaining IDE VCS directory mapping, which pointed at a directory that no longer exists.
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request renames the 'flutter' plugin to 'dart-flutter' across the marketplace configuration, documentation, and project settings, while updating its source repository to 'flutter/agent-plugins'. Additionally, it removes the legacy git submodule for the plugin and adds new documentation regarding external marketplace plugin conventions. I have no feedback to provide.
Point the Flutter tooling detection at the renamed plugin. The hook interpolates pluginName into `/plugin install <name>@pleaseai`, so the stale `flutter` value produced an install command that no longer resolves after the marketplace rename.
|
/gemini review |
|
✅ @amondnet님의 요청을 완료했습니다 (44s) —— View job Verifying the stale-reference fix (commit b486502)
Confirmed — commit
No further action needed — the fix @amondnet described matches the actual diff, and no other stale |
🔍 Tessl Skill Review
|
| Dimension | Score | Detail |
|---|---|---|
| conciseness | ████░ 4/5 | The body is efficient and mostly assumes Claude's competence, using short steps and concrete commands rather than explaining concepts Claude already knows; minor phrases like 'The marketplace provides two layers of discovery' could be trimmed but the whole is not noticeably verbose, so it sits above the 'mostly efficient' anchor and below fully lean. |
| actionability | ████░ 4/5 | It provides concrete, copy-paste-ready commands (cat, find, grep, jq, claude plugin install) with clearly marked placeholders, but the Match/Rank step is qualitative guidance rather than executable code, leaving minor gaps consistent with the 'mostly executable' anchor. |
| workflow clarity | ████░ 4/5 | Five steps are clearly sequenced (read catalog, search skills, match/rank, present, offer install) with a 'When No Plugin Exists' fallback and an explicit dedup instruction; there are no destructive/batch operations requiring validation caps, but explicit verification checkpoints are mostly implicit, fitting the 'clear sequence with most checkpoints' anchor. |
| progressive disclosure | ████░ 4/5 | The body is well-organized into clear sections with no nested external references and no bundle files to navigate; the sizable inline Plugin Categories table is a quick-reference block that could arguably live in a separate file, placing this just below the ideal 'one-level-deep, fully split' anchor. |
Suggestions:
- Make the Match/Rank step more actionable by giving a concrete scoring heuristic or tie-break rule instead of only qualitative descriptions of match types.
- Consider moving the Plugin Categories table into a references file (e.g. references/categories.md) and linking to it, keeping the main body as a lean overview.
- Add an explicit verification checkpoint after Step 2 (e.g. confirm at least one match was found before proceeding to ranking) to tighten the workflow sequence.
Description Review
| Dimension | Score | Detail |
|---|---|---|
| specificity | ███░░ 3/5 | The description names the domain (Claude Code plugins / pleaseai marketplace) and two actions ('discover and install'), which matches the 'names domain and 1-2 concrete actions' anchor; it is not below (only minimal actions) nor above (no broader action coverage beyond discover/install). |
| completeness | █████ 5/5 | It explicitly answers both 'what' (discover and install plugins from the marketplace) and 'when' (multiple concrete 'Use when...' trigger phrases), matching the anchor that requires both with concrete triggers. |
| trigger term quality | █████ 5/5 | It includes a comprehensive set of natural phrases users would actually say ('how do I do X', 'find a plugin for X', 'is there a plugin that can...', 'recommend a plugin', 'what plugins are available') plus synonyms and an implicit-trigger case, matching the comprehensive-coverage anchor. |
| distinctiveness conflict risk | █████ 5/5 | It occupies a clear niche (Claude Code plugins from the pleaseai marketplace) with distinct, specific triggers, giving minimal conflict risk with other skills; it is clearly distinguishable rather than merely 'mostly distinct'. |
To improve your score, point your agent at the Tessl optimization guide. Need help? Jump on our Discord.
Feedback
Report issues with this review at tesslio/skill-review, or send private feedback from your terminal with tessl feedback.
There was a problem hiding this comment.
Code Review
This pull request replaces the external flutter plugin with the official dart-flutter plugin from flutter/agent-plugins. The changes include updating the marketplace configurations, documentation, and tooling mappings, removing the external-plugins/flutter git submodule, and documenting external plugin conventions in a new memory file. There are no review comments to assess, so no additional feedback is provided.
|



Summary
Removes the
pleaseai/flutter-pluginmarketplace entry and replaces it with the official Flutter-team plugin fromflutter/agent-plugins, published under the plugin namedart-flutter.The new plugin ships 25 Flutter/Dart skills plus the Dart MCP server (
dart mcp-server), is maintained by the Flutter team, and is BSD-3-Clause licensed.No submodule was added for the new repo:
flutter/agent-pluginsstates it is not accepting PRs, and the other third-party github-source entries in this marketplace (chrome-devtools-mcp, notion, cloudflare, modern-web-guidance) consistently have no submodule either.Changes
.gitmodules+external-plugins/flutter— old submodule deinit'd and removed..claude-plugin/marketplace.json— entry swapped in place: nameflutter→dart-flutter, repo →flutter/agent-plugins, description updated,skills/mcptags added. Therelevanceblock (flutter/dart CLI,**/*.dart,**/pubspec.yaml) carries over unchanged — still high-signal..agents/plugins/marketplace.json— regenerated viabun scripts/cli.ts multi-format; the diff is exactly the flutter entry swap. The Cursor marketplace filters to local plugins, so it was untouched.README.md— plugin listing section + install command.ARCHITECTURE.md— external-plugins roster line.The install name changes:
Upstream's
.claude-plugin/plugin.jsondeclares"name": "dart-flutter", and every github-source entry in this marketplace matches its upstream manifest name (e.g.gemini-cli-security←pleaseai/security-plugin). That invariant was kept rather than aliasing back toflutter, so existing users must reinstall under the new name.Validation
claude plugin validate .claude-plugin/marketplace.jsonpasses. The 13 warnings are all pre-existing (roothomepage/repositoryfields, missingauthoron unrelated local plugins) — none on the new entry..claude/rules/marketplace-sync.md, therelease-please-config.json/.release-please-manifest.jsoncompanions apply only to local plugins (source: "./plugins/..."). This is a github-source external plugin with no package entry — confirmed absent before the change.Known follow-up (not in this PR)
bun scripts/cli.ts multi-formatrewrote all 73 local plugins' runtime manifests — the repo-wide drift that.claude/rules/marketplace-sync.mdwarns about. That churn was reverted (git restore plugins/, plus two untrackedplugins/portone/files) so this commit stays atomic. The drift is still uncommitted in the working tree and deserves a separate pass.bun.lockwas already dirty before this work and was deliberately left uncommitted.Related issue
None — this is not issue-linked work.
Checklist
README.md,ARCHITECTURE.md)BREAKING CHANGE:footer in the commitSummary by cubic
Swaps the marketplace’s Flutter plugin from
pleaseai/flutter-pluginto the official Flutter team plugin fromflutter/agent-plugins, now published under the namedart-flutter. The new plugin provides 25 Flutter/Dart skills and the Dart MCP server.flutter@pleaseaitodart-flutter@pleaseai.external-plugins/fluttersubmodule and updated the marketplace manifests,README.md,ARCHITECTURE.md,CLAUDE.md, the stale.idea/vcs.xmlmapping, the Flutter tooling-detection hook, and thefind-pluginskill example to match.Written for commit b486502. Summary will update on new commits.