-
Notifications
You must be signed in to change notification settings - Fork 341
feat(docs): add Claude Code plugin for AI-assisted development #598
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
5 commits
Select commit
Hold shift + click to select a range
fef7bcc
feat(docs): add Claude Code plugin for AI-assisted development
JasonXuDeveloper f1d2277
docs: highlight AI-powered development in README
JasonXuDeveloper 3e33da2
fix: address code review feedback
JasonXuDeveloper ffa0210
fix(docs): correct JAction state parameter documentation
JasonXuDeveloper 9b0215c
fix(ci): add explicit branch check to release-plugin workflow
JasonXuDeveloper File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| # Plugin Maintenance | ||
|
|
||
| The `claude-plugin/` folder contains AI agent documentation for end users who install JEngine packages. | ||
|
|
||
| ## When to Update | ||
|
|
||
| Update the plugin documentation when: | ||
| - New public API added to JEngine.Util or JEngine.UI | ||
| - API signature changes | ||
| - New usage patterns discovered | ||
| - Common mistakes identified | ||
|
|
||
| ## Files to Update | ||
|
|
||
| | Package Change | Plugin File to Update | | ||
| |---------------|----------------------| | ||
| | JAction API | `claude-plugin/skills/jaction/SKILL.md` | | ||
| | JObjectPool API | `claude-plugin/skills/jobjectpool/SKILL.md` | | ||
| | MessageBox API | `claude-plugin/skills/messagebox/SKILL.md` | | ||
| | Editor UI components | `claude-plugin/skills/editor-ui/SKILL.md` | | ||
| | Design Tokens | `claude-plugin/skills/editor-ui/SKILL.md` | | ||
| | New utility class | Create new skill in `claude-plugin/skills/` | | ||
| | General patterns | `claude-plugin/CLAUDE.md` | | ||
|
|
||
| ## Checklist for API Changes | ||
|
|
||
| - [ ] Update relevant SKILL.md with new/changed API | ||
| - [ ] Add code examples for new features | ||
| - [ ] Document common mistakes if any | ||
| - [ ] Bump version in `claude-plugin/claude.json` (CI does this automatically on release) | ||
|
|
||
| ## Version Sync | ||
|
|
||
| Plugin version is automatically bumped by CI when packages are released. | ||
| For manual updates, bump the version in `claude-plugin/claude.json`: | ||
| - Patch (x.x.1) for doc fixes | ||
| - Minor (x.1.0) for new API coverage | ||
| - Major (1.0.0) for breaking skill changes | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,60 @@ | ||
| name: Release Plugin | ||
|
|
||
| on: | ||
| push: | ||
| paths: | ||
| - 'claude-plugin/**' | ||
| branches: | ||
| - master | ||
| workflow_dispatch: | ||
| inputs: | ||
| bump_type: | ||
| description: 'Version bump type' | ||
| required: true | ||
| default: 'patch' | ||
| type: choice | ||
| options: | ||
| - patch | ||
| - minor | ||
| - major | ||
|
|
||
| jobs: | ||
| release-plugin: | ||
| runs-on: ubuntu-latest | ||
| # Only run on master branch, skip automated version bump commits | ||
| if: | | ||
| (github.ref == 'refs/heads/master' || github.event_name == 'workflow_dispatch') && | ||
| (github.event_name == 'workflow_dispatch' || !contains(github.event.head_commit.message || '', 'chore(plugin): bump version')) | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
| with: | ||
| fetch-depth: 0 | ||
| token: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
| - name: Bump plugin version | ||
| id: bump | ||
| run: | | ||
| BUMP_TYPE="${{ github.event.inputs.bump_type || 'patch' }}" | ||
| CURRENT=$(jq -r '.version' claude-plugin/claude.json) | ||
|
|
||
| IFS='.' read -r major minor patch <<< "$CURRENT" | ||
| case $BUMP_TYPE in | ||
| major) NEW_VERSION="$((major+1)).0.0" ;; | ||
| minor) NEW_VERSION="$major.$((minor+1)).0" ;; | ||
| patch) NEW_VERSION="$major.$minor.$((patch+1))" ;; | ||
| esac | ||
|
|
||
| jq --arg v "$NEW_VERSION" '.version = $v' claude-plugin/claude.json > tmp.json | ||
| mv tmp.json claude-plugin/claude.json | ||
|
|
||
| echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT | ||
| echo "Bumped plugin version from $CURRENT to $NEW_VERSION" | ||
|
|
||
| - name: Commit and tag | ||
| run: | | ||
| git config user.name "github-actions[bot]" | ||
| git config user.email "github-actions[bot]@users.noreply.github.com" | ||
| git add claude-plugin/claude.json | ||
| git commit -m "chore(plugin): bump version to ${{ steps.bump.outputs.version }}" | ||
| git tag "plugin-v${{ steps.bump.outputs.version }}" | ||
| git push origin master --tags |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,56 @@ | ||
| # JEngine Framework | ||
|
|
||
| Unity framework for runtime hot updates. Unity 2022.3+, C#. | ||
|
|
||
| ## Available Packages | ||
|
|
||
| ### JEngine.Util (com.jasonxudeveloper.jengine.util) | ||
| - **JAction**: Fluent API for chainable action sequences with zero-allocation async | ||
| - **JObjectPool<T>**: Thread-safe generic object pool using lock-free CAS | ||
|
|
||
| ### JEngine.UI (com.jasonxudeveloper.jengine.ui) | ||
| - **MessageBox**: Async modal dialogs with UniTask (runtime) | ||
| - **Editor Components**: JButton, JTextField, JStack, JCard, etc. (editor) | ||
| - **Design Tokens**: Theme-aware colors, spacing, typography | ||
|
|
||
| ## Key Patterns | ||
|
|
||
| ### Always Use UniTask (not System.Threading.Tasks.Task) | ||
| ```csharp | ||
| using Cysharp.Threading.Tasks; | ||
| public async UniTask<bool> LoadAsync() { } | ||
| ``` | ||
|
|
||
| ### JAction - Always Dispose After Async | ||
| ```csharp | ||
| using var action = await JAction.Create() | ||
| .Do(static () => Debug.Log("Start")) | ||
| .Delay(1f) | ||
| .Do(static () => Debug.Log("After 1s")) | ||
| .ExecuteAsync(); | ||
| ``` | ||
|
|
||
| ### JObjectPool - Reset State on Return | ||
| ```csharp | ||
| var pool = new JObjectPool<List<int>>( | ||
| onReturn: static list => list.Clear() | ||
| ); | ||
| var list = pool.Rent(); | ||
| pool.Return(list); | ||
| ``` | ||
|
|
||
| ### MessageBox - Await the Result | ||
| ```csharp | ||
| bool ok = await MessageBox.Show("Title", "Message?", "Yes", "No"); | ||
| if (ok) { /* confirmed */ } | ||
| ``` | ||
|
|
||
| ### Editor UI - Use Design Tokens | ||
| ```csharp | ||
| using JEngine.UI.Editor.Theming; | ||
| using JEngine.UI.Editor.Components.Button; | ||
| using JEngine.UI.Editor.Components.Layout; | ||
|
|
||
| var stack = new JStack(GapSize.MD) | ||
| .Add(new JButton("Action", () => DoIt(), ButtonVariant.Primary)); | ||
| ``` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,51 @@ | ||
| # JEngine Claude Code Plugin | ||
|
|
||
| AI-powered development guide for JEngine Unity framework. | ||
|
|
||
| ## Installation (Recommended: Marketplace) | ||
|
|
||
| Add the JEngine marketplace for **automatic updates**: | ||
|
|
||
| ```bash | ||
| # Add marketplace (one-time) | ||
| claude plugin marketplace add https://github.com/JasonXuDeveloper/JEngine/tree/master/claude-plugin/marketplace.json | ||
|
|
||
| # Install plugin | ||
| claude plugin install jengine@jengine-marketplace | ||
| ``` | ||
|
|
||
| After this, plugin updates automatically when Claude Code starts. | ||
|
|
||
| ## Alternative: Direct Install | ||
|
|
||
| ```bash | ||
| claude plugin install https://github.com/JasonXuDeveloper/JEngine/tree/master/claude-plugin | ||
| ``` | ||
|
|
||
| (Note: Direct installs require manual updates) | ||
|
|
||
| ## Features | ||
|
|
||
| After installation, Claude Code automatically: | ||
| - Suggests JAction for sequential tasks, timers, and delays | ||
| - Suggests JObjectPool for object pooling and GC optimization | ||
| - Suggests MessageBox for confirmation dialogs | ||
| - Suggests Editor UI components for custom inspectors and editor windows | ||
| - Follows JEngine coding conventions (UniTask, namespaces, etc.) | ||
|
|
||
| ## Skills Included | ||
|
|
||
| ### JEngine.Util (Runtime) | ||
| - `/jaction` - Chainable task system with zero-allocation async | ||
| - `/jobjectpool` - Thread-safe object pooling | ||
|
|
||
| ### JEngine.UI (Runtime + Editor) | ||
| - `/messagebox` - Async modal dialogs | ||
| - `/editor-ui` - Editor UI components (JButton, JStack, Tokens, etc.) | ||
|
|
||
| ## Requirements | ||
|
|
||
| - Claude Code CLI | ||
| - JEngine packages installed in your Unity project: | ||
| - `com.jasonxudeveloper.jengine.util` | ||
| - `com.jasonxudeveloper.jengine.ui` |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| { | ||
| "name": "jengine", | ||
| "displayName": "JEngine Framework", | ||
| "version": "1.0.0", | ||
| "description": "AI development guide for JEngine Unity hot-update framework", | ||
| "author": "JasonXuDeveloper", | ||
| "repository": "https://github.com/JasonXuDeveloper/JEngine", | ||
| "skills": ["skills/*/SKILL.md"], | ||
| "claudeMd": "CLAUDE.md" | ||
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,20 @@ | ||
| { | ||
| "name": "jengine-marketplace", | ||
| "description": "JEngine Framework plugins for AI-assisted Unity development", | ||
| "owner": { | ||
| "name": "JasonXuDeveloper", | ||
| "url": "https://github.com/JasonXuDeveloper" | ||
| }, | ||
| "plugins": [ | ||
| { | ||
| "name": "jengine", | ||
| "description": "AI development guide for JEngine Unity hot-update framework", | ||
| "source": { | ||
| "source": "github", | ||
| "repo": "JasonXuDeveloper/JEngine", | ||
| "path": "claude-plugin", | ||
| "ref": "master" | ||
| } | ||
| } | ||
| ] | ||
| } |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.