Learning System
Overviewβ
The Learning System tracks mistakes, preferences, and successes to build pattern recognition for future improvement. It extends the original mistake-tracking system with ACE (Agentic Context Engineering) skillbook functionality.
Componentsβ
Learning Storeβ
The Learning Store persists learning entries and skills in .radium/_internals/learning/learning-log.json:
- Mistakes: Errors made and corrected, with solutions
- Preferences: User preferences and constraints
- Successes: Successful patterns and approaches
- Skills: Strategies organized by section in the skillbook
Skillbookβ
The skillbook contains learned strategies organized by section:
task_guidance: How to approach and break down taskstool_usage: Best practices for using toolserror_handling: Error handling patternscode_patterns: Code structure and patternscommunication: Communication strategiesgeneral: General strategies
Each skill tracks:
- Helpful count: Times this skill was helpful
- Harmful count: Times this skill was harmful
- Neutral count: Times this skill was neutral
CLI Commandsβ
List Learning Entriesβ
View all learning entries:
# List all entries
rad learning list
# Filter by category
rad learning list --category "Complex Solution Bias"
# JSON output
rad learning list --json
Add Mistakeβ
Record a mistake for future learning:
rad learning add-mistake \
--category "Feature Creep" \
--description "Added unnecessary features beyond requirements" \
--solution "Stick to core requirements and avoid scope expansion"
Add Skillβ
Add a skill to the skillbook:
rad learning add-skill \
--section "task_guidance" \
--content "Break complex tasks into smaller, manageable steps"
Tag Skillβ
Tag a skill as helpful, harmful, or neutral:
# Tag as helpful
rad learning tag-skill --skill-id "skill-00001" --tag "helpful"
# Tag as harmful
rad learning tag-skill --skill-id "skill-00001" --tag "harmful" --increment 1
# Tag as neutral
rad learning tag-skill --skill-id "skill-00001" --tag "neutral"
Show Skillbookβ
Display skills from the skillbook:
# Show all sections
rad learning show-skillbook
# Show specific section
rad learning show-skillbook --section "task_guidance"
# JSON output
rad learning show-skillbook --json
Standard Categoriesβ
Mistakes are organized into standard categories:
- Complex Solution Bias: Over-engineering solutions
- Feature Creep: Adding unnecessary features
- Premature Implementation: Jumping to code too quickly
- Misalignment: Wrong direction or misunderstanding
- Overtooling: Using too many tools unnecessarily
- Preference: User preferences
- Success: Successful patterns
- Other: Uncategorized entries
Categories are automatically normalized (e.g., "complex" β "Complex Solution Bias").
Duplicate Detectionβ
The learning system prevents duplicate entries by detecting similar mistakes (60%+ word overlap). This prevents the skillbook from being cluttered with redundant information.
Integration with Vibe Checkβ
The learning system automatically integrates with Vibe Check:
- Mistake Logging: When oversight detects a mistake, it's logged to the learning store
- Pattern Extraction: Helpful and harmful patterns are extracted from oversight feedback
- Skillbook Updates: Patterns are converted to skills and added to the skillbook
- Context Injection: Learning context is injected into future oversight requests
Examplesβ
Example 1: Adding a Mistakeβ
$ rad learning add-mistake \
--category "Complex Solution Bias" \
--description "Created overly complex solution with unnecessary abstractions" \
--solution "Simplify by removing unnecessary layers and using direct approach"
Mistake added successfully
Category: Complex Solution Bias
Description: Created overly complex solution with unnecessary abstractions
Solution: Simplify by removing unnecessary layers and using direct approach
Example 2: Viewing Skillsβ
$ rad learning show-skillbook --section "task_guidance"
Skillbook
task_guidance
β’ [skill-00001]
Break complex tasks into smaller, manageable steps
Stats: Helpful: 5 | Harmful: 0 | Neutral: 1
β’ [skill-00002]
Start with core requirements before adding features
Stats: Helpful: 3 | Harmful: 0 | Neutral: 0
Example 3: Tagging a Skillβ
$ rad learning tag-skill --skill-id "skill-00001" --tag "helpful"
Skill skill-00001 tagged as helpful (increment: 1)
Best Practicesβ
- Be specific: Provide clear descriptions and solutions for mistakes
- Use standard categories: Stick to standard categories for better organization
- Tag skills regularly: Tag skills as helpful/harmful based on outcomes
- Review skillbook: Periodically review the skillbook to identify useful patterns
- Avoid duplicates: The system detects duplicates, but be mindful when adding entries
Troubleshootingβ
Learning entries not persistingβ
- Check that
.radium/_internals/learning/directory exists - Verify file permissions for
learning-log.json - Ensure workspace is properly initialized (
rad init)
Skills not appearing in skillbookβ
- Verify the section name matches a standard section
- Check that skills haven't been soft-deleted (use
--include-invalidif needed) - Ensure the skillbook context is being generated correctly
Duplicate detection too strict/looseβ
- The 60% word overlap threshold is fixed
- Use more specific descriptions to avoid false duplicates
- Use less specific descriptions if legitimate entries are being rejected