create-dwy 0.16.1 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (104) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/bin/index.js +1 -1
  3. package/package.json +1 -1
  4. package/src/sync-all.js +303 -59
  5. package/src/sync-global-skills.js +167 -0
  6. package/src/sync.js +21 -11
  7. package/templates/ai-tools/CHANGELOG.md +134 -0
  8. package/templates/ai-tools/VERSION +1 -1
  9. package/templates/ai-tools/rules/Android/dwy-android-core.md +65 -1
  10. package/templates/ai-tools/rules/Python/dwy-python-core.md +47 -0
  11. package/templates/ai-tools/rules/Vue/dwy-vue-core.md +55 -0
  12. package/templates/ai-tools/rules/iOS/dwy-swift-core.md +46 -0
  13. package/templates/ai-tools/rules//345/274/200/345/217/221/346/265/201/347/250/213/dwy-oss-commercial-license.md +128 -0
  14. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/SKILL.md +65 -0
  15. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/assets/appstore-submission.yaml +43 -0
  16. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/api-workflow.md +17 -0
  17. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/in-app-purchase-review.md +16 -0
  18. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/references/screenshot-workflow.md +16 -0
  19. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-ios-app-store-release/scripts/appstore_config.sh +140 -0
  20. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/SKILL.md +11 -8
  21. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/android.md +2 -1
  22. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/backend-deploy.md +2 -1
  23. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/changelog.md +24 -4
  24. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/frontend-deploy.md +2 -1
  25. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/generic-release.md +2 -1
  26. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/git-tag.md +82 -0
  27. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/harmony.md +2 -1
  28. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/ios.md +3 -2
  29. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/monitor-notify.md +2 -2
  30. package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/SKILL.md +1 -1
  31. package/templates/ai-tools/skills//345/237/272/347/241/200/345/272/223/dwy-eapi/references/tasks-integration-guide.md +2 -2
  32. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/README.md +57 -0
  33. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/SKILL.md +147 -0
  34. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/api.md +43 -0
  35. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/config.example.yaml +33 -0
  36. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/global_config.py +89 -0
  37. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/setup_config.py +175 -0
  38. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/synthesize.py +339 -0
  39. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/SKILL.md +127 -0
  40. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/assets/cover-style-master-v1.png +0 -0
  41. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-copy-examples.md +37 -0
  42. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-posting-times.md +193 -0
  43. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/SKILL.md +42 -0
  44. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/templates/topic-backlog.template.md +50 -0
  45. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/templates//351/200/211/351/242/230/346/261/240.template.md +16 -0
  46. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/SKILL.md +106 -0
  47. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/templates/channel-profile.template.md +52 -0
  48. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/templates//344/272/247/345/223/201/345/215/241.template.md +132 -0
  49. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/SKILL.md +60 -0
  50. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/build_facts_html.py +430 -0
  51. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_html.py +1287 -0
  52. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_report.py +189 -0
  53. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/templates//344/272/213/345/256/236/350/265/204/346/226/231/345/272/223.template.md +55 -0
  54. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/SKILL.md +36 -0
  55. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates/README.md +10 -0
  56. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//344/272/213/345/256/236.template.md +82 -0
  57. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//345/215/225/351/233/206/346/226/207/346/241/243.template.md +175 -0
  58. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//350/204/232/346/234/254.template.md +69 -0
  59. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates//351/252/250/346/236/266-v1.1.md +174 -0
  60. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0050-design/SKILL.md +55 -0
  61. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0060-assets/SKILL.md +29 -0
  62. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/SKILL.md +42 -0
  63. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/scripts/validate_shots.py +207 -0
  64. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/shots.schema.json +186 -0
  65. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//344/272/272/345/256/241/345/214/205.template.md +1 -0
  66. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//344/272/272/345/256/241/350/257/264/346/230/216.md +15 -0
  67. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package//346/210/220/347/211/207/345/214/205.template.md +49 -0
  68. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0080-factory/SKILL.md +58 -0
  69. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/SKILL.md +424 -0
  70. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/evals.md +41 -0
  71. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/CONTRACT.md +123 -0
  72. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/SKILL.md +81 -0
  73. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow//346/211/247/350/241/214/346/270/205/345/215/225.template.md +60 -0
  74. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/SKILL.md +78 -0
  75. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/agents/openai.yaml +4 -0
  76. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/knowledge-town-paper-film-v1.json +80 -0
  77. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/AudioTracks.tsx +20 -0
  78. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CaptionLayer.tsx +18 -0
  79. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CueTimeline.ts +24 -0
  80. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/KnowledgeTownComposition.tsx +21 -0
  81. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/cinematic-direction.md +73 -0
  82. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/sticker-asset-production.md +30 -0
  83. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/style-guide.md +43 -0
  84. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/build_cue_timeline.py +75 -0
  85. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/validate_cue_timeline.py +68 -0
  86. package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/scripts/validate_style_preset.py +22 -0
  87. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/SKILL.md +0 -511
  88. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-data.md +0 -126
  89. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-network.md +0 -88
  90. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-runtime.md +0 -195
  91. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/security-doc-search.md +0 -179
  92. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_base.sh +0 -39
  93. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_capacity.sh +0 -278
  94. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_db.sh +0 -147
  95. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_docker.sh +0 -230
  96. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_env.sh +0 -64
  97. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_https.sh +0 -60
  98. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_logs.sh +0 -209
  99. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_nginx.sh +0 -100
  100. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_resilience.sh +0 -157
  101. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_secrets.sh +0 -265
  102. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_services.sh +0 -94
  103. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_ssh.sh +0 -56
  104. package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/run_all.sh +0 -105
@@ -0,0 +1,189 @@
1
+ #!/usr/bin/env python3
2
+ """Generate a structured Markdown research report from sub-agent results."""
3
+
4
+ import json
5
+ import sys
6
+ import argparse
7
+ from datetime import datetime
8
+ from pathlib import Path
9
+
10
+
11
+ def slugify(text: str) -> str:
12
+ """Convert topic to URL-safe slug."""
13
+ import re
14
+ text = text.lower().strip()
15
+ text = re.sub(r'[^\w\s-]', '', text)
16
+ text = re.sub(r'[\s]+', '-', text)
17
+ return text
18
+
19
+
20
+ def generate_report(topic: str, angles_data: list[dict]) -> str:
21
+ """Generate the full Markdown report."""
22
+ today = datetime.now().strftime('%Y-%m-%d')
23
+ angles_list = '、'.join(a['angle'] for a in angles_data)
24
+
25
+ lines = [
26
+ f'# {topic}',
27
+ '',
28
+ f'> 生成时间:{today}',
29
+ f'> 调研角度:{angles_list}',
30
+ '',
31
+ '---',
32
+ '',
33
+ '## 目录',
34
+ '1. [概述](#概述)',
35
+ ]
36
+
37
+ for i, a in enumerate(angles_data, 2):
38
+ anchor = a['angle'].replace(' ', '-').replace('/', '')
39
+ lines.append(f'{i}. [{a["angle"]}](#{anchor})')
40
+
41
+ lines.extend([
42
+ f'{len(angles_data) + 2}. [参考来源](#参考来源)',
43
+ '',
44
+ '---',
45
+ '',
46
+ '## 概述',
47
+ '',
48
+ ])
49
+
50
+ # Overview section: combine all summaries
51
+ overview_parts = []
52
+ for a in angles_data:
53
+ overview_parts.append(f'**{a["angle"]}**:{a["summary"]}')
54
+ lines.append('\n\n'.join(overview_parts))
55
+
56
+ # Per-angle sections
57
+ for a in angles_data:
58
+ lines.extend([
59
+ '',
60
+ '---',
61
+ '',
62
+ f'## {a["angle"]}',
63
+ '',
64
+ a.get('details', a.get('summary', '(内容待补充)')),
65
+ '',
66
+ ])
67
+
68
+ if a.get('key_points'):
69
+ lines.extend(['### 关键要点', ''])
70
+ for kp in a['key_points']:
71
+ lines.append(f'- {kp}')
72
+ lines.append('')
73
+
74
+ # Images section
75
+ all_images = []
76
+ for a in angles_data:
77
+ for img in a.get('images', []):
78
+ all_images.append(img)
79
+
80
+ if all_images:
81
+ lines.extend([
82
+ '---',
83
+ '',
84
+ '## 图片资料',
85
+ '',
86
+ '| 序号 | 说明 | 来源 |',
87
+ '|------|------|------|',
88
+ ])
89
+ for i, img in enumerate(all_images, 1):
90
+ desc = img.get('description', '—')
91
+ src = img.get('source', img.get('url', '—'))
92
+ lines.append(f'| {i} | {desc} | [查看]({src}) |')
93
+ lines.append('')
94
+
95
+ # Sources section
96
+ academic_sources = []
97
+ community_sources = []
98
+ for a in angles_data:
99
+ for src in a.get('sources', []):
100
+ t = src.get('type', 'community')
101
+ if t in ('official', 'academic', 'wikipedia'):
102
+ academic_sources.append(src)
103
+ else:
104
+ community_sources.append(src)
105
+
106
+ lines.extend([
107
+ '---',
108
+ '',
109
+ '## 参考来源',
110
+ '',
111
+ ])
112
+
113
+ if academic_sources:
114
+ lines.append('### 官方与学术来源')
115
+ lines.append('')
116
+ for i, src in enumerate(academic_sources, 1):
117
+ title = src.get('title', src.get('url', '未知'))
118
+ url = src.get('url', '#')
119
+ lines.append(f'{i}. [{title}]({url})')
120
+ lines.append('')
121
+
122
+ if community_sources:
123
+ lines.append('### 社区与媒体来源')
124
+ lines.append('')
125
+ offset = len(academic_sources)
126
+ for i, src in enumerate(community_sources, offset + 1):
127
+ title = src.get('title', src.get('url', '未知'))
128
+ url = src.get('url', '#')
129
+ lines.append(f'{i}. [{title}]({url})')
130
+ lines.append('')
131
+
132
+ lines.extend([
133
+ '---',
134
+ '',
135
+ '*本报告由 AI 助手调研生成,资料来源仅供参考,请自行验证准确性。*',
136
+ '',
137
+ ])
138
+
139
+ return '\n'.join(lines)
140
+
141
+
142
+ def generate_sources_json(angles_data: list[dict]) -> dict:
143
+ """Generate structured sources.json."""
144
+ return {
145
+ 'generated_at': datetime.now().isoformat(),
146
+ 'angles': [
147
+ {
148
+ 'angle': a['angle'],
149
+ 'sources': a.get('sources', []),
150
+ 'images': a.get('images', []),
151
+ }
152
+ for a in angles_data
153
+ ],
154
+ }
155
+
156
+
157
+ def main():
158
+ parser = argparse.ArgumentParser(description='Generate topic research report')
159
+ parser.add_argument('--topic', required=True, help='Research topic')
160
+ parser.add_argument('--input', required=True, help='Path to JSON file with angle data')
161
+ parser.add_argument('--output-dir', required=True, help='Output directory')
162
+ args = parser.parse_args()
163
+
164
+ with open(args.input, 'r', encoding='utf-8') as f:
165
+ angles_data = json.load(f)
166
+
167
+ # Handle both list format and {angles: [...]} format
168
+ if isinstance(angles_data, dict):
169
+ angles_data = angles_data.get('angles', angles_data.get('results', []))
170
+
171
+ topic = args.topic
172
+ out_dir = Path(args.output_dir)
173
+ out_dir.mkdir(parents=True, exist_ok=True)
174
+
175
+ # Generate report
176
+ report_md = generate_report(topic, angles_data)
177
+ report_path = out_dir / 'README.md'
178
+ report_path.write_text(report_md, encoding='utf-8')
179
+ print(f'Report saved to: {report_path}')
180
+
181
+ # Generate sources.json
182
+ sources_data = generate_sources_json(angles_data)
183
+ sources_path = out_dir / 'sources.json'
184
+ sources_path.write_text(json.dumps(sources_data, ensure_ascii=False, indent=2), encoding='utf-8')
185
+ print(f'Sources saved to: {sources_path}')
186
+
187
+
188
+ if __name__ == '__main__':
189
+ main()
@@ -0,0 +1,55 @@
1
+ # 事实资料库 · {主题}
2
+
3
+ > **用途:** 作者深度学习;非口播定稿。
4
+ > **网页:** `index.html`(`build_facts_html.py`)
5
+ > 文内引用:`[[cite:S1]]` · 图:`![说明](images/x.png)[[cite:S1]]`
6
+ > 状态:ready_for_confirm | done · 日期:{YYYY-MM-DD}
7
+
8
+ ---
9
+
10
+ ## 0. 学习地图(对齐 0010 §3 内容柱,可深于成片)
11
+
12
+ | 角度 | 对应 0010 内容柱 | 为何要懂 | 成片是否展开 |
13
+ |------|------------------|----------|--------------|
14
+ | | | | 是/否/备 |
15
+
16
+ ---
17
+
18
+ ## 1. …
19
+
20
+ ### 1.1 定义
21
+ …
22
+
23
+ ### 1.2 机制分步
24
+ 1. …
25
+ 2. …
26
+
27
+ ### 1.3 例子 / 伪代码 / 公式
28
+ …
29
+
30
+ ### 1.4 图
31
+
32
+ ![…](images/…)[[cite:S1]]
33
+
34
+ > 图注:… 出处…
35
+
36
+ ### 1.5 边界
37
+ …
38
+
39
+ ---
40
+
41
+ ## 8. 来源总表
42
+
43
+ | ID | 权威性 | 网站 | 标题 | URL |
44
+ |----|--------|------|------|-----|
45
+ | S1 | | | | |
46
+
47
+ (与 `sources.json` 同步)
48
+
49
+ ---
50
+
51
+ ## 9. 成片裁切备忘(可选·网页默认折叠)
52
+
53
+ | 深点 | 0010 成片策略(讲/不讲) |
54
+ |------|---------------------------|
55
+ | | |
@@ -0,0 +1,36 @@
1
+ ---
2
+ name: uc-media-0040-script
3
+ description: |
4
+ 脚本(0040):读 0030 事实 + 0010 演讲地图,蒸馏脉络/分镜/口播。
5
+ 触发词:脚本、分镜、口播、0040。
6
+ ---
7
+
8
+ # uc-media-0040-script · 脚本
9
+
10
+ **模板:** [`templates/脚本.template.md`](./templates/脚本.template.md)
11
+
12
+ ## 行为
13
+
14
+ 1. **必读**
15
+ - `0030-facts/事实-*.md`
16
+ - `0010-product/产品卡-*.md` → **§3 讲/不讲·时长** + §1 标题/钩子
17
+ - `.dwy/uc-media/channel-profile.md` → 受众语气
18
+ 2. 按 **0010 地图** 把 0030 精简成脉络·分镜·口播。
19
+ 3. 口播深度对齐 **0010**,非 0030 全文;「不讲」不进观众口播。
20
+ 4. 禁止编造;缺事实回 0030。
21
+
22
+ **硬停:** 人审前不进 0050。
23
+
24
+ ## 契约
25
+
26
+ | 项 | 内容 |
27
+ |----|------|
28
+ | **序** | 0040 |
29
+ | **主文档** | `0040-script/脚本-*.md` |
30
+ | **上游** | 0030 + **0010 产品卡** + 频道 |
31
+
32
+ ```text
33
+ 0010 = 竞品洞察 + 演讲地图
34
+ 0030 = 按地图学深
35
+ 0040 = 按地图蒸馏成片
36
+ ```
@@ -0,0 +1,10 @@
1
+ # 0050 模板
2
+
3
+ | 文件 | 用途 |
4
+ |------|------|
5
+ | **`脚本.template.md`** | **主模板**:长片/短集都用;一份含脉络+分镜+口播 |
6
+ | `骨架-v1.1.md` | 短集结构规范(读,不单独落盘第二终稿) |
7
+ | `事实.template.md` | 给 0040 字段参考(事实步落 `research/事实-*.md`) |
8
+ | `单集文档.template.md` | 旧短集模板;**新片请用 `脚本.template.md`**,避免多文件 |
9
+
10
+ 定稿路径:`{scripts_dir}/脚本-{主题}.md`
@@ -0,0 +1,82 @@
1
+ # (历史模板)事实底稿 · {主题}
2
+
3
+ > **已过时作流水线真源。** 新片事实深库请用:
4
+ > `uc-media-0030-facts` → `{work_dir}/0030-facts/事实-*.md`(作者学习资料库)
5
+ > 0040 脚本从该深库 **蒸馏**,并服从 `0010-product` 演讲地图的讲/不讲与时长。
6
+ > 本文件仅作旧单集/字段参考。
7
+ > 骨架:单集 [骨架-v1.1](./骨架-v1.1.md)
8
+ > 日期:{YYYY-MM-DD}
9
+
10
+ ---
11
+
12
+ ## 1. 一句话定义(口播可用)
13
+
14
+ > …
15
+
16
+ ---
17
+
18
+ ## 2. 本集主机制(对应 F,只保留 1 个)
19
+
20
+ > …
21
+
22
+ ---
23
+
24
+ ## 3. 历史锚点(对应 T,≤4 个上镜)
25
+
26
+ | 时间 | 事件 | 谁 | 可讲一句 | 来源 |
27
+ |------|------|----|----------|------|
28
+ | | | | | |
29
+ | | | | | |
30
+
31
+ 未上镜但备查:…
32
+
33
+ ---
34
+
35
+ ## 4. 生活例子池(对应 L,脚本只取 1 主 +≤1 辅)
36
+
37
+ | 例子 | 映射 | 主/备 |
38
+ |------|------|-------|
39
+ | | | 主 |
40
+ | | | 辅/备 |
41
+
42
+ ---
43
+
44
+ ## 5. 边界(对应 B,按需)
45
+
46
+ | 误区/风险 | 人话 | 是否本集必讲 |
47
+ |-----------|------|----------------|
48
+ | | | 是/否 |
49
+
50
+ ---
51
+
52
+ ## 6. 验证设计(对应 V)
53
+
54
+ | 模式 | 步骤 | 真图需求 |
55
+ |------|------|----------|
56
+ | 动手/演示/真图 | 1… 2… 3… | 文件名 |
57
+
58
+ ---
59
+
60
+ ## 7. 本集不讲(留给其他集)
61
+
62
+ | 不讲 | 留给 |
63
+ |------|------|
64
+ | | |
65
+
66
+ ---
67
+
68
+ ## 8. 来源
69
+
70
+ | # | 类型 | 线索 |
71
+ |---|------|------|
72
+ | S1 | | |
73
+
74
+ **〔待验证〕** …
75
+
76
+ ---
77
+
78
+ ## 9. 可说硬句(已事实锁)
79
+
80
+ 1.
81
+ 2.
82
+ 3.
@@ -0,0 +1,175 @@
1
+ # 单集文档 · {编号} {主题名}
2
+
3
+ > **骨架:** [骨架-v1.1](./骨架-v1.1.md)(`uc-media-0040-script/templates/`)
4
+ > **事实锁:** `../research/事实-{主题}.md`
5
+ > **时长目标:** 3–5 分钟(推荐标称 **4′**)
6
+ > **语气:** 并肩 · 讲故事 · 事实优先 · 真截图
7
+ > 状态:草稿 / 人审中 / 定稿 · 日期:{YYYY-MM-DD}
8
+
9
+ ---
10
+
11
+ ## 0. 产品卡
12
+
13
+ | 项 | 内容 |
14
+ |----|------|
15
+ | 片名 / 标题 | |
16
+ | 一句话主线 | |
17
+ | 目标观众 | |
18
+ | 看完带走(≤3 点) | |
19
+ | 时长目标 | 约 _ 分钟 |
20
+ | 本集不讲 | |
21
+ | 系列位置 | 第 _ 集;单集闭环:是 |
22
+
23
+ ---
24
+
25
+ ## 0.1 本集骨架裁剪表(先填再写稿)
26
+
27
+ 对照 v1.1:标 **满配 / 缩 / 删 / 并入某段**。
28
+
29
+ | 段 | 代号 | 本集策略 | 计划秒 | 备注 |
30
+ |----|------|----------|--------|------|
31
+ | 钩子 | H | 满配 | 25–35 | 必选 |
32
+ | 历史 | T | 满配 / 缩 / 删 / 并入 H|F | ≤50 | 锚点 ≤4 |
33
+ | 事实 | F | 满配 | 60–75 | 必选;主机制 1 个 |
34
+ | 生活 | L | 满配 | 40–50 | 主例 1;辅例可选 |
35
+ | 边界 | B | 满配 / 并入 F / 删 | 0–30 | 按需 |
36
+ | 验证 | V | 动手 / 演示 / 真图 / 删 | 0–40 | 三选一 |
37
+ | 落点 | C | 满配 | 15–25 | 必选 |
38
+
39
+ **本集主机制(F 只保留这一句):**
40
+ > …
41
+
42
+ **落点句(C):**
43
+ > …
44
+
45
+ **下集钩子(若有):**
46
+ > …
47
+
48
+ ---
49
+
50
+ ## 1. 表达脉络(故事线)
51
+
52
+ ```text
53
+ H 场景 + 缺口
54
+ → T 何以至此(若保留)
55
+ → F 机制
56
+ → L 生活主例
57
+ → B 边界(若保留)
58
+ → V 验证(若保留)
59
+ → C 落点 + 下集
60
+ ```
61
+
62
+ 反转/主线一句(贯穿全片):
63
+ > …
64
+
65
+ ---
66
+
67
+ ## 2. 时长表(按裁剪后改秒数)
68
+
69
+ | 段 | 秒 | 画面主信息 |
70
+ |----|-----|------------|
71
+ | H | | |
72
+ | T | | |
73
+ | F | | |
74
+ | L | | |
75
+ | B | | |
76
+ | V | | |
77
+ | C | | |
78
+ | **合计** | | 目标 180–300s |
79
+
80
+ ---
81
+
82
+ ## 3. 口播稿
83
+
84
+ ### H · 钩子(场景 + 认知缺口)
85
+
86
+ (25–35s)
87
+
88
+ ### T · 历史(≤4 锚点 · 可删)
89
+
90
+ (40–50s 或写「本集删除/并入…」)
91
+
92
+ ### F · 事实(1 个机制 · 人话)
93
+
94
+ (60–75s)
95
+
96
+ ### L · 生活(1 主例 · 可选 1 辅)
97
+
98
+ (40–50s)
99
+ - 主例:
100
+ - 辅例:(可无)
101
+
102
+ ### B · 边界(按需)
103
+
104
+ (20–30s 或删)
105
+
106
+ ### V · 验证(动手 | 演示 | 真图)
107
+
108
+ (30–40s 或删)
109
+ 模式:□动手 □演示 □真图对照
110
+
111
+ 步骤(≤3):
112
+
113
+ 1.
114
+ 2.
115
+ 3.
116
+
117
+ ### C · 落点 + 下集
118
+
119
+ (15–25s)
120
+
121
+ ---
122
+
123
+ ## 4. 分镜表
124
+
125
+ | 镜号 | 段 | 秒 | 认知增量 | 画面/素材 | 口播摘要 |
126
+ |------|----|----|----------|-----------|----------|
127
+ | x00 | H | | | | |
128
+ | … | | | | | |
129
+
130
+ ---
131
+
132
+ ## 5. 花字 / 贴纸(宜少)
133
+
134
+ | 段 | 文案 | 形态 |
135
+ |----|------|------|
136
+ | | | |
137
+
138
+ ---
139
+
140
+ ## 6. 真实素材清单
141
+
142
+ 目录:`../assets/_real-shots/`
143
+ 原则:真 UI;禁止 AI 假界面冒充产品。
144
+
145
+ | 文件名 | 必/选 | 内容说明 |
146
+ |--------|-------|----------|
147
+ | | 必 | |
148
+ | | 选 | |
149
+
150
+ Logo:优先 `shared/icons/brands/`。
151
+
152
+ ---
153
+
154
+ ## 7. 发布草稿
155
+
156
+ | 项 | 文案 |
157
+ |----|------|
158
+ | 标题 | |
159
+ | 封面主/副 | |
160
+ | 简介 | |
161
+ | 标签 | |
162
+
163
+ ---
164
+
165
+ ## 8. 人审签字
166
+
167
+ - [ ] 骨架裁剪表已填,必选段齐全
168
+ - [ ] T 未超时、锚点 ≤4
169
+ - [ ] F 只有 1 个主机制
170
+ - [ ] 口播无说教腔;落点句可记
171
+ - [ ] 真截图位清晰;无假 UI
172
+ - [ ] 单集闭环;下集钩子不过长
173
+ - [ ] 可进配音 / package
174
+
175
+ 审阅:________ 日期:________
@@ -0,0 +1,69 @@
1
+ # 脚本 · {主题}
2
+
3
+ | 项 | 内容 |
4
+ |----|------|
5
+ | 状态 | 草稿 / 人审中 / 定稿 |
6
+ | 日期 | {YYYY-MM-DD} |
7
+ | 时长目标 | |
8
+ | 事实来源 | `../0030-facts/事实-{主题}.md` |
9
+ | 产品卡(竞品+地图) | `../0010-product/产品卡-{主题}.md` |
10
+ | 频道档案 | `<project_root>/.dwy/uc-media/channel-profile.md` |
11
+ | 受众/语气(摘自频道) | |
12
+ | 预制型 id | overview_stations / short_story_v1_1 / … |
13
+
14
+ ---
15
+
16
+ ## 1. 表达脉络
17
+
18
+ **主线一句话:**
19
+ > …
20
+
21
+ **章序**
22
+
23
+ | 章 | 标题 | 记住一句 | 目标秒 |
24
+ |----|------|----------|--------|
25
+ | A | | | |
26
+ | B | | | |
27
+
28
+ **本集不讲:**
29
+ - …
30
+
31
+ (短集可在此写 H→C 故事线与骨架裁剪说明,见 `骨架-v1.1.md`。)
32
+
33
+ ---
34
+
35
+ ## 2. 分镜总表(无图)
36
+
37
+ | shot_id | 章 | 秒 | 认知增量(≤8字) | 画面意图(纯文字一句) | reveal | builds_on |
38
+ |---------|----|----|------------------|------------------------|--------|-----------|
39
+ | A00 | A | 2 | | | hold | — |
40
+ | A01 | A | | | | | A00 |
41
+
42
+ 规则:一镜一增量;全片镜号唯一;**不写图层/文件名/生图说明**。
43
+
44
+ **合计预估秒:** …
45
+
46
+ ---
47
+
48
+ ## 3. 逐镜口播
49
+
50
+ ### A00 · {镜标题}
51
+
52
+ (全文,可念)
53
+
54
+ ### A01 · {镜标题}
55
+
56
+ (全文,可念)
57
+
58
+ <!-- 按分镜表顺序继续;每镜一节,标题含 shot_id -->
59
+
60
+ ---
61
+
62
+ ## 4. 人审签字
63
+
64
+ - [ ] 脉络 OK,章序讲得通
65
+ - [ ] 口播可念、无说教腔;事实锁 research
66
+ - [ ] 镜号与 §3 一一对应
67
+ - [ ] **可进 0050 design**(风格/技术)
68
+
69
+ 审阅:________ 日期:________