Stage 1 of interactive operation. Run inventory scan and queue generation, then stop for human review before extraction.
video_pipeline_validate with {"checkWindowsInterop": true, "intent": "inventory"}. Follow the nextStep field in the result.video_pipeline_analyze_and_move_videos with:
apply=falseallowNeedsReview=falsemaxFilesPerRun (default plugin value is acceptable)stdout and extract:
inventory — path to the inventory file for this runqueuequeuePath/extract-reviewplan — move plan for the current dry-runplan_stats — per-category skip/move counters:
skipped_needs_review: files flagged for human review (not moved)skipped_missing_fields: files without required metadata (not moved)skipped_outside: files outside configured destination roots (investigate if > 0)genre_route_counts: per-genre destination drive counts (multi-route mode)video_pipeline_logs with {"kind":"all","tail":50}.plan_stats.skipped_outside == 0 (or user explicitly accepts reason).inventory and queue pointers to the user.queue path (NOT inventory) as queuePath to Stage 2. The inventory file is a raw file listing without path_id; passing it to reextract will fail./extract-review (Extraction + YAML review).