diff --git a/pipeline_defs/animated-explainer.yaml b/pipeline_defs/animated-explainer.yaml index bb92a465..bb01409d 100644 --- a/pipeline_defs/animated-explainer.yaml +++ b/pipeline_defs/animated-explainer.yaml @@ -254,7 +254,7 @@ stages: - proposal_packet produces: - publish_log - tools_available: [] + tools_available: [export_bundle] checkpoint_required: true human_approval_default: true review_focus: diff --git a/skills/pipelines/explainer/publish-director.md b/skills/pipelines/explainer/publish-director.md index aaa2dcd6..0249bac9 100644 --- a/skills/pipelines/explainer/publish-director.md +++ b/skills/pipelines/explainer/publish-director.md @@ -85,22 +85,34 @@ Each chapter maps to a script section's `start_seconds`. ### Step 5: Package Export -Create the export directory structure: +Use the `export_bundle` tool (capability `publish`) to do the packaging +deterministically — pass it the final `video_path` (from `render_report`), the +`title`, and the metadata you prepared (`description`, `tags`, `hashtags`, +`chapters`, optional `subtitles_path` and `thumbnail_path`/`thumbnail_concept`). +It lays out the export directory, writes the metadata files, and returns a +schema-valid `publish_log` (`status: "exported"`) in `data["publish_log"]` that +you persist as the stage artifact. + +It produces this structure: ``` exports/ / video/ - output.mp4 # Final rendered video + output.mp4 # Final rendered video (subtitles.srt alongside if provided) metadata/ metadata.json # All SEO metadata chapters.txt # Chapter markers - description.txt # Ready-to-paste description + description.txt # Ready-to-paste description (+ chapters) tags.txt # One tag per line thumbnails/ - concept.json # Thumbnail concept (or generated image) + concept.json # Thumbnail concept (or the copied thumbnail image) ``` +`export_bundle` is a local, offline packager — it does not upload. A networked +publisher (e.g. a YouTube uploader) would be a separate `publish`-capability +provider. + ### Step 6: Build Publish Log ```json