{"adoption": {"forks": 146, "observed_at": "2026-08-28T04:05:32.368379+00:00", "stars": 1758}, "canonical_url": "https://ross.abutalabs.com/products/shortbread", "card": {"archived": false, "artifact_type": "library", "description": "Android library that creates app shortcuts from annotations", "domain": ["mobile-development", "android-tools", "developer-tools"], "enriched": true, "function": ["sdk", "developer-tools"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["MatthiasRobbers/shortbread"], "name": "MatthiasRobbers/shortbread", "platform": ["jvm"], "pushed_at": "2021-04-10T13:04:09+00:00", "repo": "MatthiasRobbers/shortbread", "stars": 1758, "tags": ["annotation-processor", "app-shortcuts", "deep-links", "kotlin", "gradle-plugin", "code-generation", "android", "gradle"], "topics": ["android", "android-library", "annotation-processor", "app-shortcuts", "deep-links", "code-generation", "kotlin", "gradle-plugin"], "urls": [], "use_cases": ["add static and dynamic app shortcuts to an Android app with annotations", "generate Android app shortcuts without touching the manifest or XML files", "create home screen shortcuts that launch specific activities or methods", "customize shortcut icons, labels, ranks, and back stacks declaratively", "wire deep links into launcher shortcuts from annotated code"], "what_it_is": "Shortbread is an Android library that generates app shortcuts from @Shortcut annotations on activities and methods, using annotation processing and code generation. It eliminates the need to manually edit the manifest, write XML files, or call the ShortcutManager API.", "when_to_avoid": ["you need shortcuts on platforms or Android versions outside the app shortcuts API", "you avoid annotation processors or kapt in your build", "you need a library under active development with recent releases"], "when_to_choose": ["you want boilerplate-free Android app shortcuts defined next to your activities and methods", "you prefer annotation processing and code generation over manual manifest and ShortcutManager setup", "your project uses Java or Kotlin with kapt and Gradle"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/shortbread", "repo": "MatthiasRobbers/shortbread", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "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:32.368379+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:32.368379+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:27:33.323875+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "33c2f6322b94d92a2d0d765babf5eaf926d2f21b83ae8fab08021b97dcc3c273", "fetched_at": "2026-08-28T04:05:32.368379+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MatthiasRobbers/shortbread"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "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": 3490, "days_push": 1971, "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}}