All skills
cat-xierluo avatar

/lecture-review

@9fab1bd

Use when 用户拿到讲课/培训/演讲/分享活动的 raw 转录稿(听悟/FunASR),要复盘主讲人的讲授表现——口癖、语言习惯、节奏、时间分配、承诺回收、互动密度;有定稿课件时可做 deck 逐页对照(哪页讲了/跳过/挪位、min/页超载预警);用户显式要求"课程结构复盘"时进入高级模式——课件自动体检 + 课件×实讲双向比对,产出智合复盘式结构诊断与修改建议;或要跨场次对比讲师表现、复查上次的口癖改掉了没有。触发词:讲课复盘、讲课表现、口癖分析、节奏分析、讲师档案、课件对照、课程结构复盘、复盘课程设计。不要用于:纠正转录错字、改写生成课程内容;常规复盘不评课程内容质量与方法论对错(课程评价只在高级模式经显式触发后进行)。

Use this Skill: https://skilld.dev/gh/cat-xierluo/legal-skills/lecture-review

This session only. Nothing lands on disk.

referencesmetrics.md

≈2.7k tokens on demand. Your agent reads this file only when SKILL.md points to it.

指标口径参考(lecture-review)

动态发现优先(总原则):分析的主线是 agent 通读全文后对本场讲师的动态发现——包括任何没被词表、没被上一场历史预设过的模式。预设指标只做两件事:① 常见参考与兜底;② 跨场次对比所需的固定锚点(档案里每场都记这几个数,否则没法比)。如果通读发现的新模式与预设指标冲突,以通读发现为准,新模式量化后可沉淀进档案的「个人观察清单」,下次优先复查。

脚本的角色是计算器,不是分析器:agent 数数会幻觉(估频次不可靠),所以任何进入报告的数字必须出自脚本。流程 = 通读形成发现 → 用脚本量化验证。--count 词1,词2 支持对任意临时词按需计数(含每万字频与三分场分布),用于量化通读中的新发现。

统计脚本(scripts/analyze_stats.py)产出确定性数字,agent 负责解读与补充语义判断。本文档定义每个指标的计算口径与解读规则,两处必须一致。

分母与基础定义

  • 可见字符:CJK + 字母数字,不含标点空白。所有频度、语速统一用这个分母。
  • 段(block):一个 发言人N 时间戳 锚点到下一个锚点之间的文本。
  • 主讲:默认全场可见字符最多的发言人;--speaker 可指定编号或姓名(姓名会被 ASR 漂移成多个同音变体,如「王大为/王大维/王达为」,按各发言人文本前 120 字模糊匹配)。
  • 前/中/后三分场:按墙钟时间等分主讲跨度(thirds 数组),用于看紧张/疲劳曲线。

口癖(话语标记词)

  • 计数:最长优先去重叠——「也就是说」只计入自身,不再喂给「就是」。脚本已处理,解读时直接用 count / per_10k。
  • 分类解读(类别见 config/marker_words.yaml):
类别 判读
指示填充(这个/那个) 高频即为口癖强证据,无需辩护
连接填充(就是/就是说/等于说) 高频即为口癖强证据
逻辑连接(然后/其实) 正常用法占比高,仅当每万字频显著偏高(参考线:然后 > 40/万字、其实 > 30/万字)才报,且要抽例句确认多数是填充用法
解释填充(相当于/说白了/换句话说) 中频即可报,律师讲课常见「相当于」癖
求确认(对吧/是不是/好不好…) 双重身份:高频是口癖;同时也是互动信号。两个口径都出,报告里分开陈述,不互相抵消
  • 参考基准:中文讲课每万字话语标记词总量 < 150 属干净;150–300 有明显痕迹;> 300(如本 skill 首跑样本 188/万字仅「这个」一项)属必须整改。基准仅供定位量级,报告以自身历史对比为主。
  • thirds 分布:中段显著高于首段 → 进入正题后填充加剧;末段抬升 → 疲劳或赶进度。描述现象,不臆断原因。

语速与节奏

  • 估算口径:单段语速 = 段可见字符 / (下一锚点时间 − 本锚点时间)。段间隙含静默与等待,整体略低估;跨场次同一估算口径,对比有效。
  • 短确认句(≤20 字)不进语速样本。
  • 中文讲课语速参考区间:180–260 字/分钟。持续 > 280 = 听众跟不上的风险;持续 < 160 = 拖。
  • 长停顿(>90s 空档):脚本给出前后文与归属发言人。agent 判定性质——等待扫码/装软件/等人进群属操作等待,不扣分,计入「时间分配」的等待类;只有主讲中途的茫然冷场才算节奏问题。判定不了的标注「原因不明」。
  • 起手式:starter_top + starter_runs(连续 ≥3 段同词开头)。报 runs,top 里筛掉正常叙事词(「我们」作主语开场通常无害,「好」高频可能是推进习惯,看录像确认)。

结构信号

  • 时间分配:结合 slides_ts(幻灯片锚点)、long_pauses、排除区发言人的时间跨度,把全场切成:开场寒暄调试 / 操作等待 / 正文演示 / 互动答疑。分类是语义判断,时间锚点来自脚本。输出每类的分钟数与占比。
  • 承诺回收:promise_candidates 只是候选(脚本正则宽召回)。agent 三步:① 剔除误报(非承诺句);② 对每条真承诺,在后文找兑现证据(同主题内容出现);③ 输出「承诺 → 兑现 ✓/✗/存疑 + 后文时间戳」。存疑不判死刑。
  • 互动密度:原始计数 = audience_address + 求确认类标记;agent 通读追加真互动(向听众提问并留出回应时间、请大家动手操作)。按三分场如实报分布。互动形态由课型决定(先讲后 QA 属正常设计),不作问题项、不生成整改提醒(2026-09-11 用户校准,SKILL.md 原则 7)。

课件对照(v1.1,需定稿 deck 输入;口径详见 SKILL.md Phase 4.5)

  • 页表:deck.count 与 deck.pages(label/title/text)出自脚本 --deck,agent 不自数页数。text 为页面可见正文的压缩摘录(每页截 600 字、剔 canvas/style/script/注释/标签),用于内容匹配与覆盖度判断;摘录不够时 agent 直接 Read 原 HTML 的对应 section。
  • 帧锚点:slides_ts 是关键帧时间戳,不是页码——重复拍、漏拍、无页号三种失真并存;帧-页映射 = 帧附近口述内容 ↔ 页面标题+正文的内容匹配(通读判断)。「某页无帧出现」只是弱证据,不能单独判跳页,须有口述佐证。
  • 兑现分类(每页恰归一类):实讲 / 半讲 / 跳过 / 挪位回收(标时间戳,主动取舍可标亮点)/ 主动宣判(引讲者原话)。分类不扣分,如实报告;判定依据 = 口述内容对页面正文要点的覆盖度(半讲 = 部分要点覆盖或讲了内容未立页面框架),不是标题沾边、也不是讲者态度。
  • min/页 双口径:粗口径 = 模块实讲总时长 ÷ 页数;净口径 = 扣除现场实演与操作等待后 ÷ 页数。两口径都报(只报粗口径会掩盖静态页超载:实测案例 73min/28 页粗看 2.6,扣实演后实为 1.4)。超载预警:净口径 < 1.5 min/页 且 跳过+主动宣判 ≥ 2 页。
  • 找位置摩擦:「看一下顺序 / 翻到 / 在哪一页」类话语,通读发现 + --count 量化;≥2 次即报(页序与讲者心智顺序不一致信号)。
  • 档案字段(跨场次趋势,长期超载 = 课件设计习惯问题):deck: {pages, taught, skipped, 半讲, moved, declared_skip, min_per_page, flip_hunts}。

课件自检(v1.2,deck 单侧;高级模式 Phase 6 第 1 步的输入)

  • module_distribution:按 chrome label 首个「·」前分组的页数——原始分组很细(每个不同 label 一组),agent 负责归并为大模块(如「第一步/第二步/…」各 4–6 页归入模块三)。
  • near_dup_pages:页正文 char-bigram Jaccard ≥ 0.25 的页对(降序)。只是候选——实测命中"同主题双视图"页对(检索双页/短信双页/套件相邻页),也含目录页↔模块 hero 的良性误报,agent 逐对判读后定性。
  • title_term_index:标题与 label 分词 → 页号索引(保留多页命中或 ≥4 字词)。查概念归属重叠时还要全文检索 deck.pages[].text——只查索引会漏"正文提及"型重叠(实测:「失败回写」挂在 P60 label,但 P39 总览正文也定义了一次)。
  • 脚本不做路线假设检测(手写 vs 生成路线属语义判断),agent 读页表 text 自判。

高级模式(课程结构复盘,v1.2)

  • 触发铁律:用户显式说"课程结构复盘/复盘课程设计/课件与实讲对照找结构问题"才启动;常规复盘输出中发现了结构问题的迹象,也只能建议升级高级模式,不得自行越界(D7)。
  • 输入:转录稿 + 定稿 deck 缺一不可(只有 deck → 仅课件体检;只有转录稿 → 退常规模式)。
  • 产物:按 structural-review-template.md 写入项目目录;archive 存副本 + stats.json;讲师档案只追加 deck: 字段组,课程评价不进档案(评课与评人分离)。
  • 证据纪律:每条诊断 = 页码 + 时间戳 +(涉讲者意图时)原话引文;结构诊断与执行事故分行;修改建议可执行到页号;回流建议只指去向不替项目做决定。

判断红线

  1. 每条发现必须带原话例句 + 时间戳,否则不进报告。
  2. 只评表达与结构,不评内容质量(逻辑是否成立、深浅是否合适、观点对错);课件对照只报"设计与交付的结构落差"事实,不诊断方法论该不该改(归项目复盘与讲者)。
  3. 频度、占比只对主讲的可见字符计算,排除区数据只用于时间分配。
  4. 数字一律取自脚本输出,agent 不心算词频;语义补充要标注「agent 通读发现」(min/页的除法由 agent 用脚本产出的页数与时间锚点计算,算式写进报告)。
  5. 语气填充音(呃/嗯/啊)不在统计范围——ASR 引擎吞语气音,计数不可信。报告首页声明此盲区;用户需要该维度时应换保留语气音的引擎重新转录,本 skill 不补。

降级规则

输入缺陷 降级行为
无时间戳 跳过语速/停顿/三分场;出口癖 + 句式 + 结构信号(时间分配降为「承诺回收 + 互动密度」),报告标注
_corrected / _polished 稿 警告「口癖证据已被转录纠错流程删除」,口癖统计标注不可信,其余照跑;raw 缺失即接受缺失(用户 2026-09-11 确认「错过就行」),报告降级声明即可,不推动补录
单发言人无标记 全文视为主讲,警告无隔离校验
讲师占比 < 50% 警告可能选错主讲,请求用户确认
无 deck 文件 跳过课件对照段,报告声明缺省,其余照跑
deck.parse: failed(非 section.slide 结构的 HTML / 文件不可读) 降级为手工页表:agent 逐页读 deck(HTML 直接读 / PDF 分页读)自建页清单,报告标注「页表为 agent 手工提取」;帧-页映射与后续步骤不变
转录稿无幻灯片帧锚点(slides_ts 为空) 课件对照退化为「口述内容 ↔ 页标题」匹配(无帧时间轴),min/页不可算,只报兑现分类与找位置摩擦,报告标注

Source: SKILL.md on GitHub

No alerts15d3 checks · Risk SAFE
  • Gen Agent Trust Hub15d

    The skill is safe and provides a comprehensive toolset for reviewing lecture delivery and structure. It utilizes a local Python script for linguistic and structural analysis of transcripts, stores data locally in dedicated archive and profile directories, and includes specific instructions to prevent the agent from being influenced by the content of the analyzed documents.

  • Socket15d

    No alerts

  • Snyk15d

    Risk: LOW · No issues

Signed by skilld at 9fab1bd. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated 2 weeks ago

README badge

README badge for cat-xierluo/legal-skills/lecture-review