doco: C4收口 + A稿解析器升级(LLM骨架) + ep002/003/004骨架

- 新增 fusion_align.py(C4 compose + skeleton 提取/校验/预览)与 doco skeleton 命令
- ep001 C4 产物入库: 融合A稿.docx / 融合B稿.txt / c4_alignment.csv / fusion_review.csv
- ep002/003/004: A稿 + 分段骨架(json+预览), 上游待跑
- .gitignore 增 .c3_cache/.c4_cache (可重生中间缓存不入库)
- 更新 doco/CLAUDE.md 交接备注
This commit is contained in:
simonkoson
2026-06-18 14:36:14 +08:00
parent 60f22e6660
commit 10b0ab757b
18 changed files with 3808 additions and 22 deletions
@@ -0,0 +1,298 @@
[
{
"type": "normal",
"para_start": 1,
"para_end": 7,
"role_label": "【导视1】",
"header_inline": false,
"header_para_idx": 1
},
{
"type": "normal",
"para_start": 8,
"para_end": 11,
"role_label": "【主持人1】",
"header_inline": false,
"header_para_idx": 8
},
{
"type": "ignore",
"para_start": 12,
"para_end": 12,
"role_label": "(出枪柜)",
"header_inline": false,
"header_para_idx": 12
},
{
"type": "normal",
"para_start": 13,
"para_end": 13,
"role_label": "【主持人1】",
"header_inline": false,
"header_para_idx": 8
},
{
"type": "normal",
"para_start": 14,
"para_end": 19,
"role_label": "【解说1】",
"header_inline": false,
"header_para_idx": 14
},
{
"type": "normal",
"para_start": 20,
"para_end": 22,
"role_label": "【主持人2】",
"header_inline": false,
"header_para_idx": 20
},
{
"type": "ignore",
"para_start": 23,
"para_end": 23,
"role_label": "(换枪)",
"header_inline": false,
"header_para_idx": 23
},
{
"type": "normal",
"para_start": 24,
"para_end": 25,
"role_label": "【主持人2】",
"header_inline": false,
"header_para_idx": 20
},
{
"type": "normal",
"para_start": 26,
"para_end": 29,
"role_label": "【解说2】",
"header_inline": false,
"header_para_idx": 26
},
{
"type": "normal",
"para_start": 30,
"para_end": 31,
"role_label": "【三维动画1】",
"header_inline": false,
"header_para_idx": 30
},
{
"type": "normal",
"para_start": 32,
"para_end": 34,
"role_label": "【解说3】",
"header_inline": false,
"header_para_idx": 32
},
{
"type": "normal",
"para_start": 35,
"para_end": 37,
"role_label": "【主持人3】",
"header_inline": false,
"header_para_idx": 35
},
{
"type": "ignore",
"para_start": 38,
"para_end": 38,
"role_label": "(出枪柜)",
"header_inline": false,
"header_para_idx": 38
},
{
"type": "normal",
"para_start": 39,
"para_end": 40,
"role_label": "【主持人3】",
"header_inline": false,
"header_para_idx": 35
},
{
"type": "normal",
"para_start": 41,
"para_end": 47,
"role_label": "【解说4】",
"header_inline": false,
"header_para_idx": 41
},
{
"type": "normal",
"para_start": 48,
"para_end": 50,
"role_label": "【主持人4】",
"header_inline": false,
"header_para_idx": 48
},
{
"type": "ignore",
"para_start": 51,
"para_end": 51,
"role_label": "(换枪)",
"header_inline": false,
"header_para_idx": 51
},
{
"type": "normal",
"para_start": 52,
"para_end": 53,
"role_label": "【主持人4】",
"header_inline": false,
"header_para_idx": 48
},
{
"type": "normal",
"para_start": 54,
"para_end": 59,
"role_label": "【解说5】",
"header_inline": false,
"header_para_idx": 54
},
{
"type": "normal",
"para_start": 60,
"para_end": 62,
"role_label": "【主持人5】",
"header_inline": false,
"header_para_idx": 60
},
{
"type": "ignore",
"para_start": 63,
"para_end": 63,
"role_label": "(出枪柜)",
"header_inline": false,
"header_para_idx": 63
},
{
"type": "normal",
"para_start": 64,
"para_end": 65,
"role_label": "【主持人5】",
"header_inline": false,
"header_para_idx": 60
},
{
"type": "normal",
"para_start": 66,
"para_end": 70,
"role_label": "【解说6】",
"header_inline": false,
"header_para_idx": 66
},
{
"type": "normal",
"para_start": 71,
"para_end": 73,
"role_label": "【主持人6】",
"header_inline": false,
"header_para_idx": 71
},
{
"type": "ignore",
"para_start": 74,
"para_end": 74,
"role_label": "(换枪)",
"header_inline": false,
"header_para_idx": 74
},
{
"type": "normal",
"para_start": 75,
"para_end": 76,
"role_label": "【主持人6】",
"header_inline": false,
"header_para_idx": 71
},
{
"type": "normal",
"para_start": 77,
"para_end": 86,
"role_label": "【解说7】",
"header_inline": false,
"header_para_idx": 77
},
{
"type": "normal",
"para_start": 87,
"para_end": 89,
"role_label": "【主持人7】",
"header_inline": false,
"header_para_idx": 87
},
{
"type": "ignore",
"para_start": 90,
"para_end": 90,
"role_label": "(出枪柜)",
"header_inline": false,
"header_para_idx": 90
},
{
"type": "normal",
"para_start": 91,
"para_end": 92,
"role_label": "【主持人7】",
"header_inline": false,
"header_para_idx": 87
},
{
"type": "normal",
"para_start": 93,
"para_end": 99,
"role_label": "【解说8】",
"header_inline": false,
"header_para_idx": 93
},
{
"type": "normal",
"para_start": 100,
"para_end": 101,
"role_label": "【主持人8】",
"header_inline": false,
"header_para_idx": 100
},
{
"type": "ignore",
"para_start": 102,
"para_end": 102,
"role_label": "【摇】(换枪)",
"header_inline": false,
"header_para_idx": 102
},
{
"type": "normal",
"para_start": 103,
"para_end": 105,
"role_label": "【主持人8】",
"header_inline": false,
"header_para_idx": 100
},
{
"type": "ignore",
"para_start": 106,
"para_end": 106,
"role_label": "(拉栓子弹转场,三镜:【摇全】手摸枪栓、【固中】拉推、【轨近】举枪瞄准)",
"header_inline": false,
"header_para_idx": 106
},
{
"type": "normal",
"para_start": 107,
"para_end": 116,
"role_label": "【解说9】",
"header_inline": false,
"header_para_idx": 107
},
{
"type": "normal",
"para_start": 117,
"para_end": 120,
"role_label": "【主持人9】",
"header_inline": false,
"header_para_idx": 117
}
]
@@ -0,0 +1,30 @@
# ep003_20260331_qiangxie_chicun 骨架预览表 (合并后: 37 → 20 段)
# 原始骨架: 37 段 → 合并后: 20 段
======================================================================
ep003_20260331_qiangxie_chicun (合并后: 37 → 20 段) 骨架预览表
======================================================================
seq | type | role_label | 正文前20字
-----+---------+-------------------------------------+---------------------
1 | normal | 【导视1】 | 藏于方寸的敌后利器,锋芒毕露的火力先锋;
2 | normal | 【主持人1】 | 各位观众朋友们,大家好,欢迎收看《军事科
3 | normal | 【解说1】 | 这是一把用来换取更好枪支的武器,一个构思
4 | normal | 【主持人2】 | 【固】如今FP-45成了收藏家眼中的珍品
5 | normal | 【解说2】 | 沙漠之鹰是当今世界上最知名的大口径手枪之
6 | normal | 【三维动画1】 | 大口径弹药燃烧时会产生巨大的高温高压,必
7 | normal | 【解说3】 | 如今,沙漠之鹰虽未大规模列装军队,却因独
8 | normal | 【主持人3】 | 【固】一款能藏进火柴盒,一款堪称手枪巨无
9 | normal | 【解说4】 | PP-2000的设计,源于俄罗斯在城市反
10 | normal | 【主持人4】 | 【固】PP-2000 用 340 毫米的
11 | normal | 【解说5】 | MP40 是二战期间产量较大、影响力较广
12 | normal | 【主持人5】 | 【固】从340毫米的紧凑灵活,到833毫
13 | normal | 【解说6】 | AUG的出现,掀起了步枪设计的一场结构革
14 | normal | 【主持人6】 | 【固】AUG用无托枪身的设计真正做到了短
15 | normal | 【解说7】 | 如果你曾接触过枪战类游戏,那么你一定知道
16 | normal | 【主持人7】 | 【固】两款步枪可以说是短有短的灵活创新,
17 | normal | 【解说8】 | VSS的设计,完美诠释了苏联特种部队“敌
18 | normal | 【主持人8】 | 【固】相比于短小的VSS,接下来这款狙击
19 | normal | 【解说9】 | 20世纪90年代,南非面临着周边地区的轻
20 | normal | 【主持人9】 | (固)今天我们展示的每一款枪械,它们没有
======================================================================
[WARN] 请人工核验: role_label是否含真人姓名? ignore是否漏/多? type是否正确?