{"adoption": {"forks": 71, "observed_at": "2026-08-28T04:04:25.208754+00:00", "stars": 1337}, "canonical_url": "https://ross.abutalabs.com/products/app-store-preflight-skills", "card": {"archived": false, "artifact_type": "plugin", "description": "AI agent skill to scan iOS/macOS projects for App Store rejection patterns before submission", "domain": ["developer-tools", "apple-ecosystem", "mobile-development"], "enriched": true, "function": ["developer-tools", "security", "code-review", "workflow-automation"], "health_score": 71, "homepage": null, "language": null, "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["truongduy2611/app-store-preflight-skills"], "name": "truongduy2611/app-store-preflight-skills", "platform": ["cli", "cross-platform"], "pushed_at": "2026-05-29T06:22:31+00:00", "repo": "truongduy2611/app-store-preflight-skills", "stars": 1337, "tags": ["ai-agent-skill", "app-store", "ios", "macos", "xcode", "app-review-guidelines", "preflight-checks", "app-store-connect", "automation"], "topics": [], "urls": [], "use_cases": ["check my iOS app for App Store rejection risks before submitting", "scan Xcode project for App Review guideline violations", "validate App Store metadata before a new submission", "get a preflight checklist for a subscription or kids app", "find common mistakes that lead to App Store rejection", "audit macOS app for Mac App Store compliance"], "what_it_is": "An AI agent skill that scans iOS/macOS Xcode projects, source code, and App Store metadata for patterns that commonly cause App Store rejection. It integrates with the App Store Connect CLI to pull metadata and reports findings with severity and resolution steps.", "when_to_avoid": ["you target Google Play or other non-Apple app stores", "you need guaranteed approval - it only flags common patterns, not a substitute for Apple's review", "you don't use AI agent tooling or the App Store Connect CLI ecosystem"], "when_to_choose": ["you ship iOS or macOS apps to the App Store and want to catch rejection causes early", "you use AI coding agents and want App Review guideline checks built into your workflow", "you manage App Store metadata and want automated validation against Apple's guidelines"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/app-store-preflight-skills", "repo": "truongduy2611/app-store-preflight-skills", "role": "main", "score": 52}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "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:04:25.208754+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:25.208754+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:05.258985+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "b2326f6b79d2862bbc72a9c03a6a2b1977975897d69b117013e9e5fee23949da", "fetched_at": "2026-08-28T04:04:25.208754+00:00", "kind": "readme", "missing": false, "url": "https://github.com/truongduy2611/app-store-preflight-skills"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 84, "longevity": 11, "rhythm": 35}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_releases", "young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 167, "days_push": 96, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 52, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}