@tikomni/skills 0.1.2 → 0.1.3
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/package.json +4 -2
- package/skills/single-work-analysis/env.example +3 -3
- package/skills/single-work-analysis/references/config-templates/defaults.yaml +8 -19
- package/skills/single-work-analysis/references/prompt-contracts/{insight.md → analysis-bundle.md} +43 -8
- package/skills/single-work-analysis/scripts/core/analysis_adapter.py +384 -0
- package/skills/single-work-analysis/scripts/core/analysis_pipeline.py +399 -76
- package/skills/single-work-analysis/scripts/core/config_loader.py +18 -42
- package/skills/single-work-analysis/scripts/core/progress_report.py +163 -16
- package/skills/single-work-analysis/scripts/core/storage_router.py +24 -57
- package/skills/single-work-analysis/scripts/core/tikomni_common.py +13 -3
- package/skills/single-work-analysis/scripts/pipeline/asr/asr_pipeline.py +154 -7
- package/skills/single-work-analysis/scripts/pipeline/asr/poll_u2_task.py +3 -1
- package/skills/single-work-analysis/scripts/platform/douyin/run_douyin_single_video.py +243 -44
- package/skills/single-work-analysis/scripts/platform/xiaohongshu/run_xiaohongshu_extract.py +263 -25
- package/skills/single-work-analysis/scripts/writers/write_benchmark_card.py +244 -894
- package/skills/single-work-analysis/references/prompt-contracts/asr-clean.md +0 -28
- package/skills/single-work-analysis/references/prompt-contracts/cta.md +0 -24
- package/skills/single-work-analysis/references/prompt-contracts/hook.md +0 -25
- package/skills/single-work-analysis/references/prompt-contracts/structure.md +0 -25
- package/skills/single-work-analysis/references/prompt-contracts/style.md +0 -27
- package/skills/single-work-analysis/references/prompt-contracts/summary.md +0 -29
- package/skills/single-work-analysis/references/prompt-contracts/topic.md +0 -29
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · ASR_CLEAN
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `raw_content`
|
|
5
|
-
- `asr_raw`(统一字幕/转写文本主字段)
|
|
6
|
-
- `asr_clean`(遗留兼容字段,仅可作为附加输入)
|
|
7
|
-
|
|
8
|
-
## Method (stable)
|
|
9
|
-
1. 选择输入基底:优先 `asr_raw`,否则 `raw_content`,最后才允许兼容读取 `asr_clean`。
|
|
10
|
-
2. 去噪清洗:移除明显口头禅、重复叠词、异常空白。
|
|
11
|
-
3. 语义断句:按 `。!?;\n` 断句,并补齐句末中文标点。
|
|
12
|
-
4. 分段规则:每句单独一行,每段 2~4 句,段间空一行。
|
|
13
|
-
5. 保真约束:不新增事实、不改写核心结论、不输出提示词文本。
|
|
14
|
-
|
|
15
|
-
## Output Format
|
|
16
|
-
- 纯文本多段落:
|
|
17
|
-
- 每句一行
|
|
18
|
-
- 段间空行
|
|
19
|
-
|
|
20
|
-
## Constraints
|
|
21
|
-
- 不把清洗提示词写入正文。
|
|
22
|
-
- 不生成“总结式改写”,仅做可读性清洗。
|
|
23
|
-
- 不得凭空补充数据、观点和案例。
|
|
24
|
-
|
|
25
|
-
## Fallback / Data-insufficient
|
|
26
|
-
- 两个输入均为空:输出空字符串。
|
|
27
|
-
- 断句失败:保留原文并补单句句号。
|
|
28
|
-
- 超长段落:强制按 3 句一段切分。
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · CTA
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `asr_raw`(主字段)
|
|
5
|
-
- `asr_clean`(遗留兼容字段)
|
|
6
|
-
|
|
7
|
-
## Method (stable)
|
|
8
|
-
1. 扫描 CTA 关键词句(评论/关注/私信/收藏/转发/领取/报名/咨询/下单)。
|
|
9
|
-
2. 判定 CTA 类型:互动型 / 线索型 / 转化型。
|
|
10
|
-
3. 提取关键动作句(默认取最后一个 CTA 句)。
|
|
11
|
-
4. 计算 CTA 密度(CTA句数/总句数)。
|
|
12
|
-
|
|
13
|
-
## Output Format
|
|
14
|
-
- `CTA类型`:`互动型、线索型...`
|
|
15
|
-
- `关键动作句`:`原句`
|
|
16
|
-
- `CTA密度`:`x/y 句`
|
|
17
|
-
|
|
18
|
-
## Constraints
|
|
19
|
-
- 必须给出至少一个动作句或明确说明缺失。
|
|
20
|
-
- 不得虚构转化链路。
|
|
21
|
-
|
|
22
|
-
## Fallback / Data-insufficient
|
|
23
|
-
- 字幕/转写文本为空:输出“数据不足”。
|
|
24
|
-
- 无 CTA 句:输出“未检测到明确行动号召”,并给最小补全建议。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · Hook
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `title`
|
|
5
|
-
- `asr_raw`(主字段)
|
|
6
|
-
- `asr_clean`(遗留兼容字段)
|
|
7
|
-
|
|
8
|
-
## Method (stable)
|
|
9
|
-
1. 提取开头钩子:ASR 首句(无则用标题)。
|
|
10
|
-
2. 提取中段钩子:ASR 中位句。
|
|
11
|
-
3. 提取结尾钩子:最后一句含 CTA/召回词的句子。
|
|
12
|
-
4. 开头钩子类型判定:疑问式 / 反常识式 / 场景代入式 / 陈述式。
|
|
13
|
-
|
|
14
|
-
## Output Format
|
|
15
|
-
- `开头钩子(类型)`:`原句`
|
|
16
|
-
- `中段钩子`:`原句`
|
|
17
|
-
- `结尾钩子`:`原句`
|
|
18
|
-
|
|
19
|
-
## Constraints
|
|
20
|
-
- 必须优先输出原话,不做大幅改写。
|
|
21
|
-
- 结尾若无动作句要明确标注“未检测到明确结尾钩子”。
|
|
22
|
-
|
|
23
|
-
## Fallback / Data-insufficient
|
|
24
|
-
- 标题与 ASR 均缺失:三项输出“数据不足”。
|
|
25
|
-
- 中段不足:输出“数据不足(中段文本不足)”。
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · 结构(structure)
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `asr_raw`(主字段)
|
|
5
|
-
- `asr_clean`(遗留兼容字段,不应被前置依赖)
|
|
6
|
-
|
|
7
|
-
## Method (stable)
|
|
8
|
-
1. 对每句进行结构标签检测:`钩子/冲突/转折/举证/CTA`。
|
|
9
|
-
2. 统计各标签覆盖次数。
|
|
10
|
-
3. 根据覆盖度判定模板:
|
|
11
|
-
- 覆盖 >=4:`钩子→冲突→转折→举证→CTA`
|
|
12
|
-
- 否则:`钩子→观点→补充说明`
|
|
13
|
-
4. 输出缺失模块,作为改写优先级。
|
|
14
|
-
|
|
15
|
-
## Output Format
|
|
16
|
-
- `结构标签覆盖`:`钩子:a, 冲突:b, 转折:c, 举证:d, CTA:e`
|
|
17
|
-
- `模板判定`:`...`
|
|
18
|
-
- `缺失模块`:`模块1、模块2`(无则“无”)
|
|
19
|
-
|
|
20
|
-
## Constraints
|
|
21
|
-
- 所有判断必须来自句级关键词命中。
|
|
22
|
-
- 不允许跳过缺失项输出。
|
|
23
|
-
|
|
24
|
-
## Fallback / Data-insufficient
|
|
25
|
-
- 无有效分句:输出“数据不足”,并提示“补充字幕/转写文本后再做结构标注”。
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · 文风(style)
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `title`
|
|
5
|
-
- `asr_raw`(主字段)
|
|
6
|
-
- `asr_clean`(遗留兼容字段)
|
|
7
|
-
|
|
8
|
-
## Method (stable)
|
|
9
|
-
1. 分句后统计平均句长(短/中/长)。
|
|
10
|
-
2. 统计疑问/感叹/陈述分布。
|
|
11
|
-
3. 统计人设代词(我/你/我们/大家)与修辞触发词(不是/而是/其实/必须)。
|
|
12
|
-
4. 输出“人设+句式+语气”三层结论。
|
|
13
|
-
|
|
14
|
-
## Output Format
|
|
15
|
-
- `句式结构`:`<类型>,平均句长约 X 字`
|
|
16
|
-
- `语气分布`:`疑问 A / 感叹 B / 陈述 C`
|
|
17
|
-
- `人设与修辞`:`人设代词命中 N 次,强调/转折词命中 M 次`
|
|
18
|
-
|
|
19
|
-
## Constraints
|
|
20
|
-
- 至少 2 个统计指标;禁止空泛描述。
|
|
21
|
-
- 仅基于文本统计,不猜测作者背景。
|
|
22
|
-
- 不输出表格。
|
|
23
|
-
|
|
24
|
-
## Fallback / Data-insufficient
|
|
25
|
-
- `asr_raw`(主字段)
|
|
26
|
-
- `asr_clean`(遗留兼容字段) 为空:三项均输出“数据不足”。
|
|
27
|
-
- 分句失败:标注“需人工复核”。
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · 总结(summary)
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `topic_score`
|
|
5
|
-
- `style_score`
|
|
6
|
-
- `hook_score`
|
|
7
|
-
- `structure_score`
|
|
8
|
-
- `cta_score`
|
|
9
|
-
- 各模块 `gaps`
|
|
10
|
-
|
|
11
|
-
## Method (stable)
|
|
12
|
-
1. 计算 5 模块平均分。
|
|
13
|
-
2. 结论分级:
|
|
14
|
-
- `>=4.2`:可直接复用
|
|
15
|
-
- `3.4~4.19`:可用但需小幅优化
|
|
16
|
-
- `<3.4`:需重写关键模块
|
|
17
|
-
3. 选择最低 1-2 个模块,输出针对性建议(优先 gaps)。
|
|
18
|
-
|
|
19
|
-
## Output Format
|
|
20
|
-
- `结论`:`综合评分 X/5,判定为“...”`
|
|
21
|
-
- `建议`:最多 3 条,短句、可执行。
|
|
22
|
-
|
|
23
|
-
## Constraints
|
|
24
|
-
- 只输出“结论+建议”,不再拆“好/差/改写”。
|
|
25
|
-
- 建议必须指向具体模块。
|
|
26
|
-
|
|
27
|
-
## Fallback / Data-insufficient
|
|
28
|
-
- 若分数无法计算:输出“数据不足,需先完成5模块分析”。
|
|
29
|
-
- 若无 gaps:输出“继续做A/B测试验证Hook与CTA”。
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
# Prompt Contract · 选题(topic)
|
|
2
|
-
|
|
3
|
-
## Inputs
|
|
4
|
-
- `title`(作品标题,必填优先)
|
|
5
|
-
- `asr_raw`(统一字幕/转写文本主字段)
|
|
6
|
-
- `asr_clean`(遗留兼容字段,不应作为主依赖)
|
|
7
|
-
- `category`(可选,已有分类)
|
|
8
|
-
- `tags`(可选)
|
|
9
|
-
|
|
10
|
-
## Method (stable)
|
|
11
|
-
1. 按关键词命中做**基础类型三分**:流量型 / 人设型 / 营销型。
|
|
12
|
-
2. 结合标题+字幕/转写文本做**弱主题线索提取**(Top 3),不得输出 rigid 赛道归类。
|
|
13
|
-
3. 从问题词/痛点词提取**受众痛点**。
|
|
14
|
-
4. 输出必须给出命中证据,不得仅主观判断。
|
|
15
|
-
|
|
16
|
-
## Output Format
|
|
17
|
-
- `主题线索`:`词1、词2、词3`
|
|
18
|
-
- `受众痛点`:`痛点1、痛点2`
|
|
19
|
-
- `说明`:`仅为弱语义线索,不是 rigid topic 分类`
|
|
20
|
-
|
|
21
|
-
## Constraints
|
|
22
|
-
- 只使用输入数据推断,不引用外部知识。
|
|
23
|
-
- 结论必须可追溯到词命中或句段。
|
|
24
|
-
- 不输出表格。
|
|
25
|
-
|
|
26
|
-
## Fallback / Data-insufficient
|
|
27
|
-
- `title` 与 `asr_raw` 均缺失:输出“数据不足”。
|
|
28
|
-
- 主题词命中为 0:输出“数据不足(未检测到显著主题词)”。
|
|
29
|
-
- 痛点词命中为 0:输出“以降低门槛/快速落地为主(显性痛点词不足)”。
|