图书视频工厂
First use
Resolve SKILL_ROOT as the directory containing this SKILL.md; do not assume a particular user home directory, operating system, brand, voice, font, or credential.
In an empty or new workspace, run:
python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py --workspace .
python3 <SKILL_ROOT>/scripts/doctor.py --profile planning
Bootstrap copies the bundled deterministic runtime into book_video_factory/; it does not download hidden media or depend on the maintainer's machine.
Create a project only after the user approves the book/topic:
python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py \
--workspace . --slug <slug> --book-title '<title>' --author '<author>'
If the topic comes from a structured content asset system, add --mode content-system-backed. This mode requires a validated content package and traceability map before assets can pass their gate.
Read references/first-run.md before generating the first production package. Read references/quality-gates.md before declaring a release ready.
Working model
- Keep reusable workflow/configuration in
book_video_factory/ and project-specific evidence/media in book_video_warehouse/.
- Treat all book covers, quotations, BGM, voice references, reference videos, generated assets, and credentials as user-owned/project-local inputs. Never ship, download, clone, or reuse a hidden default asset.
- Create a new release directory for every revision. Preserve the local master as the source of truth; ChatCut is an optional editable polish layer.
- Keep human gates for topic approval, script approval, source/rights approval, native-language review, and publish approval.
Style profiles
Select one style profile before making assets; never silently mix their frame, typography, or review contracts.
- 双语编辑模板图书视频(原风格) — machine ID
book-editorial-bilingual-v2. Deterministic 3:4 bilingual template with a real cover, 12 approved stills, local narration, rendered captions, and an optional 9:16 derivative.
- VOX风格图书视频(新增风格) — machine ID
paper-collage-explainer-v1. A 9:16, voice-led editorial paper-collage explainer made from 4–8-second visual beats. It is a descriptive public label, not an affiliation claim or permission to imitate a named publisher/program. Read references/paper-collage-explainer.md before selecting it.
The original style is the backward-compatible default. For VOX style, create the project with --style-profile paper-collage-explainer-v1 and explicitly choose one generation lane:
gemini-api — programmatic lane. Requires a user-authorized GEMINI_API_KEY, the current Google Gen AI SDK, provider cost/quota approval, and an immutable operation/output record. Use gemini-omni-flash-preview through the Interactions API by default; use veo-3.1-generate-preview through generate_videos when first/last-frame control or video extension is required.
google-flow — manual creative lane. Requires current account/region eligibility, an eligible Google AI plan, available credits, and a user-operated browser session. Do not assume Flow exposes a programmable API; import only user-authorized exports and record prompts, visible credits, hashes, and manual-run provenance.
The VOX-style path is currently an orchestration-and-import workflow. Do not claim this repository bundles a one-click Google video generator.
The current dbs-content-system scene-traceability contract is V4-specific, so content-system-backed is supported by the original style only; VOX style is fail-closed to single-book until a manifest-based traceability contract is implemented and tested.
Production sequence
- Topic and evidence — collect public, attributable book metadata. If a WeRead credential or another data source is unavailable, record the limitation and use user-supplied/publicly attributable evidence; do not bypass logins or platform restrictions.
- Script, voice, and timing — create and approve a concise Chinese script plus any English production draft. Generate/record narration only with authorization; derive timestamps from actual audio via permitted ASR or an editor transcript. Never invent timing. VOX style locks this timing before full clip generation.
- Style-specific assets — the original style obtains a real cover plus 12 approved text-free stills. VOX style approves one metaphor, then a first/last frame or contact sheet, then each generated visual beat; prompts use non-branded editorial descriptors.
- Picture lock — map approved assets to the locked narration. Normalize VOX clips to silent 720×1280 H.264 at the local 30 fps timeline without speed changes; inspect cadence and keep optical flow off by default.
- Audio and render — add project-owned narration, local captions, permitted BGM and SFX. BGM rights approval and creative
bgm_review are separate decisions. Never copy a reference video's audio.
- QC and delivery — run technical and human gates, bind approvals to hashes, write manifests and cost events, then optionally import the passed local master into ChatCut for fine editing.
Workflow contracts
project.json.workflow.style_profile_id selects the visual workflow; its mapped release_profile_id selects the renderer/output contract. Existing projects without a style ID fall back to the original style only for compatibility.
- Use
config/release_profiles/book-v4-bilingual-3x4.json for the original style and config/release_profiles/book-vox-vertical-9x16-v1.json for VOX style; never treat either style's dimensions or assets as universal constants.
- Use
scripts/workflow.py evaluate --project <project> --release-id <release-id> to resolve the project profile and derive a release-scoped state. project.json.status is not an approval mechanism, and approvals from different releases are never combined.
- Record human decisions with
scripts/workflow.py approve; approvals bind to the reviewed file hash and become stale after edits.
- Use
scripts/workflow.py manifest-stage for immutable stage manifests with input/output hashes.
- Long titles are pixel-measured, semantically wrapped to at most two lines, and fail closed if they cannot fit the configured safe area.
- Keep
dbs-content-system upstream: it owns source audits, QST / CON / OPI / CAS / SOL, theme maps, relationships, deduplication, canonical versions, and assembly. Do not reproduce those algorithms in this Skill.
- For
content-system-backed, use scripts/content_bridge.py export-dbs, validate-package, import-package, attach-traceability, and status. export-dbs is serialization only; it does not perform upstream semantic work. Imports and active-version changes are append-only and hash-bound.
- A valid bridge package contains
source_document / content_unit / claim / assembly_brief; the traceability map connects every script line to reviewed Claim evidence or an explicit editorial exemption, and to the renderer's actual scene contract. A human traceability approval bound to that map is required before assets_ready.
Required release gates
- Do not use a generated imitation as a book cover. Record the actual cover source and rights/usage status.
- Do not reuse copyrighted music, sound effects, reference-video audio, a person's voice, public-figure likeness, or account branding without explicit rights.
- Require 12 non-duplicate numbered stills (
S01–S12) only for the original V4-style delivery. VOX style uses its approved clip manifest and does not impose a universal scene count.
- For VOX style, keep
source_audit, gate_1_metaphor, gate_2_still, gate_3_clip_qa, bgm_review, audio_qc, local_master_review, and publish as distinct hash-bound gates. Apply cover_rights and english_native only when those elements are delivered.
- Accept invisible provider provenance such as SynthID; do not remove or tamper with it. Reject visible third-party watermarks.
- Never invent token counts. Record only usage values exposed by the relevant provider.
Cost ledger
Use the bundled append-only ledger for known usage and operational facts:
python3 <SKILL_ROOT>/scripts/run_cost.py record \
--warehouse book_video_warehouse --project <slug> --stage assets.generate \
--images 12 --note 'Approved scene images'
python3 <SKILL_ROOT>/scripts/run_cost.py report --warehouse book_video_warehouse
— in a report means the usage was not available; it is not zero cost.
ChatCut handoff
Use ChatCut only after local QC passes. Import the local master and subtitle file, make scoped editorial changes, and export v4-chatcut-<revision> without overwriting the local master. Record the project ID, edits, reviewer decision, and export path in the project delivery manifest.
1---2name: book-video-factory3description: Create or operate a portable, auditable Chinese book-review short-video workflow from a clean local workspace. Use when starting a book-video factory, choosing between the original 3:4 bilingual editorial style and the new 9:16 VOX-style book-video workflow, importing dbs-content-system source documents and QST/CON/OPI/CAS/SOL content units, linking script claims to evidence and scenes, using approved Gemini API or Google Flow assets, collecting rights-aware media, recording run cost, or preparing a local master for optional ChatCut fine editing.4---56# 图书视频工厂78## First use9101. Resolve `SKILL_ROOT` as the directory containing this `SKILL.md`; do not assume a particular user home directory, operating system, brand, voice, font, or credential.112. In an empty or new workspace, run:1213 ```bash14 python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py --workspace .15 python3 <SKILL_ROOT>/scripts/doctor.py --profile planning16 ```1718 Bootstrap copies the bundled deterministic runtime into `book_video_factory/`; it does not download hidden media or depend on the maintainer's machine.19203. Create a project only after the user approves the book/topic:2122 ```bash23 python3 <SKILL_ROOT>/scripts/bootstrap_workspace.py \24 --workspace . --slug <slug> --book-title '<title>' --author '<author>'25 ```2627 If the topic comes from a structured content asset system, add `--mode content-system-backed`. This mode requires a validated content package and traceability map before assets can pass their gate.28294. Read `references/first-run.md` before generating the first production package. Read `references/quality-gates.md` before declaring a release ready.3031## Working model3233- Keep reusable workflow/configuration in `book_video_factory/` and project-specific evidence/media in `book_video_warehouse/`.34- Treat all book covers, quotations, BGM, voice references, reference videos, generated assets, and credentials as user-owned/project-local inputs. Never ship, download, clone, or reuse a hidden default asset.35- Create a new release directory for every revision. Preserve the local master as the source of truth; ChatCut is an optional editable polish layer.36- Keep human gates for topic approval, script approval, source/rights approval, native-language review, and publish approval.3738## Style profiles3940Select one style profile before making assets; never silently mix their frame, typography, or review contracts.4142- **双语编辑模板图书视频(原风格)** — machine ID `book-editorial-bilingual-v2`. Deterministic 3:4 bilingual template with a real cover, 12 approved stills, local narration, rendered captions, and an optional 9:16 derivative.43- **VOX风格图书视频(新增风格)** — machine ID `paper-collage-explainer-v1`. A 9:16, voice-led editorial paper-collage explainer made from 4–8-second visual beats. It is a descriptive public label, not an affiliation claim or permission to imitate a named publisher/program. Read [references/paper-collage-explainer.md](references/paper-collage-explainer.md) before selecting it.4445The original style is the backward-compatible default. For VOX style, create the project with `--style-profile paper-collage-explainer-v1` and explicitly choose one generation lane:4647- **`gemini-api`** — programmatic lane. Requires a user-authorized `GEMINI_API_KEY`, the current Google Gen AI SDK, provider cost/quota approval, and an immutable operation/output record. Use `gemini-omni-flash-preview` through the Interactions API by default; use `veo-3.1-generate-preview` through `generate_videos` when first/last-frame control or video extension is required.48- **`google-flow`** — manual creative lane. Requires current account/region eligibility, an eligible Google AI plan, available credits, and a user-operated browser session. Do not assume Flow exposes a programmable API; import only user-authorized exports and record prompts, visible credits, hashes, and manual-run provenance.4950The VOX-style path is currently an orchestration-and-import workflow. Do not claim this repository bundles a one-click Google video generator.51The current `dbs-content-system` scene-traceability contract is V4-specific, so `content-system-backed` is supported by the original style only; VOX style is fail-closed to `single-book` until a manifest-based traceability contract is implemented and tested.5253## Production sequence54551. **Topic and evidence** — collect public, attributable book metadata. If a WeRead credential or another data source is unavailable, record the limitation and use user-supplied/publicly attributable evidence; do not bypass logins or platform restrictions.562. **Script, voice, and timing** — create and approve a concise Chinese script plus any English production draft. Generate/record narration only with authorization; derive timestamps from actual audio via permitted ASR or an editor transcript. Never invent timing. VOX style locks this timing before full clip generation.573. **Style-specific assets** — the original style obtains a real cover plus 12 approved text-free stills. VOX style approves one metaphor, then a first/last frame or contact sheet, then each generated visual beat; prompts use non-branded editorial descriptors.584. **Picture lock** — map approved assets to the locked narration. Normalize VOX clips to silent 720×1280 H.264 at the local 30 fps timeline without speed changes; inspect cadence and keep optical flow off by default.595. **Audio and render** — add project-owned narration, local captions, permitted BGM and SFX. BGM rights approval and creative `bgm_review` are separate decisions. Never copy a reference video's audio.606. **QC and delivery** — run technical and human gates, bind approvals to hashes, write manifests and cost events, then optionally import the passed local master into ChatCut for fine editing.6162## Workflow contracts6364- `project.json.workflow.style_profile_id` selects the visual workflow; its mapped `release_profile_id` selects the renderer/output contract. Existing projects without a style ID fall back to the original style only for compatibility.65- Use `config/release_profiles/book-v4-bilingual-3x4.json` for the original style and `config/release_profiles/book-vox-vertical-9x16-v1.json` for VOX style; never treat either style's dimensions or assets as universal constants.66- Use `scripts/workflow.py evaluate --project <project> --release-id <release-id>` to resolve the project profile and derive a release-scoped state. `project.json.status` is not an approval mechanism, and approvals from different releases are never combined.67- Record human decisions with `scripts/workflow.py approve`; approvals bind to the reviewed file hash and become stale after edits.68- Use `scripts/workflow.py manifest-stage` for immutable stage manifests with input/output hashes.69- Long titles are pixel-measured, semantically wrapped to at most two lines, and fail closed if they cannot fit the configured safe area.70- Keep `dbs-content-system` upstream: it owns source audits, `QST / CON / OPI / CAS / SOL`, theme maps, relationships, deduplication, canonical versions, and assembly. Do not reproduce those algorithms in this Skill.71- For `content-system-backed`, use `scripts/content_bridge.py export-dbs`, `validate-package`, `import-package`, `attach-traceability`, and `status`. `export-dbs` is serialization only; it does not perform upstream semantic work. Imports and active-version changes are append-only and hash-bound.72- A valid bridge package contains `source_document / content_unit / claim / assembly_brief`; the traceability map connects every script line to reviewed Claim evidence or an explicit editorial exemption, and to the renderer's actual scene contract. A human `traceability` approval bound to that map is required before `assets_ready`.7374## Required release gates7576- Do not use a generated imitation as a book cover. Record the actual cover source and rights/usage status.77- Do not reuse copyrighted music, sound effects, reference-video audio, a person's voice, public-figure likeness, or account branding without explicit rights.78- Require 12 non-duplicate numbered stills (`S01`–`S12`) only for the original V4-style delivery. VOX style uses its approved clip manifest and does not impose a universal scene count.79- For VOX style, keep `source_audit`, `gate_1_metaphor`, `gate_2_still`, `gate_3_clip_qa`, `bgm_review`, `audio_qc`, `local_master_review`, and `publish` as distinct hash-bound gates. Apply `cover_rights` and `english_native` only when those elements are delivered.80- Accept invisible provider provenance such as SynthID; do not remove or tamper with it. Reject visible third-party watermarks.81- Never invent token counts. Record only usage values exposed by the relevant provider.8283## Cost ledger8485Use the bundled append-only ledger for known usage and operational facts:8687```bash88python3 <SKILL_ROOT>/scripts/run_cost.py record \89 --warehouse book_video_warehouse --project <slug> --stage assets.generate \90 --images 12 --note 'Approved scene images'91python3 <SKILL_ROOT>/scripts/run_cost.py report --warehouse book_video_warehouse92```9394`—` in a report means the usage was not available; it is not zero cost.9596## ChatCut handoff9798Use ChatCut only after local QC passes. Import the local master and subtitle file, make scoped editorial changes, and export `v4-chatcut-<revision>` without overwriting the local master. Record the project ID, edits, reviewer decision, and export path in the project delivery manifest.