{"adoption": {"forks": 802, "observed_at": "2026-08-28T04:09:40.933099+00:00", "stars": 6245}, "canonical_url": "https://ross.abutalabs.com/products/stateless", "card": {"archived": false, "artifact_type": "library", "description": "A simple library for creating state machines in C# code", "domain": ["developer-tools", "cross-platform"], "enriched": true, "function": ["workflow-automation", "developer-tools"], "health_score": 65, "homepage": null, "language": "C#", "license": "NOASSERTION", "license_family": "other", "maturity": "stable", "member_repos": ["dotnet-state-machine/stateless"], "name": "dotnet-state-machine/stateless", "platform": ["dotnet", "cross-platform"], "pushed_at": "2026-04-04T18:25:52+00:00", "repo": "dotnet-state-machine/stateless", "stars": 6245, "tags": ["state-machine", "csharp", "finite-state-machine", "dotnet", "workflow", "automation"], "topics": [], "urls": [], "use_cases": ["model state machines in C# code", "build lightweight workflow engines in .NET", "implement hierarchical states with entry and exit actions", "add conditional transitions with guard clauses", "export state machine diagrams to DOT or mermaid", "store state machine state externally in an ORM-tracked property"], "what_it_is": "Stateless is a C# library for creating state machines and lightweight state machine-based workflows directly in .NET code. It supports hierarchical states, entry/exit actions, guard clauses, parameterised triggers, and graph export.", "when_to_avoid": ["you need a full BPMN or durable workflow orchestration engine", "your project is not on the .NET platform", "you need distributed or long-running persisted workflows with human tasks"], "when_to_choose": ["you need a fluent, in-code state machine for a .NET application", "you want hierarchical states, guards, and parameterised triggers without external tooling", "you need to visualize state machines as DOT or mermaid graphs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/stateless", "repo": "dotnet-state-machine/stateless", "role": "main", "score": 66}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "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:09:40.933099+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:40.933099+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:47:10.107233+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5242e151e8850197cd432bba58bf5e8e4f4bb78d5419f4ca0d5edcd6f3f18178", "fetched_at": "2026-08-28T04:09:40.933099+00:00", "kind": "readme", "missing": false, "url": "https://github.com/dotnet-state-machine/stateless"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 75, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4401, "days_push": 151, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 66, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}