From 6dc01d4e677a09bb8e64e1e6c5745b87a0dfa74a Mon Sep 17 00:00:00 2001 From: 0xDevNinja Date: Mon, 29 Jun 2026 15:40:59 +0530 Subject: [PATCH] feat(explainer): wire export_bundle into the publish stage Make the new PUBLISH-tier tool usable rather than dead code: add export_bundle to the animated-explainer publish stage's tools_available, and update the explainer publish-director skill Step 5 to call export_bundle for packaging (passing the prepared metadata) instead of hand-creating the export tree. The documented export layout and the no-upload caveat are kept in sync with the tool. Other pipelines' publish stages can adopt it the same way. --- pipeline_defs/animated-explainer.yaml | 2 +- .../pipelines/explainer/publish-director.md | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) 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