========== YENİ KOMUT | 16.09.2026 15:25:29 ==========
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-254- return token[len(prefix):] if token.startswith(prefix) else token
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-255-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-256-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-257-def _proof_verdict_accepted(verdict: Any, token: str) -> bool:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909:258: """Accept proof only when every selected footage role is unambiguous."""
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-259- return bool(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-260- isinstance(verdict, dict)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-261- and verdict.get("verdict") == "PASS"
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-262- and verdict.get("verifier") == "vision_analyze"
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-341- with _LOCK:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-342- if signature in _VISION_SEEN:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-343- return _block(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-344- "Shorts production guard: this exact visual evidence has already been "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909:345: "asked the same question. Reuse the existing result. If evidence was repaired "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-346- "or the verification question genuinely needs correction, change the evidence "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-347- "or question rather than repeating the same call."
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-348- )
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-349- return None
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-514- if not image_url:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-515- return
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-516-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-517- # A provider failure is not reviewed evidence. Mark only completed Vision
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909:518: # calls as seen so the provider's explicit retry can reuse the exact sheet
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-519- # and question instead of forcing a meaningless evidence mutation.
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-520- raw_identity = image_url[7:] if image_url.startswith("file://") else image_url
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-521- try:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.bak-pre-delegation-lock-20260909-522- image_identity = _sha_file(Path(raw_identity).expanduser().resolve())
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-222-Gerçek dünyada görüntülenebilen bir ana vaat varsa pahalı üretime başlamadan önce `proof_gate.mode: visual_proof` kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-223-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-224-Manifestte:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-225-- `proof_gate.receipt`: canonical proof receipt yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224:226:- `proof_gate.candidates`: yalnız gerçekten ana vaadi/hook'u kanıtlayabilecek aday footage;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224:227:- her candidate: `src`, `source_origin`, `visual_goal`, `covers`, `in`, `duration`;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-228-- `covers` içinde gereken hedefler: `primary_visual_proof` ve `hook_visual_goal`.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-229-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-230-Önce:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-231-`production_guardrails.py proof-check --manifest <manifest> --workdir <proof_gate_dir>`
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-253-- VTT zamanlamasını kullanacak altyazı yaklaşımı;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-254-- her beat için shot manifesti ve mevcut yerel asset yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-255-- final çıktı yolu ve kabul kriterleri.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-256-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224:257:Mevcut workspace ve asset yolları biliniyorsa `/home/hermes` genelinde tekrar `search_files` taraması yapma. Bilinen proje dizinini ve mevcut manifest/cache bilgisini kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-258-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-259-TTS sesi henüz doğrulanmamışsa gerekli en küçük karşılaştırmayı yap; seçimden sonra tekrar ses keşfi yapma. Her durumda narration ile birlikte kısa bir performance/prosody planı oluştur.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-260-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-261-İlk canonical pipeline çalıştırmasından önce narration'ın beklenen konuşma süresi ile shot planının toplam görsel süresini ve her footage kaynağındaki kullanılabilir zaman aralığını birlikte düşün. Özellikle final shot'ın kalan narration'ı taşıyabilmesi için kaynakta yeterli gerçek süre olduğundan emin ol. Süre uyuşmazlığını pahalı render başladıktan sonra keşfetme; narration'ı sırf mevcut bir shot kısa kaldı diye otomatik kısaltmak yerine hikâye, ritim ve uygun kaynak seçimini birlikte yeniden değerlendir.
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-338-### Faz 4 — Teslim
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-339-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-340-Tek final MP4 teslim et. Son raporu kısa tut ve yalnız doğrulanmış metrikleri yaz.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-341-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224:342:Ana Codex modeli kıt bir üretim kaynağıdır. Kaliteyi düşürmeden mümkün olan en az ana-model turuyla işi tamamlamayı hedefle. Her yeni agent-loop, arama, okuma veya QA çağrısından önce bunun gerçekten yeni bilgi, kanıt veya gerekli bir karar üretip üretmeyeceğini düşün. Bağımsız işleri toplu yürüt, mevcut cache/state/asset ve deterministic araçları yeniden keşfetmeden kullan; fakat yalnız kota kazanmak için gerekli kalite adımlarını atlama.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-343-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-344-## Montaj Kullanım Kararı
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-345-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-p0-tests-version-20260907-203224-346-- **Hazır görsel master + yalnız ses/müzik:** FFmpeg direct mux varsayılandır. Video üzerinde değişiklik gerekmiyorsa `-c:v copy` ile video stream’i yeniden encode etme.
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-226-Gerçek dünyada görüntülenebilen bir ana vaat varsa pahalı üretime başlamadan önce `proof_gate.mode: visual_proof` kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-227-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-228-Manifestte:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-229-- `proof_gate.receipt`: canonical proof receipt yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908:230:- `proof_gate.candidates`: yalnız gerçekten ana vaadi/hook'u kanıtlayabilecek aday footage;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908:231:- her candidate: `src`, `source_origin`, `visual_goal`, `covers`, `in`, `duration`;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-232-- `covers` içinde gereken hedefler: `primary_visual_proof` ve `hook_visual_goal`.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-233-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-234-Önce:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-235-`production_guardrails.py proof-check --manifest <manifest> --workdir <proof_gate_dir>`
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-259-- VTT zamanlamasını kullanacak altyazı yaklaşımı;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-260-- her beat için shot manifesti ve mevcut yerel asset yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-261-- final çıktı yolu ve kabul kriterleri.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-262-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908:263:Mevcut workspace ve asset yolları biliniyorsa `/home/hermes` genelinde tekrar `search_files` taraması yapma. Bilinen proje dizinini ve mevcut manifest/cache bilgisini kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-264-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-265-TTS sesi henüz doğrulanmamışsa gerekli en küçük karşılaştırmayı yap; seçimden sonra tekrar ses keşfi yapma. Her durumda narration ile birlikte kısa bir performance/prosody planı oluştur.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-266-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-267-İlk canonical pipeline çalıştırmasından önce narration'ın beklenen konuşma süresi ile shot planının toplam görsel süresini ve her footage kaynağındaki kullanılabilir zaman aralığını birlikte düşün. Özellikle final shot'ın kalan narration'ı taşıyabilmesi için kaynakta yeterli gerçek süre olduğundan emin ol. Süre uyuşmazlığını pahalı render başladıktan sonra keşfetme; narration'ı sırf mevcut bir shot kısa kaldı diye otomatik kısaltmak yerine hikâye, ritim ve uygun kaynak seçimini birlikte yeniden değerlendir.
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-348-### Faz 4 — Teslim
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-349-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-350-Tek final MP4 teslim et. Son raporu kısa tut ve yalnız doğrulanmış metrikleri yaz.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-351-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908:352:Ana Codex modeli kıt bir üretim kaynağıdır. Kaliteyi düşürmeden mümkün olan en az ana-model turuyla işi tamamlamayı hedefle. Her yeni agent-loop, arama, okuma veya QA çağrısından önce bunun gerçekten yeni bilgi, kanıt veya gerekli bir karar üretip üretmeyeceğini düşün. Bağımsız işleri toplu yürüt, mevcut cache/state/asset ve deterministic araçları yeniden keşfetmeden kullan; fakat yalnız kota kazanmak için gerekli kalite adımlarını atlama.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-353-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-354-## Montaj Kullanım Kararı
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-355-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-pre-turn-economy-20260908-356-- **Hazır görsel master + yalnız ses/müzik:** FFmpeg direct mux varsayılandır. Video üzerinde değişiklik gerekmiyorsa `-c:v copy` ile video stream’i yeniden encode etme.
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-194-Gerçek dünyada görüntülenebilen bir ana vaat varsa pahalı üretime başlamadan önce `proof_gate.mode: visual_proof` kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-195-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-196-Manifestte:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-197-- `proof_gate.receipt`: canonical proof receipt yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:198:- `proof_gate.candidates`: yalnız gerçekten ana vaadi/hook'u kanıtlayabilecek aday footage;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:199:- her candidate: `src`, `source_origin`, `visual_goal`, `covers`, `in`, `duration`;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-200-- `covers` içinde gereken hedefler: `primary_visual_proof` ve `hook_visual_goal`.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-201-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-202-Önce:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-203-`production_guardrails.py proof-check --manifest <manifest> --workdir <proof_gate_dir>`
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-225-- VTT zamanlamasını kullanacak altyazı yaklaşımı;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-226-- her beat için shot manifesti ve mevcut yerel asset yolu;
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-227-- final çıktı yolu ve kabul kriterleri.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-228-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:229:Mevcut workspace ve asset yolları biliniyorsa `/home/hermes` genelinde tekrar `search_files` taraması yapma. Bilinen proje dizinini ve mevcut manifest/cache bilgisini kullan.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-230-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-231-TTS sesi henüz doğrulanmamışsa gerekli en küçük karşılaştırmayı yap; seçimden sonra tekrar ses keşfi yapma. Her durumda narration ile birlikte kısa bir performance/prosody planı oluştur.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-232-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-233-### Faz 2 — Deterministic fast pipeline
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-300-### Faz 4 — Teslim
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-301-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-302-Tek final MP4 teslim et. Son raporu kısa tut ve yalnız doğrulanmış metrikleri yaz.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-303-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:304:Ana Codex modeli kıt bir üretim kaynağıdır. Kaliteyi düşürmeden mümkün olan en az ana-model turuyla işi tamamlamayı hedefle. Her yeni agent-loop, arama, okuma veya QA çağrısından önce bunun gerçekten yeni bilgi, kanıt veya gerekli bir karar üretip üretmeyeceğini düşün. Bağımsız işleri toplu yürüt, mevcut cache/state/asset ve deterministic araçları yeniden keşfetmeden kullan; fakat yalnız kota kazanmak için gerekli kalite adımlarını atlama.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-305-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-306-## Montaj Kullanım Kararı
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-307-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-308-- **Hazır görsel master + yalnız ses/müzik:** FFmpeg direct mux varsayılandır. Video üzerinde değişiklik gerekmiyorsa `-c:v copy` ile video stream’i yeniden encode etme.
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-362-2. Programmatic graphics/annotations must belong to the affected shot, be materialized before canonical assembly, and declare `materialized: true` plus pixel `bbox`. Global or unmaterialized graphics are deterministic FAIL.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-363-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-364-3. Canonical visual assembly and local repair use:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-365- `/home/hermes/.hermes/skills/media/shorts-core/scripts/production_guardrails.py segment-build --manifest <manifest.json> --output <visual_master.mp4> [--subtitles-ass <captions.ass>]`
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:366: Unchanged segments must reuse cache.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-367-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:368:4. Missing/invalid/low-resolution assets hard-fail. `source_origin` tekrarları provenance üzerinden korunur; 3+ tekrar veya bitişik tekrar açık `intentional_callback` + `reuse_reason` olmadan hard-fail olur. Extreme washed/flat signal candidates review uyarısıdır.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-369-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-370-5. Final QA order:
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-371- preflight → repairs → final render → semantic contact sheet → one final vision QA → no visual change after PASS.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-372-
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-382-- Never call Hermes from Hermes (`hermes chat`, self-review, self-delegation loops).
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-383-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-384-2. FRESH PRODUCTION
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-385-- Every requested video is a fresh run in a new unique project directory.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:386:- Do not reuse an old final, manifest, narration, voice file, QA result, or previous-session artifact unless the user explicitly asks for reuse.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-387-- Do not search past sessions during production.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-388-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-389-3. COST/TIME DISCIPLINE
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-390-- Batch related web searches and shell operations.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:391:- Prefer one good source-selection pass over repeated searching.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-392-- Do not keep searching after suitable footage is found.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-393-- No arbitrary `sleep`; one provider retry only when the provider explicitly requires it.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-394-- Main Codex decides and directs; cheap/free configured auxiliaries handle their intended side tasks.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-395-
--
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-411-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-412-6. TTS
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-413-- Production TTS is Google Cloud Chirp 3 HD through the canonical shorts pipeline.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-414-- Current default voice: `tr-TR-Chirp3-HD-Algieba`, chosen for the present documentary-heavy production phase.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808:415:- `tr-TR-Chirp3-HD-Iapetus` remains an approved alternative. Voice selection is not permanently fixed: future production may route different approved voices by video type and channel identity.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-416-- Legacy TTS voices are not production voices.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-417-- Do not synthesize with an ad-hoc TTS path outside the canonical pipeline.
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-418-
/home/hermes/.hermes/skills/media/shorts-core/SKILL.md.bak-proof-vision-semantics-20260907-012808-419-7. SOUND DESIGN
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-177-def _runtime_proof_fingerprint(data: dict) -> str:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-178- """Mirror the canonical proof fingerprint so accepted proof can be frozen at runtime."""
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-179- creative = data.get("creative_intent") or {}
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-180- gate = data.get("proof_gate") or {}
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:181: candidates = gate.get("candidates") or []
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-182-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-183- normalized = []
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:184: for c in candidates:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-185- if not isinstance(c, dict):
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-186- normalized.append(c)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-187- continue
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-188- item = dict(c)
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-199- else:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-200- item["_source_identity"] = {"path": str(path), "missing": True}
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-201- normalized.append(item)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-202-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:203: selected_casting = []
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-204- for index, shot in enumerate(data.get("shots") or []):
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-205- if not isinstance(shot, dict) or "footage" not in str(shot.get("type") or "").lower():
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-206- continue
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-207- item = {
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-224- "mtime_ns": st.st_mtime_ns,
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-225- }
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-226- else:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-227- item["_source_identity"] = {"path": str(path), "missing": True}
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:228: selected_casting.append(item)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-229-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-230- payload = {
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-231- "creative_intent": {
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-232- "promise": creative.get("promise"),
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-235- "payoff": creative.get("payoff"),
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-236- },
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-237- "proof_gate": {
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-238- "mode": gate.get("mode"),
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:239: "candidates": normalized,
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-240- },
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:241: "selected_casting": selected_casting,
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-242- }
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-243- return hashlib.sha256(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-244- json.dumps(payload, sort_keys=True, ensure_ascii=False).encode("utf-8")
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-245- ).hexdigest()
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-302- prospective = json.loads(prospective_text)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-303- if _runtime_proof_fingerprint(prospective) != current_fp:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-304- return _block(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-305- "Shorts production guard: PROOF_FREEZE — accepted proof is locked. "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:306: "Do not change creative_intent, proof candidates, or selected footage/casting "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-307- "after Vision PASS. Continue with TTS/render/final QA using the accepted plan. "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-308- "A genuine proof failure must be handled before acceptance, not by reopening "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-309- "the proof loop after PASS."
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-310- )
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-419- return token[len(prefix):] if token.startswith(prefix) else token
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-420-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-421-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-422-def _proof_verdict_accepted(verdict: Any, token: str) -> bool:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:423: """Accept proof only when every selected footage role is unambiguous."""
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-424- return bool(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-425- isinstance(verdict, dict)
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-426- and verdict.get("verdict") == "PASS"
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-427- and verdict.get("verifier") == "vision_analyze"
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-526- ):
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-527- return _block(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-528- "Shorts production guard: PROOF_STRATEGY_EXHAUSTED — this proof strategy "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-529- "already failed initial review plus one repair. Do not retry Vision on the "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:530: "same accepted candidates/casting. Materially change the proof footage or "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-531- "casting, rerun proof-check, and continue the production autonomously."
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-532- )
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-533-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-534- # Content identity matters more than filename: a repaired final_contact_sheet
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-553- with _LOCK:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-554- if signature in _VISION_SEEN:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-555- return _block(
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-556- "Shorts production guard: this exact visual evidence has already been "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:557: "asked the same question. Reuse the existing result. If evidence was repaired "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-558- "or the verification question genuinely needs correction, change the evidence "
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-559- "or question rather than repeating the same call."
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-560- )
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-561- return None
--
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-726- if not image_url:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-727- return
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-728-
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-729- # A provider failure is not reviewed evidence. Mark only completed Vision
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924:730: # calls as seen so the provider's explicit retry can reuse the exact sheet
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-731- # and question instead of forcing a meaningless evidence mutation.
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-732- raw_identity = image_url[7:] if image_url.startswith("file://") else image_url
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-733- try:
/home/hermes/.hermes/plugins/shorts-production-guard/__init__.py.pre-exec-proof-freeze-20260909-145924-734- image_identity = _sha_file(Path(raw_identity).expanduser().resolve())
--
/home/hermes/.hermes/skills/media/shorts-core/references/production-profiles.md-141-2. Programmatic graphics/annotations must be materialized only into the affected shot before canonical assembly and declared with `materialized: true` plus pixel `bbox`. Caption-zone intersection is a deterministic FAIL. Unmaterialized graphics must not trigger a hand-built full-master render.
/home/hermes/.hermes/skills/media/shorts-core/references/production-profiles.md-142-
/home/hermes/.hermes/skills/media/shorts-core/references/production-profiles.md-143-3. For first assembly and local visual repair, use the segment-cached canonical path:
/home/hermes/.hermes/skills/media/shorts-core/references/production-profiles.md-144- `/home/hermes/.hermes/skills/media/shorts-core/scripts/production_guardrails.py segment-build --manifest <manifest.json> --output <visual_master.mp4> [--subtitles-ass <captions.ass>]`
/home/hermes/.hermes/skills/media/shorts-core/references/production-profiles.md:145: Unchanged shot segments must be reused from the segment cache. A changed shot must not force unchanged segments to re-encode.
root@213-238-170-219:~#