aios-core
Version:
Synkra AIOS: AI-Orchestrated System for Full Stack Development - Core Framework
335 lines (259 loc) • 7.37 kB
Markdown
# Learned Patterns Management
## Purpose
View, manage, and review learned workflow patterns captured by the Workflow Intelligence System (WIS). Patterns are learned from successful workflow executions and boost suggestion confidence.
## Task Definition (AIOS Task Format V1.0)
```yaml
task: patterns()
agent: "@dev"
responsável: Dex (Developer)
responsavel_type: Agente
atomic_layer: Workflow
elicit: false
inputs:
- name: subcommand
type: enum
required: false
default: list
options: [list, stats, prune, review]
description: Action to perform
- name: status
type: enum
required: false
options: [pending, active, promoted, deprecated]
description: Filter patterns by status
- name: limit
type: number
required: false
default: 10
description: Maximum patterns to display
- name: help
type: flag
required: false
default: false
description: Show usage documentation
outputs:
- name: patterns
type: array
destino: Console
persistido: false
- name: stats
type: object
destino: Console
persistido: false
```
## Pre-Conditions
```yaml
pre-conditions:
- [ ] Learning module is available
tipo: pre-condition
blocker: true
validação: Check workflow-intelligence/learning module loads
error_message: "Pattern learning module not available."
- [ ] Pattern storage exists
tipo: pre-condition
blocker: false
validação: Check .aios-core/data/learned-patterns.yaml exists
error_message: "No patterns stored yet."
```
## Implementation Steps
### Step 1: Check Help Flag
```javascript
if (args.help) {
displayHelp();
return;
}
```
### Step 2: Load Learning Module
```javascript
const learning = require('.aios-core/workflow-intelligence/learning');
const store = learning.getDefaultStore();
```
### Step 3: Execute Subcommand
#### List Patterns
```javascript
if (args.subcommand === 'list' || !args.subcommand) {
const data = store.load();
let patterns = data.patterns;
// Filter by status if provided
if (args.status) {
patterns = patterns.filter(p => p.status === args.status);
}
// Sort by occurrences (descending)
patterns.sort((a, b) => (b.occurrences || 1) - (a.occurrences || 1));
// Limit results
patterns = patterns.slice(0, args.limit || 10);
displayPatternList(patterns);
}
```
#### Show Stats
```javascript
if (args.subcommand === 'stats') {
const stats = store.getStats();
displayStats(stats);
}
```
#### Prune Patterns
```javascript
if (args.subcommand === 'prune') {
const result = store.prune();
console.log(`✓ Pruned ${result.pruned} patterns. ${result.remaining} remaining.`);
}
```
#### Review Patterns
```javascript
if (args.subcommand === 'review') {
const pendingPatterns = store.getByStatus('pending');
if (pendingPatterns.length === 0) {
console.log('No patterns pending review.');
return;
}
// Interactive review (uses elicitation)
for (const pattern of pendingPatterns) {
const action = await promptReviewAction(pattern);
if (action === 'quit') break;
store.updateStatus(pattern.id, action === 'promote' ? 'active' : action);
console.log(`✓ Pattern ${action}d.`);
}
}
```
## Help Text
```text
Usage: *patterns [subcommand] [options]
Manage learned workflow patterns.
Subcommands:
list List all learned patterns (default)
stats Show pattern statistics
prune Remove stale/low-value patterns
review Interactive review of pending patterns
Options:
--status <status> Filter by status (pending, active, promoted, deprecated)
--limit <n> Limit results (default: 10)
--help Show this help message
Examples:
*patterns # List top 10 patterns
*patterns list --status active # List active patterns only
*patterns stats # Show statistics
*patterns prune # Remove stale patterns
*patterns review # Review pending patterns
Pattern Lifecycle:
1. pending - Newly captured, awaiting review
2. active - Validated, used in suggestions
3. promoted - High-value, prioritized in suggestions
4. deprecated - Marked for removal
```
## Output Formats
### List Output
```text
Learned Patterns (15 total)
═══════════════════════════
Top Patterns by Occurrence:
1. validate-story-draft → develop → review-qa
Occurrences: 12 | Success: 95% | Status: promoted
Workflow: story_development | Last seen: 2h ago
2. develop → review-qa → apply-qa-fixes
Occurrences: 8 | Success: 88% | Status: active
Workflow: story_development | Last seen: 1d ago
3. create-story → validate-story-draft → develop
Occurrences: 6 | Success: 100% | Status: active
Workflow: story_creation | Last seen: 3d ago
Showing 3 of 15 patterns. Use --limit to see more.
```
### Stats Output
```text
Pattern Learning Statistics
═══════════════════════════
Storage:
Total patterns: 15
Max patterns: 100
Utilization: 15%
By Status:
Pending: 3
Active: 9
Promoted: 2
Deprecated: 1
Quality:
Avg success rate: 92%
Total occurrences: 45
Storage file: .aios-core/data/learned-patterns.yaml
Last updated: 2025-12-26T10:30:00Z
```
### Review Output
```text
*patterns review
Patterns Pending Review (3)
═══════════════════════════
Pattern #1: develop → run-tests → review-qa
Occurrences: 4 | Success Rate: 100% | First Seen: 2 days ago
[P]romote [S]kip [D]eprecate [Q]uit
> p
✓ Pattern promoted to active status
Pattern #2: create-story → develop
Occurrences: 2 | Success Rate: 50% | First Seen: 5 days ago
[P]romote [S]kip [D]eprecate [Q]uit
> d
✓ Pattern deprecated
Review complete. 1 promoted, 0 skipped, 1 deprecated.
```
## Post-Conditions
```yaml
post-conditions:
- [ ] Output displayed correctly
tipo: post-condition
blocker: false
validação: Verify console output matches expected format
- [ ] Storage updated for prune/review
tipo: post-condition
blocker: true
validação: Check learned-patterns.yaml was modified
```
## Error Handling
| Error | Cause | Resolution |
|-------|-------|------------|
| Learning module not found | Missing dependency | Show error message |
| Storage file corrupt | Invalid YAML | Reset to empty, show warning |
| No patterns found | Empty storage | Show "no patterns" message |
| Review cancelled | User quit | Save any changes made |
**Error Recovery Strategy:**
```javascript
try {
const stats = store.getStats();
displayStats(stats);
} catch (error) {
console.error(`⚠️ Error reading patterns: ${error.message}`);
console.log('Try running: rm .aios-core/data/learned-patterns.yaml');
}
```
## Performance
```yaml
duration_expected: <50ms
cost_estimated: $0.00 (local file only)
token_usage: 0
optimizations:
- Cached pattern loading (5s TTL)
- Lazy parsing of YAML
- Streamed display for large lists
```
## Metadata
```yaml
story: WIS-5
version: 1.0.0
created: 2025-12-26
author: "@dev (Dex)"
dependencies:
modules:
- workflow-intelligence/learning
tasks: []
tags:
- workflow-intelligence
- patterns
- learning
- management
```