Migrated from design-system-swarm with fresh git history.
Old project history preserved in /home/overbits/apps/design-system-swarm
Core components:
- MCP Server (Python FastAPI with mcp 1.23.1)
- Claude Plugin (agents, commands, skills, strategies, hooks, core)
- DSS Backend (dss-mvp1 - token translation, Figma sync)
- Admin UI (Node.js/React)
- Server (Node.js/Express)
- Storybook integration (dss-mvp1/.storybook)
Self-contained configuration:
- All paths relative or use DSS_BASE_PATH=/home/overbits/dss
- PYTHONPATH configured for dss-mvp1 and dss-claude-plugin
- .env file with all configuration
- Claude plugin uses ${CLAUDE_PLUGIN_ROOT} for portability
Migration completed: $(date)
🤖 Clean migration with full functionality preserved
7.0 KiB
DSS Settings & Management
Complete guide for DSS configuration, testing, and system management.
Quick Start
# Check system information
python3 -m dss.settings info
# Check dependencies
python3 -m dss.settings check-deps
# Run all tests
python3 -m dss.settings test
# Reset DSS to fresh state
python3 -m dss.settings reset
Commands
System Information
# Show DSS configuration and paths
python3 -m dss.settings info
Output:
📊 DSS System Information:
project_root: /path/to/dss-mvp1
dss_dir: /path/to/dss-mvp1/dss
tests_dir: /path/to/dss-mvp1/tests
cache_dir: /home/user/.dss/cache
database_path: /home/user/.dss/dss.db
has_anthropic_key: True/False
has_figma_token: True/False
use_mock_apis: True
Dependency Check
# Verify all required dependencies are installed
python3 -m dss.settings check-deps
Checks:
- ✅ pydantic
- ✅ fastapi
- ✅ pytest
- ✅ requests
- ✅ style-dictionary (Node.js)
Running Tests
All Tests
python3 -m dss.settings test
Unit Tests Only
python3 -m dss.settings test-unit
Integration Tests Only
python3 -m dss.settings test-integration
With Coverage Report
python3 -m dss.settings test-coverage
Specific Test File
python3 -m dss.settings test tests/unit/test_models.py
Reset DSS
Reset DSS to fresh state, deleting all user data but keeping structure.
python3 -m dss.settings reset
⚠️ WARNING: This will prompt for confirmation and delete:
- User-created themes (keeps default themes)
- Cache directory
- Figma cache
- Database files
- Test database
__pycache__directories
Keeps:
- Directory structure
- Default themes
- Source code
- Configuration files
- Test fixtures
Confirmation Required:
⚠️ WARNING: This will delete all themes, projects, and cached data.
The DSS structure will be preserved.
Type 'RESET' to confirm:
Type RESET (exactly) to proceed.
Python API Usage
Using Settings in Code
from dss.settings import settings, manager
# Access configuration
print(settings.PROJECT_ROOT)
print(settings.ANTHROPIC_API_KEY)
# Run tests programmatically
result = manager.run_tests("tests/unit/")
# Get system info
info = manager.get_system_info()
# Check dependencies
deps = manager.check_dependencies()
DSSSettings
Configuration class using Pydantic Settings.
Attributes:
PROJECT_ROOT: Path- Project root directoryDSS_DIR: Path- DSS source directoryTESTS_DIR: Path- Tests directoryCACHE_DIR: Path- Cache directory (~/.dss/cache)ANTHROPIC_API_KEY: Optional[str]- Claude API keyFIGMA_TOKEN: Optional[str]- Figma API tokenFIGMA_FILE_KEY: Optional[str]- Figma file keyDATABASE_PATH: Path- Main database pathTEST_DATABASE_PATH: Path- Test database pathUSE_MOCK_APIS: bool- Use mock APIs in tests
Configuration:
- Reads from
.envfile - Case-sensitive environment variables
- Ignores extra fields
DSSManager
Management utility class.
Methods:
run_tests(test_path=None, verbose=True, coverage=False, markers=None)
Run pytest test suite.
# Run all tests
manager.run_tests()
# Run specific file
manager.run_tests("tests/unit/test_models.py")
# Run with markers
manager.run_tests(markers="unit")
# Run with coverage
manager.run_tests(coverage=True)
run_unit_tests()
Shortcut for running unit tests only.
manager.run_unit_tests()
run_integration_tests()
Shortcut for running integration tests only.
manager.run_integration_tests()
run_all_tests_with_coverage()
Run all tests with coverage report.
manager.run_all_tests_with_coverage()
reset_dss(keep_structure=True, confirm=True)
Reset DSS to fresh state.
# With confirmation prompt
results = manager.reset_dss()
# Without confirmation (dangerous!)
results = manager.reset_dss(confirm=False)
Returns:
{
"status": "success",
"deleted": ["file1.py", "cache/", ...],
"kept": ["default_themes.py", "models/", ...],
"errors": []
}
get_system_info()
Get DSS system information.
info = manager.get_system_info()
# {
# "project_root": "/path/to/project",
# "dss_dir": "/path/to/dss",
# ...
# }
check_dependencies()
Check installed dependencies.
deps = manager.check_dependencies()
# {
# "pydantic": True,
# "fastapi": True,
# "pytest": True,
# "requests": True,
# "style-dictionary": True
# }
Environment Variables
Create a .env file in the project root:
# API Keys
ANTHROPIC_API_KEY=sk-ant-api03-your-key-here
FIGMA_TOKEN=your-figma-token-here
FIGMA_FILE_KEY=your-file-key-here
# Database
DATABASE_PATH=/home/user/.dss/dss.db
# Testing
USE_MOCK_APIS=true
See .env.test for test environment example.
Test Fixtures
Mock API keys are available in tests/fixtures/api_keys.json:
# In tests
def test_my_feature(mock_anthropic_key, mock_figma_token):
# Use mock keys automatically
wrapper = FigmaWrapper(api_token=mock_figma_token, ...)
Troubleshooting
Missing Dependencies
# Check what's missing
python3 -m dss.settings check-deps
# Install Python dependencies
pip install -r requirements.txt
# Install Node dependencies
npm install
API Keys Not Loaded
- Create
.envfile in project root - Add your API keys
- Verify with
python3 -m dss.settings info
Tests Failing
# Run tests with verbose output
python3 -m dss.settings test -v
# Run specific failing test
python3 -m dss.settings test tests/unit/test_models.py::TestTheme::test_specific
Reset Not Working
Ensure you type RESET exactly (all caps) when prompted.
Or use Python API without confirmation:
from dss.settings import manager
results = manager.reset_dss(confirm=False)
Examples
Daily Development Workflow
# 1. Check system is ready
python3 -m dss.settings check-deps
# 2. Run tests before making changes
python3 -m dss.settings test-unit
# 3. Make your changes...
# 4. Run tests again
python3 -m dss.settings test
# 5. If tests pass, commit!
git add .
git commit -m "Your changes"
Setting Up New Environment
# 1. Install dependencies
pip install -r requirements.txt
npm install
# 2. Create .env file
cp .env.test .env
# 3. Add your real API keys to .env
# 4. Verify setup
python3 -m dss.settings info
python3 -m dss.settings check-deps
# 5. Run tests to confirm
python3 -m dss.settings test
Starting Fresh
# Reset everything
python3 -m dss.settings reset
# Verify reset
python3 -m dss.settings info
# Run tests to ensure structure intact
python3 -m dss.settings test
See Also
- README.md - Project overview
- .env.test - Test environment template
- requirements.txt - Python dependencies
- package.json - Node.js dependencies