{"adoption": {"forks": 154, "observed_at": "2026-08-28T04:07:37.175684+00:00", "stars": 2997}, "canonical_url": "https://ross.abutalabs.com/products/deptrac", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Keep your architecture clean.", "domain": ["developer-tools"], "enriched": true, "function": ["static-site-generator", "linter", "developer-tools", "cli"], "health_score": 99, "homepage": "http://deptrac.github.io/deptrac/", "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["deptrac/deptrac"], "name": "deptrac/deptrac", "platform": ["cli", "php", "cross-platform"], "pushed_at": "2026-08-14T18:47:53+00:00", "repo": "deptrac/deptrac", "stars": 2997, "tags": ["architecture-rules", "dependency-analysis", "code-quality", "ci-pipeline", "php", "layered-architecture", "static-analysis", "visualization", "architecture", "clean-architecture"], "topics": ["architecture", "php", "clean-architecture"], "urls": [], "use_cases": ["enforce architectural layer boundaries in a PHP codebase", "prevent modules or bundles from depending on each other", "run architecture rule checks in a CI pipeline on pull requests", "visualize class dependencies between layers with Graphviz or Mermaid diagrams", "keep a large PHP application's architecture clean and documented", "detect violations of dependency rules between namespaces or classes"], "what_it_is": "Deptrac is a static code analysis tool for PHP that helps you communicate, visualize, and enforce architectural decisions in your projects. It lets you define architectural layers over classes and rules between them, then checks violations in CI and can visualize dependencies via Graphviz or Mermaid.", "when_to_avoid": ["your project is not written in PHP", "you need runtime dependency injection or service container management rather than static analysis", "you only need general linting or code style checks rather than architectural rules"], "when_to_choose": ["you have a PHP project with multiple modules, bundles, or layers that should stay independent", "you want to automatically enforce architecture rules in CI", "you need to visualize and document dependency structure of a PHP codebase"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/deptrac", "repo": "deptrac/deptrac", "role": "main", "score": 97}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "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:07:37.175684+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:37.175684+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:30:44.132755+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "0120037bc670ac13318a7ba5dae832b0bf15606c88b69169a4c96cd653ad0870", "fetched_at": "2026-08-28T04:07:37.175684+00:00", "kind": "readme", "missing": false, "url": "https://github.com/deptrac/deptrac"}, {"content_hash": "fc97de695a11fcfc308c896a108cd6eeb0464988fba6f2dcb811625f4cc5a2f7", "fetched_at": "2026-08-29T09:45:54.582583+00:00", "kind": "homepage", "missing": false, "url": "http://deptrac.github.io/deptrac/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 97, "longevity": 100, "rhythm": 94}, "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": 3960, "days_push": 19, "days_rel": 41, "gap_med": 21.5, "n_releases_24m": 19}, "score": 97, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}