醒醒别再猜:统一内容操作系统
Work in:
~/Documents/图文/xingxing-emotion-video-system/emotion-card-video-studio
安装 Skill 时,scripts/install-skill.sh 会把上面的占位路径替换为仓库的
绝对克隆路径。
The source of truth is one DailyContentRun:
strategy → scored backlog → Hook-only slot → one daily episode
→ render/QA → QianFan remote schedule → verified work → metrics → decision
Hard rules
- Never redraw or overwrite canonical 醒醒、星星 or duo assets. Preserve 星星的粉色星星细节.
- The only active content-copy experiment is
hook-copy-20s-002; hook-opening-20s-001 and old 16/25-second records are read-only/confounded baselines. A voice treatment is a separately registered sound-variable test: never place it in, substitute it for, or use it to judge a Hook-only slot.
- Use
balanced-20s. Publish at most one episode per platform per day at 20:30. A/B counterparts are exactly 48 hours apart.
- Within a Hook-only A/B pair, only Hook text changes. Body, actions, background, title, covers, BGM, CTA, and the complete fixed-treatment fingerprint must match. That fingerprint includes voice/no-voice state, voice engine, rate, pitch, scene clock, BGM gain/ducking, opening-chime state, and motion-template version. Never change an already materialized pair; new pairs created on or after the Xiaoyi steady-push cutover use the same treatment on both arms.
- Use the five roles in order: 星星具体冲突 → 星星承接情绪 → 醒醒指出可观察行为 → 醒醒给一句可直接说的话 → 双人展示结果并提出具体问题.
- Hook is exactly two lines and 12–18 Chinese characters excluding the line break. It contains a quote, behavior, time, count, or light reversal.
- Select a topic only when six 1–5 scores total at least 24 and both specificity and solution value are at least 4. The first eight pairs use
猜测误解3 / 冲突修复2 / 需求表达2 / 边界共同决定1.
- Change at least 3/5 actual images from the preceding topic; reject a latest-10 duplicate sequence.
pass_star and shared_star are one pixel identity.
- Xiaohongshu is
manual_official_only: never use QianFan, browser automation, cookies, sync, login checks, scheduling, publishing, replies, or creator-center collection for it. This is absolute isolation, including every voice-template test. Generate only a local manual package.
- Hook-only DailyContentRuns have exactly three automated distribution targets: Douyin, Kuaishou, and Channels. A separately registered voice/sound pilot may additionally target Bilibili, Baijiahao, and Tencent Video only after the account owner explicitly requests that expansion. Never silently turn a six-platform pilot into a Hook-only slot or a default daily target set.
- Set
isOriginal: true whenever the platform UI/API supports it. Never add an optional AI-generated label or AI-related tag.
Default Xiaoyi natural-narration + steady-push template
Use treatment id xiaoyi-natural-steady-push-v2 for new videos. The approved standalone pilot remains excluded from Hook-only decisions. For future Hook-only pairs, apply the complete treatment identically to both arms; existing pairs keep their original immutable fingerprint.
- Lock the render at 20.000 seconds / 600 frames at 30 fps. Use the five acts
hook, emotion, observe, clarity, heal with frame lengths [128, 102, 111, 125, 134]; the first act is exactly 128 frames (4.267 seconds).
- Narrate with
zh-CN-XiaoyiNeural at +0% rate and -2Hz pitch. Do not substitute a different voice, rate, pitch, or scene clock within the same treatment.
- Keep the complete BGM at its original static mix: no BGM gain reduction, no dynamic ducking, and no sidechain avoidance under narration. Remove the separate opening “ding” only; do not trim or mute the remaining BGM.
- Use
steady-single-push: start at frame 12 of every scene, push once for 60–66 frames with quintic smootherstep, and increase scale by exactly 0.015. Never add vertical drift, scale return, bounce, oscillation, or a second push.
- Hold the final position for at least 12 frames before a transition. During every 18-frame / 0.6-second star-mask crossfade, freeze character scale, container size, and camera position. Keep one consistent frame size across all five scenes.
- Encode audio as AAC at 48 kHz. Set
isOriginal: true whenever the target supports it; do not apply an AI-generated label or AI-related tag.
- The default pilot target set is Douyin, Kuaishou, and Channels. When, and only when, the account owner explicitly requests it, this separately registered Xiaoyi sound pilot may expand to Bilibili, Baijiahao, and Tencent Video. Record the explicit expansion, release identity, video hash, and each platform target separately; do not add those platforms to
hook-copy-20s-002 or any normal DailyContentRun.
- For Bilibili relationship/life pilots, use leaf tid
21 (生活 / 日常), not parent tid 160. Clear inherited draft tags first and require the final selected-tag set to equal the release manifest. If category or tags cannot be read back exactly before submit, stop that lane without clicking submit.
- Xiaohongshu remains absolutely isolated in every case: no target creation, QianFan action, session use, sync, schedule, upload, publication, or account check.
- Before upload, produce and QA a platform-specific cover for every target. Validate its exact required ratio(s), safe area, 180 px readability, canonical-art source, stored absolute path, and file hash. If the current QianFan/platform capability does not expose the accepted cover requirement or the cover fails QA, block only that platform; never substitute an unrelated cover or bypass the gate.
- A target is
scheduled only after a remote remoteScheduleId, platformWorkId, publish URL, or creator-center schedule record is captured with timestamp. A local package, upload request, HTTP 200, queue entry, or submitted result remains unconfirmed and must not be retried until read-only reconciliation.
Daily 10:17 workflow
Preview without side effects:
cd ~/Documents/图文/xingxing-emotion-video-system/emotion-card-video-studio
.venv/bin/emotion-card content-status
.venv/bin/emotion-card program-status
.venv/bin/emotion-card daily-program --date YYYY-MM-DD
The scheduled job uses one resumable command:
.venv/bin/emotion-card daily-program \
--date YYYY-MM-DD --write --execute-local --through schedule \
--remote-adapter emotion_card_studio.emotion_daily_adapter:from_environment
Internally it must:
- Read only confirmed works and comparable 2/24/72-hour snapshots. Missing data stays missing.
- Output
多做 / 少做 / 今日测试, select the scheduled A or B arm, and persist the scored topic, copy, actions, scene moods, motion/sound cues, and ratio-specific covers.
- Materialize Episode v5, render one 20-second video, and run character, color, transition, subtitle, audio, cover, duration, and hash QA.
- Run QianFan capability and read-only preflight for exact
episode + platform + account + variant + videoHash.
- Submit platform-side 20:30 schedules and persist per-platform evidence. At 19:30, any unconfirmed platform becomes blocked; never switch to immediate posting.
Recovery resumes the same immutable run and slot. It does not create a new hash, batch, or upload.
Visual/audio v3 gates
- Frame 0 is full color with complete Hook and a character at 36%–40% screen height.
- Never show
full color → full sketch regression. Only a local 0.3–0.9-second wand/glow pass is allowed; later scenes transition full-color to full-color through a star/object mask.
- In 0–3 seconds show distinct semantic events without violating the steady camera: keyword/prop/expression changes plus the single 1.5% smootherstep push. Do not reintroduce the old 2%–4% push, drift, or bounce rule.
- Use role labels and semantic scene light such as phone glow, rain window, calendar, table, doorway, warm lamp, or shared starlight.
- Covers use canonical art, not an in-progress video frame. Each ratio headline is 8–14 Chinese characters, at most two lines, phrase-safe, and readable at 180 px.
- New post-cutover Hook pairs use Xiaoyi narration and the complete static BGM with no opening chime. Both arms must share the same audio bytes/timing except where Hook narration necessarily differs. Keep AAC 48 kHz, True Peak below
-1 dBFS, and A/V drift within 50 ms. Existing no-voice pairs remain unchanged.
Remote evidence boundary
- Apply these rules only to permitted targets. Xiaohongshu remains
manual_official_only, including for remote-evidence collection or reconciliation.
- A local pack, HTTP 200, queue row, click,
submitted, scheduled_pending, pending_schedule, or unresolved is not remote scheduling proof.
- A platform cell is scheduled only with a remote schedule/work/creator-center reference, observed timestamp, and evidence. Preserve successful cells when another platform fails.
- Login/captcha must preserve the session and stop for the user. Unknown results are hard no-resend until read-only reconciliation.
- Published means a work ID/URL or linked creator-center work. Never manufacture metrics, fill missing values with zero, or pool platform results.
Experiment decision
Douyin is primary; Kuaishou and Channels are independent replications. Do not judge until at least eight valid pairs and 400 cumulative Douyin views per arm. Promotion requires 7/8 same-direction pairs, paired median lift of at least 20%, guardrails no worse than 20%, and replication on Kuaishou or Channels. Only insufficient exposure may extend to 12 pairs, requiring 10/12 same-direction pairs; otherwise record inconclusive.
After Hook is decided, test duration by platform, then semantic sounds, BGM, background, cover, and publish time—one variable at a time.
Benchmark grammar pilot (local-only)
The independent benchmark-grammar-001 pilot borrows a short-hook, single-anchor
composition without replacing the five-act 20-second default or entering the
Hook experiment. Its source of truth is
emotion-card-video-studio/content/experiments/benchmark-grammar-001.json and
its render profile is content/render-profiles/benchmark-grammar-v1.json.
- Render with
hyperframes-sticker-17s-v2: 510 frames, 1080x1920, 30 fps,
three beats [170, 160, 180].
- The first frame must show the complete character and a concrete two-line
Hook; every 0.8–1.4 seconds needs a caption, expression, gaze, gesture, prop,
camera or star event.
- Scene transitions retain at least six overlapping frames. Empty transition
frames, black fades, full-sketch resets and vertical drift fail QA.
- Keep canonical character hashes, Xiaoyi
+0% / -2Hz, the full static BGM,
no ducking and no opening chime.
- New benchmark copy tests use
positive-relationship-micro-moment-v1:
a concrete remembered/caring behavior, one positive response the viewer can
say aloud, then a comfortable two-person result. Test at least three fresh
topics before changing direction; do not replace this with accusation-led
copy or abstract healing slogans.
- Keep the approved music bed at source volume
1.0. A copied audio file or an
audio stream alone does not prove music is audible; verify the narration-free
final hold contains the BGM at a phone-audible level.
- Do not infer the canonical character from a directory name such as
formal, production, or canonical. Read the locked source manifest and
compare the candidate artwork with the user-confirmed master first.
- Before the first render of a new character/action set, create a contact sheet
with source paths and SHA-256 values and stop for user confirmation. Until
that lock exists, do not render, publish, or use ImageGen as a fallback.
- A rejected or deleted asset pack must remain unavailable to selectors; its
deletion/tombstone record is the only retained reference.
- Derive
9:16, 3:4, 4:3 and 16:9 covers from the approved first-scene
artwork; never crop a rendered video frame. The preview normalizes a short
TTS file into an ignored 17-second audio bed without changing the source.
- Validate without side effects:
emotion-card validate-benchmark \
content/experiments/benchmark-grammar-001.json
python scripts/render_benchmark_preview.py \
--narration /absolute/path/to/xiaoyi-narration.mp3
The preview is local-only and must not create a QianFan target, publish slot or
platform request. Compare its platform-specific metrics independently; never
pool raw views across platforms.
Positive micro-moment 17-second batches
The explicitly authorized batches
20260810-positive-micro-moments-17s-001 (10 items) and
20260813-positive-micro-moments-17s-002 (30 items) extend the approved
benchmark grammar into bounded six-platform content screens. They do not
change the normal 20-second Hook experiment or create a general permission for
future benchmark episodes.
- Copy shape is fixed: a visible caring behavior, a positive sentence the
viewer can say aloud, then a comfortable two-person result.
- Render with
hyperframes-sticker-17s-v2, Xiaoyi +0% / -2Hz, full
emotional-pentatonic at volume 1.0, no ducking and no opening chime.
- The engagement question is visible only and must not enter the narration.
- Use only
user-confirmed-canonical-v1; all nine pose frames in one video
must have distinct real SHA-256 values. pass-star and shared-star count
as one image because their bytes are identical.
- Produce 9:16, 3:4, 4:3 and 16:9 covers from the approved first-scene art.
- Local production entry:
python scripts/positive_micro_batch.py --validate-only
python scripts/positive_micro_batch.py --jobs 2
- The release boundary is the exact item registry in the selected batch
manifest. Never infer or append additional IDs. The approved target
set is Douyin, Kuaishou, Channels, Bilibili, Baijiahao and Tencent Video;
Xiaohongshu remains zero-operation.
- The 30-item batch uses an item-first barrier: preflight all six targets,
obtain an exact Tencent schedule receipt first, schedule the other five in
parallel, and advance only after the current item has 6/6 remote evidence.
Never let five platforms run ahead when Tencent or another target is blocked.
- Tencent submissions are limited to three per account per Shanghai calendar
day across all batches; unresolved or unknown submit-capable attempts consume
the quota. Baijiahao is submitted only inside its seven-day remote window.
For the 30-item batch, target times remain exactly six hours apart from
2026-08-19 22:00 through 2026-08-27 04:00 unless a new immutable manifest
is explicitly approved before the first remote slot.
- A write requires
--execute --confirm-publish --all-six-platforms; a remote ID, work ID or
exact creator-center record with the exact target minute is still mandatory.
A captcha stops the current item wave while preserving completed cells.
submitting, unknown results, and conflicting active attempts remain
no-resend and block later items until official read-only reconciliation.
- QianFan must hold a global
(platform_key, account_id) lane lock across all
pilots and batches. A second batch may not upload through the same platform
account while any other attempt is submitting.
1---2name: xingxing-emotion-video3description: Run the unified content operating system for the 醒醒别再猜 relationship IP: scored topics, Hook-only experiments, Xiaoyi narration, steady-push 20-second production, QianFan publishing, and comparable 2/24/72-hour decisions.4---56# 醒醒别再猜:统一内容操作系统78Work in:910```text11~/Documents/图文/xingxing-emotion-video-system/emotion-card-video-studio12```1314安装 Skill 时,`scripts/install-skill.sh` 会把上面的占位路径替换为仓库的15绝对克隆路径。1617The source of truth is one `DailyContentRun`:1819```text20strategy → scored backlog → Hook-only slot → one daily episode21→ render/QA → QianFan remote schedule → verified work → metrics → decision22```2324## Hard rules2526- Never redraw or overwrite canonical 醒醒、星星 or duo assets. Preserve 星星的粉色星星细节.27- The only active content-copy experiment is `hook-copy-20s-002`; `hook-opening-20s-001` and old 16/25-second records are read-only/confounded baselines. A voice treatment is a separately registered sound-variable test: never place it in, substitute it for, or use it to judge a Hook-only slot.28- Use `balanced-20s`. Publish at most one episode per platform per day at 20:30. A/B counterparts are exactly 48 hours apart.29- Within a Hook-only A/B pair, only Hook text changes. Body, actions, background, title, covers, BGM, CTA, and the complete fixed-treatment fingerprint must match. That fingerprint includes voice/no-voice state, voice engine, rate, pitch, scene clock, BGM gain/ducking, opening-chime state, and motion-template version. Never change an already materialized pair; new pairs created on or after the Xiaoyi steady-push cutover use the same treatment on both arms.30- Use the five roles in order: 星星具体冲突 → 星星承接情绪 → 醒醒指出可观察行为 → 醒醒给一句可直接说的话 → 双人展示结果并提出具体问题.31- Hook is exactly two lines and 12–18 Chinese characters excluding the line break. It contains a quote, behavior, time, count, or light reversal.32- Select a topic only when six 1–5 scores total at least 24 and both specificity and solution value are at least 4. The first eight pairs use `猜测误解3 / 冲突修复2 / 需求表达2 / 边界共同决定1`.33- Change at least 3/5 actual images from the preceding topic; reject a latest-10 duplicate sequence. `pass_star` and `shared_star` are one pixel identity.34- Xiaohongshu is `manual_official_only`: never use QianFan, browser automation, cookies, sync, login checks, scheduling, publishing, replies, or creator-center collection for it. This is absolute isolation, including every voice-template test. Generate only a local manual package.35- Hook-only DailyContentRuns have exactly three automated distribution targets: Douyin, Kuaishou, and Channels. A separately registered voice/sound pilot may additionally target Bilibili, Baijiahao, and Tencent Video only after the account owner explicitly requests that expansion. Never silently turn a six-platform pilot into a Hook-only slot or a default daily target set.36- Set `isOriginal: true` whenever the platform UI/API supports it. Never add an optional AI-generated label or AI-related tag.3738## Default Xiaoyi natural-narration + steady-push template3940Use treatment id `xiaoyi-natural-steady-push-v2` for new videos. The approved standalone pilot remains excluded from Hook-only decisions. For future Hook-only pairs, apply the complete treatment identically to both arms; existing pairs keep their original immutable fingerprint.4142- Lock the render at 20.000 seconds / 600 frames at 30 fps. Use the five acts `hook, emotion, observe, clarity, heal` with frame lengths `[128, 102, 111, 125, 134]`; the first act is exactly 128 frames (4.267 seconds).43- Narrate with `zh-CN-XiaoyiNeural` at `+0%` rate and `-2Hz` pitch. Do not substitute a different voice, rate, pitch, or scene clock within the same treatment.44- Keep the complete BGM at its original static mix: no BGM gain reduction, no dynamic ducking, and no sidechain avoidance under narration. Remove the separate opening “ding” only; do not trim or mute the remaining BGM.45- Use `steady-single-push`: start at frame 12 of every scene, push once for 60–66 frames with quintic smootherstep, and increase scale by exactly `0.015`. Never add vertical drift, scale return, bounce, oscillation, or a second push.46- Hold the final position for at least 12 frames before a transition. During every 18-frame / 0.6-second star-mask crossfade, freeze character scale, container size, and camera position. Keep one consistent frame size across all five scenes.47- Encode audio as AAC at 48 kHz. Set `isOriginal: true` whenever the target supports it; do not apply an AI-generated label or AI-related tag.48- The default pilot target set is Douyin, Kuaishou, and Channels. When, and only when, the account owner explicitly requests it, this separately registered Xiaoyi sound pilot may expand to Bilibili, Baijiahao, and Tencent Video. Record the explicit expansion, release identity, video hash, and each platform target separately; do not add those platforms to `hook-copy-20s-002` or any normal DailyContentRun.49- For Bilibili relationship/life pilots, use leaf tid `21` (`生活 / 日常`), not parent tid `160`. Clear inherited draft tags first and require the final selected-tag set to equal the release manifest. If category or tags cannot be read back exactly before submit, stop that lane without clicking submit.50- Xiaohongshu remains absolutely isolated in every case: no target creation, QianFan action, session use, sync, schedule, upload, publication, or account check.51- Before upload, produce and QA a platform-specific cover for every target. Validate its exact required ratio(s), safe area, 180 px readability, canonical-art source, stored absolute path, and file hash. If the current QianFan/platform capability does not expose the accepted cover requirement or the cover fails QA, block only that platform; never substitute an unrelated cover or bypass the gate.52- A target is `scheduled` only after a remote `remoteScheduleId`, `platformWorkId`, publish URL, or creator-center schedule record is captured with timestamp. A local package, upload request, HTTP 200, queue entry, or `submitted` result remains unconfirmed and must not be retried until read-only reconciliation.5354## Daily 10:17 workflow5556Preview without side effects:5758```bash59cd ~/Documents/图文/xingxing-emotion-video-system/emotion-card-video-studio60.venv/bin/emotion-card content-status61.venv/bin/emotion-card program-status62.venv/bin/emotion-card daily-program --date YYYY-MM-DD63```6465The scheduled job uses one resumable command:6667```bash68.venv/bin/emotion-card daily-program \69 --date YYYY-MM-DD --write --execute-local --through schedule \70 --remote-adapter emotion_card_studio.emotion_daily_adapter:from_environment71```7273Internally it must:74751. Read only confirmed works and comparable 2/24/72-hour snapshots. Missing data stays missing.762. Output `多做 / 少做 / 今日测试`, select the scheduled A or B arm, and persist the scored topic, copy, actions, scene moods, motion/sound cues, and ratio-specific covers.773. Materialize Episode v5, render one 20-second video, and run character, color, transition, subtitle, audio, cover, duration, and hash QA.784. Run QianFan capability and read-only preflight for exact `episode + platform + account + variant + videoHash`.795. Submit platform-side 20:30 schedules and persist per-platform evidence. At 19:30, any unconfirmed platform becomes blocked; never switch to immediate posting.8081Recovery resumes the same immutable run and slot. It does not create a new hash, batch, or upload.8283## Visual/audio v3 gates8485- Frame 0 is full color with complete Hook and a character at 36%–40% screen height.86- Never show `full color → full sketch` regression. Only a local 0.3–0.9-second wand/glow pass is allowed; later scenes transition full-color to full-color through a star/object mask.87- In 0–3 seconds show distinct semantic events without violating the steady camera: keyword/prop/expression changes plus the single 1.5% smootherstep push. Do not reintroduce the old 2%–4% push, drift, or bounce rule.88- Use role labels and semantic scene light such as phone glow, rain window, calendar, table, doorway, warm lamp, or shared starlight.89- Covers use canonical art, not an in-progress video frame. Each ratio headline is 8–14 Chinese characters, at most two lines, phrase-safe, and readable at 180 px.90- New post-cutover Hook pairs use Xiaoyi narration and the complete static BGM with no opening chime. Both arms must share the same audio bytes/timing except where Hook narration necessarily differs. Keep AAC 48 kHz, True Peak below `-1 dBFS`, and A/V drift within 50 ms. Existing no-voice pairs remain unchanged.9192## Remote evidence boundary9394- Apply these rules only to permitted targets. Xiaohongshu remains `manual_official_only`, including for remote-evidence collection or reconciliation.95- A local pack, HTTP 200, queue row, click, `submitted`, `scheduled_pending`, `pending_schedule`, or `unresolved` is not remote scheduling proof.96- A platform cell is scheduled only with a remote schedule/work/creator-center reference, observed timestamp, and evidence. Preserve successful cells when another platform fails.97- Login/captcha must preserve the session and stop for the user. Unknown results are hard no-resend until read-only reconciliation.98- Published means a work ID/URL or linked creator-center work. Never manufacture metrics, fill missing values with zero, or pool platform results.99100## Experiment decision101102Douyin is primary; Kuaishou and Channels are independent replications. Do not judge until at least eight valid pairs and 400 cumulative Douyin views per arm. Promotion requires 7/8 same-direction pairs, paired median lift of at least 20%, guardrails no worse than 20%, and replication on Kuaishou or Channels. Only insufficient exposure may extend to 12 pairs, requiring 10/12 same-direction pairs; otherwise record `inconclusive`.103104After Hook is decided, test duration by platform, then semantic sounds, BGM, background, cover, and publish time—one variable at a time.105106## Benchmark grammar pilot (local-only)107108The independent `benchmark-grammar-001` pilot borrows a short-hook, single-anchor109composition without replacing the five-act 20-second default or entering the110Hook experiment. Its source of truth is111`emotion-card-video-studio/content/experiments/benchmark-grammar-001.json` and112its render profile is `content/render-profiles/benchmark-grammar-v1.json`.113114- Render with `hyperframes-sticker-17s-v2`: 510 frames, 1080x1920, 30 fps,115 three beats `[170, 160, 180]`.116- The first frame must show the complete character and a concrete two-line117 Hook; every 0.8–1.4 seconds needs a caption, expression, gaze, gesture, prop,118 camera or star event.119- Scene transitions retain at least six overlapping frames. Empty transition120 frames, black fades, full-sketch resets and vertical drift fail QA.121- Keep canonical character hashes, Xiaoyi `+0% / -2Hz`, the full static BGM,122 no ducking and no opening chime.123- New benchmark copy tests use `positive-relationship-micro-moment-v1`:124 a concrete remembered/caring behavior, one positive response the viewer can125 say aloud, then a comfortable two-person result. Test at least three fresh126 topics before changing direction; do not replace this with accusation-led127 copy or abstract healing slogans.128- Keep the approved music bed at source volume `1.0`. A copied audio file or an129 audio stream alone does not prove music is audible; verify the narration-free130 final hold contains the BGM at a phone-audible level.131- Do not infer the canonical character from a directory name such as132 `formal`, `production`, or `canonical`. Read the locked source manifest and133 compare the candidate artwork with the user-confirmed master first.134- Before the first render of a new character/action set, create a contact sheet135 with source paths and SHA-256 values and stop for user confirmation. Until136 that lock exists, do not render, publish, or use ImageGen as a fallback.137- A rejected or deleted asset pack must remain unavailable to selectors; its138 deletion/tombstone record is the only retained reference.139- Derive `9:16`, `3:4`, `4:3` and `16:9` covers from the approved first-scene140 artwork; never crop a rendered video frame. The preview normalizes a short141 TTS file into an ignored 17-second audio bed without changing the source.142- Validate without side effects:143144```bash145emotion-card validate-benchmark \146 content/experiments/benchmark-grammar-001.json147python scripts/render_benchmark_preview.py \148 --narration /absolute/path/to/xiaoyi-narration.mp3149```150151The preview is local-only and must not create a QianFan target, publish slot or152platform request. Compare its platform-specific metrics independently; never153pool raw views across platforms.154155## Positive micro-moment 17-second batches156157The explicitly authorized batches158`20260810-positive-micro-moments-17s-001` (10 items) and159`20260813-positive-micro-moments-17s-002` (30 items) extend the approved160benchmark grammar into bounded six-platform content screens. They do not161change the normal 20-second Hook experiment or create a general permission for162future benchmark episodes.163164- Copy shape is fixed: a visible caring behavior, a positive sentence the165 viewer can say aloud, then a comfortable two-person result.166- Render with `hyperframes-sticker-17s-v2`, Xiaoyi `+0% / -2Hz`, full167 `emotional-pentatonic` at volume `1.0`, no ducking and no opening chime.168- The engagement question is visible only and must not enter the narration.169- Use only `user-confirmed-canonical-v1`; all nine pose frames in one video170 must have distinct real SHA-256 values. `pass-star` and `shared-star` count171 as one image because their bytes are identical.172- Produce 9:16, 3:4, 4:3 and 16:9 covers from the approved first-scene art.173- Local production entry:174175```bash176python scripts/positive_micro_batch.py --validate-only177python scripts/positive_micro_batch.py --jobs 2178```179180- The release boundary is the exact item registry in the selected batch181 manifest. Never infer or append additional IDs. The approved target182 set is Douyin, Kuaishou, Channels, Bilibili, Baijiahao and Tencent Video;183 Xiaohongshu remains zero-operation.184- The 30-item batch uses an item-first barrier: preflight all six targets,185 obtain an exact Tencent schedule receipt first, schedule the other five in186 parallel, and advance only after the current item has 6/6 remote evidence.187 Never let five platforms run ahead when Tencent or another target is blocked.188- Tencent submissions are limited to three per account per Shanghai calendar189 day across all batches; unresolved or unknown submit-capable attempts consume190 the quota. Baijiahao is submitted only inside its seven-day remote window.191 For the 30-item batch, target times remain exactly six hours apart from192 `2026-08-19 22:00` through `2026-08-27 04:00` unless a new immutable manifest193 is explicitly approved before the first remote slot.194- A write requires195 `--execute --confirm-publish --all-six-platforms`; a remote ID, work ID or196 exact creator-center record with the exact target minute is still mandatory.197 A captcha stops the current item wave while preserving completed cells.198 `submitting`, unknown results, and conflicting active attempts remain199 no-resend and block later items until official read-only reconciliation.200- QianFan must hold a global `(platform_key, account_id)` lane lock across all201 pilots and batches. A second batch may not upload through the same platform202 account while any other attempt is `submitting`.