{"adoption": {"forks": 95, "observed_at": "2026-08-28T04:05:34.147265+00:00", "stars": 1772}, "canonical_url": "https://ross.abutalabs.com/products/netarchtest", "card": {"archived": false, "artifact_type": "library", "description": "A fluent API for .Net that can enforce architectural rules in unit tests.", "domain": ["developer-tools", "testing"], "enriched": true, "function": ["testing", "developer-tools", "linter"], "health_score": 20, "homepage": null, "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "stable", "member_repos": ["BenMorris/NetArchTest"], "name": "BenMorris/NetArchTest", "platform": ["dotnet", "cross-platform"], "pushed_at": "2024-07-29T18:02:58+00:00", "repo": "BenMorris/NetArchTest", "stars": 1772, "tags": ["architecture-testing", "archunit-inspired", "fluent-api", "unit-testing", "conventions", "static-analysis", "architecture"], "topics": [], "urls": [], "use_cases": ["enforce that presentation layer does not depend on data layer in tests", "assert all service classes are sealed via unit tests", "prevent architecture violations automatically in CI builds", "write custom architectural convention tests for .NET codebases", "test that classes implementing an interface reside in specific namespaces", "create a self-testing architecture instead of relying on code review"], "what_it_is": "NetArchTest is a fluent API library for .NET that enforces architectural rules (naming, dependencies, class design conventions) within unit tests. Inspired by Java's ArchUnit, it lets developers write readable assertions about codebase structure that run in any test framework and CI pipeline.", "when_to_avoid": ["you need general-purpose static analysis or linting beyond architecture rules", "you are not on .NET Framework 4.6.1+ or .NET Core 2.0+", "you want runtime enforcement rather than test-time checks"], "when_to_choose": ["you have a .NET codebase and want architecture rules enforced as part of the test suite", "you want ArchUnit-style architecture tests in C#", "static analysis tools are too generic for your application-specific conventions"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/netarchtest", "repo": "BenMorris/NetArchTest", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "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:34.147265+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:34.147265+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:25:56.652999+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d9b42658d2c6a08ff4d76bbde42d248969174685cc88527104b47987f7a718f9", "fetched_at": "2026-08-28T04:05:34.147265+00:00", "kind": "readme", "missing": false, "url": "https://github.com/BenMorris/NetArchTest"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 2837, "days_push": 765, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}