The orchestrator routes only based on real files in the episode. It does not treat chat conclusions as completion, nor does it programmatically call other skills within the script; the host Agent reads the unique route, executes the corresponding skill, then reruns bianpai.
①Additional verification of the screening_summary signals→longlist→shortlist chain. After a genuine attempt, when Douyin platform data is still unavailable, UNAVAILABLEis allowed and does not block on its own; discovery, PRIMARY, and the remaining ① contract must still pass.
Command
# 从 laohanAI视频创作 根目录运行;不要从 skill 目录运行
# 当前状态、缺失产物、唯一下一步
node ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs status --episode episodes/<slug>
# 先检查 dbskill / Cheat 上游;只在新 episode 前或独立维护窗口同步
node ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs vendors --episode episodes/<slug>
node ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs vendors --episode episodes/<slug> --sync
Output only the next step's inputs, artifacts, gate, and skill
node ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs next --episode episodes/
Run the implemented mechanical contract checksnode ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs check --episode episodes/
Stage acceptance; exit non-zero when incompletenode ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs check --episode episodes/ --require production node ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs check --episode episodes/ --require full
Requires that the final cut has already been accepted; for use before ⑫ publishingnode ~/Documents/laohan-skills/laohan-bianpai/scripts/bianpai.mjs check --episode episodes/ --require final
## 工作流
1. 恢复工作先运行 `vendors`。它把当时可用 vendor 的状态和完整 HEAD SHA 写入 schema 3 `FROZEN_ON_RESUME`;进行中 episode 只能在两方 HEAD 与原冻结值一致时续用,旧 schema 2 因缺 commit 证据必须 BLOCKED,不能从当前 HEAD 猜填。`--sync` 只会在新 episode 前或独立维护窗口、Cheat 工作树干净、活动 lane 没有 schema migration 时更新。新 episode 只能从 `UP_TO_DATE` 或审计过的 `READY_LOCAL_AHEAD` 状态创建;更新可用/待安装不得写成 READY。schema 2 episode 还必须通过 `00-编排/executor-lock.json`;registry/runtime lock 漂移时不得刷新 preflight 掩盖执行器变化。
已存在且通过机械核验的 `00-编排/supersession-record.json` 必须优先返回 `SUPERSEDED`,不得继续 vendors/status/next/check,也不得用新 lock 覆盖旧 lock。
2. 读取 `episode-config.json`,先运行 config gate。失败时停在①之前,不路由任何内容或生产步骤。
3. 按①—⑭检查标准产物,并在⑥与⑦之间检查V5.1导演初稿`D1`和最终复审`D2`。新episode默认 `CODEX_DIRECT + Remotion`,媒体窗口归属固定如下:
```text
06-原片剪辑与制作准备:同一Codex Desktop任务连续完成⑧和⑨,只冻结clean/SRT、direct-brief与source-manifest。
07-网络素材:仅在source-manifest存在网络请求时创建独立任务;无请求为NOT_NEEDED。
08-本机录屏:仅在source-manifest存在LOCAL_CAPTURE请求时创建独立任务;无请求为NOT_NEEDED。
09-成片candidate制作:独立任务,只消费已复核或NOT_NEEDED的⑩状态后执行⑪。
- ④ First record the score with the raw isolated JSON; the orchestrator only verifies binding, non-contamination, and evidence level, and does not judge content quality on behalf of the scorer. At this point the status is PARTIAL, then proceed to ⑤; after the ⑤ report and
04-事实主张.jsonmatch the current draft, ④ must write the final blind prediction and become COMPLETE before entering ⑥ or any production/final gate. - Output the unique next step's skill, required inputs, artifacts to persist, and gates that must not be crossed.
AUTONOMOUS_RUNThroughout the standard ①—⑥, outputAUTO_CONTINUE_REQUIRED(from 2026-09-17, ① uses the five-step method for AI to determine the topic autonomously, and ② writes the draft directly, with no inquiry threshold). When Jeffrey vetoes the topic (00-选题-Jeffrey否决.json) or the five-step signal is insufficient, outputTOPIC_RESCAN_REQUIRED, as a planned fallback within the same 01 task, not entering ②, and not counted as BLOCKED; new candidates carry the veto history. D1 director first draft and D2 final review continue to correspond to fixed tasks respectively, and only after D2 completes is ⑦ routed. Standard entry to ⑦ outputsWAITING_FOR_JEFFREY_SHOOTINGand stops.USER_PROVIDED_FINAL_SCRIPT_AND_RAWNo artificial content threshold is added; when completeFULL_PIPELINE_TO_PUBLISHauthorization is present, the entry that already provides a final draft must still not add a new Jeffrey confirmation checkpoint. - When Jeffrey explicitly provides the final talking-head script and the real-person raw footage, only the SHA closure records of
episode_entry_contract.mode=USER_PROVIDED_FINAL_SCRIPT_AND_RAWand00-编排/user-provided-inputs.jsonare accepted. The registrar simultaneously generatesshooting-record.jsonbound to the current draft and raw; ①—⑤ show~the user-input substitution state, do not fabricate completion evidence, and no longer incorrectly route back to ①; D1, D2, and subsequent production continue automatically per this episode's authorization. - If an old V5 episode has already generated a candidate awaiting acceptance, then when upgrading to V5.1 only
FROZEN_PENDING_CANDIDATE_PREDATES_V5_1_STATE_FIELDScontrolled migration is accepted. Migration must freeze the original candidate and director-state SHA; the orchestrator treats D1/D2 as compatible facts already completed for this episode, and must not regressively rewrite the director's draft or reproduce it. By default it stops atJEFFREY_REVIEW; only full automation authorization switches toAGENT_PROXY。 - The unique next step is always the earliest invalidated node. ④ already scored, ⑤ already completed, or ⑥ having had artifacts cannot override a broken ①—③; downstream files may be retained as historical evidence, but they do not count as a continuable state until the prefix is restored.
Hard rules
- schema 2 must have a distribution contract and executor lock before ①; distribution must be locked before ⑥ begins. shooting_contract is required before ⑦; after ⑦ passes, hand off to the 06 window of any registered production host (Codex Desktop or ZCode, Tiezhu) to complete ⑧ and ⑨—for the HANDOFF_TO_CODEX semantics see main project AGENTS item 7; a pure conversational Claude Code can only return a handoff token and cannot generate media artifacts, then route 07, 08, and 09 separately according to the source-manifest. Before ⑨ there must be raw-transcript, edit-candidates, schema 2 edit-decision, edit-render, clean, large-v3 clean-transcript/SRT provenance, spoken-script-variance, Codex edit-review, and schema 5 edit-manifest bound to the current raw/material; candidates must be adjudicated item by item, KEEP when uncertain, and not routed to human approval.
- ① of schema 2 must simultaneously have signals, at least two genuinely different candidates, source health, Douyin JSON+Markdown, and a final topic selection; as long as the audience task, title promise, and content path differ, viewpoint/tutorial variants of the same event may be counted separately. Every candidate must be registered
creator_fit, and the sole SELECTED one must also lock in a viable personal basis for Jeffrey, a distinctive judgment, why-now, lane, the beginner contract, the PRIMARY+PLATFORM_SIGNAL claim map, and eitherALIGNEDor a differentiated interpretation ofADJACENTplatform semantics. The SELECTED candidate of a tutorial-type lane must also be bound totutorial_proof:status: VERIFIED, theevidence_pathandevidence_sha256、version_boundaryandrecoverymethods of real locally executed artifacts, corresponding to CLAUDE.md item 13, "before a tutorial is written as definite steps it must still undergo real local execution, version boundaries, and recovery methods." The orchestrator only verifies that these fields exist and that their sources are consistent; it does not eliminate candidates based on creative style, template, or score. ③ blocks only clearly unresolved high risks; an expired ruleset only requires a warning in the report and a scheduled review. - A standard new episode ① must pass the
laohan-xuantischema 4 validator (3.3.0 + the five-step method contract), proving that the data-layer expert-library full pool and own channel have been scanned, that candidates passed false-positive filtering,topic_kind, tension and thepackaging_assessmentthree save questions, and AI autonomous topic selection (AUTO_SELECTED); a Jeffrey veto must be sent back to scanning. A new episode ② must uselaohan-chuangzuoschema 4 and actually pass itsscripts/check-script-contract.mjs, proving that the topic SHA is bound to sourcing from the personal expression pool and that the hook delivers the packaging promise; the original content units, original increment, visualization anchors, per-paragraph SHA, human feel, natural script length, and local TTS contract remain in effect. Old episodes continue to be validated against the frozen contract according to their executor lock and are not silently migrated. - ⑤ must simultaneously verify
04-事实主张.json; direct source support is written asSUPPORTED, implementation derivation is written asINFERRED + inference_note, and the latter cannot serve as a PROOF beat.PASSonly means the mechanical contract passed; it does not mean the orchestrator independently confirms that the content is excellent. - ⑥ reads the project
assets/identity/jeffrey-cover-reference.jpgas fixed, and uses the newly automatically copied05-封面/reference/jeffrey-reference.jpg。reference_modeonly allowsREQUIRED; the project source of truth, the current episode copy, and the config SHA must be consistent. The completion contract is:cover-prompts.mdbound to the current script and the current episode reference, three real 9:16 ordering candidates 01/02/03, and, with default 01 the same visual proposition recomposed separately to generate 3 covers sharing real dimensions: 3:4 reused for Douyin vertical, WeChat Channels personal homepage, and Xiaohongshu; 4:3 reused for Douyin horizontal, WeChat Channels sharing, and Bilibili homepage recommendation; 16:9 used for Bilibili personal space, mapping to 7 publishing entry points in total. If any one is missing, has the wrong ratio, is undecodable, or is passed off as a simple crop, it does not pass; provider request, review, andselected-cover.jsonare not hard thresholds. - Deferring the cover is only for temporary timing adjustments when prompts, three candidates, or three shared publishing covers are not yet complete.
--require productionA valid deferral authorization for the current issue may be accepted; only after the complete contract is filled in--require final|fulldoes it pass ⑥. - Before V5.1 production, it must be in the same
09-导演/director-state.mdsimultaneously satisfydirector_draft: COMPLETEDand bothdirector_review: COMPLETED. The draft'sPENDINGcan only be routed to final review, and cannot enter ⑧. - The V5.1-compatible migration for an existing pending candidate is a one-time historical exception: only the candidate and director-state frozen in the migration record are recognized, and compatibility fields may not be used to skip D1/D2 for a new episode. The default state is
JEFFREY_REVIEW; only when the current episode is fully bound toFULL_PIPELINE_TO_PUBLISH + AGENT_PROXYmay Codex, after completing full-video QA, select on behalf of the user and continue. Jeffrey does not need to master Remotion technology. - CODEX_DIRECT's direct brief must be bound to the current clean/SRT, the Zhuzige production learning profile, 3–5 current samples, and 2–4 learning objectives for the current issue, and must not contain renderer implementation details.
- ⑩ must not be released just because stock has no result; ⑪ must not write final.mp4 just because a candidate exists—complete viewing QA is required. By default, Jeffrey watches and accepts it; only when the current episode has pre-recorded Jeffrey himself, the ISO time, and his exact words in
final_selection_contract.mode=AGENT_PROXYmay Codex, after complete QA, select on his behalf and write a review record forselection_mode=AGENT_PROXY. - ⑫ does not publish automatically by default. Only when the current episode binds, with an input record SHA, the authorization from Jeffrey himself, the ISO time, and his exact words in
FULL_PIPELINE_TO_PUBLISH, and simultaneously coversDEFAULT_COVER_RANK_01、AGENT_PROXY_FINAL_SELECTION、FOUR_PLATFORM_AUTO_PUBLISHandSCHEDULE_T_PLUS_N_RETROall four scopes, may it continue from the final spoken script and the live-action original footage to four-platform publishing receipts; by default the cover uses the three shared-size finished products from rank 01, and trending-topic failures continue under a non-blocking policy. Comment replies and methodology upgrades are still not executed automatically. - When there are artifacts but the gate is not satisfied, report BLOCKED; it does not count as complete. If JSON is corrupted, BLOCKED must also be reported, and no stack trace should be output.
- Ordinary
checkonly checks existing inputs and explicitly outputs INCOMPLETE; only--require production|final|fullcan serve as stage acceptance. - ⑫—⑭ are handled by
laohan-yunying; default publishing, comment replies, and data corrections must all have corresponding human confirmation or source evidence. When the current episode has completeFULL_PIPELINE_TO_PUBLISHauthorization, four-platform publishing may use that current-issue authorization in place of repeated human confirmation, but real platform receipts must still be obtained; a reserved directory cannot be treated as completion.
Not applicable
- Writing the spoken script, publishing → use the corresponding professional skill. 06 and 09 use
codex-direct-productionexecutor; 07 and 08 are each independent and conditionally created. ⑧ does not route to manual candidate approval: when uncertain, KEEP; when facts conflict, return upstream. - If there is only one independent copy and no episode directory → create the episode first; do not guess the file location.
Anti-pattern
❌ Seeing 01-口播稿.md means the whole issue can be filmed.
✅ First check config, fact verification, the minimum cover contract, and the filming contract.
❌ Automatically skipping no_result or technical failures.
✅ Keep BLOCKED and return to the upstream step that produced the decision.