{"adoption": {"forks": 40, "observed_at": "2026-08-28T04:05:14.459732+00:00", "stars": 1635}, "canonical_url": "https://ross.abutalabs.com/products/compose-stability-analyzer", "card": {"archived": false, "artifact_type": "plugin", "description": "🦄 Real-time analysis of Jetpack Compose composable functions' stability directly within Android Studio and IntelliJ.", "domain": ["android-tools", "developer-tools", "frontend", "performance"], "enriched": true, "function": ["developer-tools", "monitoring", "testing", "code-review"], "health_score": 99, "homepage": "https://skydoves.github.io/compose-stability-analyzer/", "language": "Kotlin", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["skydoves/compose-stability-analyzer"], "name": "skydoves/compose-stability-analyzer", "platform": ["editor-plugin", "jvm"], "pushed_at": "2026-08-22T00:18:11+00:00", "repo": "skydoves/compose-stability-analyzer", "stars": 1635, "tags": ["jetpack-compose", "intellij-plugin", "android-studio", "recomposition", "stability-analysis", "gradle", "kotlin-compiler-plugin", "android"], "topics": ["android", "compose", "intellij-plugin", "jetpack-compose", "kotlin-compiler-plugin", "skydoves", "stability"], "urls": [], "use_cases": ["find why a Jetpack Compose composable is unstable", "catch unnecessary recompositions in Android Studio", "trace which parameters cause recomposition at runtime", "prevent Compose stability regressions in CI", "view project-wide composable stability in the IDE", "get quick fixes for unstable composable parameters"], "what_it_is": "An IntelliJ/Android Studio plugin (with a Kotlin compiler plugin component) that analyzes Jetpack Compose composable functions' stability in real time, showing why composables are stable or unstable via gutter icons, tooltips, inline hints, and inspections. It also provides runtime recomposition tracing via a @TraceRecomposition annotation and Gradle tasks for CI stability reports.", "when_to_avoid": ["you don't use Jetpack Compose or Kotlin", "you need general-purpose Android linting rather than Compose stability analysis", "your project doesn't use Android Studio or IntelliJ"], "when_to_choose": ["you develop Android apps with Jetpack Compose and want to optimize recomposition performance", "you need IDE-integrated, real-time stability feedback with inspections and quick fixes", "you want CI-enforced stability checks via Gradle tasks"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/compose-stability-analyzer", "repo": "skydoves/compose-stability-analyzer", "role": "main", "score": 83}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "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:05:14.459732+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:14.459732+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:47:02.305475+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "d73db001373b7cbefe82c59cb7b5e1be652e015290f20b98805523e70996fdbd", "fetched_at": "2026-08-28T04:05:14.459732+00:00", "kind": "readme", "missing": false, "url": "https://github.com/skydoves/compose-stability-analyzer"}, {"content_hash": "275f722a22868eb49b359aa7f8b40efe2ca3e03b7c757bb8ad8610dd0aca91d2", "fetched_at": "2026-08-29T11:20:02.874441+00:00", "kind": "homepage", "missing": false, "url": "https://skydoves.github.io/compose-stability-analyzer/"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 21, "rhythm": 98}, "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": 305, "days_push": 12, "days_rel": 12, "gap_med": 5, "n_releases_24m": 28}, "score": 83, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}