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.
- package/CHANGELOG.md +9 -0
- package/bin/index.js +1 -1
- package/package.json +1 -1
- package/src/sync-all.js +303 -59
- package/src/sync-global-skills.js +167 -0
- package/src/sync.js +21 -11
- package/templates/ai-tools/CHANGELOG.md +134 -0
- package/templates/ai-tools/VERSION +1 -1
- package/templates/ai-tools/rules/Android/dwy-android-core.md +65 -1
- package/templates/ai-tools/rules/Python/dwy-python-core.md +47 -0
- package/templates/ai-tools/rules/Vue/dwy-vue-core.md +55 -0
- package/templates/ai-tools/rules/iOS/dwy-swift-core.md +46 -0
- package/templates/ai-tools/rules//345/274/200/345/217/221/346/265/201/347/250/213/dwy-oss-commercial-license.md +128 -0
- 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
- 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
- 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
- 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
- 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
- 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
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/SKILL.md +11 -8
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/android.md +2 -1
- 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
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/changelog.md +24 -4
- 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
- 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
- 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
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/harmony.md +2 -1
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-publish/references/ios.md +3 -2
- 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
- package/templates/ai-tools/skills//345/217/221/345/270/203/345/217/221/347/211/210/dwy-semver/SKILL.md +1 -1
- package/templates/ai-tools/skills//345/237/272/347/241/200/345/272/223/dwy-eapi/references/tasks-integration-guide.md +2 -2
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/README.md +57 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/SKILL.md +147 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/api.md +43 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/references/config.example.yaml +33 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/global_config.py +89 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/setup_config.py +175 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/dwy-doubao-tts/scripts/synthesize.py +339 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/SKILL.md +127 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-copy-examples.md +37 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/media-platform-packaging/references/platform-posting-times.md +193 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0005-ideation/SKILL.md +42 -0
- 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
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0010-product/SKILL.md +106 -0
- 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
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/SKILL.md +60 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_html.py +1287 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0030-facts/scripts/generate_report.py +189 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/SKILL.md +36 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/templates/README.md +10 -0
- 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
- 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
- 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
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0050-design/SKILL.md +55 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0060-assets/SKILL.md +29 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/SKILL.md +42 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/scripts/validate_shots.py +207 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0070-package/shots.schema.json +186 -0
- 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
- 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
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0080-factory/SKILL.md +58 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/SKILL.md +424 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-comic-kit/evals.md +41 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/CONTRACT.md +123 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-flow/SKILL.md +81 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/SKILL.md +78 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/agents/openai.yaml +4 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/AudioTracks.tsx +20 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CaptionLayer.tsx +18 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/CueTimeline.ts +24 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/assets/remotion/KnowledgeTownComposition.tsx +21 -0
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/cinematic-direction.md +73 -0
- 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
- package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-knowledge-town/references/style-guide.md +43 -0
- 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
- 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
- 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
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/SKILL.md +0 -511
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-data.md +0 -126
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-network.md +0 -88
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/checks-runtime.md +0 -195
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/references/security-doc-search.md +0 -179
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_base.sh +0 -39
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_capacity.sh +0 -278
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_db.sh +0 -147
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_docker.sh +0 -230
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_env.sh +0 -64
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_https.sh +0 -60
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_logs.sh +0 -209
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_nginx.sh +0 -100
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_resilience.sh +0 -157
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_secrets.sh +0 -265
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_services.sh +0 -94
- package/templates/ai-tools/skills/unitcircle/uc-deploy-audit/scripts/check_ssh.sh +0 -56
- 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]]` · 图:`[[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
|
+
[[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
|
+
| | |
|
package/templates/ai-tools/skills//350/207/252/345/252/222/344/275/223/uc-media-0040-script/SKILL.md
ADDED
|
@@ -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
|
+
审阅:________ 日期:________
|