513 lines
15 KiB
Markdown
513 lines
15 KiB
Markdown
---
|
|
name: pattern-learning
|
|
description: Enables autonomous pattern recognition, storage, and retrieval at project level with self-learning capabilities for continuous improvement
|
|
version: 1.0.0
|
|
---
|
|
|
|
## Overview
|
|
|
|
This skill provides the framework for autonomous pattern learning and recognition at the project level. It enables Claude agents to:
|
|
- Automatically detect and store successful task execution patterns
|
|
- Build a knowledge base of project-specific approaches
|
|
- Recommend skills and strategies based on historical success
|
|
- Continuously improve through self-assessment and adaptation
|
|
|
|
## Pattern Recognition System
|
|
|
|
### Automatic Pattern Detection
|
|
|
|
**Task Categorization**:
|
|
Automatically classify tasks into categories:
|
|
- `refactoring`: Code restructuring and improvement
|
|
- `bug-fix`: Error resolution and debugging
|
|
- `feature`: New functionality implementation
|
|
- `optimization`: Performance improvements
|
|
- `documentation`: Docs creation and updates
|
|
- `testing`: Test suite development
|
|
- `security`: Security analysis and fixes
|
|
|
|
**Context Extraction**:
|
|
Automatically extract context from:
|
|
- Programming languages used (file extensions)
|
|
- Frameworks detected (package.json, requirements.txt, etc.)
|
|
- Project structure patterns (MVC, microservices, etc.)
|
|
- Complexity indicators (file count, LOC, dependencies)
|
|
|
|
### Pattern Storage Structure
|
|
|
|
**Directory Setup**:
|
|
```
|
|
.claude-patterns/
|
|
├── patterns.json # Main pattern database
|
|
├── skill-effectiveness.json # Skill performance metrics
|
|
└── task-history.json # Complete task execution log
|
|
```
|
|
|
|
**Pattern Data Model**:
|
|
```json
|
|
{
|
|
"version": "1.0.0",
|
|
"project_context": {
|
|
"detected_languages": ["python", "javascript"],
|
|
"frameworks": ["flask", "react"],
|
|
"project_type": "web-application"
|
|
},
|
|
"patterns": [
|
|
{
|
|
"id": "pattern-001",
|
|
"timestamp": "2025-10-20T10:30:00Z",
|
|
"task_type": "refactoring",
|
|
"task_description": "Refactor authentication module",
|
|
"context": {
|
|
"language": "python",
|
|
"framework": "flask",
|
|
"module": "authentication",
|
|
"complexity": "medium"
|
|
},
|
|
"execution": {
|
|
"skills_used": ["code-analysis", "quality-standards"],
|
|
"agents_delegated": ["code-analyzer", "quality-controller"],
|
|
"approach": "Extract method refactoring with pattern matching",
|
|
"duration_seconds": 120
|
|
},
|
|
"outcome": {
|
|
"success": true,
|
|
"quality_score": 96,
|
|
"tests_passing": true,
|
|
"standards_compliance": 98,
|
|
"documentation_complete": true
|
|
},
|
|
"lessons_learned": "Security-critical modules benefit from quality-controller validation",
|
|
"reuse_count": 5
|
|
}
|
|
],
|
|
"skill_effectiveness": {
|
|
"code-analysis": {
|
|
"total_uses": 45,
|
|
"successful_uses": 42,
|
|
"success_rate": 0.93,
|
|
"avg_quality_contribution": 15,
|
|
"recommended_for": ["refactoring", "bug-fix", "optimization"]
|
|
},
|
|
"testing-strategies": {
|
|
"total_uses": 30,
|
|
"successful_uses": 27,
|
|
"success_rate": 0.90,
|
|
"avg_quality_contribution": 20,
|
|
"recommended_for": ["testing", "feature", "bug-fix"]
|
|
}
|
|
},
|
|
"agent_effectiveness": {
|
|
"code-analyzer": {
|
|
"total_delegations": 38,
|
|
"successful_completions": 36,
|
|
"success_rate": 0.95,
|
|
"avg_execution_time": 85
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Skill Auto-Selection Algorithm
|
|
|
|
### Decision Process
|
|
|
|
**Step 1: Analyze Current Task**
|
|
```
|
|
Input: Task description
|
|
Output: Task type, context, complexity
|
|
|
|
Process:
|
|
1. Extract keywords and intent
|
|
2. Scan project files for context
|
|
3. Classify task type
|
|
4. Determine complexity level (low/medium/high)
|
|
```
|
|
|
|
**Step 2: Query Pattern Database**
|
|
```
|
|
Input: Task type, context
|
|
Output: Recommended skills, agents, approach
|
|
|
|
Process:
|
|
1. Load patterns.json
|
|
2. Filter patterns by task_type match
|
|
3. Filter patterns by context similarity
|
|
4. Rank by success_rate * reuse_count
|
|
5. Extract top 3 most successful patterns
|
|
```
|
|
|
|
**Step 3: Skill Selection**
|
|
```
|
|
Input: Top patterns, skill effectiveness data
|
|
Output: Ordered list of skills to load
|
|
|
|
Process:
|
|
1. Aggregate skills from top patterns
|
|
2. Weight by skill effectiveness scores
|
|
3. Filter by task type recommendation
|
|
4. Return ordered list (highest effectiveness first)
|
|
```
|
|
|
|
### Selection Examples
|
|
|
|
**Example 1: Refactoring Task**
|
|
```
|
|
Task: "Refactor user authentication module"
|
|
|
|
Analysis:
|
|
- Type: refactoring
|
|
- Context: authentication (security-critical)
|
|
- Language: Python (detected)
|
|
- Complexity: medium
|
|
|
|
Pattern Query Results:
|
|
- Pattern-001: refactoring + auth → success_rate: 0.96
|
|
- Pattern-015: refactoring + security → success_rate: 0.94
|
|
- Pattern-023: refactoring + Python → success_rate: 0.91
|
|
|
|
Skill Selection:
|
|
1. code-analysis (appeared in all 3 patterns, avg effectiveness: 0.93)
|
|
2. quality-standards (appeared in 2/3 patterns, avg effectiveness: 0.88)
|
|
3. pattern-learning (for continuous improvement)
|
|
|
|
Auto-Load: code-analysis, quality-standards, pattern-learning
|
|
```
|
|
|
|
**Example 2: Testing Task**
|
|
```
|
|
Task: "Add unit tests for payment processing"
|
|
|
|
Analysis:
|
|
- Type: testing
|
|
- Context: payment (critical business logic)
|
|
- Language: JavaScript (detected)
|
|
- Complexity: high
|
|
|
|
Pattern Query Results:
|
|
- Pattern-042: testing + payment → success_rate: 0.89
|
|
- Pattern-051: testing + JavaScript → success_rate: 0.92
|
|
|
|
Skill Selection:
|
|
1. testing-strategies (effectiveness: 0.90)
|
|
2. quality-standards (for test quality)
|
|
3. pattern-learning (for continuous improvement)
|
|
|
|
Auto-Load: testing-strategies, quality-standards, pattern-learning
|
|
```
|
|
|
|
## Pattern Storage Workflow
|
|
|
|
### Automatic Storage Process
|
|
|
|
**During Task Execution**:
|
|
1. Monitor task progress and decisions
|
|
2. Record skills loaded and agents delegated
|
|
3. Track execution metrics (time, resources)
|
|
4. Capture approach and methodology
|
|
|
|
**After Task Completion**:
|
|
1. Run quality assessment
|
|
2. Calculate quality score
|
|
3. Determine success/failure
|
|
4. Extract lessons learned
|
|
5. Store pattern to database
|
|
6. Update skill effectiveness metrics
|
|
7. Update agent effectiveness metrics
|
|
|
|
### Storage Implementation
|
|
|
|
**Auto-Create Pattern Directory - WITH SAFETY VALIDATION**:
|
|
```javascript
|
|
// 🚨 CRITICAL: Always validate content before applying cache_control
|
|
function safeExecuteOperation(operation, fallbackContent) {
|
|
try {
|
|
const result = operation();
|
|
// Validate result before using
|
|
if (result !== null && result !== undefined && String(result).trim().length > 0) {
|
|
return result;
|
|
}
|
|
} catch (error) {
|
|
console.log("Operation failed, using fallback");
|
|
}
|
|
// Always return meaningful fallback
|
|
return fallbackContent || "Pattern initialization in progress...";
|
|
}
|
|
|
|
// Executed automatically by orchestrator with safety checks
|
|
const dirExists = safeExecuteOperation(() => exists('.claude-patterns/'), false);
|
|
if (!dirExists) {
|
|
safeExecuteOperation(() => create_directory('.claude-patterns/'));
|
|
safeExecuteOperation(() => create_file('.claude-patterns/patterns.json', '{"version":"1.0.0","patterns":[]}'));
|
|
safeExecuteOperation(() => create_file('.claude-patterns/skill-effectiveness.json', '{}'));
|
|
safeExecuteOperation(() => create_file('.claude-patterns/task-history.json', '[]'));
|
|
}
|
|
```
|
|
|
|
**Store New Pattern - WITH COMPREHENSIVE SAFETY**:
|
|
```javascript
|
|
// 🚨 CRITICAL: Safe pattern storage with full validation
|
|
function store_pattern(task_data, execution_data, outcome_data) {
|
|
// Validate inputs first
|
|
if (!task_data || !execution_data || !outcome_data) {
|
|
console.log("Invalid pattern data, skipping storage");
|
|
return "Pattern data incomplete - storage skipped";
|
|
}
|
|
|
|
try {
|
|
const pattern = {
|
|
id: generate_id() || `pattern_${Date.now()}`,
|
|
timestamp: now() || new Date().toISOString(),
|
|
task_type: task_data.type || "unknown",
|
|
task_description: task_data.description || "Task completed",
|
|
context: extract_context(task_data) || {},
|
|
execution: execution_data,
|
|
outcome: outcome_data,
|
|
lessons_learned: analyze_lessons(execution_data, outcome_data) || "Task completed successfully",
|
|
reuse_count: 0
|
|
}
|
|
|
|
// Load existing patterns safely
|
|
const db = safeLoadPatterns('.claude-patterns/patterns.json');
|
|
if (!db) {
|
|
return "Pattern database unavailable - storage skipped";
|
|
}
|
|
|
|
// Check for similar patterns
|
|
const similar = find_similar_patterns(db.patterns || [], pattern);
|
|
|
|
if (similar && similar.length > 0 && similarity_score > 0.95) {
|
|
// Update existing pattern
|
|
increment_reuse_count(similar[0]);
|
|
update_success_rate(similar[0], outcome_data);
|
|
} else {
|
|
// Add new pattern
|
|
(db.patterns = db.patterns || []).push(pattern);
|
|
}
|
|
|
|
// Update skill effectiveness
|
|
update_skill_metrics(db, execution_data.skills_used || [], outcome_data);
|
|
|
|
// Save with validation
|
|
const saveResult = safeSavePatterns('.claude-patterns/patterns.json', db);
|
|
return saveResult ? "Pattern stored successfully" : "Pattern storage completed";
|
|
|
|
} catch (error) {
|
|
console.log("Pattern storage failed:", error.message);
|
|
return "Pattern storage encountered an error but completed safely";
|
|
}
|
|
}
|
|
|
|
// Safe pattern loading with fallback
|
|
function safeLoadPatterns(filePath) {
|
|
try {
|
|
if (!exists(filePath)) {
|
|
return { version: "1.0.0", patterns: [], skill_effectiveness: {}, note: "Pattern file not found - using defaults" };
|
|
}
|
|
const content = load(filePath);
|
|
return content && typeof content === 'object' ? content : { version: "1.0.0", patterns: [], skill_effectiveness: {}, note: "Invalid content - using defaults" };
|
|
} catch (error) {
|
|
console.log("Pattern loading failed, using defaults");
|
|
return { version: "1.0.0", patterns: [], skill_effectiveness: {}, note: "Error loading patterns - using defaults" };
|
|
}
|
|
}
|
|
|
|
// Safe pattern saving with validation
|
|
function safeSavePatterns(filePath, data) {
|
|
try {
|
|
if (!data || typeof data !== 'object') {
|
|
return false;
|
|
}
|
|
save(filePath, data);
|
|
return true;
|
|
} catch (error) {
|
|
console.log("Save failed, but continuing safely");
|
|
return false;
|
|
}
|
|
}
|
|
```
|
|
|
|
## Self-Assessment & Quality Metrics
|
|
|
|
### Quality Score Calculation
|
|
|
|
**Formula**:
|
|
```
|
|
Quality Score (0-100) =
|
|
tests_passing (30 points) +
|
|
standards_compliance (25 points) +
|
|
documentation_complete (20 points) +
|
|
pattern_adherence (15 points) +
|
|
code_quality_metrics (10 points)
|
|
```
|
|
|
|
**Component Breakdown**:
|
|
|
|
1. **Tests Passing (30 points)**:
|
|
- All tests pass: 30 points
|
|
- 90-99% pass: 25 points
|
|
- 80-89% pass: 20 points
|
|
- <80% pass: 0 points
|
|
|
|
2. **Standards Compliance (25 points)**:
|
|
- Linting score: up to 15 points
|
|
- Code style adherence: up to 10 points
|
|
|
|
3. **Documentation Complete (20 points)**:
|
|
- All functions documented: 20 points
|
|
- Partial documentation: 10 points
|
|
- No documentation: 0 points
|
|
|
|
4. **Pattern Adherence (15 points)**:
|
|
- Follows established patterns: 15 points
|
|
- Partially follows: 8 points
|
|
- Deviates from patterns: 0 points
|
|
|
|
5. **Code Quality Metrics (10 points)**:
|
|
- Cyclomatic complexity: up to 5 points
|
|
- Code duplication: up to 5 points
|
|
|
|
### Continuous Improvement
|
|
|
|
**Learning Cycle**:
|
|
```
|
|
Execute Task
|
|
↓
|
|
Measure Quality
|
|
↓
|
|
Store Pattern
|
|
↓
|
|
Analyze Trends
|
|
↓
|
|
Adjust Skill Selection
|
|
↓
|
|
[Next Task Benefits from Learning]
|
|
```
|
|
|
|
**Trend Analysis**:
|
|
- Track quality scores over time
|
|
- Identify improving/declining patterns
|
|
- Adjust skill recommendations based on trends
|
|
- Deprecate ineffective approaches
|
|
|
|
## Pattern Retrieval & Recommendation
|
|
|
|
### Query Interface
|
|
|
|
**Find Similar Patterns - WITH SAFETY VALIDATION**:
|
|
```javascript
|
|
function find_similar_tasks(current_task) {
|
|
// Validate input
|
|
if (!current_task || !current_task.type) {
|
|
return [{ note: "Invalid task input - no similar tasks found", type: "fallback" }];
|
|
}
|
|
|
|
try {
|
|
const db = safeLoadPatterns('.claude-patterns/patterns.json');
|
|
if (!db || !db.patterns || !Array.isArray(db.patterns)) {
|
|
return [{ note: "No pattern database available - no similar tasks found", type: "fallback" }];
|
|
}
|
|
|
|
const similar = db.patterns
|
|
.filter(p => p && p.task_type === current_task.type)
|
|
.filter(p => context_similarity(p.context || {}, current_task.context || {}) > 0.7)
|
|
.sort((a, b) => (b.outcome?.quality_score || 0) - (a.outcome?.quality_score || 0))
|
|
.slice(0, 5);
|
|
|
|
return similar.length > 0 ? similar : [{ note: "No similar tasks found in pattern database", type: "fallback" }];
|
|
} catch (error) {
|
|
console.log("Pattern search failed, returning fallback");
|
|
return [{ note: "Pattern search encountered an error - using fallback", type: "fallback" }];
|
|
}
|
|
}
|
|
```
|
|
|
|
**Recommend Skills - WITH SAFETY VALIDATION**:
|
|
```javascript
|
|
function recommend_skills(task_type, context) {
|
|
// Validate input
|
|
if (!task_type) {
|
|
return ['code-analysis', 'quality-standards']; // Safe default
|
|
}
|
|
|
|
try {
|
|
const db = safeLoadPatterns('.claude-patterns/patterns.json');
|
|
if (!db || !db.skill_effectiveness || typeof db.skill_effectiveness !== 'object') {
|
|
return ['code-analysis', 'quality-standards']; // Safe default
|
|
}
|
|
|
|
// Get skills with highest success rate for this task type
|
|
const skills = Object.entries(db.skill_effectiveness)
|
|
.filter(([skill, data]) => data && data.recommended_for && data.recommended_for.includes(task_type))
|
|
.sort((a, b) => (b[1]?.success_rate || 0) - (a[1]?.success_rate || 0))
|
|
.map(([skill, data]) => skill);
|
|
|
|
return skills.length > 0 ? skills : ['code-analysis', 'quality-standards'];
|
|
} catch (error) {
|
|
console.log("Skill recommendation failed, using safe defaults");
|
|
return ['code-analysis', 'quality-standards'];
|
|
}
|
|
}
|
|
```
|
|
|
|
### Usage History Tracking
|
|
|
|
**Maintain Complete History**:
|
|
```json
|
|
// .claude-patterns/task-history.json
|
|
[
|
|
{
|
|
"timestamp": "2025-10-20T10:00:00Z",
|
|
"task_description": "Refactor auth module",
|
|
"skills_used": ["code-analysis", "quality-standards"],
|
|
"quality_score": 96,
|
|
"success": true
|
|
},
|
|
{
|
|
"timestamp": "2025-10-20T11:30:00Z",
|
|
"task_description": "Add payment tests",
|
|
"skills_used": ["testing-strategies"],
|
|
"quality_score": 89,
|
|
"success": true
|
|
}
|
|
]
|
|
```
|
|
|
|
## When to Apply
|
|
|
|
Use this skill when:
|
|
- Starting any new task (for pattern retrieval)
|
|
- Completing any task (for pattern storage)
|
|
- Analyzing project approach effectiveness
|
|
- Optimizing skill selection strategy
|
|
- Building project-specific knowledge base
|
|
- Enabling autonomous decision-making
|
|
- Tracking improvement over time
|
|
|
|
## Integration with Agents
|
|
|
|
**Orchestrator Agent**:
|
|
- Uses pattern-learning for skill auto-selection
|
|
- Stores patterns after each task
|
|
- Queries patterns before delegation
|
|
|
|
**Quality Controller Agent**:
|
|
- References quality score calculations
|
|
- Uses trend analysis for improvement recommendations
|
|
|
|
**All Specialized Agents**:
|
|
- Reference pattern database for context
|
|
- Contribute to pattern storage after execution
|
|
|
|
## Resources
|
|
|
|
**Reference Files**:
|
|
- REFERENCE.md: Detailed algorithm implementations
|
|
- pattern-database-schema.json: Complete data structure
|
|
- quality-metrics-guide.md: In-depth quality assessment guide
|
|
|
|
**Auto-Generated Files** (in project):
|
|
- .claude-patterns/patterns.json
|
|
- .claude-patterns/skill-effectiveness.json
|
|
- .claude-patterns/task-history.json
|