{"adoption": {"forks": 100, "observed_at": "2026-08-28T04:05:47.714848+00:00", "stars": 1876}, "canonical_url": "https://ross.abutalabs.com/products/dyff", "card": {"archived": false, "artifact_type": "cli-tool", "description": "/ˈdʏf/ - diff tool for YAML files, and sometimes JSON", "domain": ["developer-tools", "files"], "enriched": true, "function": ["developer-tools", "cli", "yaml", "json", "file-system"], "health_score": 97, "homepage": null, "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["homeport/dyff"], "name": "homeport/dyff", "platform": ["cli", "cross-platform", "go"], "pushed_at": "2026-08-17T19:46:45+00:00", "repo": "homeport/dyff", "stars": 1876, "tags": ["yaml-diff", "json-diff", "kubectl-diff", "yaml-to-json", "json-to-yaml", "bosh", "configuration-diff", "command-line", "devops"], "topics": ["yaml", "diff", "json", "yaml-files", "yaml2json", "json2yaml", "go-patch", "spruce", "bosh", "dyff", "golang", "tool"], "urls": [], "use_cases": ["diff two yaml files", "show what changed between kubernetes manifests with kubectl diff", "convert yaml to json", "convert json to yaml", "compare configuration files from files, urls, or stdin", "compact diff output for yaml config changes"], "what_it_is": "dyff is a command-line diff tool for YAML files (and sometimes JSON) that reports only the parts of a file that changed, referencing each difference by its path in the document. It also provides sub-commands to convert between YAML and JSON while preserving key order.", "when_to_avoid": ["you need line-based diffs of arbitrary text files (use standard diff)", "you need semantic diffs of source code", "you need a GUI diff tool"], "when_to_choose": ["you need human-readable, compact diffs of YAML or JSON config files", "you want a better diff backend for kubectl diff", "you need order-preserving YAML/JSON conversion", "you work with BOSH, Spruce, or go-patch style path syntaxes"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/dyff", "repo": "homeport/dyff", "role": "main", "score": 92}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "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:05:47.714848+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:47.714848+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:14:44.411634+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "4cc8b87019ee640abbd68cb0b3eb25f1ac3c8c709d7510cd1db8adb54cf51573", "fetched_at": "2026-08-28T04:05:47.714848+00:00", "kind": "readme", "missing": false, "url": "https://github.com/homeport/dyff"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 81}, "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": 3099, "days_push": 16, "days_rel": 129, "gap_med": 15, "n_releases_24m": 16}, "score": 92, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}