{"adoption": {"forks": 336, "observed_at": "2026-08-28T04:06:08.944141+00:00", "stars": 2047}, "canonical_url": "https://ross.abutalabs.com/products/luacheck", "card": {"archived": false, "artifact_type": "cli-tool", "description": " A tool for linting and static analysis of Lua code. ", "domain": ["programming-languages", "developer-tools", "testing"], "enriched": true, "function": ["linter", "parser", "developer-tools"], "health_score": 20, "homepage": null, "language": "Lua", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["mpeterv/luacheck"], "name": "mpeterv/luacheck", "platform": ["cli", "cross-platform", "lua"], "pushed_at": "2022-12-18T19:53:23+00:00", "repo": "mpeterv/luacheck", "stars": 2047, "tags": ["static-analysis", "lua", "code-quality", "luarocks", "command-line"], "topics": ["lua", "linter"], "urls": [], "use_cases": ["lint lua code for unused variables", "detect undefined global variables in lua project", "static analysis of lua 5.3 codebase", "check luajit scripts for unreachable code", "configure custom globals for lua project linting", "run lua linter in ci pipeline"], "what_it_is": "Luacheck is a linter and static analyzer for Lua code, detecting issues like undefined globals, unused variables, and unreachable code. It is written in Lua, supports Lua 5.1-5.3 and LuaJIT syntax, and offers extensive configuration via CLI flags, config files, and inline comments.", "when_to_avoid": ["you need linting for languages other than Lua", "you require an actively developed tool with frequent updates", "you need an IDE-integrated formatter rather than a standalone linter"], "when_to_choose": ["you maintain a Lua or LuaJIT codebase and want automated code quality checks", "you need configurable linting with project-specific globals and warning filters", "you want a lightweight CLI linter installable via LuaRocks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/luacheck", "repo": "mpeterv/luacheck", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "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:06:08.944141+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:08.944141+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:57:58.538095+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d094ce67060e00245c1a9d7f2bf76db58a63b77b3631eca54fd616d555deba0b", "fetched_at": "2026-08-28T04:06:08.944141+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mpeterv/luacheck"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 4559, "days_push": 1354, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}