You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-19Lines changed: 42 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,14 +69,37 @@ That's it. The request is recognized and routed through the whole pipeline autom
69
69
70
70
**3 · Receive** — the pipeline ends with the rendered video, horizontal/vertical covers, platform titles, captions, a four-platform publish plan, and an automatic email notice.
71
71
72
-
**Check your setup** — run `python -X utf8 scripts/check_skills.py` (should output `All checks passed`) and `python scripts/doctor\.py` (lists missing tools, cross-platform) before producing your first video. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to contribute, [CHANGELOG.md](CHANGELOG.md) for recent changes, and the [Code of Conduct](CODE_OF_CONDUCT.md).
72
+
**Check your setup** — run `python -X utf8 scripts/check_skills.py` (should output `All checks passed`) and `python scripts/doctor.py` (lists missing tools, cross-platform) before producing your first video. See [CONTRIBUTING.md](CONTRIBUTING.md) for how to contribute, [CHANGELOG.md](CHANGELOG.md) for recent changes, and the [Code of Conduct](CODE_OF_CONDUCT.md).
73
73
74
74
---
75
75
76
+
77
+
### Pipeline Runner (Optional)
78
+
79
+
After installation, use the pipeline runner instead of manually executing steps. The runner runs 6 step scripts in order, checks preconditions at each step, and stops on failure:
80
+
81
+
```bash
82
+
# List all steps
83
+
python -m pipeline.runner --list
84
+
85
+
# Preview execution plan
86
+
python -m pipeline.runner --dry-run
87
+
88
+
# Run steps (step 3 confirmation gate requires --confirm to pass)
@@ -219,7 +242,7 @@ All samples above are synthesized with TryWorld's fixed sign-off line, so you he
219
242
220
243
The default look is the **Paper Algorithm** theme (TryWorld's brand), but all brand values — palette, fonts, seal, platform name, sign-off, cover style, default voice — live in one theme file: `skills/tryworld-paper/themes/paper-algorithm.json`.
221
244
222
-
Want your own brand on this pipeline? Copy the theme JSON, change the values following `tryworld-paper/references/theme-guide.md`, and ship videos under your name. The pipeline contract is not configurable — confirmation gates, the aliveness-gate check, burned-in captions, and quality checks all stay — only the skin changes. Note the boundary: theming covers the **paper production skill**; koubo's writing methodology and topics' channel positioning still carry TryWorld's editorial voice (adjust their SKILL.md / selection-rules.md for your channel, or wait for a later parameterized release).
245
+
Want your own brand on this pipeline? Copy the theme JSON, change the values following `tryworld-paper/references/theme-guide.md`, and ship videos under your name. The pipeline contract is not configurable — confirmation gates, the aliveness-gate check, burned-in captions, and quality checks all stay — only the skin changes. Content theme (`content-default.json`) defines topic domain, audience, length range, and target platforms — modify this JSON to change domain/brand, SKILL.md references it automatically. Writing methodology is in `tryworld-koubo/references/writing-methodology.md`; set `"writing_rules": "custom"` in the content theme to replace with your own methodology (but the `check_prose.py` hard gate cannot be disabled). The repo includes `test-brand.json` as a complete rebranding example.
223
246
224
247
```jsonc
225
248
// themes/your-brand.json (excerpt)
@@ -253,13 +276,13 @@ After installation into `~/.agents/skills`, hosts trigger these by the `descript
253
276
254
277
1.**Route** — read `tryworld-koubo/SKILL.md`, decide Mode A (user gave a script → optimize & produce) or Mode B (topic request → select → write → produce).
255
278
2.**Environment check** — `node --version` (≥22) · `python --version` (≥3.10) · `python -c "import edge_tts"` · `ffmpeg -version` · `npx hyperframes doctor`. Install or warn on whatever is missing before proceeding.
256
-
3.**Mode B only** — run `python tryworld-topics/scripts/fetch_aihot\.py` (cross-platform) or the curl fallback in its `references/api\.md`, apply `references/selection-rules.md`, produce 3–8 candidate topics.
279
+
3.**Mode B only** — run `python tryworld-topics/scripts/fetch_aihot.py` (cross-platform) or the curl fallback in its `references/api.md`, apply `references/selection-rules.md`, produce 3–8 candidate topics.
257
280
4.**Gate 1 (STOP)** — present the topic list and wait for the user's pick. Do not proceed unasked.
258
281
5.**Write** — follow the writing rules in koubo's SKILL.md (2,500–2,800 chars standard, sources for every datapoint, aliveness rules).
259
282
6.**Polish & gate** — hand over to `tryworld-paper/SKILL.md`: optimize, then run `scripts/check_prose.py` until zero hard violations.
260
283
7.**Gate 2 (STOP)** — show the full polished script + what/why of edits + element mapping + data sources. Wait for explicit confirmation. Never render without it.
261
284
8.**Produce** — read the theme file (`skills/tryworld-paper/themes/paper-algorithm.json`) for all brand values → segment → `scripts/tts_yunxi.py` (voiceover + `sentences.json` timeline) → build HyperFrames compositions per `references/style-system.md` → `npx hyperframes lint` / `validate` / `inspect --strict` all pass → render (draft first, then high) → covers (independent design, never video frames) → titles per `references/titles.md` → everything into `outputs/` + `发布计划.txt`.
262
-
9.**Notify** — run `python tryworld-koubo/scripts/notify_delivery\.py --project-dir <dir>`; missing credentials/node → skip gracefully, never block delivery.
285
+
9.**Notify** — run `python tryworld-koubo/scripts/notify_delivery.py --project-dir <dir>`; missing credentials/node → skip gracefully, never block delivery.
263
286
10.**Verify before delivery (hard gate)** — run `python -X utf8 tryworld-paper/scripts/verify_output.py --dir <outputs>`; every item must PASS (audio track present, durations aligned, both cover sizes, titles, publish plan). A FAIL means fix and re-run — never deliver an unverified outputs folder.
264
287
265
288
Projects live in their own folder (default convention: `E:\Codex口播视频\<slug>\` with `work/` and `outputs/`).
@@ -341,7 +364,7 @@ A skill fires when the request matches its trigger words — no commands to memo
341
364
342
365
-`python -X utf8 scripts/check_skills.py`: compiles skill Python scripts and runs the aliveness gate
343
366
-`python -m pytest tests/ -v`: run 23 unit tests (check_prose, verify_output, tts_yunxi, check_skills) over `examples/` scripts and titles.
344
-
-`python scripts/doctor\.py`: checks Python, Node, FFmpeg/ffprobe, edge-tts, HyperFrames, and optional email credentials. Exits 1 when a required item is missing.
367
+
-`python scripts/doctor.py`: checks Python, Node, FFmpeg/ffprobe, edge-tts, HyperFrames, and optional email credentials. Exits 1 when a required item is missing.
345
368
346
369
### Environment
347
370
@@ -359,6 +382,20 @@ Each skill folder carries its own `SKILL.md` with the full workflow and where to
359
382
360
383
---
361
384
385
+
386
+
### Docker One-Shot Environment
387
+
388
+
Skip all dependency installs with Docker:
389
+
390
+
```bash
391
+
docker build -t paper-algorithm .
392
+
docker run --rm paper-algorithm
393
+
```
394
+
395
+
Container includes Node.js 22, FFmpeg, Python 3.12, edge-tts, and mutagen.
396
+
397
+
---
398
+
362
399
## 🗂 Repository Layout
363
400
364
401
```text
@@ -402,17 +439,3 @@ This work is licensed under a **Creative Commons Attribution-ShareAlike 4.0 Inte
402
439
---
403
440
404
441
<palign="center"><sub>TryWorld · Making AI clear for everyone</sub></p>
405
-
406
-
### Docker One-Shot Environment
407
-
408
-
Skip all dependency installs with Docker:
409
-
410
-
```bash
411
-
docker build -t paper-algorithm .
412
-
docker run --rm paper-algorithm
413
-
```
414
-
415
-
The container includes Node.js 22, FFmpeg, Python 3.12, edge-tts, and mutagen.
416
-
### Content Theme
417
-
418
-
Beyond visual themes, this project supports a **content theme** (`skills/tryworld-paper/themes/content-default.json`) that defines topic domain, audience, writing rules, and target platforms. Copy and modify the JSON to rebrand or change domain — no SKILL.md changes needed.
0 commit comments