Confirm one video content package and hand it to the maintained program to complete multi-platform uploads, form fixes, and independent verification. By default, leave the draft before the final publish button; only enter the final publishing branch below when the user explicitly asks to publish the current content.
Must Comply
- Record the directory containing this file as
SKILL_DIR, and run all relative commands in that directory. - For routine publishing, only call the maintained production entry point; do not manually split platform stages, and do not control creator pages yourself.
- During draft preparation and acceptance, do not click the final publish, save, or scheduled publish buttons. Only enter the final publishing branch when the user explicitly asks in the current task to publish confirmed content to a specific platform; "prepare draft", "upload", "get ready to publish", and long-term account configuration do not constitute final publishing authorization.
- Only allow checking declarations such as original or self-made when the configuration declares that all videos are original, or the user explicitly confirms that the current video has original rights; do not infer this from the video content itself.
- Use the exact video and cover paths confirmed by the user; do not silently replace, crop, transcode, or switch to similar files.
- Let the program determine upload completion, draft identity, field status, receipts, and
READY; do not interpret "an action was performed" as success. - The current request directly inherits the title, platform, cover intent, and originality basis already confirmed in the same task, without asking again. The complete authorization to continue publishing after making a cover includes uploading the cover generated for this session; hand off according to
references/intake-workflow.md. - Before starting, distinguish between creating a new draft, restoring the original draft, replacing the draft cover, and modifying already published content. Replacing the source of an original draft is not the same as publishing another one; this production entry point does not support replacing the source of already published content, and creating a new one or republishing cannot be used to impersonate it.
Standard Publishing Process
- Run the configuration check:
node scripts/config.mjs status
-
If
onboardingRequiredistrue, readreferences/configuration.md, complete the configuration, and executevalidate; do not open the creator page before configuration is complete. -
Read
references/intake-workflow.mdandreferences/content-package.md, and confirm:- the exact local video;
- the platform selected from
availablePlatforms; - title and tags/topics; do not write long platform copy, and if the platform requires a description, use the title or the title plus tags;
- for Xiaohongshu, the title's weighted length must not exceed 20: all ASCII characters count as 0.5, and other Unicode characters count as 1; if not over the limit, keep the original title;
- the basis for the current video's originality rights;
- whether to upload the cover already provided by the user.
-
Write the confirmed content package JSON outside the Skill directory. Only read it when explicitly uploading an existing cover
references/cover-workflow.md。 -
Run the production entry point directly; before opening the page, it will uniformly complete configuration, content package, media, and cover validation:
On Windows, use
scripts\run-safe-platforms.cmd, ornode scripts/v2/publisher.mjs, with the same parameters.scripts/run-safe-platforms.sh <package.json> [task-suffix] [platform...]Named parameters:
--package、--platform/--platforms、--task-suffix、--job-id、--operation、--space-name、--reuse-space、--cleanup-only. By default, a new task opens a new Ego space; interruption recovery reuses the recorded space. Once the draft is ready,leave this space in place, so you can check before the publish button and manually click publish. Only clear expired collection spaces and retired old spaces. To close this space immediately after it is ready, add--close-on-complete。Already
READYJobs are denied draft creation again by default. When the user explicitly wants to repost, use a brand-new Job and add--operation repost --confirm-new-copy. When replacing a draft cover that is alreadyREADYand not yet published, readreferences/cover-workflow.md, reuse the original--job-id, only modify the cover path and add--operation replace-cover; the program will reuse the original task space and will not re-upload the video. When the title, body, tags, video, or other fields change, it must not be passed off as a cover replacement.When only some platforms of the same multi-platform Job are restored or reopened, the original
--job-idmust be reused and--no-cleanup-stale-spacesmust be added, to prevent cleanup from affecting the pending-publish pages of unselected platforms; if the command reports that the unselected platform spaces of the current Job were closed, you must not claim the pages are still visible, and you must restore the corresponding platforms.When platform parameters are omitted, use the default platform from the configuration. Only after the user confirms the originality rights for the current video, append
--confirm-original-rights。 -
Read the structured summary output at the end of the command:
ready: true: all selected platforms have been verified. Leave the draft pages in place; after you check, click publish yourself;ready: false: report per platformblocker、missingandevidencePath, do not broadly claim failure or success;USER_CONTROL: immediately stop all browser work; retry only after the user explicitly asks to continue;INPUT_CHANNEL_BROKEN: immediately explain the affected platforms and missing items, and keep the existing task. While the channel is not restored, do not repeatedly run production commands; after confirming Ego Lite is restored, reuse the original--job-idand content package, and only restore the unfinished platforms;- Other blockers only handle the corresponding platform, and do not roll back or redo platforms that are already
READY.
Interruption recovery for the same content package still uses the same production command and --job-id. The program is responsible for reusing task state, platform spaces, and verified receipts.
When the user explicitly requests final publishing
This is an independent branch after draft preparation is complete, and it does not modify the default safe behavior of the production entry point. It only executes for the content and platforms explicitly specified this time; content and platforms already confirmed in the current conversation may be reused, but if anything is missing or ambiguous, ask first. Originality rights, account identity, video, title, cover, visibility, and platform settings must still match what the user has confirmed.
- First use the same Job's
--inspect-only --job-id <原 Job ID>to re-verify the target platform, requiring that the platform is stillREADY, the draft identity is consistent, and the final button is visible. Do not handle other platforms without authorization. If the user takes over the space, the page changes, the draft is missing, or any verification fails, stop and do not create a new draft as a substitute. - In the corresponding Ego task space, re-verify the account, video, title, cover, and publishing scope on the page. Then execute only on that page
window.__VIDEO_PUBLISHER_FINAL_GUARD__?.releaseForConfirmedPublish?.(), which must returnok: true; it only removes the final button interception on the current page and does not mean it has been published. Do not call it during preparation or diagnosis, and do not bypass the guard by refreshing the page. After removal, only click the final publish control that matches the user's request; YouTube'sSave、Publish、ScheduleThe meanings differ and they cannot be interchanged. When a new confirmation dialog appears, verify its content and scope before continuing. - After clicking, read the success status given by the platform, the work link, or the matching record in the work list. When there is no verifiable publishing evidence, report "publishing result unconfirmed"; do not click again or create another draft to guess the result. One authorization is used only for this content and these platforms; do not save it as a long-term automatic publishing setting.
At delivery, distinguish between "local cover generated", "platform has received the cover", "draft READY", "final publish clicked", and "platform has confirmed publishing". A historical READY cannot prove that the page still exists; when the user reports that the page is missing, check the original task first, and do not directly report completion or re-upload by default. Platforms that have already been published to are not restored for upload.
For read-only checks use:
scripts/run-safe-platforms.sh <package.json> [task-suffix] [platform...] --inspect-only
Read on demand
Read only the documents needed by the current task:
- First-time configuration, changing default platforms, or adding an account:
references/configuration.md - Selecting a video, checking subtitles, drafting publishing content:
references/intake-workflow.md - Creating or repairing the content package JSON:
references/content-package.md - Uploading a cover the user already has:
references/cover-workflow.md - Viewing command parameters, task status, or the single-platform diagnostic entry point:
references/scripts.md - Diagnosing or modifying a page adapter: first read
references/platform-common.md、references/ego-browser-workflow.md, then read by platformreferences/platform-xiaohongshu.md、references/platform-douyin.md、references/platform-bilibili.md、references/platform-wechat-channels.mdorreferences/platform-youtube.md - Custom publishing steps: first read
references/customizing-workflows.md, then follow the routing therein to read shared and platform documents - Updating the tested scope or publishing maintenance conclusions:
references/acceptance-history.md
Do not load adapter, scheduling, lock, recovery, or historical acceptance documents for ordinary publishing.
Maintenance boundaries
Static review, document modification, and local testing do not read personal configuration, nor do they open Ego Lite. Only when a maintenance task enters real page diagnosis should configuration checks be performed and the page workflow be followed.
Changes to a page adapter must be accepted based on real creator page evidence and a no-operation rerun; changes to scheduling, persistence, locks, task space, shared input, or receipts also require corresponding crash recovery and a full production regression. Historical results are recorded only in references/acceptance-history.md。
No Agent may control creator pages in parallel; the production orchestrator is the sole entry point for page control.