phd-pdf-images-gate: 44/44 \includegraphics resolve to ZERO — slug-vs-title mismatch
TL;DR: ВСЕ 44 уникальных \includegraphics{} в docs/phd/**/*.tex используют title-pattern (ch01-introduction.png), но на диске PNG лежат slug-pattern (00-monad.png). tectonic ест отсутствующие graphics молча → PDF без картинок. Это нарушает phd-pdf-images-gate skill (тогда tectonic exit-code ≠ единственный success signal).
R5-verified state (commit 756cf359 on main @ 2026-05-13T11:53Z)
$ grep -rohE '\\includegraphics(\[[^]]*\])?\{[^}]+\}' --include="*.tex" docs/phd/ \
| sed -E 's/.*\{([^}]+)\}/\1/' | sort -u | wc -l
44
$ ls assets/illustrations/ | wc -l
44 # ровно 44 PNG — но slug-pattern!
Sample mismatch (первые 5)
| .tex references (title-pattern) |
assets/illustrations/ (slug-pattern) |
app-a-cover-abstract.png |
00-monad.png |
app-b-golden-ledger.png |
01-golden-egg.png |
app-c-acknowledgments.png |
02-golden-cut.png |
app-d-reproducibility-scripts.png |
03-golden-harvest.png |
app-f-bitstream-archive.png |
04-golden-scales.png |
\graphicspath{{assets/}{../../assets/illustrations/}}
Ни один из prefix × target × ext (prefix ∈ {"",assets/,../}, ext ∈ {``,.png,`.jpg`,`.pdf`}) не резолвится → 0/44 match.
Полный список 44 targets: см. attachment /tmp/all_targets.txt локально или regen командой выше.
Why это критично
- tectonic exit-code = 0 при отсутствующих graphics — silent failure. См. skill
phd-pdf-images-gate.
- Defense 2026-06-15 — PhD monograph должен иметь все illustrations (анхор da-vinci-azbuka).
- R5-violation: ранее tri-phd-build говорил "GREEN" хотя картинок нет.
Две альтернативы фикса (нужно решение оператора)
Option A: переименовать \includegraphics{} в .tex → slug-pattern
- Pro: PNG-файлы остаются как есть (canonical naming от художника)
- Con: 44 правки в LaTeX (по 1-2 на chapter/appendix)
- Compatible с:
da-vinci-azbuka v5.16 (он именно slug-pattern предписывает)
Option B: добавить symlinks slug → title в assets/illustrations/
ln -s 00-monad.png assets/illustrations/cover_v4.png
ln -s 01-golden-egg.png assets/illustrations/ch01-introduction.png
# ... ×44
- Pro: 0 правок в .tex, обратимо
- Con: 44 symlinks в git, slug↔title mapping нужно где-то документировать
- Compatible с:
phd-architectural-blueprint-figures v1.0 (filename = chapter name)
Option C (hybrid, рекомендуется): centralize mapping
- Один файл
docs/phd/figure-map.tex с \newcommand{\figCh01}{00-monad} × 44
- В .tex использовать
\includegraphics{\figCh01} вместо \includegraphics{ch01-introduction.png}
- Художник переименовывает PNG → меняем только map, .tex не трогаем
Pre-registered acceptance (для phd-pdf-images-gate)
# Все 3 условия должны быть зелёными:
# 1. Каждый \includegraphics{T} резолвится к файлу
for t in $(grep -rohE '\\includegraphics(\[[^]]*\])?\{[^}]+\}' --include="*.tex" docs/phd/ \
| sed -E 's/.*\{([^}]+)\}/\1/' | sort -u); do
found=0
for pre in "" "assets/" "../../assets/illustrations/"; do
for ext in "" ".png" ".jpg" ".pdf"; do
[ -f "docs/phd/${pre}${t}${ext}" ] && found=1 && break 2
done
done
[ $found -eq 0 ] && echo "MISSING: $t"
done | wc -l # должно быть 0
# 2. tectonic PDF содержит N=44 graphics
pdfimages -list docs/phd/main.pdf | tail -n +3 | wc -l # ≥ 44
# 3. Hash каждой картинки = hash файла на диске (no silent placeholder)
Related
- Sibling skill:
phd-pdf-images-gate v1.0 — это именно тот kind of silent failure, который skill должен ловить.
- Sibling skill:
da-vinci-azbuka v5.16 — addresses slug-vs-title mismatch (Option A).
- Sibling skill:
phd-architectural-blueprint-figures v1.0 — title-pattern naming (Option B/C).
- Defense 2026-06-15 — hard deadline.
Anchor
φ² + φ⁻² = 3 · R5-HONEST · DOI 10.5281/zenodo.19227877 (B007) · Defense 2026-06-15
🤖 Filed by Trinity Queen Hive (PASS-9 «все фиксить!!»)
phd-pdf-images-gate: 44/44 \includegraphics resolve to ZERO — slug-vs-title mismatch
TL;DR: ВСЕ 44 уникальных
\includegraphics{}вdocs/phd/**/*.texиспользуют title-pattern (ch01-introduction.png), но на диске PNG лежат slug-pattern (00-monad.png). tectonic ест отсутствующие graphics молча → PDF без картинок. Это нарушаетphd-pdf-images-gateskill (тогда tectonic exit-code ≠ единственный success signal).R5-verified state (commit
756cf359onmain@ 2026-05-13T11:53Z)Sample mismatch (первые 5)
app-a-cover-abstract.png00-monad.pngapp-b-golden-ledger.png01-golden-egg.pngapp-c-acknowledgments.png02-golden-cut.pngapp-d-reproducibility-scripts.png03-golden-harvest.pngapp-f-bitstream-archive.png04-golden-scales.png\graphicspath{{assets/}{../../assets/illustrations/}}Ни один из
prefix × target × ext(prefix ∈ {"",assets/,../}, ext ∈ {``,.png,`.jpg`,`.pdf`}) не резолвится → 0/44 match.Полный список 44 targets: см. attachment
/tmp/all_targets.txtлокально или regen командой выше.Why это критично
phd-pdf-images-gate.Две альтернативы фикса (нужно решение оператора)
Option A: переименовать
\includegraphics{}в .tex → slug-patternda-vinci-azbukav5.16 (он именно slug-pattern предписывает)Option B: добавить symlinks slug → title в
assets/illustrations/ln -s 00-monad.png assets/illustrations/cover_v4.png ln -s 01-golden-egg.png assets/illustrations/ch01-introduction.png # ... ×44phd-architectural-blueprint-figuresv1.0 (filename = chapter name)Option C (hybrid, рекомендуется): centralize mapping
docs/phd/figure-map.texс\newcommand{\figCh01}{00-monad}× 44\includegraphics{\figCh01}вместо\includegraphics{ch01-introduction.png}Pre-registered acceptance (для phd-pdf-images-gate)
Related
phd-pdf-images-gatev1.0 — это именно тот kind of silent failure, который skill должен ловить.da-vinci-azbukav5.16 — addresses slug-vs-title mismatch (Option A).phd-architectural-blueprint-figuresv1.0 — title-pattern naming (Option B/C).Anchor
φ² + φ⁻² = 3 · R5-HONEST · DOI 10.5281/zenodo.19227877 (B007) · Defense 2026-06-15
🤖 Filed by Trinity Queen Hive (PASS-9 «все фиксить!!»)