OUTPUT #699 | 4169 karakter | 104 satır
========== YENİ KOMUT | 17.09.2026 12:17:26 ==========

/home/hermes/.hermes/skills/media/shorts-core/SKILL.md
182-
183-Mevcut workspace ve asset yolları biliniyorsa `/home/hermes` genelinde tekrar `search_files` taraması yapma. Bilinen proje dizinini ve mevcut manifest/cache bilgisini kullan.
184-
185-Production sırasında TTS sesi yeniden seçme veya keşfetme; varsayılan `tr-TR-Chirp3-HD-Algieba` / `0.90` baseline'ını koru.
186-
187-### ASSET-001 — Pre-casting visual inspection diagnostic
188-
189-Bu tanı koşusunda asset/casting kararını yalnız metadata, dosya adı veya arama açıklamasından verme.
190:Gerekli olduğunda aday gerçek footage/source/range/assetleri `vision_analyze` ile gerçekten gör.
191-
192-Değerlendir:
193-- gerçek hareket ve görüntü kalitesi;
194-- shot'ın anlatısal işlevini gerçekten kanıtlayıp kanıtlamadığı;
195-- aynı video içinde adayların görsel olarak birbirini gereksiz tekrar edip etmediği;
196-- kadraj, viewpoint, scale, environment ve motion bakımından yeterli progression olup olmadığı.
197-
198-Güzel fakat anlatısal işlevi karşılamayan adayı reddet ve gerekirse yeni aday ara.
--
217-
218-- seçilmiş Türkçe TTS + padding;
219-- VTT tabanlı en fazla iki satır ASS altyazı;
220-- full final encode öncesi gerçek glyph bbox guardrail;
221-- seçilmiş shot'lardan tek 1080×1920 visual master;
222-- hazır master + ses için FFmpeg direct mux ve `-c:v copy`;
223-- video stream hash kontrolü;
224-- probe, decode, black/freeze ve loudness QA;
225:- tek final contact sheet;
226-- TTS, bbox, visual master, final mux ve deterministic QA cache.
227-
228-Değişmeyen manifest ve girdilerde cache'i yeniden kullan. Aynı deterministic adımı doğrulama amacıyla tekrar üretme.
229-
230-Helper için geçici tek-seferlik bbox scripti, yeni Python ortamı veya yeniden keşfedilmiş FFmpeg/Montaj yolları oluşturma. Helper teknik olarak başarısız olursa yalnız hatalı bileşeni teşhis et.
231-
232-### Faz 3 — Tek görsel QA geçidi
233-
234:Deterministic pipeline PASS verdikten sonra yalnız final contact sheet'i `vision_analyze` ile değerlendir.
235-
236-Kontrol et:
237-
238-- gerçek 9:16 tam ekran;
239-- siyah/boş bant veya yanlış crop;
240-- en fazla iki satır altyazı ve safe area;
241-- Türkçe yazım/karakterler;
242-- gerçek footage önceliği ve shot çeşitliliği;

/home/hermes/.hermes/skills/media/shorts-core/scripts/shorts_fast_pipeline.py
362-    run([
363-        FFMPEG, "-y", "-v", "error",
364-        "-i", str(final),
365-        "-vf",
366-        f"fps={fps:.6f}:start_time=0.5:round=near,"
367-        "scale=360:640:flags=lanczos,"
368-        "tile=3x2:margin=0:padding=0",
369-        "-frames:v", "1",
370:        str(work / "final_contact_sheet.jpg")
371-    ])
372-
373-def main():
374-    ap = argparse.ArgumentParser()
375-    ap.add_argument("manifest")
376-    args = ap.parse_args()
377-
378-    manifest_path = Path(args.manifest).resolve()
--
521-        )
522-    else:
523-        final_md5 = final_info["video_md5"]
524-
525-    qa_sig = stamp([final], "deterministic-final-qa-v1")
526-    qa_meta = work / ".qa.json"
527-    cached_qa = False
528-
529:    if qa_meta.exists() and (work / "final_contact_sheet.jpg").exists():
530-        try:
531-            cached_qa = json.loads(
532-                qa_meta.read_text(encoding="utf-8")
533-            ).get("sig") == qa_sig
534-        except Exception:
535-            pass
536-
537-    if not cached_qa:
--
545-        "pass": True,
546-        "version": VERSION,
547-        "cached_tts": cached_tts,
548-        "cached_visual": cached_visual,
549-        "cached_final": cached_final,
550-        "cached_qa": cached_qa,
551-        "duration": probe_duration(final),
552-        "final": str(final),
553:        "contact_sheet": str(work / "final_contact_sheet.jpg"),
554-        "video_md5": final_md5,
555-    }
556-    (work / "pipeline_result.json").write_text(
557-        json.dumps(result, ensure_ascii=False, indent=2),
558-        encoding="utf-8"
559-    )
560-    print(json.dumps(result, ensure_ascii=False))
561-
root@213-238-170-219:~#