{"adoption": {"forks": 285, "observed_at": "2026-08-28T04:08:32.182003+00:00", "stars": 4007}, "canonical_url": "https://ross.abutalabs.com/products/overcommit", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A fully configurable and extendable Git hook manager", "domain": ["developer-tools", "version-control"], "enriched": true, "function": ["developer-tools", "version-control", "linter", "plugin-system", "configuration-management"], "health_score": 98, "homepage": null, "language": "Ruby", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["sds/overcommit"], "name": "sds/overcommit", "platform": ["cli", "cross-platform", "ruby"], "pushed_at": "2026-08-12T18:34:32+00:00", "repo": "sds/overcommit", "stars": 4007, "tags": ["git-hooks", "pre-commit", "ruby-gem", "code-quality", "hook-manager", "automation"], "topics": [], "urls": [], "use_cases": ["manage git hooks across multiple repositories", "run linters before committing code", "enforce commit message conventions", "run tests before pushing to remote", "share team git hook configuration in source control", "add existing hook scripts without writing Ruby"], "what_it_is": "Overcommit is a fully configurable and extendable Git hook manager written in Ruby. It supports a wide variety of built-in hooks, repo-specific hooks stored in source control, and easy integration of existing hook scripts.", "when_to_avoid": ["you are not comfortable installing Ruby 2.6+ in your development environment", "you want a language-agnostic hook manager with zero runtime dependencies", "you only need a single simple pre-commit check"], "when_to_choose": ["you want a configurable, extensible Git hook manager with many built-in hooks", "your team uses Ruby and wants hooks defined in a versioned config file", "you need to run checks at pre-commit, pre-push, commit-msg, or post-checkout stages"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/overcommit", "repo": "sds/overcommit", "role": "main", "score": 93}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "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:32.182003+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:32.182003+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:24:03.721042+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "1dd60e17e1d7209622919d6021ad4e3a0b48a048da693cad6fe6bbd82e3f0948", "fetched_at": "2026-08-28T04:08:32.182003+00:00", "kind": "readme", "missing": false, "url": "https://github.com/sds/overcommit"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 83}, "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": 5641, "days_push": 21, "days_rel": 32, "gap_med": 52, "n_releases_24m": 10}, "score": 93, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}