Fix typo in playwright MCP server configuration where @playright/mcp
was incorrectly specified instead of @playwright/mcp, which would
cause installation failures.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
# summary
* this pr refactors superclaude’s install system to boost
maintainability, cut duplicate code, and most important fixes a bunch of
issues that ppl are having when trying to install v3
Fixes: #172#182#189#193#201#202#206#207
## key changes:
### architecture improvements
* moved shared logic to a base component class to reduce duplication.
* shifted config, file, and settings managers to a managers/ module for
better organization.
* streamlined installer logic by removing duplicate code patterns.
### component system refactoring
* unified install flow with custom hooks (_install(), _post_install()).
* components now auto-discover files, no hardcoding (sub)path names.
* centralized error handling and logging.
* security validation moved to base class for consistency.
### code organization
* simplified component files by leveraging base class logic.
* eliminated repetitive validation, install, and file management code.
* cleaned up imports after module restructure.
### loc impact
* 554 insertions, 863 deletions.
* net: 309 lines cut, with added functionality.
## next steps
### e2e tests
* test migration from v2: use an invalid `.claude/settings.json` with
superclaude config (i.e fields like `framework`, `components`) and
verify it migrates to the new metadata json.
### cleanup and chores
* there's still bits of dead code from the initial v3 commit that i've
noticed while refactoring this shit
* update documentation
* add guardrails (maybe use github actions?) so we can't push stuff that
breaks users envs onto master
* Consolidate installation check logic using SettingsManager methods
* Simplify component retrieval by delegating to SettingsManager
* Add 'all' components shorthand support in installer
* Component Base Class:
* Add constructor parameter for component subdirectory
* Move file discovery utilities to base class to avoid repetition in subclasses
* Same for validate_prerequisites, get_files_to_install, get_settings_modifications methods
* Split install method into _install and _post_install for better separation of concerns
* Add error handling wrapper around _install method
* All Component Subclasses:
* Remove duplicate code now handled by base class
* Use shared file discovery and installation logic
* Simplify metadata updates using base class methods
* Leverage base class file handling and validation
* Hooks Component:
* Fix the logic for handling both placeholder and actual hooks scenarios
* MCP Component:
* Fix npm package names and installation commands
* Move ConfigManager, SettingsManager, and FileManager from setup/core to setup/managers with new init.py for cleaner organization.
* Update SettingsManager with enhanced metadata handling methods and installation detection utilities.
While installing on my windows machine, I was getting error
```
python -m SuperClaude install
Traceback (most recent call last):
File "<frozen runpy>", line 189, in _run_module_as_main
File "<frozen runpy>", line 148, in _get_module_details
File "<frozen runpy>", line 159, in _get_module_details
File "<frozen importlib._bootstrap_external>", line 1160, in get_code
File "<frozen importlib._bootstrap_external>", line 1090, in source_to_code
File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "D:\prac_repo\AI\SuperClaude\SuperClaude\__main__.py", line 206
^
SyntaxError: invalid non-printable character U+00A0
```
* refactor: pyproject.toml to use Hatchling as the build backend and update project metadata
- Changed build backend from setuptools to hatchling.
- Updated project name, description, authors, and dependencies.
- Added project URLs and scripts section for SuperClaude.
- Configured versioning and build targets for wheel and sdist.
* feat: Update installation instructions in README.md to reflect new package management commands using 'uv' instead of 'pip'.
* feat: Add uv.lock file to manage package dependencies and versions for SuperClaude
* fix: Update library usage guidelines in RULES.md to reference pyproject.toml instead of requirements.txt
docs: revise installation instructions in README.md to clarify the two-step process for SuperClaude setup, including detailed steps for package installation and running the installer.