Automatically detects repeated code and command patterns in Python/Shell, generating reusable Jinja2 templates and shell automation scripts via CLI.
Intelligent pattern recognition and actionable insights from multi-source data.
The pattern-miner skill discovers hidden patterns in your workflow data (conversations, decisions, tasks) using machine learning techniques. It identifies recurring themes, associations, and anomalies, then generates actionable insights to improve productivity and decision-making.
cd ~/.openclaw/workspace/skills/pattern-miner
npm install
npm run build
pip install numpy scikit-learn pandas tree-sitter
# Run pattern mining
pattern-miner mine
# Incremental mining (only new data)
pattern-miner mine --incremental
# List discovered patterns
pattern-miner list
pattern-miner list --type cluster
pattern-miner list --verbose
# Analyze specific patterns/insights
pattern-miner analyze
pattern-miner analyze --pattern <id>
pattern-miner analyze --insight <id>
pattern-miner analyze --category optimization
# Apply insights
pattern-miner apply --confirm
pattern-miner apply --insight <id> --confirm
pattern-miner apply --category automation --dry-run
# Show statistics
pattern-miner stats
# Export patterns
pattern-miner export --format json --output patterns.json
pattern-miner export --format csv --output patterns.csv
# Configuration
pattern-miner config --show
pattern-miner config --init
import { PatternMiner } from '@openclaw/skill-pattern-miner';
const miner = new PatternMiner({
minConfidence: 0.7,
minFrequency: 5,
analysisTypes: ['cluster', 'association', 'anomaly']
});
await miner.initialize();
// Run mining
const results = await miner.mine();
console.log(`Found ${results.summary.totalPatterns} patterns`);
console.log(`Generated ${results.summary.totalInsights} insights`);
// List patterns
const patterns = await miner.listPatterns();
const clusterPatterns = await miner.listPatterns('cluster', 10);
// List insights
const insights = await miner.listInsights(undefined, true); // pending only
// Get stats
const stats = await miner.getStats();
// Apply insight
await miner.applyInsight('insight_123');
// Export
const json = await miner.exportPatterns('json');
const csv = await miner.exportPatterns('csv');
Automatically collects data from:
context-preserverdecision-recorderThree analysis types:
Clustering (cluster)
Association Rules (association)
Anomaly Detection (anomaly)
Each pattern is scored on:
Generated insights include:
Default config is stored at ~/.pattern-miner/config.json:
{
"dataDir": "~/.openclaw/workspace",
"patternDir": "~/.pattern-miner",
"minConfidence": 0.6,
"minFrequency": 3,
"analysisTypes": ["cluster", "association", "anomaly"],
"sources": [
{
"type": "conversation",
"name": "conversations",
"path": "~/.openclaw/sessions",
"pattern": "**/*.json"
}
],
"autoScan": false,
"scanInterval": 60,
"maxPatterns": 1000,
"retentionDays": 30
}
Patterns and insights are stored in ~/.pattern-miner/:
patterns.json - Discovered patternsinsights.json - Generated insightsconfig.json - ConfigurationThe skill automatically reads conversation logs if context-preserver is installed:
{
"sources": [
{
"type": "conversation",
"name": "sessions",
"path": "~/.openclaw/sessions",
"pattern": "**/*.json"
}
]
}
Integrates with decision logs:
{
"sources": [
{
"type": "decision",
"name": "decisions",
"path": "~/.openclaw/decisions",
"pattern": "**/*.json"
}
]
}
For automatic periodic scanning, add to your crontab:
# Run pattern mining every hour
0 * * * * cd ~/.openclaw/workspace/skills/pattern-miner && pattern-miner mine --incremental
Or enable auto-scan in config:
{
"autoScan": true,
"scanInterval": 60
}
{
"id": "cluster_0_1710234567",
"type": "cluster",
"items": ["...", "..."],
"confidence": 0.85,
"frequency": 12,
"importance": 0.78,
"metadata": { "centroid": [...] },
"createdAt": "2024-03-12T09:00:00Z",
"source": "clustering"
}
{
"id": "insight_cluster_0_1710234567",
"patternId": "cluster_0_1710234567",
"title": "Recurring Pattern: Code review feedback...",
"description": "Found 12 similar items forming a pattern",
"action": "Review and standardize this pattern",
"priority": "high",
"expectedImpact": 0.7,
"category": "optimization"
}
Ensure Python 3.8+ is installed and in PATH:
python3 --version
--verbose to see collection detailsminConfidence in configMIT
ZIP package — ready to use