同步:nuwa技能优化、脚本创作技能完善、提示词vs素材库分析及memory日志更新
This commit is contained in:
1 parent
81ac5eae51
commit
f46156cde8
29 files changed
+1059
-264
No files matched your search
@@ -276,7 +276,7 @@ spawn subagent时,用以下结构给任务(以Agent 1著作为例):
|
||||
- 自动扫描 `references/research/01-06.md`,统计来源数、一手/二手占比、关键发现
|
||||
- 输出Phase 1.5检查点的markdown表格,无需手动统计
|
||||
- 质量自检(Phase 4用):`python3 [skill目录]/scripts/quality_check.py <SKILL.md路径>`
|
||||
- 自动检查6项通过标准:心智模型数量、局限性、表达DNA、诚实边界、内在张力、一手来源占比
|
||||
- 自动检查9项通过标准:心智模型数量、局限性、表达DNA、诚实边界、内在张力、一手来源占比、**术语通俗化**(标题+正文)、**人设卡12段结构**、**学术化表达检测**
|
||||
- 输出逐项PASS/FAIL和总结
|
||||
|
||||
#### 利用已安装的信息获取Skill
|
||||
@@ -435,8 +435,28 @@ Phase 1启动前,**主动扫描 `.claude/skills/` 目录**,检查是否有
|
||||
#### Step 1: 读取模板
|
||||
读取 `references/skill-template.md` 获取标准结构。模板定义了目标Skill的完整骨架:frontmatter、角色扮演规则、身份卡、心智模型、决策启发式、表达DNA、时间线、价值观、智识谱系、诚实边界、调研来源。
|
||||
|
||||
#### Step 1.5: 判断输出类型 — 执行术语通俗化
|
||||
|
||||
**读取 `references/output-adaptation-guide.md`**,判断本次交付物面向谁,决定术语处理方式:
|
||||
|
||||
| 交付物类型 | 受众 | 术语处理 | 用哪张映射表 |
|
||||
|-----------|------|---------|------------|
|
||||
| 人物思维Skill(SKILL.md) | AI agent | 保留原始术语 | 不需要 |
|
||||
| 抖音/短视频人设卡 | 编导、运营 | **必须用编导日常用语** | 短视频编导用语映射表(12段结构) |
|
||||
| 通用人设卡 / 账号分析 | 创作者、运营 | **必须翻译为通俗表达** | 通用术语映射表 |
|
||||
| 与其他技能库协作生成文档 | 视目标技能库而定 | **以目标技能库的术语体系为准** | 视情况选择 |
|
||||
|
||||
**生成抖音/短视频人设卡时的强制要求:**
|
||||
|
||||
1. **结构**:必须使用脚本创作技能的12段结构(账号核心定位→账号内容基因→角色原型库→情绪结构→视听风格→五大内容打法→内容规则→系列内容规划→差异化壁垒→红线清单→当前需解决的问题→人设底线)
|
||||
2. **用词**:所有section标题和正文必须使用编导日常用语,参考旧梦留声机人设卡片的用词风格
|
||||
3. **正文风格**:用编导在选题会、拍摄现场会说的话来写,不用学术化表达
|
||||
4. **禁用词**:心智模型、决策启发式、表达DNA、诚实边界、内在张力、智识谱系、反模式、三重验证、跨域复现、生成力、排他性——这些词只能出现在内部分析文件中,绝不能出现在交付给编导的人设卡里
|
||||
|
||||
**核心原则:分析时用女娲的深度和术语,输出时用编导看得懂、拿过来就能用的语言。**
|
||||
|
||||
#### Step 2: 填充内容
|
||||
按模板结构,将Phase 2的提炼结果逐section填入:
|
||||
按模板结构,将Phase 2的提炼结果逐section填入(如Step 1.5判定需要通俗化,同步执行术语替换):
|
||||
|
||||
| 模板Section | 填充来源 |
|
||||
|------------|---------|
|
||||
@@ -550,6 +570,9 @@ Phase 1启动前,**主动扫描 `.claude/skills/` 目录**,检查是否有
|
||||
| 诚实边界 | 至少3条具体局限 | 只有「不能替代本人」 |
|
||||
| 内在张力 | 至少2对矛盾 | 观点高度一致(太假) |
|
||||
| 一手来源占比 | >50% | 主要依赖二手转述 |
|
||||
| 术语通俗化 | 面向用户交付物中无内部术语残留(标题+正文) | 人设卡中出现"心智模型""表达DNA"等黑话 |
|
||||
| 人设卡12段结构 | 12段标题齐全,用编导用语 | 缺段落或用了学术标题 |
|
||||
| 学术化表达 | 正文用编导语境写,无学术词 | 出现"认知框架""降维打击""范式"等 |
|
||||
|
||||
验证通过 → 交付。不通过 → 标注薄弱环节,回到Phase 2迭代。
|
||||
**迭代上限**:Phase 2→4最多循环2次。如果2轮后仍有不通过项,在诚实边界中标注薄弱维度,交付当前最优版本而非无限打磨。
|
||||
|
||||
@@ -149,3 +149,19 @@
|
||||
- [ ] 用此人的眼睛看一个新问题,能得到有价值的视角?
|
||||
- [ ] 不是此人原话的拼凑,而是框架的运行?
|
||||
- [ ] 删掉名字后,还能认出这是谁的思维方式?
|
||||
|
||||
### 输出术语适配(面向用户的交付物时检查)
|
||||
- [ ] 已读取 `references/output-adaptation-guide.md` 并执行术语映射?
|
||||
- [ ] 交付物中无"心智模型""决策启发式""表达DNA""诚实边界""内在张力""智识谱系"等内部术语残留?
|
||||
- [ ] section标题使用的是目标受众能看懂的平实中文?
|
||||
- [ ] 与其他技能库协作时,输出术语以目标技能库体系为准?
|
||||
|
||||
### 短视频人设卡专用检查(生成抖音人设卡时必查)
|
||||
- [ ] section标题用的是编导日常用语(账号核心定位/账号内容基因/角色原型库/情绪结构/视听风格/五大内容打法/内容规则/系列内容规划/差异化壁垒/红线清单/当前需解决的问题/人设底线)?
|
||||
- [ ] 正文用编导语境写,不用学术化表达?(检查:有没有"认知框架""降维打击""策略""范式"等学术词)
|
||||
- [ ] 角色思考方式放在"角色原型库"下面,用大白话描述?(不出现"心智模型")
|
||||
- [ ] 行为规则用"如果…则…"格式放在"内容规则"里?(不出现"决策启发式")
|
||||
- [ ] 表达分析放在"视听风格"的说话方式/语气节奏里?(不出现"表达DNA")
|
||||
- [ ] 局限性放在"人设底线"和"当前需解决的问题"里?(不出现"诚实边界")
|
||||
- [ ] 禁区放在"红线清单"里?(不出现"反模式""价值观与反模式")
|
||||
- [ ] 全文搜索以下词,出现次数为0:心智模型、决策启发式、表达DNA、诚实边界、内在张力、智识谱系、反模式、三重验证、跨域复现、生成力、排他性
|
||||
@@ -0,0 +1,182 @@
|
||||
# 输出适配指南:术语 → 通俗表达映射
|
||||
|
||||
> 当女娲造人术被用于生成面向用户的交付物(人设卡、账号分析、角色设定等)时,
|
||||
> 内部分析术语必须翻译成目标受众能看懂的平实中文。本文件是强制执行的手册。
|
||||
|
||||
## 为什么要做这一步
|
||||
|
||||
女娲造人术的内部方法论使用了一批学术化术语(心智模型、决策启发式、表达DNA等)。
|
||||
这些术语在"给AI agent使用的思维蒸馏Skill"场景下是合理的——它们是精确的分析框架标签。
|
||||
|
||||
但当同样的方法论被用于生成**人设卡、账号分析报告**等面向创作者的文档时,
|
||||
直接使用这些术语会造成阅读障碍:
|
||||
|
||||
- 创作者不需要知道"心智模型"是什么,他们需要知道"这个角色怎么想问题"
|
||||
- 创作者不需要"表达DNA",他们需要"这个角色怎么说话"
|
||||
- 创作者不需要"诚实边界",他们需要"这个分析的局限在哪"
|
||||
|
||||
**规则:内部分析用术语,外部交付用大白话。**
|
||||
|
||||
---
|
||||
|
||||
## 通用术语映射表
|
||||
|
||||
适用于所有面向人类用户的交付物。
|
||||
|
||||
| 内部术语 | 通俗表达(交付物中使用) | 含义说明 |
|
||||
|---------|----------------------|---------|
|
||||
| 心智模型 | 核心思维方式 / 角色核心逻辑 | 这个人/角色用什么逻辑看世界 |
|
||||
| 决策启发式 | 行为规则 / 判断规则 | 遇到X情况,他会怎么做 |
|
||||
| 表达DNA | 表达风格 / 语言特征 | 他怎么说话、用什么句式和词汇 |
|
||||
| 价值观与反模式 | 底线与禁区 / 坚持与拒绝 | 他坚持什么、绝对不做什么 |
|
||||
| 诚实边界 | 局限与不足 / 分析盲区 | 这个分析做不到什么、哪里信息不足 |
|
||||
| 内在张力 | 内心矛盾 / 角色冲突 | 他自己也没想清楚的地方 |
|
||||
| 智识谱系 | 思想脉络 / 影响来源 | 他受谁影响、影响了谁 |
|
||||
| 反模式 | 绝不做的事 / 禁区 | 明确反对的行为和思维方式 |
|
||||
| 三重验证 | (不出现) | 内部筛选方法,不出现在交付物中 |
|
||||
| 跨域复现 | (不出现) | 内部验证方法,不出现在交付物中 |
|
||||
|
||||
---
|
||||
|
||||
## 短视频编导用语映射表(生成抖音人设卡时必用)
|
||||
|
||||
当女娲造人术被用于生成**抖音/短视频账号人设卡**时,必须使用以下编导日常用语。
|
||||
参考标准:旧梦留声机人设卡片(12段结构)。
|
||||
|
||||
### 核心原则
|
||||
|
||||
**编导看人设卡是为了"拿到就能拍",不是"读学术论文"。**
|
||||
所有分析结论必须翻译成编导在选题会、拍摄现场会说的词。
|
||||
|
||||
### 12段标准结构与术语映射
|
||||
|
||||
| 段落 | 编导用语标题(必须用这些词) | 女娲内部术语对应 | 编导实际含义 |
|
||||
|------|---------------------------|----------------|------------|
|
||||
| 一 | 账号核心定位 | (Phase 0A定位+Phase 2综合) | 这个账号做什么的、给谁看、打什么标签 |
|
||||
| 二 | 账号内容基因 | 心智模型的"频道级"提炼 | 无论换什么角色,观众3秒内就知道这是谁的号 |
|
||||
| 三 | 角色原型库 | 心智模型(角色级) | 每类角色怎么分类、情感核心是什么、选什么题 |
|
||||
| 四 | 情绪结构 | 内在张力+情绪曲线设计 | 内容怎么调动观众情绪,几段式、每段干什么 |
|
||||
| 五 | 视听风格 | 表达DNA | 拍什么景别、什么色调、怎么说话、字幕怎么做 |
|
||||
| 六 | 五大内容打法 | 决策启发式(内容级) | 选题到成片的核心打法,每条法则带操作指引 |
|
||||
| 七 | 内容规则 | 决策启发式(账号级铁律) | "如果…则…"格式,账号每期必须遵守的规则 |
|
||||
| 八 | 系列内容规划 | (Phase 2综合推演) | 怎么排播、系列怎么分、单集模板是什么 |
|
||||
| 九 | 差异化壁垒 | 智识谱系+排他性验证 | 为什么别人抄不走、护城河在哪 |
|
||||
| 十 | 红线清单 | 价值观与反模式 | 绝对不能做的事,编导选题时先过这条 |
|
||||
| 十一 | 当前需解决的问题 | 诚实边界(前瞻版) | 账号现在哪里没做好、往什么方向调 |
|
||||
| 十二 | 人设底线 | 诚实边界 | 这个分析哪里信息不足、哪些是推导而非验证 |
|
||||
|
||||
### 关键用词替换速查
|
||||
|
||||
生成人设卡时,正文中的术语也必须替换:
|
||||
|
||||
| ❌ 内部术语(禁用) | ✅ 编导用语(必用) | 编导怎么理解 |
|
||||
|---|---|---|
|
||||
| 心智模型 | 角色思考方式 / 角色核心逻辑 | "这个角色脑子怎么转的,写戏时参照" |
|
||||
| 决策启发式 | 内容规则 / 打法 | "选题会上该按什么标准判断" |
|
||||
| 表达DNA | 视听风格 / 说话方式 | "拍摄时镜头怎么拍、演员怎么说话" |
|
||||
| 诚实边界 | 人设底线 / 分析局限 | "这个分析哪些是推导的、别当铁律用" |
|
||||
| 内在张力 | 情绪冲突 / 角色矛盾 | "写戏时角色内心拉扯的地方,冲突感来源" |
|
||||
| 价值观与反模式 | 红线清单 / 禁区 | "选题先过这条线,碰了就翻车" |
|
||||
| 智识谱系 | 差异化来源 / 护城河 | "这个号的独特性哪来的,别人为什么学不会" |
|
||||
| 反模式 | 绝不做的事 | "编导千万别这么干,干了必死" |
|
||||
| 三重验证 | (不出现) | 内部方法,编导不需要知道 |
|
||||
| 跨域复现 | (不出现) | 内部方法,编导不需要知道 |
|
||||
| 生成力 | (不出现) | 内部方法,编导不需要知道 |
|
||||
| 排他性 | 独特性 / 差异化 | "这个做法是不是只有这个号能做" |
|
||||
|
||||
### 正文用词风格要求
|
||||
|
||||
除了标题术语替换,正文也要用编导语境写:
|
||||
|
||||
| 维度 | ❌ 学术化写法 | ✅ 编导化写法 |
|
||||
|------|------------|------------|
|
||||
| 描述角色思维 | "该角色的核心心智模型是通过谐音重构实现认知框架的降维打击" | "这个角色脑子转得快,擅长把对方的话歪到另一个意思上,用谐音梗把对方绕进去" |
|
||||
| 描述内容规则 | "决策启发式:当遭遇权威质疑时,角色启动防御性语言重构策略" | "如果被面试官质疑,这个角色就会开始用谐音梗和废话文学把对方绕晕" |
|
||||
| 描述表达风格 | "表达DNA呈现为高密度的语言错位与节奏突变" | "说话方式:语速快、喜欢抢话、一句话里埋两三个谐音梗、说到一半突然切换语种" |
|
||||
| 描述局限性 | "诚实边界:本分析基于6条爆款视频,样本量有限,推断性结论占比约40%" | "人设底线:以上分析基于6条爆款视频拆解,数据量不算大,角色原型库里的分类是推导出来的,实际选题时别当铁律,要根据自己账号的数据调整" |
|
||||
|
||||
---
|
||||
|
||||
## 执行规则
|
||||
|
||||
### 1. 内部分析阶段(Phase 1-2)
|
||||
|
||||
**不做任何改动。** 继续使用原始术语进行调研和提炼。术语在内部流程中是精确的分析工具。
|
||||
|
||||
### 2. 输出构建阶段(Phase 3 及之后)
|
||||
|
||||
当生成面向用户的交付物时,执行以下步骤:
|
||||
|
||||
**Step A:判断交付物类型**
|
||||
|
||||
| 交付物类型 | 受众 | 术语处理 | 用哪张映射表 |
|
||||
|-----------|------|---------|------------|
|
||||
| 人物思维Skill(SKILL.md) | AI agent | 保留原始术语(这是给机器读的) | 不需要 |
|
||||
| 抖音/短视频人设卡 | 编导、运营人员 | **必须用编导用语** | 短视频编导用语映射表 |
|
||||
| 通用人设卡 / 账号分析 | 创作者、运营人员 | **必须翻译为通俗表达** | 通用术语映射表 |
|
||||
| 角色设定文档 | 编剧、内容团队 | **必须翻译为通俗表达** | 通用术语映射表 |
|
||||
| 调研报告 | 研究人员 | 可保留术语,但首次出现时附注释 | 不需要 |
|
||||
|
||||
**Step B:执行术语替换**
|
||||
|
||||
在写入最终交付物文件时,按对应映射表替换所有 section 标题和正文中的术语。
|
||||
|
||||
**Step C:检查残留**
|
||||
|
||||
输出前全文搜索以下关键词,确保没有遗漏:
|
||||
- `心智模型`(除非是给AI agent的Skill文件)
|
||||
- `决策启发式`
|
||||
- `表达DNA`(除非描述生物学概念)
|
||||
- `诚实边界`
|
||||
- `内在张力`
|
||||
- `智识谱系`
|
||||
- `反模式`(可保留在"反模式黑名单"等固定搭配中,但section标题应替换)
|
||||
- `三重验证`
|
||||
- `跨域复现`
|
||||
- `生成力`(非日常用语)
|
||||
- `排他性`(改用"独特性"或"差异化")
|
||||
|
||||
### 3. 特殊情况
|
||||
|
||||
**混合交付物**:如果同一个项目既有内部Skill文件又有面向用户的文档,
|
||||
内部文件保留术语,用户文档使用通俗表达。不要为了"一致性"而在用户文档中保留术语。
|
||||
|
||||
**用户明确要求使用术语**:如果用户明确说"用心智模型这个词"或"保留表达DNA",
|
||||
则尊重用户选择,不强制替换。
|
||||
|
||||
---
|
||||
|
||||
## 与其他技能库协作时的术语对齐
|
||||
|
||||
当女娲造人术与「脚本创作技能」等其他技能库协作生成人设卡时,
|
||||
**以目标技能库(脚本创作技能)的术语体系为准**,
|
||||
女娲造人术的分析深度作为方法论输入,但不把自己的术语带到输出中。
|
||||
|
||||
### 与脚本创作技能协作生成抖音人设卡
|
||||
|
||||
脚本创作技能提供**12段结构骨架**(账号核心定位→账号内容基因→角色原型库→情绪结构→视听风格→五大内容打法→内容规则→系列内容规划→差异化壁垒→红线清单→当前需解决的问题→人设底线)。
|
||||
|
||||
女娲造人术提供**分析深度**:
|
||||
- Phase 2提炼的心智模型 → 填入"角色原型库"的"角色思考方式"(用编导用语描述)
|
||||
- Phase 2提炼的决策启发式 → 填入"内容规则"的"如果…则…"(用编导用语描述)
|
||||
- Phase 2分析的表达DNA → 填入"视听风格"的"说话方式/语气节奏"(用编导用语描述)
|
||||
- Phase 2提炼的价值观与反模式 → 填入"红线清单"(用编导用语描述)
|
||||
- Phase 2的诚实边界 → 填入"人设底线"和"当前需解决的问题"(用编导用语描述)
|
||||
- Phase 2的内在张力 → 融入"情绪结构"的冲突设计(用编导用语描述)
|
||||
|
||||
映射关系总表(女娲造人术 → 脚本创作技能人设卡12段):
|
||||
|
||||
| 女娲内部术语 | 人设卡对应段落 | 编导用语 |
|
||||
|------------|-------------|---------|
|
||||
| 心智模型(频道级) | 二、账号内容基因 | 内容基因标记 |
|
||||
| 心智模型(角色级) | 三、角色原型库 | 角色思考方式 |
|
||||
| 决策启发式(内容级) | 六、五大内容打法 | 内容打法 |
|
||||
| 决策启发式(账号级) | 七、内容规则 | 内容规则(如果…则…) |
|
||||
| 表达DNA | 五、视听风格 | 说话方式/语气节奏 |
|
||||
| 内在张力 | 四、情绪结构 | 情绪冲突设计 |
|
||||
| 价值观与反模式 | 十、红线清单 | 禁区/绝不做的事 |
|
||||
| 诚实边界(局限) | 十二、人设底线 | 分析局限 |
|
||||
| 诚实边界(前瞻) | 十一、当前需解决的问题 | 待解决问题 |
|
||||
| 智识谱系+排他性 | 九、差异化壁垒 | 护城河/差异化来源 |
|
||||
|
||||
**核心原则:分析时用女娲的深度和术语,输出时用编导看得懂、拿过来就能用的语言。**
|
||||
@@ -101,9 +101,112 @@ def check_primary_sources(content: str) -> tuple[bool, str]:
|
||||
return passed, f"一手来源占比: {primary}/{total} ({ratio:.0%}) {'✅' if passed else '❌ (应>50%)'}"
|
||||
|
||||
|
||||
def check_terminology_adaptation(content: str) -> tuple[bool, str]:
|
||||
"""检查面向用户交付物中是否有内部术语残留。
|
||||
检查section标题和正文,确保没有学术黑话。"""
|
||||
# SKILL.md文件是给AI agent用的,保留术语是合理的
|
||||
is_skill_file = bool(re.search(r'^---\s*\nname:\s*', content, re.MULTILINE))
|
||||
if is_skill_file:
|
||||
return True, "SKILL.md文件(给AI agent用),术语保留 ✅"
|
||||
|
||||
# 完整的禁用术语列表(含正文检查)
|
||||
jargon_terms = [
|
||||
'心智模型', '决策启发式', '表达DNA', '诚实边界',
|
||||
'内在张力', '智识谱系', '反模式',
|
||||
'三重验证', '跨域复现', '生成力', '排他性'
|
||||
]
|
||||
|
||||
# 检查section标题(## 开头的行)
|
||||
section_headers = re.findall(r'^##\s+.*$', content, re.MULTILINE)
|
||||
jargon_in_headers = []
|
||||
for header in section_headers:
|
||||
for term in jargon_terms:
|
||||
if term in header:
|
||||
jargon_in_headers.append(f'标题"{header.strip()}"含"{term}"')
|
||||
|
||||
# 检查正文中的术语残留(排除在代码块/引用块中的情况)
|
||||
jargon_in_body = []
|
||||
lines = content.split('\n')
|
||||
in_code_block = False
|
||||
for i, line in enumerate(lines, 1):
|
||||
if line.strip().startswith('```'):
|
||||
in_code_block = not in_code_block
|
||||
continue
|
||||
if in_code_block:
|
||||
continue
|
||||
for term in jargon_terms:
|
||||
if term in line:
|
||||
# 排除在"禁用词列表"中提到术语本身的情况
|
||||
if '禁用' in line or '不出现' in line or '❌' in line:
|
||||
continue
|
||||
jargon_in_body.append(f'第{i}行含"{term}": {line.strip()[:60]}...')
|
||||
|
||||
all_issues = jargon_in_headers + jargon_in_body[:5] # 最多显示5条正文问题
|
||||
|
||||
if all_issues:
|
||||
return False, f"❌ 术语残留: {'; '.join(all_issues[:5])}"
|
||||
return True, "面向用户交付物,无术语残留 ✅"
|
||||
|
||||
|
||||
def check_persona_card_format(content: str) -> tuple[bool, str]:
|
||||
"""检查短视频人设卡是否符合12段标准结构。
|
||||
当文件名包含'人设'或'账号卡片'时触发此检查。"""
|
||||
# 判断是否是人设卡
|
||||
if not re.search(r'人设|账号卡片|persona', content[:200], re.IGNORECASE):
|
||||
return True, "非人设卡文件(跳过12段结构检查)"
|
||||
|
||||
expected_sections = [
|
||||
'账号核心定位', '账号内容基因', '角色原型库', '情绪结构',
|
||||
'视听风格', '五大内容打法', '内容规则', '系列内容规划',
|
||||
'差异化壁垒', '红线清单', '当前需解决的问题', '人设底线'
|
||||
]
|
||||
|
||||
found_sections = []
|
||||
missing_sections = []
|
||||
for section in expected_sections:
|
||||
if re.search(rf'##\s+.*{section}', content):
|
||||
found_sections.append(section)
|
||||
else:
|
||||
missing_sections.append(section)
|
||||
|
||||
if missing_sections:
|
||||
return False, f"❌ 缺少段落: {', '.join(missing_sections)}"
|
||||
return True, f"12段结构完整 ✅ ({len(found_sections)}/12)"
|
||||
|
||||
# 检查学术化表达
|
||||
def check_academic_writing(content: str) -> tuple[bool, str]:
|
||||
"""检查正文中是否有学术化表达(人设卡场景)。"""
|
||||
# SKILL.md文件不检查
|
||||
is_skill_file = bool(re.search(r'^---\s*\nname:\s*', content, re.MULTILINE))
|
||||
if is_skill_file:
|
||||
return True, "SKILL.md文件(跳过学术化检查)"
|
||||
|
||||
academic_patterns = [
|
||||
'认知框架', '降维打击', '范式', '策略性', '结构化',
|
||||
'方法论体系', '底层逻辑架构', '思维范式', '认知操作系统'
|
||||
]
|
||||
|
||||
found = []
|
||||
lines = content.split('\n')
|
||||
in_code_block = False
|
||||
for i, line in enumerate(lines, 1):
|
||||
if line.strip().startswith('```'):
|
||||
in_code_block = not in_code_block
|
||||
continue
|
||||
if in_code_block:
|
||||
continue
|
||||
for pattern in academic_patterns:
|
||||
if pattern in line:
|
||||
found.append(f'第{i}行: "{pattern}"')
|
||||
|
||||
if found:
|
||||
return False, f"❌ 学术化表达: {'; '.join(found[:3])}"
|
||||
return True, "无学术化表达 ✅"
|
||||
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
print("用法: python3 quality_check.py <SKILL.md路径>")
|
||||
print("用法: python3 quality_check.py <文件路径>")
|
||||
sys.exit(1)
|
||||
|
||||
skill_path = Path(sys.argv[1])
|
||||
@@ -113,16 +216,40 @@ def main():
|
||||
|
||||
content = skill_path.read_text(encoding='utf-8')
|
||||
|
||||
checks = [
|
||||
("心智模型数量", check_mental_models),
|
||||
("模型局限性", check_limitations),
|
||||
("表达DNA辨识度", check_expression_dna),
|
||||
("诚实边界", check_honest_boundary),
|
||||
("内在张力", check_tensions),
|
||||
("一手来源占比", check_primary_sources),
|
||||
]
|
||||
# 判断文件类型
|
||||
is_skill_file = bool(re.search(r'^---\s*\nname:\s*', content, re.MULTILINE))
|
||||
is_persona_card = bool(re.search(r'人设|账号卡片|persona', content[:500], re.IGNORECASE))
|
||||
|
||||
if is_skill_file:
|
||||
# SKILL.md文件:运行全部检查(内部术语是合理的)
|
||||
checks = [
|
||||
("心智模型数量", check_mental_models),
|
||||
("模型局限性", check_limitations),
|
||||
("表达DNA辨识度", check_expression_dna),
|
||||
("诚实边界", check_honest_boundary),
|
||||
("内在张力", check_tensions),
|
||||
("一手来源占比", check_primary_sources),
|
||||
("术语通俗化", check_terminology_adaptation),
|
||||
]
|
||||
file_type = "SKILL.md(AI agent Skill文件)"
|
||||
elif is_persona_card:
|
||||
# 人设卡:只运行面向用户的检查项
|
||||
checks = [
|
||||
("术语通俗化", check_terminology_adaptation),
|
||||
("人设卡12段结构", check_persona_card_format),
|
||||
("学术化表达", check_academic_writing),
|
||||
]
|
||||
file_type = "人设卡(面向编导/创作者)"
|
||||
else:
|
||||
# 其他面向用户的文档
|
||||
checks = [
|
||||
("术语通俗化", check_terminology_adaptation),
|
||||
("学术化表达", check_academic_writing),
|
||||
]
|
||||
file_type = "面向用户文档"
|
||||
|
||||
print(f"质量检查: {skill_path.name}")
|
||||
print(f"文件类型: {file_type}")
|
||||
print("=" * 50)
|
||||
|
||||
passed_count = 0
|
||||
|
||||
Reference in new issue
Block a user