-
Notifications
You must be signed in to change notification settings - Fork 3
Open
Labels
enhancementNew feature or requestNew feature or requestphase-2Phase 2: New agent parsersPhase 2: New agent parsers
Description
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)
- Language detection (TypeScript, Python, Rust, Go, JavaScript)
- Framework detection (Next.js, FastAPI, Axum, Django, Actix)
- YAML rule loader with 3-tier merge logic
- Migrated 26 hardcoded rules to general.yml
- Pattern compilation and caching
- GitHub rule fetching with database cache
- Comprehensive test coverage (27 tests passing)
- Database schema extensions
- Backward compatibility maintained
Commit: f15c532 - "Implement Phase 1: 3-Tier Rule-Based Engine (MVP Complete)"
📋 Phase 1.5: Language-Specific Rules (Next)
- Create TypeScript-specific rule set
- Create JavaScript-specific rule set
- Create Python-specific rule set
- Create Rust-specific rule set
- Create Go-specific rule set
- Implement
smriti initcommand with auto-detection - Implement
smriti rules addcommand - Implement
smriti rules validatecommand - Implement
smriti rules listcommand
📋 Phase 2: Auto-Update & Versioning
- Implement
smriti rules updatecommand - Auto-check for rule updates on categorize
- Add
--no-updateflag - Display changelog before update
- Version tracking in database
📋 Phase 4+: Community
- GitHub community rule repository
- Community-contributed rule sets
- Plugin marketplace integration
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 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 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
- None yet
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestphase-2Phase 2: New agent parsersPhase 2: New agent parsers