{"adoption": {"forks": 137, "observed_at": "2026-08-28T04:05:44.263132+00:00", "stars": 1851}, "canonical_url": "https://ross.abutalabs.com/products/xclogparser", "card": {"archived": false, "artifact_type": "cli-tool", "description": "Tool to parse Xcode and xcodebuild logs stored in the xcactivitylog format", "domain": ["developer-tools", "analytics"], "enriched": true, "function": ["parser", "cli", "developer-tools", "analytics", "serialization"], "health_score": 95, "homepage": null, "language": "Swift", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["MobileNativeFoundation/XCLogParser"], "name": "MobileNativeFoundation/XCLogParser", "platform": ["cli"], "pushed_at": "2026-07-07T18:07:50+00:00", "repo": "MobileNativeFoundation/XCLogParser", "stars": 1851, "tags": ["xcode", "xcactivitylog", "xcodebuild", "build-times", "ios-development", "swift-package-manager", "build-logs", "ci-analytics", "command-line", "automation", "macos", "swift"], "topics": ["swift", "swift-package-manager", "xcode", "xcactivitylog"], "urls": [], "use_cases": ["analyze xcode build times per module and file", "extract warnings and errors from xcactivitylog files", "parse unit test results from xcodebuild logs", "convert xcactivitylog to json", "generate html build reports after xcode builds", "collect build metrics for historical analysis in ci"], "what_it_is": "XCLogParser is a Swift CLI tool that parses Xcode and xcodebuild build and test logs stored in the xcactivitylog (SLF) format. It generates reports in JSON, HTML, Chrome Tracer, and other formats to analyze build times, warnings, errors, and unit test results.", "when_to_avoid": ["you need to parse logs from non-Apple build systems", "you want a GUI-based log viewer without CLI usage"], "when_to_choose": ["you need programmatic access to Xcode build/test log contents", "you want to track build performance over time", "you're building developer tools that consume Xcode logs outside the IDE"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xclogparser", "repo": "MobileNativeFoundation/XCLogParser", "role": "main", "score": 89}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "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:44.263132+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:44.263132+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:16:54.535501+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2882dec72bafacd19e01b9f747d6f20c967ce4dd54d734c0236f7b0b57c2a8de", "fetched_at": "2026-08-28T04:05:44.263132+00:00", "kind": "readme", "missing": false, "url": "https://github.com/MobileNativeFoundation/XCLogParser"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 91, "longevity": 100, "rhythm": 80}, "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": 2660, "days_push": 57, "days_rel": 57, "gap_med": 52, "n_releases_24m": 10}, "score": 89, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}