Files
poimen-workflows/internal/routing
Test ff444e3902
CI / CI (pull_request) Failing after 2m4s
feat: improve knowledge_base.go with embedded file loading, singleton pattern, and CRAP analysis
Changes:
- Added embedded file loading (go:embed) for activity_knowledge_base.json
  - DRY: No external file dependency, loads from binary
  - SOLID: Single source of truth

- Added singleton pattern with sync.Once
  - GetGlobalKnowledgeBase() lazy-loads KB once
  - Thread-safe access to global instance

- Comprehensive CRAP analysis comments
  - Identified CRAP scores for each method
  - Documented complexity and repetition assessment

- DRY principle improvements
  - byName index for O(1) lookup (avoids repeated linear scans)
  - Consolidated logic, identified single responsibilities

- SOLID principle application
  - Single Responsibility: Each method has one clear purpose
  - Open/Closed: Easy to extend with new activity types/categories
  - Dependency Inversion: Depends on interfaces, not concrete file paths

Methods analyzed:
- LoadKnowledgeBase: CRAP=2 (excellent)
- loadKnowledgeBaseFromEmbedded: CRAP=2 (excellent)
- GetGlobalKnowledgeBase: CRAP=2 (excellent)
- GetActivity: CRAP=2 (excellent)
- ListActivitiesByCategory: CRAP=2 (excellent)
- HasActivity: CRAP=2 (excellent)
- GetRetryPolicyForActivity: CRAP=3 (good)
- Validate: CRAP=5 (acceptable for graph validation)
- checkDependencies: CRAP=4 (acceptable for DFS)

All existing tests pass. No breaking changes.
2026-09-08 15:59:01 -07:00
..