{"adoption": {"forks": 224, "observed_at": "2026-08-28T04:08:13.440630+00:00", "stars": 3668}, "canonical_url": "https://ross.abutalabs.com/products/p", "card": {"archived": false, "artifact_type": "framework", "description": "The P programming language.", "domain": ["microservices", "programming-languages", "developer-tools"], "enriched": true, "function": ["programming-language", "testing", "simulation"], "health_score": 96, "homepage": "https://p-org.github.io/P/", "language": "C#", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["p-org/P"], "name": "p-org/P", "platform": ["cross-platform", "windows", "dotnet", "cli"], "pushed_at": "2026-08-21T19:09:01+00:00", "repo": "p-org/P", "stars": 3668, "tags": ["state-machine", "model-checking", "formal-methods", "systematic-testing", "event-driven", "asynchronous", "specification-language", "runtime-monitoring", "ai-assisted-codegen", "formal-verification", "linux", "macos", "docker"], "topics": ["asynchronous", "programming-language", "systematic-testing", "event-driven", "p", "distributed-systems", "state-machine", "model-checking", "formal-methods", "formal-verification"], "urls": [], "use_cases": ["formally model a distributed system design as communicating state machines", "find corner-case concurrency bugs via systematic model checking", "verify safety and liveness properties of a protocol before implementation", "check that service logs conform to formal specifications in production", "generate state machines and test drivers from design documents with AI"], "what_it_is": "P is a state machine based programming language for formally modeling and specifying complex distributed systems as collections of communicating state machines. It provides automated reasoning backends (model checkers) to verify safety and liveness properties, plus runtime monitoring to check production logs against specifications.", "when_to_avoid": ["you need a general-purpose language for building production applications", "your project is small or simple enough that formal modeling is overkill", "your team cannot invest in learning formal methods and specification writing"], "when_to_choose": ["you are designing a complex distributed system or microservices architecture and want to catch design bugs early", "you need rigorous correctness guarantees beyond what stress or integration testing provides", "your team wants a developer-friendly specification language rather than pure mathematical notation"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/p", "repo": "p-org/P", "role": "main", "score": 90}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "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:08:13.440630+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:08:13.440630+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T18:31:21.662737+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "23fc279fe27b2c6afca61e642c87163e41b4eb4fa9522e9a756ae1e905aeeddf", "fetched_at": "2026-08-28T04:08:13.440630+00:00", "kind": "readme", "missing": false, "url": "https://github.com/p-org/P"}, {"content_hash": "c82258c5b9017227fe6e8eb9b156c0977cce96673be8adb1de90fe6f34eb1e66", "fetched_at": "2026-08-29T09:25:24.791174+00:00", "kind": "homepage", "missing": false, "url": "https://p-org.github.io/P/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 100, "rhythm": 73}, "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": 4091, "days_push": 12, "days_rel": 181, "gap_med": 1, "n_releases_24m": 4}, "score": 90, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}