fix: Add empty list checks and enhance docstrings (PR #243 review fixes)

Two critical improvements from PR #243 code review:

## Fix 1: Empty List Edge Case Handling

Added early return checks to prevent creating empty index files:

**Files Modified:**
- src/skill_seekers/cli/unified_skill_builder.py

**Changes:**
- _generate_docs_references: Skip if docs_list empty
- _generate_github_references: Skip if github_list empty
- _generate_pdf_references: Skip if pdf_list empty

**Impact:**
Prevents "Combined from 0 sources" index files which look odd.

## Fix 2: Enhanced Method Docstrings

Added comprehensive parameter types and return value documentation:

**Files Modified:**
- src/skill_seekers/cli/llms_txt_parser.py
  - extract_urls: Added detailed examples and behavior notes
  - _clean_url: Added malformed URL pattern examples

- src/skill_seekers/cli/doc_scraper.py
  - _extract_markdown_content: Full return dict structure documented
  - _extract_html_as_markdown: Extraction strategy and fallback behavior

**Impact:**
Improved developer experience with detailed API documentation.

## Testing

All tests passing:
-  32/32 PR #243 tests (markdown parsing + multi-source)
-  975/975 core tests
- 159 skipped (optional dependencies)
- 4 failed (missing anthropic - expected)

Co-authored-by: Code Review <claude-sonnet-4.5@anthropic.com>
This commit is contained in:
yusyus
2026-01-11 14:01:23 +03:00
parent a7f13ec75f
commit 04de96f2f5
3 changed files with 87 additions and 10 deletions

View File

@@ -287,6 +287,10 @@ This skill combines knowledge from multiple sources:
def _generate_docs_references(self, docs_list: List[Dict]):
"""Generate references from multiple documentation sources."""
# Skip if no documentation sources
if not docs_list:
return
docs_dir = os.path.join(self.skill_dir, 'references', 'documentation')
os.makedirs(docs_dir, exist_ok=True)
@@ -347,6 +351,10 @@ This skill combines knowledge from multiple sources:
def _generate_github_references(self, github_list: List[Dict]):
"""Generate references from multiple GitHub sources."""
# Skip if no GitHub sources
if not github_list:
return
github_dir = os.path.join(self.skill_dir, 'references', 'github')
os.makedirs(github_dir, exist_ok=True)
@@ -429,6 +437,10 @@ This skill combines knowledge from multiple sources:
def _generate_pdf_references(self, pdf_list: List[Dict]):
"""Generate references from PDF sources."""
# Skip if no PDF sources
if not pdf_list:
return
pdf_dir = os.path.join(self.skill_dir, 'references', 'pdf')
os.makedirs(pdf_dir, exist_ok=True)