Overview
Implement a flexible 3-tier rule system for message classification, replacing hardcoded regex patterns with YAML-based rules that support language-specific and project-specific customization.
Status
✅ Phase 1: MVP (COMPLETE)
Commit: f15c532 - "Implement Phase 1: 3-Tier Rule-Based Engine (MVP Complete)"
📋 Phase 1.5: Language-Specific Rules (Next)
📋 Phase 2: Auto-Update & Versioning
📋 Phase 4+: Community
Architecture
3-Tier Rule System
Tier 3 (Runtime Override) ← CLI flags, programmatic
↓ (highest precedence)
Tier 2 (Project Custom) ← .smriti/rules/custom.yml
↓ (overrides base)
Tier 1 (Base) ← general.yml (GitHub or local)
(lowest precedence)
Key Files
src/detect/language.ts - Language/framework detection
src/categorize/rules/loader.ts - YAML loader + 3-tier merge
src/categorize/rules/github.ts - GitHub fetcher + cache
src/categorize/rules/general.yml - 26 general rules
PHASE1_IMPLEMENTATION.md - Technical documentation
RULES_QUICK_REFERENCE.md - Developer guide
Test Results (Phase 1)
- ✅ 27/27 new tests passing
- ✅ 63 assertions verified
- ✅ All existing categorization tests still working
Performance (Phase 1)
- Language Detection: 20-50ms
- Rule Loading: 50-100ms (cached)
- Classification: 2-5ms per message
Related Issues
Overview
Implement a flexible 3-tier rule system for message classification, replacing hardcoded regex patterns with YAML-based rules that support language-specific and project-specific customization.
Status
✅ Phase 1: MVP (COMPLETE)
Commit: f15c532 - "Implement Phase 1: 3-Tier Rule-Based Engine (MVP Complete)"
📋 Phase 1.5: Language-Specific Rules (Next)
smriti initcommand with auto-detectionsmriti rules addcommandsmriti rules validatecommandsmriti rules listcommand📋 Phase 2: Auto-Update & Versioning
smriti rules updatecommand--no-updateflag📋 Phase 4+: Community
Architecture
3-Tier Rule System
Key Files
src/detect/language.ts- Language/framework detectionsrc/categorize/rules/loader.ts- YAML loader + 3-tier mergesrc/categorize/rules/github.ts- GitHub fetcher + cachesrc/categorize/rules/general.yml- 26 general rulesPHASE1_IMPLEMENTATION.md- Technical documentationRULES_QUICK_REFERENCE.md- Developer guideTest Results (Phase 1)
Performance (Phase 1)
Related Issues