Skip to content
Back to skills

2534 Arbitrary Limits And Dead Code Plan F36e64af

ASecurity

**Generated:** 2026-02-24 **Scope:** Remove harmful arbitrary limits and implement critical TODO items **Priority:** P0 (Critical) - P3 (Backlog) ---

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
ai-agentsjavascriptpythonrustgojavasqltestinggitapidatabase

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 2534-arbitrary_limits_and_dead_code_plan_f36e64af --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of 2534 Arbitrary Limits And Dead Code Plan F36e64af?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for 2534 Arbitrary Limits And Dead Code Plan F36e64af
[![Security: A β€” Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-2534-arbitrary-limits-and-dead-code-plan-f36e64af/badge)](https://www.skillsdirectory.com/skills/tools-only-2534-arbitrary-limits-and-dead-code-plan-f36e64af)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
# Implementation Plan: Arbitrary Limits & Dead Code

**Generated:** 2026-02-24  
**Scope:** Remove harmful arbitrary limits and implement critical TODO items  
**Priority:** P0 (Critical) - P3 (Backlog)

---

## Part 1: Arbitrary Limits to Remove

### πŸ”΄ P0 - Critical (Fix Immediately)

#### 1.1 Enhancement Code Block Limit
**File:** `src/skill_seekers/cli/enhance_skill_local.py:341`  
**Current:**
```python
for _idx, block in code_blocks[:5]:  # Max 5 code blocks
```
**Problem:** AI enhancement only sees 5 code blocks regardless of skill size. A skill with 100 code examples has 95% ignored during enhancement.

**Solution:**
```python
# Option A: Remove limit, use token counting instead
max_tokens = 4000  # Claude 3.5 Sonnet context for enhancement
current_tokens = 0
selected_blocks = []
for idx, block in code_blocks:
    block_tokens = estimate_tokens(block)
    if current_tokens + block_tokens > max_tokens:
        break
    selected_blocks.append((idx, block))
    current_tokens += block_tokens

for _idx, block in selected_blocks:
```

**Effort:** 2 hours  
**Impact:** High - Massive improvement in enhancement quality  
**Breaking Change:** No

---

### 🟠 P1 - High Priority (Next Sprint)

#### 1.2 Reference File Code Truncation
**Files:**
- `src/skill_seekers/cli/codebase_scraper.py:422, 489, 575, 720, 746`
- `src/skill_seekers/cli/unified_skill_builder.py:1298`

**Current:**
```python
"code": code[:500],  # Truncate long code blocks
```

**Problem:** Reference files should be comprehensive. Truncating code blocks at 500 chars breaks copy-paste functionality and harms skill utility.

**Solution:**
```python
# Remove truncation from reference files
"code": code,  # Full code

# Keep truncation only for SKILL.md summaries (if needed)
```

**Effort:** 1 hour  
**Impact:** High - Reference files become actually usable  
**Breaking Change:** No (output improves)

---

#### 1.3 Table Row Limit in References
**File:** `src/skill_seekers/cli/word_scraper.py:595`  

**Current:**
```python
for row in rows[:5]:
```

**Problem:** Tables in reference files truncated to 5 rows.

**Solution:** Remove `[:5]` limit from reference file generation. Keep limit only for SKILL.md summaries.

**Effort:** 30 minutes  
**Impact:** Medium  
**Breaking Change:** No

---

### 🟑 P2 - Medium Priority (Backlog)

#### 1.4 Pattern/Example Limits in Analysis
**Files:**
- `src/skill_seekers/cli/codebase_scraper.py:1898` - `examples[:10]`
- `src/skill_seekers/cli/github_scraper.py:1145, 1169` - Pattern limits
- `src/skill_seekers/cli/doc_scraper.py:608` - `patterns[:5]`

**Problem:** Pattern detection limited arbitrarily, missing edge cases.

**Solution:** Make configurable via `--max-patterns` flag with sensible default (50 instead of 5-10).

**Effort:** 3 hours  
**Impact:** Medium - Better pattern coverage  
**Breaking Change:** No

---

#### 1.5 Issue/Release Limits in GitHub Scraper
**File:** `src/skill_seekers/cli/github_scraper.py`

**Current:**
```python
for release in releases[:3]:
for issue in issues[:5]:
for issue in open_issues[:20]:
```

**Problem:** Hard limits without user control.

**Solution:** Add CLI flags:
```python
parser.add_argument("--max-issues", type=int, default=50)
parser.add_argument("--max-releases", type=int, default=10)
```

**Effort:** 2 hours  
**Impact:** Medium - User control  
**Breaking Change:** No

---

#### 1.6 Config File Display Limits
**Files:**
- `src/skill_seekers/cli/config_manager.py:540` - `jobs[:5]`
- `src/skill_seekers/cli/config_enhancer.py:165, 302` - Config file limits

**Problem:** Display truncated for UX reasons, but should have `--verbose` override.

**Solution:** Add verbose mode check:
```python
if verbose:
    display_items = items
else:
    display_items = items[:5]  # Truncated for readability
```

**Effort:** 2 hours  
**Impact:** Low-Medium  
**Breaking Change:** No

---

### 🟒 P3 - Low Priority / Keep As Is

These limits are justified and should remain:

| Location | Limit | Justification |
|----------|-------|---------------|
| `word_scraper.py:553` | `all_code[:15]` | SKILL.md summary - full code in references |
| `word_scraper.py:567` | `examples[:5]` | Per-language summary in SKILL.md |
| `pdf_scraper.py:453, 472` | Same as above | Consistent with Word scraper |
| `word_scraper.py:658, 664` | `[:10], [:15]` | Key concepts list (justified for readability) |
| `adaptors/*.py` | `[:30000]` | API token limits (Claude/Gemini/OpenAI) |
| `base.py:208` | `[:500]` | Preview/summary text (not reference) |

---

## Part 1b: Hardcoded Language Issues

These are **data flow bugs** - the correct language is available upstream but hardcoded to `"python"` downstream.

### πŸ”΄ P0 - Critical

#### 1.b.1 Test Example Code Snippets
**File:** `src/skill_seekers/cli/unified_skill_builder.py:1298`

**Current:**
```python
f.write(f"\n```python\n{ex['code_snippet'][:300]}\n```\n")
```

**Problem:** Hardcoded to `python` regardless of actual language.

**Available Data:** The `ex` dict from `TestExample.to_dict()` includes a `language` field.

**Fix:**
```python
lang = ex.get("language", "text")
f.write(f"\n```{lang}\n{ex['code_snippet'][:300]}\n```\n")
```

**Effort:** 1 minute  
**Impact:** Medium - Syntax highlighting now correct  
**Breaking Change:** No

---

#### 1.b.2 How-To Guide Language
**File:** `src/skill_seekers/cli/how_to_guide_builder.py:1018`

**Current:**
```python
"language": "python",  # TODO: Detect from code
```

**Problem:** Language hardcoded in guide data sent to AI enhancement.

**Solution (3 one-line changes):**

1. **Add field to dataclass** (around line 70):
```python
@dataclass
class HowToGuide:
    # ... existing fields ...
    language: str = "python"  # Source file language
```

2. **Set at creation** (line 955, in `_create_guide_from_workflow`):
```python
HowToGuide(
    # ... other fields ...
    language=primary_workflow.get("language", "python"),
)
```

3. **Use the field** (line 1018):
```python
"language": guide.language,
```

**Note:** The `primary_workflow` dict already carries the language field (populated by test example extractor upstream at line 169). Zero new imports needed.

**Effort:** 5 minutes  
**Impact:** Medium - AI receives correct language context  
**Breaking Change:** No

---

## Part 2: Dead Code / TODO Implementation

### πŸ”΄ P0 - Critical TODOs (Implement Now)

#### 2.1 SMTP Email Notifications
**File:** `src/skill_seekers/sync/notifier.py:138`  

**Current:**
```python
# TODO: Implement SMTP email sending
```

**Implementation:**
```python
def _send_email_smtp(self, to_email: str, subject: str, body: str) -> bool:
    """Send email via SMTP."""
    import smtplib
    from email.mime.text import MIMEText
    
    smtp_host = os.environ.get("SKILL_SEEKERS_SMTP_HOST", "localhost")
    smtp_port = int(os.environ.get("SKILL_SEEKERS_SMTP_PORT", "587"))
    smtp_user = os.environ.get("SKILL_SEEKERS_SMTP_USER")
    smtp_pass = os.environ.get("SKILL_SEEKERS_SMTP_PASS")
    
    if not all([smtp_user, smtp_pass]):
        logger.warning("SMTP credentials not configured")
        return False
    
    try:
        msg = MIMEText(body)
        msg["Subject"] = subject
        msg["From"] = smtp_user
        msg["To"] = to_email
        
        with smtplib.SMTP(smtp_host, smtp_port) as server:
            server.starttls()
            server.login(smtp_user, smtp_pass)
            server.send_message(msg)
        return True
    except Exception as e:
        logger.error(f"Failed to send email: {e}")
        return False
```

**Effort:** 4 hours  
**Dependencies:** Environment variables for SMTP config  
**Breaking Change:** No

---

### 🟠 P1 - High Priority (Next Sprint)

#### 2.2 Auto-Update Integration
**File:** `src/skill_seekers/sync/monitor.py:201`

**Current:**
```python
# TODO: Integrate with doc_scraper to rebuild skill
```

**Implementation:** Call existing scraper commands when changes detected.

```python
def _rebuild_skill(self, config_path: str) -> bool:
    """Rebuild skill when changes detected."""
    import subprocess
    
    # Use existing create command
    result = subprocess.run(
        ["skill-seekers", "create", config_path, "--force"],
        capture_output=True,
        text=True,
        timeout=300  # 5 minute timeout
    )
    
    return result.returncode == 0
```

**Effort:** 3 hours  
**Dependencies:** Ensure `skill-seekers` CLI available in PATH  
**Breaking Change:** No

---

#### 2.3 Language Detection in How-To Guides
**File:** `src/skill_seekers/cli/how_to_guide_builder.py:1018`

**Current:**
```python
"language": "python",  # TODO: Detect from code
```

**Implementation:** Use existing `LanguageDetector`:

```python
from skill_seekers.cli.language_detector import LanguageDetector

detector = LanguageDetector(min_confidence=0.3)
language, confidence = detector.detect_from_text(code)
if confidence < 0.3:
    language = "text"  # Fallback
```

**Effort:** 1 hour  
**Dependencies:** Existing LanguageDetector class  
**Breaking Change:** No

---

### 🟑 P2 - Medium Priority (Backlog)

#### 2.4 Custom Transform System
**File:** `src/skill_seekers/cli/enhancement_workflow.py:439`

**Current:**
```python
# TODO: Implement custom transform system
```

**Purpose:** Allow users to define custom code transformations in workflow YAML.

**Implementation Sketch:**
```yaml
# Example workflow addition
transforms:
  - name: "Remove boilerplate"
    pattern: "Copyright \(c\) \d+"
    action: "remove"
  - name: "Normalize headers"
    pattern: "^#{1,6} "
    replacement: "## "
```

**Effort:** 8 hours  
**Impact:** Medium - Power user feature  
**Breaking Change:** No

---

#### 2.5 Vector Database Storage for Embeddings
**File:** `src/skill_seekers/embedding/server.py:268`

**Current:**
```python
# TODO: Store embeddings in vector database
```

**Implementation Options:**
- Option A: ChromaDB integration (already have adaptor)
- Option B: Qdrant integration (already have adaptor)
- Option C: SQLite with vector extension (simplest)

**Recommendation:** Start with SQLite + `sqlite-vec` for zero-config setup.

**Effort:** 6 hours  
**Dependencies:** New dependency `sqlite-vec`  
**Breaking Change:** No

---

### 🟒 P3 - Backlog / Low Priority

#### 2.6 URL Resolution in Sync Monitor
**File:** `src/skill_seekers/sync/monitor.py:136`

**Current:**
```python
# TODO: In real implementation, get actual URLs from scraper
```

**Note:** Current implementation uses placeholder URLs. Full implementation requires scraper to expose URL list.

**Effort:** 4 hours  
**Impact:** Low - Current implementation works for basic use  
**Breaking Change:** No

---

## Implementation Schedule

### Week 1: Critical Fixes
- [ ] Remove `[:5]` limit in `enhance_skill_local.py` (P0)
- [ ] Remove `[:500]` truncation from reference files (P1)
- [ ] Remove `[:5]` table row limit (P1)

### Week 2: Notifications & Integration
- [ ] Implement SMTP notifications (P0)
- [ ] Implement auto-update in sync monitor (P1)
- [ ] Fix language detection in how-to guides (P1)

### Week 3: Configurability
- [ ] Add `--max-patterns`, `--max-issues` CLI flags (P2)
- [ ] Add verbose mode for display limits (P2)
- [ ] Add `--max-code-blocks` for enhancement (P2)

### Backlog
- [ ] Custom transform system (P2)
- [ ] Vector DB storage for embeddings (P2)
- [ ] URL resolution in sync monitor (P3)

---

## Testing Strategy

### For Limit Removal
1. Create test skill with 100+ code blocks
2. Verify enhancement sees all code (or token-based limit)
3. Verify reference files contain complete code
4. Verify SKILL.md still has appropriate summaries

### For Hardcoded Language Fixes
1. Create skill from JavaScript/Go/Rust test examples
2. Verify `unified_skill_builder.py` outputs correct language tag in markdown
3. Verify `how_to_guide_builder.py` uses correct language in AI prompt

### For TODO Implementation
1. SMTP: Mock SMTP server test
2. Auto-update: Mock subprocess test
3. Language detection: Test with mixed-language code samples

---

## Success Metrics

| Metric | Before | After |
|--------|--------|-------|
| Code blocks in enhancement | 5 max | Token-based (40+) |
| Code truncation in refs | 500 chars | Full code |
| Table rows in refs | 5 max | All rows |
| Code snippet language | Always "python" | Correct language |
| Guide language | Always "python" | Source file language |
| Email notifications | Webhook only | SMTP + webhook |
| Auto-update | Manual only | Automatic |

---

## Appendix: Files Modified

### Limit Removals
- `src/skill_seekers/cli/enhance_skill_local.py`
- `src/skill_seekers/cli/codebase_scraper.py`
- `src/skill_seekers/cli/unified_skill_builder.py`
- `src/skill_seekers/cli/word_scraper.py`

### Hardcoded Language Fixes
- `src/skill_seekers/cli/unified_skill_builder.py` (line 1298)
- `src/skill_seekers/cli/how_to_guide_builder.py` (dataclass + lines 955, 1018)

### TODO Implementations
- `src/skill_seekers/sync/notifier.py`
- `src/skill_seekers/sync/monitor.py`
- `src/skill_seekers/cli/how_to_guide_builder.py`
- `src/skill_seekers/cli/github_scraper.py` (new flags)
- `src/skill_seekers/cli/config_manager.py` (verbose mode)

---

*This document should be reviewed and updated after each implementation phase.*

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…