{"adoption": {"forks": 76, "observed_at": "2026-08-28T04:03:43.917865+00:00", "stars": 1137}, "canonical_url": "https://ross.abutalabs.com/products/franzliedke-studio", "card": {"archived": false, "artifact_type": "cli-tool", "description": "A workbench for developing Composer packages.", "domain": ["developer-tools"], "enriched": true, "function": ["package-manager", "developer-tools", "cli"], "health_score": 20, "homepage": null, "language": "PHP", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["franzliedke/studio"], "name": "franzliedke/studio", "platform": ["cli", "cross-platform", "php"], "pushed_at": "2024-04-21T19:23:19+00:00", "repo": "franzliedke/studio", "stars": 1137, "tags": ["composer", "php-packages", "symlink", "path-repositories", "local-development", "dogfooding", "command-line", "php"], "topics": ["composer-packages", "php", "composer-plugin"], "urls": [], "use_cases": ["develop a composer package while using it in an app", "symlink local php packages instead of installing from packagist", "dogfood my library without editing composer.json", "avoid developing inside the vendor directory", "set up phpunit and autoload config for a package workbench"], "what_it_is": "A Composer plugin and CLI tool that lets PHP developers work on their own Composer packages while using them in an application. It symlinks local package directories into the vendor directory via Composer path repositories, avoiding development inside vendor.", "when_to_avoid": ["you don't use Composer for dependency management", "your project only consumes third-party packages from Packagist"], "when_to_choose": ["you maintain PHP libraries and want to test them in real applications while developing", "you want seamless local package loading without manually switching repositories"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/franzliedke-studio", "repo": "franzliedke/studio", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "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:03:43.917865+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:43.917865+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T06:36:15.545637+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "53d659897634d489bdf2c66192225165f9b55500f80364611c2c6fea5a0ebe3e", "fetched_at": "2026-08-28T04:03:43.917865+00:00", "kind": "readme", "missing": false, "url": "https://github.com/franzliedke/studio"}], "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": 4253, "days_push": 864, "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}}