[GH-ISSUE #496] [Feature] Inspect compiled Apple asset catalogs and rendition metadata #269

Closed
opened 2026-10-15 18:23:14 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @morluto on GitHub (Oct 2, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/496

Area

Evidence, artifacts, or reconstruction

Current limitation

Application-bundle inventory treats a compiled Apple Assets.car catalog as an opaque file. On macOS, assetutil can expose catalog names and rendition metadata, but it does not decode image pixels. Analysts currently have to use separate scripts and correlate the catalog manually with serialized scene/resource keys.

Use cases

  • Identify available app icons, interface illustrations, scene textures, and localized or appearance-specific variants.
  • Resolve exact resource keys found in storyboards, nibs, SpriteKit scenes, or other decoded bundle resources to catalog renditions.
  • Compare which named resources and rendition variants are present in two application versions.

Desired outcome

Add a read-only capability that inventories compiled Apple asset catalogs and returns catalog names with their rendition records: source rendition name, dimensions, scale, idiom/device, localization, appearance/trait variants, and source digest when available. Preserve the input artifact digest and exact bundle occurrence path. Where a decoded resource references an exact asset key, report that exact-key relationship with source provenance; keep ambiguous or unmatched keys explicit.

Image pixel extraction or preview generation should remain a separate, explicitly supported capability. Do not make inspection depend on undocumented private CoreUI APIs. The metadata inventory should remain useful when pixel decoding is unavailable.

Success criteria

  • Deterministic fixtures cover multiple scales, idioms, locales, appearance variants, duplicate names, malformed catalogs, and missing optional metadata.
  • Results distinguish catalog keys from physical rendition names and avoid guessing a unique source record when metadata matches multiple records.
  • Exact totals, pagination/truncation, artifact digest, occurrence path, and command/tool provenance are returned.
  • Inspection is read-only and does not rewrite or filter the source catalog.
  • Tests verify exact resource-key joins and preserve unresolved or ambiguous joins as unknown.

Relationship to existing capabilities

This complements inspect_artifact, extract_artifact, and decode_interface_builder: inventory provides semantic metadata for an opaque catalog file, while extraction remains an explicit separate operation and UI decoding supplies possible resource-key references.

Originally created by @morluto on GitHub (Oct 2, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/496 ## Area Evidence, artifacts, or reconstruction ## Current limitation Application-bundle inventory treats a compiled Apple `Assets.car` catalog as an opaque file. On macOS, `assetutil` can expose catalog names and rendition metadata, but it does not decode image pixels. Analysts currently have to use separate scripts and correlate the catalog manually with serialized scene/resource keys. ## Use cases - Identify available app icons, interface illustrations, scene textures, and localized or appearance-specific variants. - Resolve exact resource keys found in storyboards, nibs, SpriteKit scenes, or other decoded bundle resources to catalog renditions. - Compare which named resources and rendition variants are present in two application versions. ## Desired outcome Add a read-only capability that inventories compiled Apple asset catalogs and returns catalog names with their rendition records: source rendition name, dimensions, scale, idiom/device, localization, appearance/trait variants, and source digest when available. Preserve the input artifact digest and exact bundle occurrence path. Where a decoded resource references an exact asset key, report that exact-key relationship with source provenance; keep ambiguous or unmatched keys explicit. Image pixel extraction or preview generation should remain a separate, explicitly supported capability. Do not make inspection depend on undocumented private CoreUI APIs. The metadata inventory should remain useful when pixel decoding is unavailable. ## Success criteria - Deterministic fixtures cover multiple scales, idioms, locales, appearance variants, duplicate names, malformed catalogs, and missing optional metadata. - Results distinguish catalog keys from physical rendition names and avoid guessing a unique source record when metadata matches multiple records. - Exact totals, pagination/truncation, artifact digest, occurrence path, and command/tool provenance are returned. - Inspection is read-only and does not rewrite or filter the source catalog. - Tests verify exact resource-key joins and preserve unresolved or ambiguous joins as unknown. ## Relationship to existing capabilities This complements `inspect_artifact`, `extract_artifact`, and `decode_interface_builder`: inventory provides semantic metadata for an opaque catalog file, while extraction remains an explicit separate operation and UI decoding supplies possible resource-key references.
bsakaguchi 2026-10-15 18:23:14 +00:00
Author
Owner

@morluto commented on GitHub (Oct 8, 2026):

Verified fixed on main (7a7460f0). AppleAssetCatalogAnalysis.ts + domain/apple/appleAssetCatalog.ts ship rendition inventory with appleAssetCatalog.test.ts passing (2/2). Closing per audit.

<!-- gh-comment-id:6071374703 --> @morluto commented on GitHub (Oct 8, 2026): Verified fixed on main (7a7460f0). AppleAssetCatalogAnalysis.ts + domain/apple/appleAssetCatalog.ts ship rendition inventory with appleAssetCatalog.test.ts passing (2/2). Closing per audit.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#269
No description provided.