dependency-extraction-multilanglisted
Install: claude install-skill ytrofr/ai-intelligence-hub
# Multi-Language Dependency Extraction
## WHEN TO USE (Triggers)
1. When analyzing a GitHub repo's tech stack programmatically
2. When building project-to-repo matching based on shared dependencies
3. When parsing dependencies from multiple languages (Node + Python)
4. When pyproject.toml parsing fails silently (complex TOML format)
5. When dependency names have version specifiers that need stripping
## FAILED ATTEMPTS
| # | Attempt | Why Failed | Lesson |
|---|---------|-----------|--------|
| 1 | Used a TOML parser library for pyproject.toml | Added a dependency just for parsing one file. Library had edge cases | Regex extraction is simpler and sufficient for dependency arrays |
| 2 | Didn't strip version specifiers from requirements.txt | "fastapi>=0.100" didn't match "fastapi" in project config | Always split on version specifiers: `[=<>~!` |
| 3 | Only checked `dependencies` in package.json | Missed `devDependencies` (typescript, vite, testing frameworks) | Check both dependencies AND devDependencies |
## CORRECT PATTERN
### Unified Extraction Function
```javascript
function extractDependencies(packageJson, requirementsTxt, pyprojectToml) {
const deps = [];
// 1. Node.js: package.json
if (packageJson) {
try {
const pkg = JSON.parse(packageJson);
if (pkg.dependencies) deps.push(...Object.keys(pkg.dependencies));
if (pkg.devDependencies) deps.push(...Object.keys(pkg.devDependencies));
} catch { /* malformed JSON */ }
}
// 2. Python