You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix(paper2assets): deterministic Microsoft logo — trust alias over opensearch + write logos.json manifest
Follow-up to the ALIASES retarget: mapping MSRA->Microsoft alone was not
enough. fetch_logo_for() also ran a free-text Wikipedia opensearch on the
raw name, which pulled the sibling-brand 'Microsoft Research' page into the
candidate list and won nondeterministically whenever the 'Microsoft' page
fetch flaked -> random drift to the MSR wordmark.
- Fix B (real fix): when any candidate has an explicit ALIAS, trust it and
SKIP the opensearch fallback; only allow disambiguation variants of the
alias TARGET. Non-aliased institutes keep the full opensearch path.
- Fix A: always persist the full manifest to assets/logos/logos.json so a
stdout piped through tail/head can't drop the mapped slug (msra->microsoft).
- SKILL.md: direct the agent to read slug/path from JSON/logos.json, never
invent a filename.
Verified: MSRA -> microsoft.png 5/5 (was drifting); Stanford/Meta/Tsinghua/
Runway ML unaffected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The deterministic Wikimedia pass gets the easy ones; obscure / non-English / newly-founded institutes routinely miss it. **You MUST close the gap** rather than shipping a logo-less header:
598
598
599
599
1. Run `fetch_logos.py` (command above). It prints a **✓/✗ CHECKLIST** to stderr and a JSON object `{"logos": [...], "missing": ["Institute A", ...]}` to stdout.
600
+
> **ALWAYS take each logo's `path`/`slug` from the JSON — or from `assets/logos/logos.json`, which the script now always writes — never invent a filename from the institute name.** The script canonicalizes + maps names (e.g. *Microsoft Research Asia* → slug `microsoft` → `assets/logos/microsoft.png`, the four-square corporate mark). If you piped stdout through `tail`/`head` and lost entries, read `assets/logos/logos.json` — it always has the full, correct list.
600
601
2.**Read the `"missing"` array.** For **EVERY** name in it, run the web-search fallback — this is required, not optional:
601
602
-`WebSearch``"<institute> official logo png"` (try `svg`, or the institute's English name / acronym expansion if the raw string is a department or non-English name).
602
603
- Pick the **official** mark from the institute's own site / brand-resources page, Wikipedia/Wikimedia, or an official social profile — **skip** stock-photo aggregators, third-party redraws, photos, campus/building shots, and flags. `WebFetch` the page if you need to locate the direct image URL.
0 commit comments