fix: C3.5 immediate bug fixes for production readiness

Fixes 3 critical issues found during FastMCP real-world testing:

1. **C3.4 Config Extraction Parameter Mismatch**
   - Fixed: ConfigExtractor() called with invalid max_files parameter
   - Error: "ConfigExtractor.__init__() got an unexpected keyword argument 'max_files'"
   - Solution: Removed max_files and include_optional_deps parameters
   - Impact: Configuration section now works in ARCHITECTURE.md

2. **C3.3 How-To Guide Building NoneType Guard**
   - Fixed: Missing null check for guide_collection
   - Error: "'NoneType' object has no attribute 'get'"
   - Solution: Added guard: if guide_collection and guide_collection.total_guides > 0
   - Impact: No more crashes when guide building fails

3. **Technology Stack Section Population**
   - Fixed: Empty Section 3 in ARCHITECTURE.md
   - Enhancement: Now pulls languages from GitHub data as fallback
   - Solution: Added dual-source language detection (C3.7 → GitHub)
   - Impact: Technology stack always shows something useful

**Test Results After Fixes:**
-  All 3 sections now populate correctly
-  Graceful degradation still works
-  No errors in ARCHITECTURE.md generation

**Files Modified:**
- codebase_scraper.py: Fixed C3.4 call, added C3.3 null guard
- unified_skill_builder.py: Enhanced Technology Stack section

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
yusyus
2026-01-04 22:22:15 +03:00
parent 9e772351fe
commit 94462a3657
2 changed files with 28 additions and 13 deletions

View File

@@ -491,7 +491,7 @@ def analyze_codebase(
ai_mode=ai_mode
)
if guide_collection.total_guides > 0:
if guide_collection and guide_collection.total_guides > 0:
# Save collection summary
collection_json = tutorials_dir / 'guide_collection.json'
with open(collection_json, 'w', encoding='utf-8') as f:
@@ -511,10 +511,7 @@ def analyze_codebase(
if extract_config_patterns:
logger.info("Extracting configuration patterns...")
try:
config_extractor = ConfigExtractor(
max_files=100,
include_optional_deps=True
)
config_extractor = ConfigExtractor()
# Extract config patterns from directory
extraction_result = config_extractor.extract_from_directory(directory)