{"adoption": {"forks": 3131, "observed_at": "2026-08-28T04:11:00.055433+00:00", "stars": 12899}, "canonical_url": "https://ross.abutalabs.com/products/rubocop", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A Ruby static code analyzer and formatter, based on the community Ruby style guide.", "domain": ["developer-tools", "programming-languages", "testing"], "enriched": true, "function": ["linter", "formatter", "static-site-generator", "cli", "developer-tools"], "health_score": 100, "homepage": "https://docs.rubocop.org", "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["rubocop/rubocop"], "name": "rubocop/rubocop", "platform": ["ruby", "cli", "cross-platform"], "pushed_at": "2026-08-26T18:24:16+00:00", "repo": "rubocop/rubocop", "stars": 12899, "tags": ["ruby", "static-code-analysis", "code-style", "autocorrection", "lsp", "style-guide", "code-quality", "automation"], "topics": ["ruby", "rubocop", "linter", "static-code-analysis", "code-formatter", "hacktoberfest"], "urls": [], "use_cases": ["lint ruby code", "auto-format ruby files", "enforce a ruby style guide across a team", "automatically fix style offenses in a ruby project", "integrate ruby linting into CI", "run a ruby linter from my editor via LSP", "customize linting rules for different parts of a codebase"], "what_it_is": "RuboCop is a Ruby static code analyzer (linter) and code formatter that enforces the community Ruby Style Guide. It can automatically fix many offenses and is highly configurable and extensible with custom cops and plugins.", "when_to_avoid": ["you lint languages other than Ruby", "you want a formatter with a radically different style philosophy than the Ruby community guide", "you need runtime type checking or full static type analysis rather than style linting"], "when_to_choose": ["you write Ruby and want consistent, community-standard code style", "you want a linter and formatter in one tool with autocorrection", "you need editor integration via LSP or CI-friendly output formatters", "you want an extensible linter with plugins like rubocop-rails and rubocop-rspec"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/rubocop", "repo": "rubocop/rubocop", "role": "main", "score": 99}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "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:11:00.055433+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:11:00.055433+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:13:42.141073+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "8f5caff23503055d8bc4ab0ef615e0d030b1793e489cdfe77a3c0adf53d0b368", "fetched_at": "2026-08-28T04:11:00.055433+00:00", "kind": "readme", "missing": false, "url": "https://github.com/rubocop/rubocop"}, {"content_hash": "7d55144f95218f90af2c3c77c8f3f33dd050f9c9cf6b9c6823d19a0f70635c91", "fetched_at": "2026-08-29T08:09:42.941479+00:00", "kind": "homepage", "missing": false, "url": "https://docs.rubocop.org"}, {"content_hash": "dea0b2fe95ec8e4c3904e362ccd2fe807b69685b8db248ed46b439e2cac81695", "fetched_at": "2026-08-29T08:09:42.944017+00:00", "kind": "site_page", "missing": false, "url": "https://docs.rubocop.org/rubocop/latest/index.html"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 99}, "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": 5247, "days_push": 7, "days_rel": 9, "gap_med": 8.5, "n_releases_24m": 57}, "score": 99, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}