{"adoption": {"forks": 70, "observed_at": "2026-09-01T02:14:00.890142+00:00", "stars": 1111}, "canonical_url": "https://ross.abutalabs.com/products/diff-hl", "card": {"archived": false, "artifact_type": "plugin", "description": "Emacs package for highlighting uncommitted changes", "domain": ["version-control", "developer-tools", "text-editors"], "enriched": true, "function": ["version-control", "developer-tools"], "health_score": 80, "homepage": null, "language": "Emacs Lisp", "license": "GPL-3.0", "license_family": "copyleft", "maturity": "stable", "member_repos": ["dgutov/diff-hl"], "name": "dgutov/diff-hl", "platform": ["editor-plugin", "cross-platform"], "pushed_at": "2026-08-30T14:00:11+00:00", "repo": "dgutov/diff-hl", "stars": 1111, "tags": ["emacs", "git-gutter", "vc", "diff", "minor-mode", "fringe-indicators"], "topics": ["emacs", "version-control", "gutter", "git", "git-gutter", "mercurial", "vcs"], "urls": [], "use_cases": ["show git gutter indicators in emacs", "highlight uncommitted changes in the editor fringe", "jump between and revert individual diff hunks", "stage and unstage changes from a buffer", "show version control markers in dired", "highlight changes on the fly while editing"], "what_it_is": "An Emacs minor mode that highlights uncommitted changes in the window fringe or margin, with commands to jump between and selectively revert hunks. It supports Git, Mercurial, Bazaar, and SVN via VC, and includes auxiliary modes for Dired, on-the-fly updates, and staging/unstaging in Git buffers.", "when_to_avoid": ["you use a different editor like Vim or VS Code with built-in gutter support", "you need a standalone diff tool outside Emacs", "fringe conflicts with Flycheck-style indicators are unacceptable in your setup"], "when_to_choose": ["you use Emacs and want source control gutter indicators", "you need support for multiple VCS backends beyond just Git", "you want to revert or stage hunks directly from the buffer"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/diff-hl", "repo": "dgutov/diff-hl", "role": "main", "score": 77}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-09-01T02:14:00.890142+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:42:42.991765+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "69818dc398f1439874115f7977d5a749d5c2e449783c5f07bc70edd6a31585e0", "fetched_at": "2026-09-01T02:14:00.890142+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dgutov/diff-hl"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 100, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 5182, "days_push": 3, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 77, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 5, "stale_scrape": false}}