{"adoption": {"forks": 80, "observed_at": "2026-08-28T04:04:28.570052+00:00", "stars": 1353}, "canonical_url": "https://ross.abutalabs.com/products/archunitnet", "card": {"archived": false, "artifact_type": "library", "description": "A C# architecture test library to specify and assert architecture rules in C# for automated testing.", "domain": ["testing", "developer-tools", "programming-languages"], "enriched": true, "function": ["testing", "developer-tools"], "health_score": 100, "homepage": null, "language": "C#", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["TNG/ArchUnitNET"], "name": "TNG/ArchUnitNET", "platform": ["dotnet", "c"], "pushed_at": "2026-08-26T16:37:43+00:00", "repo": "TNG/ArchUnitNET", "stars": 1353, "tags": ["architecture-tests", "archunit", "unit-testing", "code-structure-analysis", "xunit", "nunit", "mstest"], "topics": [], "urls": [], "use_cases": ["enforce layered architecture rules in C# tests", "assert that classes in one namespace don't depend on another layer", "verify interfaces are only implemented by allowed classes", "run architecture rules as part of CI unit tests", "prevent forbidden assembly dependencies in .NET codebases", "codify coding conventions as automated tests"], "what_it_is": "ArchUnitNET is a C# library for specifying and asserting architecture rules in automated tests, forked from Java's ArchUnit. It analyzes assemblies and checks dependencies between classes, members, and interfaces, with extensions for xUnit, NUnit, and MSTest.", "when_to_avoid": ["you work in Java or another non-.NET language (use ArchUnit instead)", "you need runtime dependency enforcement rather than test-time checks", "you need static analysis features like linting or code style checks"], "when_to_choose": ["you have a .NET codebase and want architecture rules enforced automatically in tests", "you want an ArchUnit-style fluent API for C#", "you use xUnit, NUnit, or MSTest and want integrated architecture checks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/archunitnet", "repo": "TNG/ArchUnitNET", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "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:04:28.570052+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:28.570052+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:42:05.837492+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc3d98fee158d26925d9a80d3f6f0e42dfb81e4d88a9348b77ec9a0c52a342a3", "fetched_at": "2026-08-28T04:04:28.570052+00:00", "kind": "readme", "missing": false, "url": "https://github.com/TNG/ArchUnitNET"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 86}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2596, "days_push": 7, "days_rel": 14, "gap_med": 48.0, "n_releases_24m": 13}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}