{"adoption": {"forks": 526, "observed_at": "2026-08-28T04:10:49.471030+00:00", "stars": 11683}, "canonical_url": "https://ross.abutalabs.com/products/pest", "card": {"archived": false, "artifact_type": "framework", "description": "The elegant testing framework for PHP developers and AI agents.", "domain": ["testing", "developer-tools", "web-development"], "enriched": true, "function": ["testing", "e2e-testing", "cli", "llm-inference"], "health_score": 100, "homepage": "https://pestphp.com", "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["pestphp/pest"], "name": "pestphp/pest", "platform": ["php", "cli", "cross-platform"], "pushed_at": "2026-08-26T08:36:50+00:00", "repo": "pestphp/pest", "stars": 11683, "tags": ["php-testing", "phpunit", "expectation-api", "browser-testing", "ai-evals", "laravel", "test-runner", "php"], "topics": ["php", "testing", "pest", "framework"], "urls": [], "use_cases": ["write unit and feature tests in php", "migrate phpunit tests to pest", "run browser tests for a laravel app", "evaluate llm agent output quality in tests", "speed up test suite by running only affected tests", "enforce architecture rules in php codebase", "run data-driven tests with datasets"], "what_it_is": "Pest is an elegant PHP testing framework built on top of PHPUnit, offering a functional test API with expressive expect() assertions, datasets, hooks, and architecture testing. Version 5 adds browser testing, AI evals for LLM output, an agent plugin for AI coding assistants, and test-impact-analysis for fast re-runs.", "when_to_avoid": ["your project runs on PHP older than 8.4", "you rely on a PHPUnit-only workflow or tooling incompatible with Pest's functional style", "you need a testing framework for a non-PHP language"], "when_to_choose": ["you write PHP 8.4+ applications, especially Laravel, and want a modern expressive testing API", "you want built-in browser testing, AI evals, and agent-friendly verification in one framework", "you want to gradually migrate from PHPUnit while keeping its ecosystem"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/pest", "repo": "pestphp/pest", "role": "main", "score": 95}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "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:10:49.471030+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:10:49.471030+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-29T17:15:24.472418+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c3355b4ef66b3471d3d436c522807bf5b7abda4cd966727e455b607585710130", "fetched_at": "2026-08-28T04:10:49.471030+00:00", "kind": "readme", "missing": false, "url": "https://github.com/pestphp/pest"}, {"content_hash": "837fbd026e8464db2e47e7026ee0cca3a09149cbaef121bc656626b9c005dee2", "fetched_at": "2026-08-29T08:13:50.728823+00:00", "kind": "homepage", "missing": false, "url": "https://pestphp.com"}, {"content_hash": "d15d5841fc5826501be93f487548f13201dcaf41ce405b9bd9d6ea430d524886", "fetched_at": "2026-08-29T08:13:50.738183+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs"}, {"content_hash": "c52a2b245937f95a19e136ace825bceab1d94858d5221c7bcc3f94b1719e19a2", "fetched_at": "2026-08-29T08:13:50.740094+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/installation"}, {"content_hash": "f10ce21cb15bb89963599fc3cc76863777d03477bdd35dd84f2ddba778737a5e", "fetched_at": "2026-08-29T08:13:50.741628+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/pest5-now-available"}, {"content_hash": "be15146f05780fc78b10611856ef426cecd365c1004d888e38e67adfa85c99b9", "fetched_at": "2026-08-29T08:13:50.743640+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/editor-setup"}, {"content_hash": "8b205d4618dbaba31e60e9d8df64553350422cef0bcb555edd0a7ec7296d6890", "fetched_at": "2026-08-29T08:13:50.745306+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/writing-tests"}, {"content_hash": "9a696c6e39d7c2888734c0563e6b6c4ac0522a1ec39a2cfd04ebd85a463cbc61", "fetched_at": "2026-08-29T08:13:50.747123+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/expectations"}, {"content_hash": "ddc82400d95e2b6846af37969493d03683edfb805c52941c6657de46af9039c3", "fetched_at": "2026-08-29T08:13:50.749949+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/hooks"}, {"content_hash": "04aaa790e7e74cd081b1cc77b945eed93376dd51a1c328c4c2fca438a65f98a1", "fetched_at": "2026-08-29T08:13:50.752178+00:00", "kind": "site_page", "missing": false, "url": "https://pestphp.com/docs/datasets"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 87}, "computed_at": "2026-09-03T02:39:23.370411+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2366, "days_push": 7, "days_rel": 8, "gap_med": 2.5, "n_releases_24m": 85}, "score": 95, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}