feat: add comprehensive test suite, CI/CD workflows, and install command
Major improvements to SuperClaude Framework infrastructure and testing:
## New Features
- Add 'superclaude install' command to install slash commands (/research, /index-repo, /agent, /recommend)
- Create comprehensive test suite with 71 tests (70 passing, 1 skipped)
- Add GitHub Actions CI/CD workflows for automated testing
- Add essential documentation files (PLANNING.md, TASK.md, KNOWLEDGE.md)
## Testing
- tests/unit/: 59 tests covering PM Agent components
- test_confidence.py: 13 tests for ConfidenceChecker
- test_self_check.py: 14 tests for SelfCheckProtocol
- test_reflexion.py: 9 tests for ReflexionPattern
- test_token_budget.py: 12 tests for TokenBudgetManager
- test_cli_install.py: 12 tests for install command (NEW)
- tests/integration/: 11 tests for pytest plugin integration
- tests/conftest.py: Shared fixtures for all tests
## CI/CD Workflows
- .github/workflows/test.yml: Comprehensive test matrix
- Tests on Python 3.10, 3.11, 3.12
- Lint and format checks with ruff
- Pytest plugin verification
- SuperClaude doctor health checks
- Coverage reporting with Codecov
- .github/workflows/quick-check.yml: Fast PR validation (~2-3 min)
- .github/workflows/README.md: Workflow documentation
## Documentation
- PLANNING.md: Architecture, design principles, absolute rules
- TASK.md: Current tasks, priorities, backlog
- KNOWLEDGE.md: Accumulated insights, best practices, troubleshooting
## Bug Fixes
- Fix .gitignore contradictions (remove conflicting Claude Code patterns)
- Fix TokenBudgetManager to properly validate and default invalid complexity
- Update package.json version to 4.1.6 (sync with VERSION file)
## CLI Improvements
- src/superclaude/cli/install_commands.py: Command installation logic
- src/superclaude/cli/main.py: Add 'install' command with --list and --force options
- README.md: Update installation instructions with correct commands
## Breaking Changes
None - all changes are backwards compatible
## Migration Guide
Users should run 'superclaude install' after upgrading to install slash commands
Fixes #466 (indirectly by clarifying installation process)
Refs #419 (plugin system - documentation updated)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 18:21:22 +01:00
|
|
|
# KNOWLEDGE.md
|
|
|
|
|
|
|
|
|
|
**Accumulated Insights, Best Practices, and Troubleshooting for SuperClaude Framework**
|
|
|
|
|
|
|
|
|
|
> This document captures lessons learned, common pitfalls, and solutions discovered during development.
|
|
|
|
|
> Consult this when encountering issues or learning project patterns.
|
|
|
|
|
|
|
|
|
|
**Last Updated**: 2025-11-12
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🧠 **Core Insights**
|
|
|
|
|
|
|
|
|
|
### **PM Agent ROI: 25-250x Token Savings**
|
|
|
|
|
|
|
|
|
|
**Finding**: Pre-execution confidence checking has exceptional ROI.
|
|
|
|
|
|
|
|
|
|
**Evidence**:
|
|
|
|
|
- Spending 100-200 tokens on confidence check saves 5,000-50,000 tokens on wrong-direction work
|
|
|
|
|
- Real example: Checking for duplicate implementations before coding (2min research) vs implementing duplicate feature (2hr work)
|
|
|
|
|
|
|
|
|
|
**When it works best**:
|
|
|
|
|
- Unclear requirements → Ask questions first
|
|
|
|
|
- New codebase → Search for existing patterns
|
|
|
|
|
- Complex features → Verify architecture compliance
|
|
|
|
|
- Bug fixes → Identify root cause before coding
|
|
|
|
|
|
|
|
|
|
**When to skip**:
|
|
|
|
|
- Trivial changes (typo fixes)
|
|
|
|
|
- Well-understood tasks with clear path
|
|
|
|
|
- Emergency hotfixes (but document learnings after)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Hallucination Detection: 94% Accuracy**
|
|
|
|
|
|
|
|
|
|
**Finding**: The Four Questions catch most AI hallucinations.
|
|
|
|
|
|
|
|
|
|
**The Four Questions**:
|
|
|
|
|
1. Are all tests passing? → REQUIRE actual output
|
|
|
|
|
2. Are all requirements met? → LIST each requirement
|
|
|
|
|
3. No assumptions without verification? → SHOW documentation
|
|
|
|
|
4. Is there evidence? → PROVIDE test results, code changes, validation
|
|
|
|
|
|
|
|
|
|
**Red flags that indicate hallucination**:
|
|
|
|
|
- "Tests pass" (without showing output) 🚩
|
|
|
|
|
- "Everything works" (without evidence) 🚩
|
|
|
|
|
- "Implementation complete" (with failing tests) 🚩
|
|
|
|
|
- Skipping error messages 🚩
|
|
|
|
|
- Ignoring warnings 🚩
|
|
|
|
|
- "Probably works" language 🚩
|
|
|
|
|
|
|
|
|
|
**Real example**:
|
|
|
|
|
```
|
|
|
|
|
❌ BAD: "The API integration is complete and working correctly."
|
|
|
|
|
✅ GOOD: "The API integration is complete. Test output:
|
|
|
|
|
✅ test_api_connection: PASSED
|
|
|
|
|
✅ test_api_authentication: PASSED
|
|
|
|
|
✅ test_api_data_fetch: PASSED
|
|
|
|
|
All 3 tests passed in 1.2s"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Parallel Execution: 3.5x Speedup**
|
|
|
|
|
|
|
|
|
|
**Finding**: Wave → Checkpoint → Wave pattern dramatically improves performance.
|
|
|
|
|
|
|
|
|
|
**Pattern**:
|
|
|
|
|
```python
|
|
|
|
|
# Wave 1: Independent reads (parallel)
|
|
|
|
|
files = [Read(f1), Read(f2), Read(f3)]
|
|
|
|
|
|
|
|
|
|
# Checkpoint: Analyze together (sequential)
|
|
|
|
|
analysis = analyze_files(files)
|
|
|
|
|
|
|
|
|
|
# Wave 2: Independent edits (parallel)
|
|
|
|
|
edits = [Edit(f1), Edit(f2), Edit(f3)]
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**When to use**:
|
|
|
|
|
- ✅ Reading multiple independent files
|
|
|
|
|
- ✅ Editing multiple unrelated files
|
|
|
|
|
- ✅ Running multiple independent searches
|
|
|
|
|
- ✅ Parallel test execution
|
|
|
|
|
|
|
|
|
|
**When NOT to use**:
|
|
|
|
|
- ❌ Operations with dependencies (file2 needs data from file1)
|
|
|
|
|
- ❌ Sequential analysis (building context step-by-step)
|
|
|
|
|
- ❌ Operations that modify shared state
|
|
|
|
|
|
|
|
|
|
**Performance data**:
|
|
|
|
|
- Sequential: 10 file reads = 10 API calls = ~30 seconds
|
|
|
|
|
- Parallel: 10 file reads = 1 API call = ~3 seconds
|
|
|
|
|
- Speedup: 3.5x average, up to 10x for large batches
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🛠️ **Common Pitfalls and Solutions**
|
|
|
|
|
|
|
|
|
|
### **Pitfall 1: Implementing Before Checking for Duplicates**
|
|
|
|
|
|
|
|
|
|
**Problem**: Spent hours implementing feature that already exists in codebase.
|
|
|
|
|
|
|
|
|
|
**Solution**: ALWAYS use Glob/Grep before implementing:
|
|
|
|
|
```bash
|
|
|
|
|
# Search for similar functions
|
|
|
|
|
uv run python -c "from pathlib import Path; print([f for f in Path('src').rglob('*.py') if 'feature_name' in f.read_text()])"
|
|
|
|
|
|
|
|
|
|
# Or use grep
|
|
|
|
|
grep -r "def feature_name" src/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Prevention**: Run confidence check, ensure duplicate_check_complete=True
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Pitfall 2: Assuming Architecture Without Verification**
|
|
|
|
|
|
|
|
|
|
**Problem**: Implemented custom API when project uses Supabase.
|
|
|
|
|
|
|
|
|
|
**Solution**: READ CLAUDE.md and PLANNING.md before implementing:
|
|
|
|
|
```python
|
|
|
|
|
# Check project tech stack
|
|
|
|
|
with open('CLAUDE.md') as f:
|
|
|
|
|
claude_md = f.read()
|
|
|
|
|
|
|
|
|
|
if 'Supabase' in claude_md:
|
|
|
|
|
# Use Supabase APIs, not custom implementation
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Prevention**: Run confidence check, ensure architecture_check_complete=True
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Pitfall 3: Skipping Test Output**
|
|
|
|
|
|
|
|
|
|
**Problem**: Claimed tests passed but they were actually failing.
|
|
|
|
|
|
|
|
|
|
**Solution**: ALWAYS show actual test output:
|
|
|
|
|
```bash
|
|
|
|
|
# Run tests and capture output
|
|
|
|
|
uv run pytest -v > test_output.txt
|
|
|
|
|
|
|
|
|
|
# Show in validation
|
|
|
|
|
echo "Test Results:"
|
|
|
|
|
cat test_output.txt
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Prevention**: Use SelfCheckProtocol, require evidence
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Pitfall 4: Version Inconsistency**
|
|
|
|
|
|
2025-11-14 14:15:44 +01:00
|
|
|
**Problem**: VERSION file says 4.1.9, but package.json says 4.1.5, pyproject.toml says 0.4.0.
|
feat: add comprehensive test suite, CI/CD workflows, and install command
Major improvements to SuperClaude Framework infrastructure and testing:
## New Features
- Add 'superclaude install' command to install slash commands (/research, /index-repo, /agent, /recommend)
- Create comprehensive test suite with 71 tests (70 passing, 1 skipped)
- Add GitHub Actions CI/CD workflows for automated testing
- Add essential documentation files (PLANNING.md, TASK.md, KNOWLEDGE.md)
## Testing
- tests/unit/: 59 tests covering PM Agent components
- test_confidence.py: 13 tests for ConfidenceChecker
- test_self_check.py: 14 tests for SelfCheckProtocol
- test_reflexion.py: 9 tests for ReflexionPattern
- test_token_budget.py: 12 tests for TokenBudgetManager
- test_cli_install.py: 12 tests for install command (NEW)
- tests/integration/: 11 tests for pytest plugin integration
- tests/conftest.py: Shared fixtures for all tests
## CI/CD Workflows
- .github/workflows/test.yml: Comprehensive test matrix
- Tests on Python 3.10, 3.11, 3.12
- Lint and format checks with ruff
- Pytest plugin verification
- SuperClaude doctor health checks
- Coverage reporting with Codecov
- .github/workflows/quick-check.yml: Fast PR validation (~2-3 min)
- .github/workflows/README.md: Workflow documentation
## Documentation
- PLANNING.md: Architecture, design principles, absolute rules
- TASK.md: Current tasks, priorities, backlog
- KNOWLEDGE.md: Accumulated insights, best practices, troubleshooting
## Bug Fixes
- Fix .gitignore contradictions (remove conflicting Claude Code patterns)
- Fix TokenBudgetManager to properly validate and default invalid complexity
- Update package.json version to 4.1.6 (sync with VERSION file)
## CLI Improvements
- src/superclaude/cli/install_commands.py: Command installation logic
- src/superclaude/cli/main.py: Add 'install' command with --list and --force options
- README.md: Update installation instructions with correct commands
## Breaking Changes
None - all changes are backwards compatible
## Migration Guide
Users should run 'superclaude install' after upgrading to install slash commands
Fixes #466 (indirectly by clarifying installation process)
Refs #419 (plugin system - documentation updated)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 18:21:22 +01:00
|
|
|
|
|
|
|
|
**Solution**: Understand versioning strategy:
|
2025-11-14 14:15:44 +01:00
|
|
|
- **Framework version** (VERSION file): User-facing version (4.1.9)
|
feat: add comprehensive test suite, CI/CD workflows, and install command
Major improvements to SuperClaude Framework infrastructure and testing:
## New Features
- Add 'superclaude install' command to install slash commands (/research, /index-repo, /agent, /recommend)
- Create comprehensive test suite with 71 tests (70 passing, 1 skipped)
- Add GitHub Actions CI/CD workflows for automated testing
- Add essential documentation files (PLANNING.md, TASK.md, KNOWLEDGE.md)
## Testing
- tests/unit/: 59 tests covering PM Agent components
- test_confidence.py: 13 tests for ConfidenceChecker
- test_self_check.py: 14 tests for SelfCheckProtocol
- test_reflexion.py: 9 tests for ReflexionPattern
- test_token_budget.py: 12 tests for TokenBudgetManager
- test_cli_install.py: 12 tests for install command (NEW)
- tests/integration/: 11 tests for pytest plugin integration
- tests/conftest.py: Shared fixtures for all tests
## CI/CD Workflows
- .github/workflows/test.yml: Comprehensive test matrix
- Tests on Python 3.10, 3.11, 3.12
- Lint and format checks with ruff
- Pytest plugin verification
- SuperClaude doctor health checks
- Coverage reporting with Codecov
- .github/workflows/quick-check.yml: Fast PR validation (~2-3 min)
- .github/workflows/README.md: Workflow documentation
## Documentation
- PLANNING.md: Architecture, design principles, absolute rules
- TASK.md: Current tasks, priorities, backlog
- KNOWLEDGE.md: Accumulated insights, best practices, troubleshooting
## Bug Fixes
- Fix .gitignore contradictions (remove conflicting Claude Code patterns)
- Fix TokenBudgetManager to properly validate and default invalid complexity
- Update package.json version to 4.1.6 (sync with VERSION file)
## CLI Improvements
- src/superclaude/cli/install_commands.py: Command installation logic
- src/superclaude/cli/main.py: Add 'install' command with --list and --force options
- README.md: Update installation instructions with correct commands
## Breaking Changes
None - all changes are backwards compatible
## Migration Guide
Users should run 'superclaude install' after upgrading to install slash commands
Fixes #466 (indirectly by clarifying installation process)
Refs #419 (plugin system - documentation updated)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 18:21:22 +01:00
|
|
|
- **Python package** (pyproject.toml): Library semantic version (0.4.0)
|
2025-11-14 14:15:44 +01:00
|
|
|
- **NPM package** (package.json): Should match framework version (4.1.9)
|
feat: add comprehensive test suite, CI/CD workflows, and install command
Major improvements to SuperClaude Framework infrastructure and testing:
## New Features
- Add 'superclaude install' command to install slash commands (/research, /index-repo, /agent, /recommend)
- Create comprehensive test suite with 71 tests (70 passing, 1 skipped)
- Add GitHub Actions CI/CD workflows for automated testing
- Add essential documentation files (PLANNING.md, TASK.md, KNOWLEDGE.md)
## Testing
- tests/unit/: 59 tests covering PM Agent components
- test_confidence.py: 13 tests for ConfidenceChecker
- test_self_check.py: 14 tests for SelfCheckProtocol
- test_reflexion.py: 9 tests for ReflexionPattern
- test_token_budget.py: 12 tests for TokenBudgetManager
- test_cli_install.py: 12 tests for install command (NEW)
- tests/integration/: 11 tests for pytest plugin integration
- tests/conftest.py: Shared fixtures for all tests
## CI/CD Workflows
- .github/workflows/test.yml: Comprehensive test matrix
- Tests on Python 3.10, 3.11, 3.12
- Lint and format checks with ruff
- Pytest plugin verification
- SuperClaude doctor health checks
- Coverage reporting with Codecov
- .github/workflows/quick-check.yml: Fast PR validation (~2-3 min)
- .github/workflows/README.md: Workflow documentation
## Documentation
- PLANNING.md: Architecture, design principles, absolute rules
- TASK.md: Current tasks, priorities, backlog
- KNOWLEDGE.md: Accumulated insights, best practices, troubleshooting
## Bug Fixes
- Fix .gitignore contradictions (remove conflicting Claude Code patterns)
- Fix TokenBudgetManager to properly validate and default invalid complexity
- Update package.json version to 4.1.6 (sync with VERSION file)
## CLI Improvements
- src/superclaude/cli/install_commands.py: Command installation logic
- src/superclaude/cli/main.py: Add 'install' command with --list and --force options
- README.md: Update installation instructions with correct commands
## Breaking Changes
None - all changes are backwards compatible
## Migration Guide
Users should run 'superclaude install' after upgrading to install slash commands
Fixes #466 (indirectly by clarifying installation process)
Refs #419 (plugin system - documentation updated)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 18:21:22 +01:00
|
|
|
|
|
|
|
|
**When updating versions**:
|
|
|
|
|
1. Update VERSION file first
|
|
|
|
|
2. Update package.json to match
|
|
|
|
|
3. Update README badges
|
|
|
|
|
4. Consider if pyproject.toml needs bump (breaking changes?)
|
|
|
|
|
5. Update CHANGELOG.md
|
|
|
|
|
|
|
|
|
|
**Prevention**: Create release checklist
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Pitfall 5: UV Not Installed**
|
|
|
|
|
|
|
|
|
|
**Problem**: Makefile requires `uv` but users don't have it.
|
|
|
|
|
|
|
|
|
|
**Solution**: Install UV:
|
|
|
|
|
```bash
|
|
|
|
|
# macOS/Linux
|
|
|
|
|
curl -LsSf https://astral.sh/uv/install.sh | sh
|
|
|
|
|
|
|
|
|
|
# Windows
|
|
|
|
|
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
|
|
|
|
|
|
|
|
|
|
# With pip
|
|
|
|
|
pip install uv
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Alternative**: Provide fallback commands:
|
|
|
|
|
```bash
|
|
|
|
|
# With UV (preferred)
|
|
|
|
|
uv run pytest
|
|
|
|
|
|
|
|
|
|
# Without UV (fallback)
|
|
|
|
|
python -m pytest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Prevention**: Document UV requirement in README
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📚 **Best Practices**
|
|
|
|
|
|
|
|
|
|
### **Testing Best Practices**
|
|
|
|
|
|
|
|
|
|
**1. Use pytest markers for organization**:
|
|
|
|
|
```python
|
|
|
|
|
@pytest.mark.unit
|
|
|
|
|
def test_individual_function():
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
@pytest.mark.integration
|
|
|
|
|
def test_component_interaction():
|
|
|
|
|
pass
|
|
|
|
|
|
|
|
|
|
@pytest.mark.confidence_check
|
|
|
|
|
def test_with_pre_check(confidence_checker):
|
|
|
|
|
pass
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**2. Use fixtures for shared setup**:
|
|
|
|
|
```python
|
|
|
|
|
# conftest.py
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def sample_context():
|
|
|
|
|
return {...}
|
|
|
|
|
|
|
|
|
|
# test_file.py
|
|
|
|
|
def test_feature(sample_context):
|
|
|
|
|
# Use sample_context
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**3. Test both happy path and edge cases**:
|
|
|
|
|
```python
|
|
|
|
|
def test_feature_success():
|
|
|
|
|
# Normal operation
|
|
|
|
|
|
|
|
|
|
def test_feature_with_empty_input():
|
|
|
|
|
# Edge case
|
|
|
|
|
|
|
|
|
|
def test_feature_with_invalid_data():
|
|
|
|
|
# Error handling
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Git Workflow Best Practices**
|
|
|
|
|
|
|
|
|
|
**1. Conventional commits**:
|
|
|
|
|
```bash
|
|
|
|
|
git commit -m "feat: add confidence checking to PM Agent"
|
|
|
|
|
git commit -m "fix: resolve version inconsistency"
|
|
|
|
|
git commit -m "docs: update CLAUDE.md with plugin warnings"
|
|
|
|
|
git commit -m "test: add unit tests for reflexion pattern"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**2. Small, focused commits**:
|
|
|
|
|
- Each commit should do ONE thing
|
|
|
|
|
- Commit message should explain WHY, not WHAT
|
|
|
|
|
- Code changes should be reviewable in <500 lines
|
|
|
|
|
|
|
|
|
|
**3. Branch naming**:
|
|
|
|
|
```bash
|
|
|
|
|
feature/add-confidence-check
|
|
|
|
|
fix/version-inconsistency
|
|
|
|
|
docs/update-readme
|
|
|
|
|
refactor/simplify-cli
|
|
|
|
|
test/add-unit-tests
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Documentation Best Practices**
|
|
|
|
|
|
|
|
|
|
**1. Code documentation**:
|
|
|
|
|
```python
|
|
|
|
|
def assess(self, context: Dict[str, Any]) -> float:
|
|
|
|
|
"""
|
|
|
|
|
Assess confidence level (0.0 - 1.0)
|
|
|
|
|
|
|
|
|
|
Investigation Phase Checks:
|
|
|
|
|
1. No duplicate implementations? (25%)
|
|
|
|
|
2. Architecture compliance? (25%)
|
|
|
|
|
3. Official documentation verified? (20%)
|
|
|
|
|
4. Working OSS implementations referenced? (15%)
|
|
|
|
|
5. Root cause identified? (15%)
|
|
|
|
|
|
|
|
|
|
Args:
|
|
|
|
|
context: Context dict with task details
|
|
|
|
|
|
|
|
|
|
Returns:
|
|
|
|
|
float: Confidence score (0.0 = no confidence, 1.0 = absolute certainty)
|
|
|
|
|
|
|
|
|
|
Example:
|
|
|
|
|
>>> checker = ConfidenceChecker()
|
|
|
|
|
>>> confidence = checker.assess(context)
|
|
|
|
|
>>> if confidence >= 0.9:
|
|
|
|
|
... proceed_with_implementation()
|
|
|
|
|
"""
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**2. README structure**:
|
|
|
|
|
- Start with clear value proposition
|
|
|
|
|
- Quick installation instructions
|
|
|
|
|
- Usage examples
|
|
|
|
|
- Link to detailed docs
|
|
|
|
|
- Contribution guidelines
|
|
|
|
|
- License
|
|
|
|
|
|
|
|
|
|
**3. Keep docs synchronized with code**:
|
|
|
|
|
- Update docs in same PR as code changes
|
|
|
|
|
- Review docs during code review
|
|
|
|
|
- Use automated doc generation where possible
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🔧 **Troubleshooting Guide**
|
|
|
|
|
|
|
|
|
|
### **Issue: Tests Not Found**
|
|
|
|
|
|
|
|
|
|
**Symptoms**:
|
|
|
|
|
```
|
|
|
|
|
$ uv run pytest
|
|
|
|
|
ERROR: file or directory not found: tests/
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Cause**: tests/ directory doesn't exist
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
```bash
|
|
|
|
|
# Create tests structure
|
|
|
|
|
mkdir -p tests/unit tests/integration
|
|
|
|
|
|
|
|
|
|
# Add __init__.py files
|
|
|
|
|
touch tests/__init__.py
|
|
|
|
|
touch tests/unit/__init__.py
|
|
|
|
|
touch tests/integration/__init__.py
|
|
|
|
|
|
|
|
|
|
# Add conftest.py
|
|
|
|
|
touch tests/conftest.py
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Issue: Plugin Not Loaded**
|
|
|
|
|
|
|
|
|
|
**Symptoms**:
|
|
|
|
|
```
|
|
|
|
|
$ uv run pytest --trace-config
|
|
|
|
|
# superclaude not listed in plugins
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Cause**: Package not installed or entry point not configured
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
```bash
|
|
|
|
|
# Reinstall in editable mode
|
|
|
|
|
uv pip install -e ".[dev]"
|
|
|
|
|
|
|
|
|
|
# Verify entry point in pyproject.toml
|
|
|
|
|
# Should have:
|
|
|
|
|
# [project.entry-points.pytest11]
|
|
|
|
|
# superclaude = "superclaude.pytest_plugin"
|
|
|
|
|
|
|
|
|
|
# Test plugin loaded
|
|
|
|
|
uv run pytest --trace-config 2>&1 | grep superclaude
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Issue: ImportError in Tests**
|
|
|
|
|
|
|
|
|
|
**Symptoms**:
|
|
|
|
|
```python
|
|
|
|
|
ImportError: No module named 'superclaude'
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Cause**: Package not installed in test environment
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
```bash
|
|
|
|
|
# Install package in editable mode
|
|
|
|
|
uv pip install -e .
|
|
|
|
|
|
|
|
|
|
# Or use uv run (creates venv automatically)
|
|
|
|
|
uv run pytest
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Issue: Fixtures Not Available**
|
|
|
|
|
|
|
|
|
|
**Symptoms**:
|
|
|
|
|
```python
|
|
|
|
|
fixture 'confidence_checker' not found
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**Cause**: pytest plugin not loaded or fixture not defined
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
```bash
|
|
|
|
|
# Check plugin loaded
|
|
|
|
|
uv run pytest --fixtures | grep confidence_checker
|
|
|
|
|
|
|
|
|
|
# Verify pytest_plugin.py has fixture
|
|
|
|
|
# Should have:
|
|
|
|
|
# @pytest.fixture
|
|
|
|
|
# def confidence_checker():
|
|
|
|
|
# return ConfidenceChecker()
|
|
|
|
|
|
|
|
|
|
# Reinstall package
|
|
|
|
|
uv pip install -e .
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Issue: .gitignore Not Working**
|
|
|
|
|
|
|
|
|
|
**Symptoms**: Files listed in .gitignore still tracked by git
|
|
|
|
|
|
|
|
|
|
**Cause**: Files were tracked before adding to .gitignore
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
```bash
|
|
|
|
|
# Remove from git but keep in filesystem
|
|
|
|
|
git rm --cached <file>
|
|
|
|
|
|
|
|
|
|
# OR remove entire directory
|
|
|
|
|
git rm -r --cached <directory>
|
|
|
|
|
|
|
|
|
|
# Commit the change
|
|
|
|
|
git commit -m "fix: remove tracked files from gitignore"
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 💡 **Advanced Techniques**
|
|
|
|
|
|
|
|
|
|
### **Technique 1: Dynamic Fixture Configuration**
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
@pytest.fixture
|
|
|
|
|
def token_budget(request):
|
|
|
|
|
"""Fixture that adapts based on test markers"""
|
|
|
|
|
marker = request.node.get_closest_marker("complexity")
|
|
|
|
|
complexity = marker.args[0] if marker else "medium"
|
|
|
|
|
return TokenBudgetManager(complexity=complexity)
|
|
|
|
|
|
|
|
|
|
# Usage
|
|
|
|
|
@pytest.mark.complexity("simple")
|
|
|
|
|
def test_simple_feature(token_budget):
|
|
|
|
|
assert token_budget.limit == 200
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Technique 2: Confidence-Driven Test Execution**
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
def pytest_runtest_setup(item):
|
|
|
|
|
"""Skip tests if confidence is too low"""
|
|
|
|
|
marker = item.get_closest_marker("confidence_check")
|
|
|
|
|
if marker:
|
|
|
|
|
checker = ConfidenceChecker()
|
|
|
|
|
context = build_context(item)
|
|
|
|
|
confidence = checker.assess(context)
|
|
|
|
|
|
|
|
|
|
if confidence < 0.7:
|
|
|
|
|
pytest.skip(f"Confidence too low: {confidence:.0%}")
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Technique 3: Reflexion-Powered Error Learning**
|
|
|
|
|
|
|
|
|
|
```python
|
|
|
|
|
def pytest_runtest_makereport(item, call):
|
|
|
|
|
"""Record failed tests for future learning"""
|
|
|
|
|
if call.when == "call" and call.excinfo is not None:
|
|
|
|
|
reflexion = ReflexionPattern()
|
|
|
|
|
error_info = {
|
|
|
|
|
"test_name": item.name,
|
|
|
|
|
"error_type": type(call.excinfo.value).__name__,
|
|
|
|
|
"error_message": str(call.excinfo.value),
|
|
|
|
|
}
|
|
|
|
|
reflexion.record_error(error_info)
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📊 **Performance Insights**
|
|
|
|
|
|
|
|
|
|
### **Token Usage Patterns**
|
|
|
|
|
|
|
|
|
|
Based on real usage data:
|
|
|
|
|
|
|
|
|
|
| Task Type | Typical Tokens | With PM Agent | Savings |
|
|
|
|
|
|-----------|---------------|---------------|---------|
|
|
|
|
|
| Typo fix | 200-500 | 200-300 | 40% |
|
|
|
|
|
| Bug fix | 2,000-5,000 | 1,000-2,000 | 50% |
|
|
|
|
|
| Feature | 10,000-50,000 | 5,000-15,000 | 60% |
|
|
|
|
|
| Wrong direction | 50,000+ | 100-200 (prevented) | 99%+ |
|
|
|
|
|
|
|
|
|
|
**Key insight**: Prevention (confidence check) saves more tokens than optimization
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Execution Time Patterns**
|
|
|
|
|
|
|
|
|
|
| Operation | Sequential | Parallel | Speedup |
|
|
|
|
|
|-----------|-----------|----------|---------|
|
|
|
|
|
| 5 file reads | 15s | 3s | 5x |
|
|
|
|
|
| 10 file reads | 30s | 3s | 10x |
|
|
|
|
|
| 20 file edits | 60s | 15s | 4x |
|
|
|
|
|
| Mixed ops | 45s | 12s | 3.75x |
|
|
|
|
|
|
|
|
|
|
**Key insight**: Parallel execution has diminishing returns after ~10 operations per wave
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🎓 **Lessons Learned**
|
|
|
|
|
|
|
|
|
|
### **Lesson 1: Documentation Drift is Real**
|
|
|
|
|
|
2025-11-14 14:15:44 +01:00
|
|
|
**What happened**: README described v2.0 plugin system that didn't exist in v4.1.9
|
feat: add comprehensive test suite, CI/CD workflows, and install command
Major improvements to SuperClaude Framework infrastructure and testing:
## New Features
- Add 'superclaude install' command to install slash commands (/research, /index-repo, /agent, /recommend)
- Create comprehensive test suite with 71 tests (70 passing, 1 skipped)
- Add GitHub Actions CI/CD workflows for automated testing
- Add essential documentation files (PLANNING.md, TASK.md, KNOWLEDGE.md)
## Testing
- tests/unit/: 59 tests covering PM Agent components
- test_confidence.py: 13 tests for ConfidenceChecker
- test_self_check.py: 14 tests for SelfCheckProtocol
- test_reflexion.py: 9 tests for ReflexionPattern
- test_token_budget.py: 12 tests for TokenBudgetManager
- test_cli_install.py: 12 tests for install command (NEW)
- tests/integration/: 11 tests for pytest plugin integration
- tests/conftest.py: Shared fixtures for all tests
## CI/CD Workflows
- .github/workflows/test.yml: Comprehensive test matrix
- Tests on Python 3.10, 3.11, 3.12
- Lint and format checks with ruff
- Pytest plugin verification
- SuperClaude doctor health checks
- Coverage reporting with Codecov
- .github/workflows/quick-check.yml: Fast PR validation (~2-3 min)
- .github/workflows/README.md: Workflow documentation
## Documentation
- PLANNING.md: Architecture, design principles, absolute rules
- TASK.md: Current tasks, priorities, backlog
- KNOWLEDGE.md: Accumulated insights, best practices, troubleshooting
## Bug Fixes
- Fix .gitignore contradictions (remove conflicting Claude Code patterns)
- Fix TokenBudgetManager to properly validate and default invalid complexity
- Update package.json version to 4.1.6 (sync with VERSION file)
## CLI Improvements
- src/superclaude/cli/install_commands.py: Command installation logic
- src/superclaude/cli/main.py: Add 'install' command with --list and --force options
- README.md: Update installation instructions with correct commands
## Breaking Changes
None - all changes are backwards compatible
## Migration Guide
Users should run 'superclaude install' after upgrading to install slash commands
Fixes #466 (indirectly by clarifying installation process)
Refs #419 (plugin system - documentation updated)
🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-11 18:21:22 +01:00
|
|
|
|
|
|
|
|
**Impact**: Users spent hours trying to install non-existent features
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
- Add warnings about planned vs implemented features
|
|
|
|
|
- Review docs during every release
|
|
|
|
|
- Link to tracking issues for planned features
|
|
|
|
|
|
|
|
|
|
**Prevention**: Documentation review checklist in release process
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Lesson 2: Version Management is Hard**
|
|
|
|
|
|
|
|
|
|
**What happened**: Three different version numbers across files
|
|
|
|
|
|
|
|
|
|
**Impact**: Confusion about which version is installed
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
- Define version sources of truth
|
|
|
|
|
- Document versioning strategy
|
|
|
|
|
- Automate version updates in release script
|
|
|
|
|
|
|
|
|
|
**Prevention**: Single-source-of-truth for versions (maybe use bumpversion)
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
### **Lesson 3: Tests Are Non-Negotiable**
|
|
|
|
|
|
|
|
|
|
**What happened**: Framework provided testing tools but had no tests itself
|
|
|
|
|
|
|
|
|
|
**Impact**: No confidence in code quality, regression bugs
|
|
|
|
|
|
|
|
|
|
**Solution**:
|
|
|
|
|
- Create comprehensive test suite
|
|
|
|
|
- Require tests for all new code
|
|
|
|
|
- Add CI/CD to run tests automatically
|
|
|
|
|
|
|
|
|
|
**Prevention**: Make tests a requirement in PR template
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 🔮 **Future Explorations**
|
|
|
|
|
|
|
|
|
|
Ideas worth investigating:
|
|
|
|
|
|
|
|
|
|
1. **Automated confidence checking** - AI analyzes context and suggests improvements
|
|
|
|
|
2. **Visual reflexion patterns** - Graph view of error patterns over time
|
|
|
|
|
3. **Predictive token budgeting** - ML model predicts token usage based on task
|
|
|
|
|
4. **Collaborative learning** - Share reflexion patterns across projects (opt-in)
|
|
|
|
|
5. **Real-time hallucination detection** - Streaming analysis during generation
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## 📞 **Getting Help**
|
|
|
|
|
|
|
|
|
|
**When stuck**:
|
|
|
|
|
1. Check this KNOWLEDGE.md for similar issues
|
|
|
|
|
2. Read PLANNING.md for architecture context
|
|
|
|
|
3. Check TASK.md for known issues
|
|
|
|
|
4. Search GitHub issues for solutions
|
|
|
|
|
5. Ask in GitHub discussions
|
|
|
|
|
|
|
|
|
|
**When sharing knowledge**:
|
|
|
|
|
1. Document solution in this file
|
|
|
|
|
2. Update relevant section
|
|
|
|
|
3. Add to troubleshooting guide if applicable
|
|
|
|
|
4. Consider adding to FAQ
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
*This document grows with the project. Everyone who encounters a problem and finds a solution should document it here.*
|
|
|
|
|
|
|
|
|
|
**Contributors**: SuperClaude development team and community
|
|
|
|
|
**Maintained by**: Project maintainers
|
|
|
|
|
**Review frequency**: Quarterly or after major insights
|