From e6aa7feda9beee21995534f9abddc4591467d7c5 Mon Sep 17 00:00:00 2001 From: ukimsanov Date: Fri, 12 Jun 2026 01:02:44 -0700 Subject: [PATCH] =?UTF-8?q?fix(skill):=20hard=20landmine=20=E2=80=94=20sea?= =?UTF-8?q?rch=20asset-descriptions.md=20before=20composing=20a=20logo?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Verified root cause of the heygen + huly logo miss across the last two real-AI-test runs: - SVG capture filenames are content-hash slugs (svg-<8char>.svg), so the brand name is NOT in the filename. The real heygen lockup is at svg-54ea56cd.svg; the real huly wordmark is at svg-ec034b11.svg. - In BOTH project captures, 0 / 32 (heygen) and 0 / 19 (huly) SVGs got the DOM-derived `isLogo: true` flag, so the `logo-.svg` prefix path from commit 5f290345 never fired. (Separate fix incoming for the detector itself.) - asset-descriptions.md CORRECTLY identifies both logos via Gemini Vision ("wordmark reading 'HeyGen' next to a four-lobed diamond" / "white wordmark... featuring a stylized 'H' icon to the left of the lowercase letters 'huly'") — agents just didn't search it before composing a fake. The first run agent self-critique on both projects: "I had the workers compose the [brand] mark from scratch... instead of dropping in the actual captured logo... that was the wrong tradeoff for brand fidelity." Doc changes (no code in this commit — code fixes for isLogo detection + no-Gemini fallback come in separate commits): 1. beat-builder-guide.md — new section "Logo discovery — search asset-descriptions.md BEFORE composing one" as a hard rule. Walks the agent through the 3-step procedure (grep brand name → open SVG to verify → reference from beat). Calls out the brand-fidelity violation explicitly: composing a logo when a captured one exists ships as off-brand. Notes the valid path of RECOLORING captured monochrome SVGs (which the heygen agent's later swap-in pass did correctly with the aurora gradient). 2. beat-builder-guide.md — new section "Captured videos — they're in the manifest, not on disk" documenting that capture/extracted/video- manifest.json carries every