审查 Codex v0.15 后修复以下问题: 1. agent.md → AGENT.md:消除 macOS 大小写不敏感文件系统上的文件名冲突 2. HANDOFF.md:validator 规则数从"6 条"更正为"R1-R9" 3. makelive 版本锁定到 0.7.0(live-photo-production.md + package-live-photo.py) 4. 补充 Swift metadata helper 脚本的执行说明和依赖要求 5. platform-specs.md:将"Observed support"改为"截至 2026-07 实测" 6. SKILL.md:补充 GIF/MP4 降级路径,覆盖无法走 iPhone/AirDrop 的发布场景 由 Kiro (Claude Code) 完成审查和修复。 Co-Authored-By: Claude <noreply@anthropic.com>
39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
#!/usr/bin/env python3
|
|
"""Package a JPG/MOV pair as an AirDrop-friendly Live Photo .pvt bundle.
|
|
|
|
Run with:
|
|
|
|
UV_CACHE_DIR=/private/tmp/uv-cache \
|
|
UV_TOOL_DIR=/private/tmp/uv-tools \
|
|
uvx --from 'makelive==0.7.0' python scripts/package-live-photo.py IMG.JPG IMG.MOV
|
|
"""
|
|
|
|
from __future__ import annotations
|
|
|
|
import argparse
|
|
from pathlib import Path
|
|
|
|
from makelive import save_live_photo_pair_as_pvt
|
|
|
|
|
|
def main() -> None:
|
|
parser = argparse.ArgumentParser(description="Package a JPG/MOV pair as a Live Photo .pvt bundle.")
|
|
parser.add_argument("jpg", type=Path, help="Key photo path, usually 1080x1440 JPG.")
|
|
parser.add_argument("mov", type=Path, help="Paired H.264 MOV path.")
|
|
args = parser.parse_args()
|
|
|
|
jpg = args.jpg.expanduser().resolve()
|
|
mov = args.mov.expanduser().resolve()
|
|
if not jpg.exists():
|
|
raise SystemExit(f"missing JPG: {jpg}")
|
|
if not mov.exists():
|
|
raise SystemExit(f"missing MOV: {mov}")
|
|
|
|
asset_id, pvt_path = save_live_photo_pair_as_pvt(str(jpg), str(mov))
|
|
print(asset_id)
|
|
print(pvt_path)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|