Remove profile system and make custom two-stage selection default

- Remove profiles/ directory with all profile JSON files
- Update install.py to remove profile CLI options and simplify flow
- Make interactive two-stage selection (MCP → Components) the default
- Remove ConfigManager.load_profile() method
- Update documentation to reflect simplified installation process
- Add CLAUDEMdManager for intelligent CLAUDE.md import management
- Components now install to root directory with organized @imports
- Preserve user customizations while managing framework imports

This simplifies the installation experience while providing users
direct control over what gets installed through the intuitive
two-stage selection process.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
NomenAK
2025-08-14 21:02:34 +02:00
parent 9ace0619e2
commit 2e0f2cff6c
13 changed files with 396 additions and 445 deletions

View File

@@ -7,6 +7,7 @@ from pathlib import Path
import shutil
from ..base.component import Component
from ..managers.claude_md_manager import CLAUDEMdManager
class CoreComponent(Component):
"""Core SuperClaude framework files component"""
@@ -77,6 +78,15 @@ class CoreComponent(Component):
dir_path = self.install_dir / dirname
if not self.file_manager.ensure_directory(dir_path):
self.logger.warning(f"Could not create directory: {dir_path}")
# Update CLAUDE.md with core framework imports
try:
manager = CLAUDEMdManager(self.install_dir)
manager.add_imports(self.component_files, category="Core Framework")
self.logger.info("Updated CLAUDE.md with core framework imports")
except Exception as e:
self.logger.warning(f"Failed to update CLAUDE.md with core framework imports: {e}")
# Don't fail the whole installation for this
return True

View File

@@ -6,6 +6,7 @@ from typing import Dict, List, Tuple, Optional, Any
from pathlib import Path
from ..base.component import Component
from ..managers.claude_md_manager import CLAUDEMdManager
class MCPDocsComponent(Component):
@@ -13,7 +14,7 @@ class MCPDocsComponent(Component):
def __init__(self, install_dir: Optional[Path] = None):
"""Initialize MCP docs component"""
super().__init__(install_dir, Path("mcp"))
super().__init__(install_dir, Path(""))
# Map server names to documentation files
self.server_docs_map = {
@@ -57,7 +58,7 @@ class MCPDocsComponent(Component):
if server_name in self.server_docs_map:
doc_file = self.server_docs_map[server_name]
source = source_dir / doc_file
target = self.install_component_subdir / doc_file
target = self.install_dir / doc_file
if source.exists():
files.append((source, target))
self.logger.debug(f"Will install documentation for {server_name}: {doc_file}")
@@ -143,6 +144,15 @@ class MCPDocsComponent(Component):
self.settings_manager.update_metadata(metadata_mods)
self.logger.info("Updated metadata with MCP docs component registration")
# Update CLAUDE.md with MCP documentation imports
try:
manager = CLAUDEMdManager(self.install_dir)
manager.add_imports(self.component_files, category="MCP Documentation")
self.logger.info("Updated CLAUDE.md with MCP documentation imports")
except Exception as e:
self.logger.warning(f"Failed to update CLAUDE.md with MCP documentation imports: {e}")
# Don't fail the whole installation for this
return True
except Exception as e:
self.logger.error(f"Failed to update metadata: {e}")

View File

@@ -6,6 +6,7 @@ from typing import Dict, List, Tuple, Optional, Any
from pathlib import Path
from ..base.component import Component
from ..managers.claude_md_manager import CLAUDEMdManager
class ModesComponent(Component):
@@ -13,7 +14,7 @@ class ModesComponent(Component):
def __init__(self, install_dir: Optional[Path] = None):
"""Initialize modes component"""
super().__init__(install_dir, Path("modes"))
super().__init__(install_dir, Path(""))
def get_metadata(self) -> Dict[str, str]:
"""Get component metadata"""
@@ -77,6 +78,15 @@ class ModesComponent(Component):
self.settings_manager.update_metadata(metadata_mods)
self.logger.info("Updated metadata with modes component registration")
# Update CLAUDE.md with mode imports
try:
manager = CLAUDEMdManager(self.install_dir)
manager.add_imports(self.component_files, category="Behavioral Modes")
self.logger.info("Updated CLAUDE.md with mode imports")
except Exception as e:
self.logger.warning(f"Failed to update CLAUDE.md with mode imports: {e}")
# Don't fail the whole installation for this
return True
except Exception as e:
self.logger.error(f"Failed to update metadata: {e}")