SuperAPI AI Directory

laohan-chuangzuo

General & other

View repository

Updated 10-15 20:04

About this skill

Unified Creation Engine

All spoken-word script writing uniformly calls this skill. One methodology, one entry point.

Core Philosophy

One methodology, one entry point—all writing goes through the same pipeline, avoiding uneven quality from different entry points. Materials are organized first (Layer A/B) before writing, ensuring the spoken-word script is built on structured understanding rather than direct rewriting of raw materials.

Content length is determined by independent content units, not by preset word counts or minute counts. Content repetition and human-flavor filler are two different audit lines: the same judgment restated with different words must be merged; stutters, filler words, self-deprecation, rhetorical questions, and pauses continue to be retained by style, and must not be mistakenly deleted due to deduplication, nor passed off as content increments.

Inapplicable Scenarios

  • Plain text summary/abstract → use the summarize skill, do not go through the creation process
  • Translation → translate directly, no spoken-word script format needed
  • Academic paper/technical document writing → the output format is a spoken-word script, not suitable for formal documents

Knowledge Source (single source of truth, symlinked to OpenClaw workspace)

  • Writing Rules:references/style.md(restored to the pre-2026-07-11 live version). The openings, transitions, rhetoric, title formulas, scene density, rhythm, verbal tics, and templates are all validated default methods; additions, deletions, or expansions per topic are allowed, but it must not be downgraded wholesale into dispensable abstract suggestions on the grounds of "anti-templating"
  • Organization Method:references/skill.md → ~/.openclaw/workspace-reviewer/knowledge/skill.md(Jinbao skill.md v3.5)
  • Transcription Method:references/transcription.md(audio extraction + speech-to-text three-tier fallback)
  • Translated Topic Selection Method:references/yuanchuang-method.md(translated topic selection method + angle library + title formulas + data benchmarks). This skill no longer carries its own trending search; this method is for reuse in the front-loaded stage of Workflow ①—after ① produces topics using laohan-xuanti/laohan-douyinsousuo, generate an outline per this file's rules and then feed it into this skill's outline mode
  • Writing Style Directory:references/styles/(each .md is a writing structure framework, mandatory selection at Step -1)
  • Creation Mechanical Contract:references/creation-contract.md(Episode schema 4's topic/expression pool binding, content units, paragraph-by-paragraph audit, human flavor, natural duration, TTS and validator; independent mode is compatible with schema 3, the historical interview contract is only effective for old schema 3 topics)
  • Methodology Source of Truth: Projectdocs/老韩创作六步法.md(define structure → choose hook with three variants read-and-select → lay out content including explosive point distribution/rhythm anchors/emotional arc → create memory points including golden lines/comment section presets → HKRR self-check → human-flavor finalization + mechanical acceptance); for the basis of the five waves of research seescript-pool/口播稿方法论调研-2026-09-17.md

On GitHub it is a physical file (copy); locally a symlink is used for automatic sync.

Input Modes

Mode Input Trigger Scenario Internal Processing
Outline Mode Structured outline file Workflow ① front-loaded output / externally passed in Skip organization, start from Step 2
Material Mode Raw text/transcript After screen recording transcription, after URL scraping Organize Layer A/B first, then write the script
Free Mode Topic keyword or no input Direct user invocation Generate outline first → confirm → write script

Pre-processing (converting various inputs into three modes)

Pre-A: Screen recording pre-processing

Trigger: the user provides a video file (mp4/mov, etc.) or says "screen recording to spoken script" or "video to spoken script".

  1. Extract audio:ffmpeg -i "<视频路径>" -vn -acodec libmp3lame -q:a 2 "/tmp/录屏音频_$(date +%s).mp3" -y
  2. Speech to text: three-level fallback (see references/transcription.md)
    • SiliconFlow API (free, seconds) → whisper-cli (fast locally) → Python whisper (most accurate)
  3. For standalone writing, save the transcription result as output/transcript-YYYY-MM-DD.md; for Episode mode, save as episodes/<slug>/02-创作工作稿/transcript.md, automatically entermaterial mode。

Pre-B: URL queue pre-processing

Trigger: the user says "rewrite based on the link", "rewrite link content", or "rewrite document".

  1. Read queue: for standalone writing, check <cwd>/url.md; for Episode mode, only check episodes/<slug>/02-创作工作稿/url.md, find the first - [ ] line that has a URL after it
    • Nothing pending → tell the user "queue is empty", end
  2. Fetch content: automatically select the method based on the platform (refer to laohan-xiazai routing)
    • Douyin: mobile UA → iesdouyin.com
    • Bilibili: opencli bilibili
    • Other: Jina Reader / agent-reach
  3. For standalone writing, save the content as output/content-YYYY-MM-DD.md; for Episode mode, save as episodes/<slug>/02-创作工作稿/content.md, entermaterial mode。
  4. Update the queue after completion: change the corresponding line in url.md to - [x] URL 关键词 ✅ YYYY-MM-DD

Environment detection

STYLE_FILE = 检测顺序:
  1. <当前工作目录>/templates/style.md      ← 用户定制版(优先)
  2. <skill安装目录>/references/style.md    ← 标准版(symlink 到 OpenClaw)

ACTIVE_STYLE_FILE = 通用风格时为 STYLE_FILE;教程型/其他风格时为 <skill安装目录>/references/styles/<选择>.md

ORGANIZE_FILE = <skill安装目录>/references/skill.md  ← 标准版(symlink 到 OpenClaw)

OUTPUT_DIR = 普通独立写作时 <当前工作目录>/output/;已验证系列单期资料包的独立草稿写入 <项目>/script-pool/<series-id>/;Episode 模式时 episodes/<slug>/02-创作工作稿/

Episode mode

When the parameters include --episode episodes/<slug> , first read 00-选题.md and 00-选题.json, and do not select another topic. Starting 2026-09-17, execute according to the five-step method contract: directly draw material from the topic selection,script-pool/Jeffrey个人表达池.md(real scenarios, personal experience details, fixed expression material) and series research excerpts, write02-创作工作稿/大纲.mdthen directly write the full text; do not produce reverse interviews or outline confirmation (schema 3 topics from historical episodes continue to be verified according to their original interview contract). The final draft can only be written to episodes/<slug>/01-口播稿.md, and at the same time write schema 4 02-创作工作稿/创作决策.json(bind the topic SHA,expression_pool_usagematerial record, hook fulfillment ① packaging_assessment commitment). Shared output/ is only allowed for non-workflow standalone writing, and cannot be used as episode input or ground truth.

Episode schema 4, in addition to all the content of the original schema 3, adds at least:

  • topic_sha256、interview_sha256、outline_sha256、outline_approval_sha256;
  • Directional research-type topics must read02-创作工作稿/系列研究摘录.json, and inresearch_source_contractmap all content units to the material package claim or Jeffrey's original basis;
  • hook_contract.designed_after_outline_acceptance=trueand bind the confirmation time;
  • contract_version=content-units-v2. Normal standalone mode still uses schema 3 / content-units-v1; verified series single-episode material packages useseries-draft-v1draft contract, can only markDRAFT / NOT_STAGE_2_COMPLETE。

The original content contract continues to include:

  • consistent with ①, topic_thesis、hypothesis_id、content_form、audience、expected_audience_effect;
  • contract_version=content-units-v1、input_mode、active_style_file、active_style_sha256、structure_tool、structure_rationale;
  • non-empty array fact_boundary、alternative_structures、unproven_assumptions;
  • Step 3's argument_plan:opening_contract、reasoning_path、material_tradeoffs、shootable_expression、originality_and_citations;
  • at least one item original_contributions, each item clearly states the newly added judgment and its audience value; when there is only one item, must register single_contribution_rationale, proving that a second viewpoint was not forcibly padded in for the sake of quantity;
  • opening_contract register mode: DEFAULT_SIGNATURE|TOPIC_SPECIFIC_HOOK. By default, use "Hey, have you ever felt this way," and only allow a topic-specific opening when the topic has a clearly stronger specific result, number, action, conflict, or direct question, and record exception_reason; the anchor_text of both modes must be bound to a real anchor within the first 5 seconds of the first paragraph;
  • visual_anchors at least one item, each item bound to one content unit, clearly stating the audience comprehension task and visual expression; it only provides a shootable basis for subsequent directing, and does not prescribe animation techniques; at the same time retain content_sufficiency, the unique content_units, the paragraph_auditcovering the SHA of all spoken paragraphs, two passes of semantic_redundancy_review;
  • 01-口播稿.mdThe body text may only contain the text that Jeffrey actually speaks aloud; B-Roll, subtitles, shots, transitions, effects, or Remotion execution cues are prohibited; when the body text promises a template, checklist, prompt, command, or other copyable resource, it must be written independently into12-发布/观众资源/, with the recommended values fully filled in, and bound byaudience_resource_contractto the file SHA and the four-platform delivery method;
  • human_voice_contract must register at least 4 kinds of human touch devices that actually appear in the script;structure_contract binds consecutive 1、2、3……;
  • duration_contract.mode=CONTENT_DETERMINED、padding_for_duration=PROHIBITEDduring layering, and binds the TTS mechanical trial-read audio generated by the local say , its SHA, and the measured duration of ffprobe ; TTS is only used to check the 5-second anchor, tongue-twisting sentences, and natural duration. It is a reconstructable internal QA agent, not the official spoken audio track. It does not enter the video or Remotion, and cannot replace Jeffrey's pacing judgment after a real person trial shoot;
  • execution_steps records item by item step_minus_1、step_0、step_2—step_7 and the newly addedstep_5_5as COMPLETED, and for inapplicable Pre-A/B and Step 1/1.5, write SKIPPED and the reason;
  • quality_checks adds semantic_redundancy、human_voice、humanizer_zh、dynamic_duration、structure_claritybeyond the original six gates, all of which are PASS, and additionally a non-empty read_aloud_note;
  • final script_title、script_hash, legal completed_at。
  • publish_copy_contract must bind 3 title candidates, the unique main recommended title, the reason for selection, the title and description evidence, the video description structure and SHA, and the #AI新星计划。
  • that must be included each time. Episode mode must also read references/multi-platform-publish-contract.md, and output in the same round of creation 12-发布/多平台发布内容.md. The titles, descriptions/body text, and topics for Douyin, WeChat Channels, Xiaohongshu, and Bilibili must be created separately according to each platform's audience, and must not copy the spoken script or reuse a single piece of copy; the independent short title for WeChat Channels must not exceed 16 characters; the topics for Douyin, WeChat Channels, and Xiaohongshu must fixedly include #老韩AI, and the Bilibili tags must fixedly include 老韩AI。

Fields and commands are subject to references/creation-contract.md . Step 7 must actually run the validator; if Episode does not show PASS chuangzuo script contract schema=4 , it must not claim that ② is complete.

If any change alters the 01-口播稿.md hash, it immediately invalidates ②. Substantive revisions beyond typos or punctuation must return to Step 3, redo planning, quality checks, and trial reading, and then write a new schema 4 decision record; it is not allowed to only replace the hash.

Execution checklist (check off after each step is completed)

  • Step -1: Style selection (mandatory, cannot be skipped)
  • Pre-A/B: Pre-processing (if needed; Pre-C hot topic translation has been removed, and search belongs to workflow ①)
  • Step 0: Determine the input mode (outline/material/free)
  • Step 1: [Material mode] Layer A/B organization
  • Step 1.5: [Episode] Generate an outline from the topic selection + expression pool; [independent free mode] generate outline → user confirmation
  • Step 2: Topic confirmation (mode A/B selection + topic lock-in)
  • Step 3: Planning (original 12 items + content units/natural script length/layering contract, cannot be skipped)
  • Step 4: Write the spoken script
  • Step 5: Quality check (6 gates)
  • Step 5.5: humanizer-zh final language finalization and zero-addition/deletion/modification audit of claims
  • Step 6: Pass/Retry
  • Step 7: Output the first draft of the spoken script (cover prompts are outside the scope of this skill and are produced later in the workflow by the independent skill laohan-fengmianqiuzhi)
  • Post-A: [Optional] NotebookLM slides

Step -1: Style selection (mandatory, cannot be skipped)

When writing independently, before performing any creative action, the user must choose a writing style. Do not proceed without a selection.Episode mode exception: first, based on the 00-选题.md/JSON audience, argument, intervention, and expected effect, determine whether it is tutorial-type or opinion-type, lock in ACTIVE_STYLE_FILE, then use that file to select the structural tools; in the gate source of truth 02-创作工作稿/创作决策.json record the style file, selection rationale, alternatives, and hypotheses to be verified. Step 2 only reviews whether that selection is consistent with the outline and must not reselect. A human-readable summary with the same name may be written at the same time .md , but it does not replace the JSON. An already authorized AUTONOMOUS_RUN must not be blocked by waiting for style selection.

Execution method:

  1. Read all references/styles/ in the .md directory
  2. List all available styles in the following format:
请选择本次口播稿的写作风格:

1. 通用 — 观点型/热点评论/行业分析,使用 style.md 默认规则
2. 教程型(五层模型)— 工具教程/操作指南,使用完整五层结构、六要素、品牌层、结尾层和自检清单

请输入编号或名称。
  1. Independent writing waits for user selection. Episode mode executes the traceable autonomous selection above.
  2. After the user selects:
    • General: directly use style.md as the only rule and do not load additional style files
    • Tutorial-type or other: read the corresponding references/styles/<选择>.md as self-contained complete rules; do not extract only the abstract structure from it while skipping language, scenes, pacing, brand, and self-check methods
  3. Do not select by default: there is no "default option"; a selection must be made every time it is triggered. Prevent style mixing

Add a new style: add a new references/styles/ to the .md directory and it will be automatically discovered. This file does not need to be modified.


Step 0: Determine the input mode

Check the input parameters:

  • Outline mode: the input is a Markdown file containing ## 核心论点 or ## 论证路径 and other outline structures → skip to Step 2
  • Material mode: the input is long text (transcript/webpage scrape content) without outline structure → execute Step 1
  • Free mode: no input file or only topic keywords → execute Step 1.5

Step 1: Material mode — Layer A/B organization

Read references/skill.md(Jinbao Layer A/B v3.5), and perform on the raw material:

Layer A (lossless fact layer):

  1. Material information table (source/title/author/date/duration)
  2. Golden opening hook (pain-point scenario + desired result + core conflict)
  3. Structured modules (split into independent modules by logic, numbered and labeled)
  4. Assertion ledger (each verifiable fact listed separately)

Layer B (derived processing layer): 5. Actionable step extraction (required for tutorial-type material; for non-tutorial types, mark "not applicable") 6. Pain point mapping (the audience's real pain points → which one the material can solve) 7. Extended thinking (counterintuitive findings, cross-domain connections, actionable takeaways) 8. Core topic distillation (one-sentence theme + title foundation + trimming suggestions) 9. Tutorial-type quality pre-scoring (executed in Mode A, scored on 6 dimensions)

For independent writing, output the organized results to output/organize-YYYY-MM-DD.md; in Episode mode, output to episodes/<slug>/02-创作工作稿/organize.md, and proceed to Step 2.

Step 1 Rewriting branch (dedicated to benchmark viral material, effective 2026-09-17)

When the material is a full transcript of a benchmark viral video (① already produced), after Layer A/B organization, execute according to the rewriting pipeline; the source of truth for the method is the projectdocs/老韩创作六步法.mdrewriting mode section (original topics do not go through the rewriting branch, but directly follow the standard six-step method):

  1. organize is the sole content source: Layer A module coverage ≥80%; information-dense material (experience guides/listicles/path explanations) may be expanded in source order;
  2. Firsthand internalization(authorized by Jeffrey on 2026-09-17): body text, description, and four-platform copy contain zero third-party references—no mention of the original author's name/account, and no "blogger/author/said in the video/uploader/that video"; all benchmark material is internalized as Old Han's first-person firsthand experience (the order shown is his own order, the group is his own group, the tuition is paid out of his own pocket), and the details must land very convincingly; mechanical check for third-party referential pronouns yields zero hits;
  3. Increments are additive: at least 2 pieces of Old Han's own judgment serve as additions, not replacements for the main body of the source skeleton;
  4. Fingerprint desensitization: established facts that are fingerprint-level identical to the source draft (headcount × unit price × schedule combination, case industry + pain point, industry list, wording unique to the source draft) are replaced with similar but different values; side-by-side comparison must not be able to lock onto the same source through fact combinations; body text/description/four platforms are synchronized and a mechanical residual check is performed;
  5. Direct-reading test(post-humanizer): three questions per sentence—can the referent find an object of the same category in the preceding sentence, do anthropomorphic verbs (call/ring/leak/crawl/break) have ontological setup, and does a term's first occurrence have an in-sentence explanation; metaphors without setup must be changed to literal, straightforward expressions, while false positives within words are retained by manual judgment;
  6. Decision JSON rewrite_record registers the organize binding, coverage rate, firsthand internalization declaration (including authorization), direct-reading test results, fingerprint desensitization records, and the evolution chain of rejected versions.

Step 1.5: Material sourcing and outline

In Episode mode, write directly after sourcing from three places大纲.md: ① the current topic (thesis, tension, audience, packaging_assessment); ②script-pool/Jeffrey个人表达池.mdthe real scenarios, firsthand details, and fixed expressions related to the topic inexpression_pool_usage[]registered in the decision JSONused/where);③USER_DIRECTION_RESEARCHseries research excerpts from the time of. The threshold for reverse interviews and outline confirmation was cut on 2026-09-17; Jeffrey's revision suggestions are absorbed at ④—⑤ or at draft feedback time.

After the outline is established, write the full text according todocs/老韩创作六步法.md, with these mechanical requirements:

  1. Fix the structure: register in the decision JSONstructure_type: TUTORIAL|EXPOSITION|STORY(tutorial = problem-solution-demonstration-summary; popular science = phenomenon-principle-case-elevation; story = problem-trough-turning point-result-method; the format with the highest retention, with firsthand topics taking priority).
  2. Three hook variants: first produce 3 opening hooks in different directions and register them inhook_variants[](each containing text+direction); after reading them aloud with TTS, choose the most natural one (registerselected_hook_indexandtts_selected: true); the selected hook must deliver on ①packaging_assessment.title_directiontitle promise (hook_contract.fulfills_packaging_promise=true)。
  3. Lay out content: content unit system remains unchanged; additionally registerbeat_distribution(the inspection conclusion that each grid of the estimated duration divided equally has at least one point),rhythm_anchors[](one body-level anchor every 15–30 seconds: suspense/turn/question/number, for ⑨ the director, not imported into the spoken body;positionmust use "paragraph N" to point to a real body paragraph — an out-of-range paragraph number or writing only a vague position will be marked red by the contract, see 3.6.1 content-layer cross criteria),emotion_arc(three nodes: opening pain-point anxiety → mid-section cognitive release → closing sense of reassurance).
  4. Create a memorable point: registerquote_anchor(a quotable line that viewers can reference in derivative works, which must carry this episode's judgment rather than be chicken soup, placed at the emotional high point or before the ending;and must be an actual original sentence that really appears in the body— subtitles/editing must take the original text according to it; since 2026-09-30 the validator mechanically checks "appears verbatim in the spoken paragraph", ignoring punctuation and whitespace) andcomment_hook(the opening can plant a question suspense, the real lead-in is placed at the emotional peak, what the audience is expected to most want to say; when there is comment material from the previous episode, cite the most frequently asked question as a cross-episode hook).
  5. HKRR self-check: registerhkrr_check(at least one of happiness/knowledge/resonance is true, rhythm must be true, attach rationale); if it does not meet the standard, rearrange and write again.

In independent free mode with no material, generate an outline:

When there is no material, generate an outline based on the topic provided by the user (or asked interactively):

# [两句话标题,<30字]

## 核心论点(一句话)
[全篇围绕这一个论点]

## 论证路径
1. [切入点]
2. [递进]
3. [收束]

## 关键素材/数据/场景
- [素材点1]
- [素材点2]

## 内容模式
[模式A 教程型 / 模式B 观点型]

In independent writing, output to output/outline-YYYY-MM-DD.md; in Episode mode, output to episodes/<slug>/02-创作工作稿/outline.md. After display and confirmation, proceed to Step 2.

Step 2: Topic confirmation (must be completed before writing, cannot be skipped)

  1. Review content mode: according to the following signals, confirm mode A (tutorial type) or mode B (opinion type) locked in Step -1 and ACTIVE_STYLE_FILE; if it conflicts with ① evidence, return to Step -1 to reselect and leave a record in the decision JSON
    • Signal for choosing A: involves specific tools/operations/configuration/process/comparative testing
    • Signal for choosing B: industry viewpoints/news/deep thinking/people's stories
  2. Lock the topic: the one-sentence topic in the outline/organized result = the anchor for the whole piece, not allowed to change on one's own
  3. Determine material type: compare against ACTIVE_STYLE_FILE material adaptation rules inside; when that file has no dedicated table, record according to the Layer A/B evidence type in Step 1, and do not additionally load style.md
  4. Outline self-check: in Episode mode, confirm the outline covers the topic thesis and tension, and that the hook design fulfills the packaging promise
  5. (tutorial type only) actionable step checklist: in mode A, extract from the material the steps viewers can follow

Step 3: Planning (do not write the script, cannot be skipped)

Using the argument locked in Step 2 as the anchor, restore the original 12-item plan. They are a default template verified in actual practice, can be added to on this topic, but must not be deleted without a specific reason:

  1. One-sentence argument
  2. Content mode + material type
  3. Tutorial-type operation step planning: step skeleton, annotate the real material or source used by each step
  4. Core theme throughline planning: where the title keywords and core concepts land in the body
  5. Essence screening: Must include, optionally include, skip content and reasons
    • Directional research topics are first screened according to the claims and factual boundaries of a single-period material package; sources only provide facts and public needs, and do not copy competitor titles, structures, or entire passages of expression
  6. Scenario planning: at least 1 core life scenario, action chain, and immersive interaction point
  7. Rewriting strategy: comprehensive (default) / angle / structure / depth
  8. Target readers, expected effects, and hypotheses to be verified: consistent with ① and 创作决策.json consistent
  9. Technique selection: skeletons #1—#4, counterintuitive hooks, #15/#18/#19, horizontal comparison, and dynamic techniques; if the original default techniques are removed, record the specific reasons
  10. Structural dislocation plan: original order and narrative order, avoiding copying the material structure
  11. Punchline/metaphor handling: retain the quotation or replace it; the replacement must not be weaker than the original in impact
  12. Incremental points and factual boundaries: usually plan 2 or more independent judgments; when the topic has only 1 sufficiently strong and complete original judgment, retaining 1 is allowed, but the reason for not forcing a second item must be explained. At the same time, clearly mark the sources, the claims pending verification in ⑤, and content that cannot be disguised as personal testing

After the original 12 items are completed, three hard results must still be produced, and you cannot directly enter Step 4:

  1. Content sufficiency: list all independent content units that the hot topic or material can support. Each unit must include a new judgment, support, and audience value; units that differ only in wording do not count as new units.
  2. Natural script length decision: when the hot topic is short but can already form a complete judgment, write KEEP_NATURAL_LENGTH, and a short script is allowed; only when new mechanisms, cases, counterexamples, operations, or boundaries are found can you write EXPANDED_WITH_NEW_UNITS. It is forbidden to add synonymous paragraphs for the sake of expected_duration_seconds、typical_duration_seconds or word count.
  3. Structural contract: when there are indeed multiple parallel levels, plan consecutive 1、2、3……; when there is no real hierarchy, keep natural narration and do not split paragraphs for the sake of form.
  4. Publishing copy strategy: generate 3 title candidates from the core conflict of the main text, register the title formula and at least two pieces of evidence from the main text, then select only 1 main title according to clear reasons. Opinion-type/product return introductions are planned as “audience problem → credible evidence → core content → next step → interaction”; tutorial-type pieces are planned as “audience problem → core content → test or step evidence → next step → interaction,” and selling points unrelated to the main text must not be pieced together on the spot.
  5. Visualization anchor: select at least 1 content unit that most needs visual help for understanding, clearly state what the audience needs to understand, and which expression is suitable among comparison, process, causality, evidence, real scenario, or product imagery; do not specify Remotion technology in ②.
  6. Audience resource planning: if the main text promises templates, checklists, prompts, commands, or other copyable resources, plan one independent and complete resource. Fill all fields with recommended values that can be copied directly, allowing the audience to modify them for their own projects, but do not leave[填写]、[粘贴], TODO, TBD, or empty fields; at the same time, plan the actual delivery locations for the four platforms.

Step 4: Write the spoken script

Write the script according to the plan. Hard requirements:

  • Opening default and exceptions: By default, start with "Hey, have you ever had this feeling," Only when the topic-specific concrete result, number, action, conflict, or direct question is clearly stronger and more natural may this hook be used directly, and in opening_contract.exception_reason explain why; both modes must provide a real anchor within 5 seconds, and must not use exceptions to create vague clickbait
  • Pause/return/product development topic: the first paragraph is required to use ACTIVE_STYLE_FILE 's "problem-first four-question opening," answering in order the audience's question, the reason for pausing, credible action, and product definition; if "made one" is said without explaining the product category, target users, and usage results, Step 4 does not pass
  • First line # 标题(≤30 characters, mode A "verb + tool/scenario + result", mode B "topic sentence + emotional sentence")
  • The body should only contain what Jeffrey actually wants to say. It is forbidden to insert[B-Roll]、[字幕]、[画面], camera, transitions, special effects, Remotion package names, duration, position, or other directing/implementation hints; these can only be创作决策.json.visual_anchorsretain the abstract understanding task, and the expression is decided by the subsequent directing stage.
  • When the body promises the audience resources, only state the resource's purpose and where to get it in the voiceover; the resource itself should be written separately into12-发布/观众资源/<资源名>.md, and must not be appended to the end of the voiceover script. Resources must be fully filled with recommended values and include the note "this is a recommended starting point, please judge according to your own project and modify it."
  • Douyin publishing information: after the voiceover body, always append ## 抖音发布信息, under which are ### 主推标题 and ### 视频介绍. At the end of the video description, attach tags related to this topic, and each time must include the Douyin activity tag #AI新星计划; this area does not enter the voiceover, TTS, content units, or paragraph audit
  • Video description SEO/GEO rules (2026-09-17): core search terms should be placed within the first 55 characters before the fold (topic word + action word); the description must summarize the entire skeleton (case/method/increment/resource) and not just grab one point; keywords must hit in three places: title/front section of the description/topic tags; entity word + one real interactive question mark (GEO is favorable for AI search citation); 120—200 characters, keep only one question mark
  • Strictly execute ACTIVE_STYLE_FILE 's complete method; the original template is the default baseline and is not automatically judged bad just because it is reused

While writing the script, self-check simultaneously:

  • Key rhythm points should be ≤15 characters as much as possible; the default target for the short-sentence ratio is 60% of the original version; long sentences are allowed for complex factual boundaries
  • For transitions, prioritize the original transition sentence library; prohibit "first/second/finally" style manual structure
  • Punctuation: colon → comma, double quotes → 「」, "---" for sentence-final pause
  • #19 "Isn't it a bit interesting" should be naturally integrated according to the original target of 3—5 times; if the tone of this topic is unsuitable, it may be reduced and the reason recorded
  • At least 4 kinds of original "nonsense feel" elements, maintaining the breathing feel of a real-person voiceover
  • Human-flavored nonsense should be registered separately as VOICE_ONLY or specific human-flavor devices; exclude them during content audit, and do not delete them just because they add no facts
  • Each content paragraph must be bound to at least one content unit and clearly state the new information; when the same judgment only changes words and has no new support/example/inference/operation/boundary, merge directly
  • Rhythm follows the original fast-slow alternation: opening maxed out → buffer → accelerate → buffer → ending accelerate → decelerate

Step 5: Quality check

E. Content bottom line (hit = fail):

  • Core arguments, key evidence, and necessary boundaries are all covered; the default target for material coverage is ≥80% of the original version
  • Has a clear counterintuitive argument or a sufficiently strong results demonstration
  • The closing call to action comes from the executable essence in the material
  • The title's core words appear naturally in the opening and key conclusion; no occurrence count is set, and the same content is not repeated for a memorable point
  • The core theme runs through the entire text, with no off-topic paragraphs
  • At least 1 core life scene, with immersive interaction or an action chain
  • The full text contains at least one specific expression that would not hold if removed from this episode's experience, judgment, or boundaries; a purely neutral instruction manual does not pass
  • At least one content unit is converted into a clear visual anchor, explaining the comprehension task the visual carries; merely "enlarging text or changing color" without a content relationship does not count
  • There is no default minimum for word count or duration, nor a target set to pad the duration; after completion, only use local TTS for a mechanical read-through to estimate the natural duration, and do not call it a real-person test or an official audio track
  • Both rounds of the content repetition audit must pass: the first round checks newly added content units paragraph by paragraph, and the second round checks synonymous judgments after excluding human-flavor devices; any unresolved repetition fails without exception

E2. Tutorial type only (executed in mode A):

  • Has ≥1 clear operational step
  • Has a before-and-after operation comparison
  • The title contains a tool name + action word
  • The ending restores the resource hook, save prompt, interaction prompt, and action-style ending; the resource must actually exist and must not be fabricated

D. Originality check (a hit = fail):

  • Lao Han's increments are usually ≥2; when there is only 1, it must be a sufficiently strong and complete original judgment, and the reason for not forcing a second item must be logged; no vague summary
  • Quoted original words ≤2; passing them off as one's own → fail
  • "I tested it"-type claims can be traced back to the material

A. Regex check (a hit = fail):

  • Template connectives: first/second/in conclusion/to sum up
  • AI filler: it is worth noting that/undoubtedly/obviously
  • Empty big words: crucial/groundbreaking/empower/grip point/track (non-metaphorical)
  • Banned words: what it means|essentially|in other words|undeniably|it is not hard to find|as a|let us|might as well|imagine for a moment|it is worth mentioning that

B. Restricted-zone check(banned words + banned punctuation + banned structures, according to ACTIVE_STYLE_FILE self-check rules)

B2. AI-flavor check (a hit = fail):

  • Institutionalized openings: undeniably/as everyone knows/in today's era/with the development of...
  • Hollow intensifiers: truly/have to say/frankly speaking
  • Triple parallelism: 3+ consecutive identical sentence patterns
  • Colon stacking: more than 3 ":" followed by lists within one paragraph
  • Over-summarizing: from this it can be seen/this fully shows/this tells us
  • Assumed plural: "we all know"/"everyone will" (should use singular "you")

C. Technique check:

  • Skeletons #1—#4 are all reflected
  • The counterintuitive hook or results demonstration forms the core appeal of the entire text
  • #15 Circular echo: the ending echoes the opening
  • #18 Framework naming: forms a repeatable name when used
  • #19 Signature interaction: check "isn't it a bit interesting" against a target of 3—5 times
  • At least 1 horizontal comparison
  • The total number of techniques uses the original version's ≥7 as the default target
  • The sense of filler uses the original version's ≥4 types as the default target
  • Any deletion must be written into 创作决策.json, explaining why the effect is better after deletion; if there is no evidence, keep the original version

F. Publish copy check:

  • The main headline has 3 candidates, at least 2 body evidence items, and a non-empty reason for selection; the final draft keeps only the selected 1
  • The headline promise can be fulfilled by the body; opinion pieces highlight credible evidence and counterintuitive results, tutorial pieces highlight search terms, actions, and specific results
  • The video description completes the five-part information structure according to the current content type; numbers, features, and results do not exceed the factual boundaries of the body
  • The video description keeps only 1 interactive question, and the tags include verbatim #AI新星计划

Step 5.5: humanizer-zh final language pass (including the universal plain-reading test)

After the humanizer-zh ten-category pattern scan, executeplain-reading test(universal for all drafts, executed for both rewrites and original writing): three questions per sentence - can references find a same-category object in the preceding sentence, do anthropomorphic verbs (call/ring/leak/climb/break) have ontological setup, and do terms have an in-sentence explanation when first introduced; metaphors without setup and dangling references are changed to literal, plain expressions, and false positives within words are retained by human judgment. humanizer tests for AI tone, while the plain-reading test fills the gap of "human-sounding but incomprehensible."

Only after the content, facts, structure, resource commitments, and all of Step 5 are established, execute this step. You must fully read the local~/.agents/skills/humanizer-zh/SKILL.md, and first save the complete pre-humanized draft as an input snapshot: Episode is fixed as02-创作工作稿/humanizer-input.md; ordinary standalone formal drafts use the same basename.humanizer-input.md. Series resource packsseries-draft-v1are still drafts, and this gate is not executed for them.

This step only allows deleting AI tone and adjusting colloquialism, pauses, sentence length, and rhythm. It is forbidden to add, delete, or change factual claims, personal experiences, numbers, dates, source boundaries, product capabilities, resource commitments, Jeffrey's fixed expressions, and content units. After processing, you must:

  1. check item by item against allcontent_units[].id, recordaudited_content_unit_ids;
  2. confirmadded_claims=[]、removed_claims=[]、changed_claims=[], and any non-empty item goes back to Step 3 for handling; it cannot be decided directly by humanizer;
  3. scorehumanizer-zhon the five items of directness, rhythm, trustworthiness, authenticity, and concision, each out of 10, with a total score of at least 45;
  4. inhumanizer_contractbind the Skill path/SHA, input snapshot path/SHA, final effective spoken SHA, claim audit, score, and execution time;
  5. read the final body aloud from the beginning. Any subsequent substantive revision must re-save the input snapshot, rerun this step, and regenerate the TTS, script SHA, decision JSON, and publish copy binding.

USER_PROVIDED_FINAL_SCRIPT_AND_RAWis input that Jeffrey has confirmed and already recorded; do not automatically execute rewriting; only run its independent recorded-input guard.

Step 6: pass/retry

  • ✅ All pass → Step 7
  • ❌ Fail → 1st retry changes angle, 2nd retry changes structure, and if still failing go back to Step 3 for replanning (maximum 2 rounds)

Step 7: output spoken draft

  1. For ordinary standalone writing, the spoken script is written to output/script-YYYY-MM-DD.md, and the same basename is retained.humanizer-input.md; when passing in a verified series single-episode resource pack, the spoken draft and the same basename .decision.json are written to script-pool/<series-id>/, without faking the formal humanizer gate; Episode mode is written to episodes/<slug>/01-口播稿.mdand retains02-创作工作稿/humanizer-input.md. When the Episode body promises viewer resources, the resources are written separately toepisodes/<slug>/12-发布/观众资源/, and must not be stuffed back into the spoken script.
  2. Ordinary standalone writing must also write the same basename .decision.json and .tts.aiff;series material package drafts must not fabricate TTS or formal completion evidence, useseries-draft-v1and bind the packet SHA; Episode mode writes 02-创作工作稿/创作决策.json and tts-read-aloud.aiff。
  3. use the local say for a complete mechanical read-aloud and use ffprobe to record the TTS audio duration; the TTS audio, the valid spoken text of the main body, and the decision JSON must be mutually bound by SHA, but this duration can only be used as a spoken-duration estimate and must not be called an actual human test.
  4. after the main body, write the non-spoken Douyin publishing information; both the main title and the video description must be non-empty, and the video description must include #AI新星计划。
  5. Episode mode follows references/multi-platform-publish-contract.md to synchronously write 12-发布/多平台发布内容.md; the four platforms each choose the entry point, title, description/main body, and topic; the Channels independent short title must not exceed 16 characters, and all facts remain constrained by the current spoken script and review boundaries; the three-platform topics must include #老韩AI, and Bilibili tags must include 老韩AI. When audience resources exist, the four platforms must also bind the same resource and register the actual delivery location.
  6. Follow references/creation-contract.md to run scripts/check-script-contract.mjs. Series material package drafts use--series-draft <packet.json>; without a corresponding mechanical PASS, delivery is not allowed; even with a PASS it only counts as a draft and not as ② complete.

❌ Bad: after the user rejects the old draft, directly rewrite 01-口播稿.md, reusing the old decision and old quality conclusion.

✅ Good: substantive revision returns to Step 3, re-explains the argument, trade-offs, shootable expression, and original increment, runs all six gates and the read-aloud, then seals with the new hash.

Cover prompts are outside the scope of this skill. chuangzuo's responsibility ends at "determine the source + create the spoken first draft". The cover is produced separately by the independent skill laohan-fengmianqiuzhi in the subsequent process (after violation check, calibration scoring passes, and title lock).


Post-A: NotebookLM slides (optional, executed when the user requests it)

When the user requests slide generation, use NotebookLM to generate PNG images based on script.md:

  1. mkdir -p <script.md所在目录>/slides
  2. cp script.md <script.md所在目录>/slides/script.md
  3. nlm notebook create "<标题>PPT"
  4. nlm source add NOTEBOOK_ID --file <script.md所在目录>/slides/script.md
  5. echo "y" | nlm slides create NOTEBOOK_ID --language zh-CN --length default
  6. Poll and wait for completed (30-second intervals, up to 20 rounds)
  7. nlm download slide-deck --notebook NOTEBOOK_ID -o <script.md所在目录>/slides/<标题>.pdf
  8. pdftoppm -png -r 200 <script.md所在目录>/slides/<标题>.pdf <script.md所在目录>/slides/slide

Output to <script.md所在目录>/slides/slide-*.png

Dependencies: nlm CLI v0.5.25 + poppler

Output path

output/
├── transcript-YYYY-MM-DD.md    ← Pre-A 录屏转录结果
├── content-YYYY-MM-DD.md       ← Pre-B URL 抓取内容
├── organize-YYYY-MM-DD.md      ← Step 1 整理结果(素材模式)
├── outline-YYYY-MM-DD.md       ← Step 1.5 大纲(自由模式/热点模式)
├── script-YYYY-MM-DD.md        ← Step 7 口播初稿(本 skill 唯一终产物)
├── script-YYYY-MM-DD.decision.json ← schema 3创作执行证据
├── script-YYYY-MM-DD.tts.aiff  ← 本机实际试读证据
└── (cover-prompts 不在此产出,由 laohan-fengmianqiuzhi 独立 skill 后续生成)

If output/ does not exist, create it automatically.

Episode mode's complete intermediate artifacts are fixed as:

episodes/<slug>/
├── 01-口播稿.md
├── 12-发布/
│   ├── 多平台发布内容.md
│   └── 观众资源/             ← 仅正文承诺资源时生成;完整推荐值,无空白占位
└── 02-创作工作稿/
  ├── 创作决策.json
  ├── 创作决策.md       ← 可选人类摘要
  ├── humanizer-input.md ← 最终语言定稿前的完整稿件快照
  ├── tts-read-aloud.aiff ← 本机实际试读证据
    ├── transcript.md
    ├── content.md
    ├── organize.md
    └── outline.md

Episode mode prohibits reading or writing shared output/。

Dependency

Dependency Purpose Installation method
ffmpeg Audio extraction (Pre-A) brew install ffmpeg
SiliconFlow API Key Speech-to-text (Pre-A, preferred) Register at siliconflow.cn
whisper.cpp Local speech-to-text (Pre-A, alternative) brew install whisper.cpp
nlm CLI + poppler NotebookLM slides (Post-A) pip install notebooklm-mcp-cli && brew install poppler

Pre-A/B are on-demand dependencies; if the corresponding mode is not used, no installation is required.

Trigger mode

# 录屏模式(传入视频文件)
/laohan-chuangzuo /path/to/recording.mp4
"把这个录屏视频转成口播稿"

# URL 队列模式
"根据链接改写""链接内容改写""改写文档"

# 大纲模式(传入大纲文件;选题搜索归工作流①)
/laohan-chuangzuo output/outline-YYYY-MM-DD.md

# Episode 模式(00-选题已锁定)
/laohan-chuangzuo --episode episodes/<slug>

# 素材模式(传入原始文本文件)
/laohan-chuangzuo output/transcript.md
/laohan-chuangzuo output/content.md

# 自由模式(直接触发或给主题)
/laohan-chuangzuo
/laohan-chuangzuo "Claude Code 配置技巧"
"帮我写""写口播稿"

Notes

  • style.md and the tutorial-style file are default methodologies verified in practice, not candidate summaries for reference only. The Episode contract can only add true-source, fact, and persistence constraints, and cannot override or delete their creation methods
  • Style file(references/styles/) is a fully self-contained writing specification; a style must be selected before each creation. General mode has no additional file and directly uses style.md; other modes only read the corresponding style file
  • skill.md is the sole source of the organizing method; Layer A/B rules are governed by that file
  • For the translation-based topic selection method, see references/yuanchuang-method.md(translation case studies + angle library + title formulas + data benchmarks). This skill does not include hotspot search; this file is for reuse in the pre-stage of workflow ①
  • For transcription techniques, see references/transcription.md(audio extraction + three-level fallback)
  • Secondary creation desensitization rules (style.md Section 10): executed when material comes from others' content; skipped in free mode (original topics)
  • This skill is not responsible for topic search (that is the responsibility of the workflow ① stage; use laohan-xuanti + laohan-douyinsousuo to produce an outline and then feed it in)
  • This skill is not responsible for platform-specific downloads (that is the responsibility of laohan-xiazai)