Skip to content

WIP: Claude Code plugin#511

Draft
keertip wants to merge 4 commits into
dart-lang:mainfrom
keertip:plugins
Draft

WIP: Claude Code plugin#511
keertip wants to merge 4 commits into
dart-lang:mainfrom
keertip:plugins

Conversation

@keertip

@keertip keertip commented Jun 30, 2026

Copy link
Copy Markdown

Work in Progress : to test before sending for review

Bundle the Dart and Flutter plugins into a plugin for Claude Code.

@github-actions github-actions Bot added the type-infra A repository infrastructure change or enhancement label Jun 30, 2026
@github-actions

Copy link
Copy Markdown

PR Health

Changelog Entry ✔️
Package Changed Files

Changes to files need to be accounted for in their respective changelogs.

This check can be disabled by tagging the PR with skip-changelog-check.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a bash script to sync Dart and Flutter skills, Claude plugin configuration files, and a comprehensive collection of skill guides for Dart and Flutter development. The review feedback highlights a few necessary corrections, including removing an invalid trailing comma in the marketplace JSON configuration, adding a trap to guarantee temporary directory cleanup in the sync script, and fixing minor typos and syntax errors in the skill documentation.

{
"name": "dart-flutter-marketplace",
"owner": {
"name": "Dart and Flutter Team",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

[MUST-FIX] Trailing commas are invalid in standard JSON. This will cause parsing errors when the file is loaded. Please remove the trailing comma.

Suggested change
"name": "Dart and Flutter Team",
"name": "Dart and Flutter Team"

Comment thread .github/scripts/sync_skills.sh Outdated
fi

TARGET_DIR="$REPO_ROOT/plugins/skills"
TEMP_DIR=$(mktemp -d)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

[CONCERN] Since the script is run with set -e, any failure during cloning or syncing will cause the script to exit immediately, leaving the temporary directory behind. Consider using a trap to guarantee cleanup of the temporary directory on exit.

Suggested change
TEMP_DIR=$(mktemp -d)
TEMP_DIR=$(mktemp -d)\ntrap 'rm -rf "$TEMP_DIR"' EXIT

..has((e) => e.message, 'message').equals('invalid input');

// NO (Passing a callback to sync throws will cause a compiler error!)
check(() => triggerSync").throws<ArgumentError>((it) => ...); // ERROR!

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

[CONCERN] There is a typo/syntax error in the code example: triggerSync" has an unmatched double quote and is missing parentheses. It should be triggerSyncError() to match the correct function name used in the previous example.

Suggested change
check(() => triggerSync").throws<ArgumentError>((it) => ...); // ERROR!
check(() => triggerSyncError()).throws<ArgumentError>((it) => ...); // ERROR!

@@ -0,0 +1,141 @@
---
name: dart-collect-coverage
description: Collect coverage using the coverage packge and create an LCOV report

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

[CONCERN] Typo: "packge" should be "package".

Suggested change
description: Collect coverage using the coverage packge and create an LCOV report
description: Collect coverage using the coverage package and create an LCOV report

@jakemac53 jakemac53 marked this pull request as draft June 30, 2026 18:08
Comment thread plugins/.mcp.json
@johnpryan

Copy link
Copy Markdown

Here's what I got when I ran claude plugin validate:

claude plugin validate .
Validating marketplace manifest:
/Users/john/code/github/dart-lang/ai/plugins/.claude-plugin/marketplace.json

⚠ Found 2 warnings:

  ❯ description: No marketplace description provided. Adding a description helps users
understand what this marketplace offers
  ❯ plugins[0] plugin.json → version: No version specified. Consider adding a version
following semver (e.g., "1.0.0")

✔ Validation passed with warnings

@keertip

keertip commented Jul 1, 2026

Copy link
Copy Markdown
Author

Thanks for validating the plugin. Added a description for the marketplace, and version info to plugin.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type-infra A repository infrastructure change or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants