{"adoption": {"forks": 200, "observed_at": "2026-08-28T04:05:30.319308+00:00", "stars": 1742}, "canonical_url": "https://ross.abutalabs.com/products/didiprism", "card": {"archived": false, "artifact_type": "library", "description": "小桔棱镜，一款专注移动端操作行为的利器！ A powerful tool (iOS & Android) that focuses on mobile operation behavior!", "domain": ["mobile-development", "developer-tools", "analytics"], "enriched": true, "function": ["monitoring", "analytics", "testing", "developer-tools"], "health_score": 46, "homepage": null, "language": "Objective-C", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["didi/DiDiPrism"], "name": "didi/DiDiPrism", "platform": [], "pushed_at": "2025-05-22T13:07:56+00:00", "repo": "didi/DiDiPrism", "stars": 1742, "tags": ["operation-playback", "user-behavior-tracking", "behavior-detection", "objective-c", "no-intrusion", "dsl-policies", "automation", "ios", "android", "mobile"], "topics": [], "urls": [], "use_cases": ["replay user interactions in a mobile app to debug issues", "record and play back user sessions as video or text", "detect specific user behavior sequences with policy rules", "visualize user operation behavior data", "build automated mobile tests without writing scripts", "track user actions without modifying business code"], "what_it_is": "DiDiPrism (小桔棱镜) is a mobile tool from DiDi focused on capturing and analyzing user operation behavior on iOS and Android apps. It provides operation playback (video/text), operation detection via DSL-based policies, and data visualization, all without intruding into business code.", "when_to_avoid": ["you only need web session replay", "you need a full commercial analytics platform with dashboards and funnels", "your app targets platforms other than iOS or Android"], "when_to_choose": ["you need to replay or analyze real user interactions on iOS or Android", "you want behavior detection rules without instrumenting business code", "you need scriptless automated testing based on recorded operations"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/didiprism", "repo": "didi/DiDiPrism", "role": "main", "score": 40}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "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:30.319308+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:30.319308+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:29:55.216000+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a9cda2fef73fb1fe56f949bc0fb63068edc670605ed42075c6c171889e57db32", "fetched_at": "2026-08-28T04:05:30.319308+00:00", "kind": "readme", "missing": false, "url": "https://github.com/didi/DiDiPrism"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 22, "longevity": 100, "rhythm": 28}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2109, "days_push": 468, "days_rel": 513, "gap_med": 40, "n_releases_24m": 2}, "score": 40, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}