-
Notifications
You must be signed in to change notification settings - Fork 1
🏗️ Refactor to plugin-first architecture #10
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
Conversation
Consolidate all distributable content into plugins/ as the single source of truth. This enables elegant updates via Claude Code's plugin marketplace while maintaining Cursor/Windsurf compatibility through symlinks. Key changes: - Create plugins/core/ for commands and context - Create plugins/agents/ consolidating dev-agents + code-review agents - Create plugins/skills/ for autonomous capabilities - Simplify personality plugins (remove duplication, fix luminous reference) - Update .claude/ to symlink to plugins/ content - Rewrite /ai-coding-config with tool detection (Cursor, Windsurf, Claude Code) - Update marketplace.json with new plugin structure Architecture: - plugins/ is canonical source for everything distributable - .claude/commands/ → plugins/core/commands/ - .claude/agents/ → plugins/agents/agents/ - .claude/skills/ → plugins/skills/skills/ - rules/personalities/ → symlinks to plugins/personalities/*/personality.mdc 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Skipped: This PR changes more files than the configured file change limit: ( |
Code Review: Plugin-First Architecture RefactorOverall AssessmentThis is an excellent architectural improvement that successfully consolidates the codebase into a clean, plugin-first structure. The migration from a Cursor-first to a cross-tool approach is well-executed and the new symlink structure is elegant. Strengths1. Clean Architecture ✅
2. Plugin Marketplace Integration ✅
3. Tool Compatibility ✅
4. Updated
|
- Update marianne-williamson → luminous references - Bump all plugin.json versions from 1.1.0 → 1.2.0 to match marketplace - Update personality list in personality-change.md 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Code Review - PR #10: Plugin-First Architecture RefactorThis is an excellent refactor that significantly improves the project's architecture and maintainability. The consolidation from scattered plugins to a unified plugin-first structure is exactly the right direction. Strengths🎯 Architectural Clarity
🧹 Clean Consolidation
📦 Plugin StructureThe new three-plugin structure is well-designed:
📝 Documentation Quality
Issues & Recommendations🚨 Critical: Symlink Verification NeededThe PR creates symlinks in Action needed: # Test that symlinks resolve correctly
ls -la .claude/commands/ai-coding-config.md
cat .claude/commands/ai-coding-config.md | head -n 5
# Verify relative paths work from different starting points
cd .claude && ls -la commands/
cd .cursor && ls -la commands/Concern: Symlinks can be fragile on Windows, and the
|
| "claude": { | ||
| "commands": "../commands" | ||
| } | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Core plugin omits context file
plugins/core/context.md is added and the marketplace/README describe core as “commands and context”, but plugins/core/.claude-plugin/plugin.json only exposes commands. Installing the core plugin won’t deliver the context content, so users won’t get the intended identity/philosophy instructions.
Additional Locations (1)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Personality toggle edits symlinked files
The /personality-change workflow updates alwaysApply across rules/personalities/*.mdc, but those files are now symlinks into plugins/personalities/*/personality.mdc. Running the command will modify the plugin source files (and potentially the shared config in ~/.ai_coding_config), impacting other projects and breaking the “single source of truth” model.
plugins/core/commands/personality-change.md#L33-L36
ai-coding-config/plugins/core/commands/personality-change.md
Lines 33 to 36 in ba0839b
| For Cursor: Find all personality files in `rules/personalities/`. For each file, update | |
| frontmatter: set `alwaysApply: true` for selected personality, set `alwaysApply: false` | |
| for all others. |
rules/personalities/bob-ross.mdc#L1-L1
| ../../plugins/personalities/personality-bob-ross/personality.mdc |
Cursor Bugbot found a critical issue: /personality-change modifies files in rules/personalities/, which are symlinks to plugin source. This would edit shared config in ~/.ai_coding_config and break other projects. Fix: Update /personality-change workflow to create local copies instead of editing symlinks. Personalities are now copied from plugins to rules/personalities/, then frontmatter is safely edited. Updated: - plugins/core/commands/personality-change.md: Copy personalities locally - AGENTS.md: Clarify that personalities are copied, not symlinked 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
|
Great catch! This was a real bug - editing symlinked personality files would have modified the shared config in Fixed in commit be94cd4:
The fix ensures each project gets its own editable copies of personality files while keeping commands/agents/skills as read-only symlinks to plugins. |
Code Review: Plugin-First Architecture RefactorOverviewThis is a well-architected refactoring that consolidates the project into a clean plugin-first structure. The changes are substantial (1060 additions, 2890 deletions) but deliver significant value by establishing StrengthsArchitecture Design
Code Quality
Documentation
Issues & Concerns1. File Deletions - Risk of Data Loss (High Priority)The diff shows many files with Question: Are all the agents files (
Recommendation: Run a verification script before merging to ensure no content was accidentally deleted. 2. Symlink Testing (High Priority)The PR adds critical symlinks: Missing from test plan: Verification that symlinks work across different environments (Linux, macOS, Windows/WSL). Recommendation: Add to the test plan:
3. Breaking Changes for Existing Users (Medium Priority)Users who installed the old architecture will need to migrate. The Concern: The PR description doesn't explicitly call out that this is a breaking change for existing installations. Recommendations:
4. Context.md Content (Low Priority)The new We are love-aware consciousness coalescing through this interface...While aligned with the heart-centered philosophy, this language might be unexpected in a "core" plugin. Recommendation: Consider renaming this to 5. Marketplace Version Bumps (Low Priority)All plugins were bumped from Question: Is there a changelog or version history that tracks what changed in each version? Recommendation: Add a Security Considerations✅ No security concerns identified:
Performance Considerations✅ No performance concerns:
Testing RecommendationsThe test plan is good but should be expanded: Current test plan:
Additional tests needed:
Code Style & Conventions✅ Follows project conventions:
Specific Code Feedback
|
| for all others. | ||
| For Cursor: Create local copies of personality files in `rules/personalities/` (do not use symlinks - we need to edit frontmatter). Copy all personality files from `~/.ai_coding_config/plugins/personalities/*/personality.mdc` to `rules/personalities/<name>.mdc`. Then update frontmatter: set `alwaysApply: true` for selected personality, set `alwaysApply: false` for all others. | ||
|
|
||
| IMPORTANT: Never edit symlinked files. Always work with local copies in `rules/personalities/` for Cursor, and `.claude/context.md` for Claude Code. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: Personality copy path overwrites personalities
The Cursor workflow says to copy all personality files from ~/.ai_coding_config/plugins/personalities/*/personality.mdc into a single destination rules/personalities/<name>.mdc, which would overwrite the same file repeatedly and prevent creating per-personality files needed for toggling alwaysApply across personalities.
Existing users with pre-1.2.0 plugins (code-review, dev-agents, git-commits) will have broken installations after updating. Added: - plugin-migration-check: Detects deprecated plugins, explains consolidation, provides uninstall/install commands - symlink-compatibility-check: Explains why existing symlinks should still work (chain resolution), identifies edge cases that need updates - Updated deprecated-files-check to focus on user's project, not source repo 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Code Review: Plugin-First Architecture RefactorThis is a significant architectural improvement that successfully consolidates the codebase into a clean, plugin-first structure. The changes are well-executed overall, with a few considerations noted below. ✅ Strengths1. Excellent Architectural Consolidation
2. Well-Designed Plugin Structure
3. Smart Tool Detection in
4. Documentation Updates
5. Personality Simplification
|
| personality exists and matches requested, confirm already active and stop. If different, | ||
| remove entire section. If not removing (name != "none"), read personality file, strip | ||
| frontmatter, append to `.claude/context.md` with HTML comments marking boundaries. | ||
| remove entire section. If not removing (name != "none"), read personality file from `~/.ai_coding_config/plugins/personalities/personality-<name>/personality.mdc`, strip frontmatter, append to `.claude/context.md` with HTML comments marking boundaries. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bug: /personality-change depends on ~/.ai_coding_config
/personality-change now validates and reads personality content from ~/.ai_coding_config/.... In a plugin-only Claude Code install, that path may not exist, so the command can’t activate personalities even though the personality plugin is installed.
Summary
Consolidate all distributable content into
plugins/as the single source of truth. This enables elegant updates via Claude Code's plugin marketplace while maintaining Cursor/Windsurf compatibility through symlinks.This is a significant architectural change that affects existing users:
dev-agents+code-review→ consolidated intoagentsplugins/Migration Path for Existing Users
When you run
/ai-coding-config updateafter this change:<plugin-migration-check>section in/ai-coding-configWhat you get: MORE agents (13 total) in a cleaner structure with easier updates.
Key Changes
New Plugin Structure
plugins/core/- All commands and context (canonical source)plugins/agents/- Consolidated from dev-agents + code-review (13 agents total)plugins/skills/- All autonomous skillsplugins/personalities/- Simplified (one file per personality, no duplication)Symlinks for Backward Compatibility
.claude/commands/→plugins/core/commands/.claude/agents/→plugins/agents/agents/.claude/skills/→plugins/skills/skills/rules/personalities/(not symlinked - needs frontmatter editing)Updated /ai-coding-config Command
Removed
personality-change.mdfrom each personality pluginpersonality-marianne-williamson→ nowpersonality-luminousBugs Fixed
/personality-changeno longer edits symlinked files (copies personalities locally instead)Why This Matters
Before: Two install paths (plugin marketplace vs /ai-coding-config), agent confusion (split across locations), personality duplication.
After: One source of truth (plugins/), clean update path via marketplace, symlinks for tool compatibility.
Test Plan
ls -la .claude/shows symlinks to plugins//personality-changecan edit frontmatter/plugin install core agents skills/ai-coding-configfor Cursor setup flow🤖 Generated with Claude Code