{"adoption": {"forks": 78, "observed_at": "2026-08-28T04:08:15.726169+00:00", "stars": 3763}, "canonical_url": "https://ross.abutalabs.com/products/anti-slop", "card": {"archived": false, "artifact_type": "plugin", "description": "Opinionated Oxlint rules for rejecting low-evidence TypeScript and JavaScript patterns", "domain": ["developer-tools", "programming-languages", "web-development"], "enriched": true, "function": ["linter", "developer-tools", "code-review"], "health_score": 79, "homepage": null, "language": "TypeScript", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["dmmulroy/anti-slop"], "name": "dmmulroy/anti-slop", "platform": ["cli"], "pushed_at": "2026-08-18T13:21:06+00:00", "repo": "dmmulroy/anti-slop", "stars": 3763, "tags": ["oxlint", "linting", "typescript", "javascript", "code-quality", "agent-skills", "vendored-rules", "nodejs"], "topics": ["agent-skills", "linting", "oxlint", "typescript"], "urls": [], "use_cases": ["lint typescript for low-evidence patterns", "enforce stricter type-safety lint rules in oxlint", "reject chained type assertions and unsafe casts", "ban runtime typeof checks and module mocking", "set up opinionated lint rules via a coding agent", "vendor custom lint rules into a repo"], "what_it_is": "A set of opinionated Oxlint plugin rules that reject low-evidence TypeScript and JavaScript patterns, designed to be vendored into a repository rather than installed as a fixed npm dependency. It ships with an agent skill that copies the plugin, installs Oxlint dependencies, merges configuration, and validates the setup.", "when_to_avoid": ["you use ESLint or another linter instead of Oxlint", "you prefer rules maintained as a versioned npm dependency", "you want a neutral, non-opinionated lint configuration"], "when_to_choose": ["you use Oxlint and want opinionated rules against sloppy TypeScript patterns", "you want lint rules you can read, copy, and customize in your own repo", "your team uses Effect and wants opt-in Effect-specific lint rules"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/anti-slop", "repo": "dmmulroy/anti-slop", "role": "main", "score": 57}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "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:08:15.726169+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:15.726169+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:28:37.599780+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ba05eec6619ef256854067ada74d260e428aff8d26890bf924223c347d9e5ee2", "fetched_at": "2026-08-28T04:08:15.726169+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dmmulroy/anti-slop"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 1, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 21, "days_push": 15, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 57, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}