{"adoption": {"forks": 57, "observed_at": "2026-08-28T04:05:22.163689+00:00", "stars": 1686}, "canonical_url": "https://ross.abutalabs.com/products/composer-unused", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Show unused composer dependencies by scanning your code", "domain": ["developer-tools"], "enriched": true, "function": ["static-site-generator", "developer-tools", "parser"], "health_score": 85, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["composer-unused/composer-unused"], "name": "composer-unused/composer-unused", "platform": ["cli", "php", "cross-platform"], "pushed_at": "2026-04-27T02:02:52+00:00", "repo": "composer-unused/composer-unused", "stars": 1686, "tags": ["composer", "dependency-audit", "php", "static-analysis", "unused-dependencies", "command-line", "automation"], "topics": ["composer", "php", "php-parser", "hacktoberfest"], "urls": [], "use_cases": ["find unused composer dependencies in my php project", "clean up composer. by removing packages that are no longer used", "audit which composer packages are actually referenced in the codebase", "check for dead dependencies before a refactor", "run a dependency usage scan in CI"], "what_it_is": "composer-unused is a PHP CLI tool that scans your codebase to detect Composer dependencies that are never used. It reports packages listed in composer. whose symbols are not referenced anywhere in the project.", "when_to_avoid": ["your project is not PHP / does not use Composer", "you need runtime dependency analysis or dynamic usage detection (e.g. string-based class loading may be missed)", "you need a full dependency vulnerability audit rather than usage detection"], "when_to_choose": ["you maintain a large PHP repository and lost track of required packages", "you want a quick CLI scan rather than manual grep for package symbols", "you want to slim down composer. and reduce install size"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/composer-unused", "repo": "composer-unused/composer-unused", "role": "main", "score": 75}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:22.163689+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:38:56.265721+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "fb9d71dee13bf45f97421a31a75975b90765db62eebf11e4ffc7e2a0ecd836c5", "fetched_at": "2026-08-28T04:05:22.163689+00:00", "kind": "readme", "missing": false, "url": "https://github.com/composer-unused/composer-unused"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 79, "longevity": 100, "rhythm": 56}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2722, "days_push": 129, "days_rel": 215, "gap_med": 51.5, "n_releases_24m": 7}, "score": 75, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}