{
	"schema_version": 1,
	"checked_on": "2026-11-01",
	"fixture": {
		"clip_count": 2,
		"source": "generated blue video, 160x90, 30fps, 0.4 seconds; used twice",
		"soundtrack": "generated 440Hz sine wave, 0.25 seconds",
		"pace": "fast",
		"bpm": 130,
		"output": "720x1280 H.264/AAC"
	},
	"observations": {
		"before": {
			"revision": "b368a5aaeb2684d6c029aa29fec8f0ed295f49d1",
			"video_duration_seconds": 3.7,
			"audio_duration_seconds": 0.25,
			"tail_sample_count": 0,
			"tail_peak_abs": 0,
			"music_looped": null,
			"manifest_order_matches": true,
			"source_unchanged": true
		},
		"after": {
			"revision": "e11d3a8f6ccb10cbde08b3c3adc235e756650533",
			"video_duration_seconds": 3.7,
			"audio_duration_seconds": 3.7,
			"tail_sample_count": 800,
			"tail_peak_abs": 0.243558,
			"music_looped": true,
			"manifest_order_matches": true,
			"source_unchanged": true
		}
	},
	"tail_check": "Decode 0.1 seconds of mono 8kHz float32 audio starting one second before the video ends. Empty output means the audio stream has already ended.",
	"scope": "Synthetic renderer regression only. No personal media, Photos library, model calls, provider costs or photo-ranking evaluation. Manifest order is checked; the two clips use the same generated source.",
	"test_suite": {
		"revision": "e11d3a8f6ccb10cbde08b3c3adc235e756650533",
		"command": "uv run python -m pytest -q",
		"passed": 96,
		"failed": 0,
		"skipped": 0,
		"scope": "Synthetic metadata, generated media, real stdio processes and loopback HTTP; no personal Photos library or model provider."
	}
}
