Course material intake
Skill Ivor-NCUT/course-producer/skills/course-material-intake
面向 Codex Goal 长时运行的课程制作 Agent Skill:课程定位、专家访谈、材料加工、逐字稿、审校与课程海报。
npx -y skills add Ivor-NCUT/course-producer --skill course-material-intakeAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 20 days oldThe repository was created 20 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
课程材料盘点与证据化摄取。扫描本地课程目录、飞书文档或 Wiki、飞书妙记转录、PDF、Word、Markdown、音视频转写和已有课程稿,生成可追溯的 materials.jsonl 与材料缺口报告。Use when the user says 盘点课程材料、读取课程素材、整理访谈文件、建立材料清单、检查哪些资料能用,或 Course Producer 进入 intake 阶段。
SKILL.md
4.4 KB, ~1.3k tokens by cl100k_base, as published. Nobody here has run it
课程材料摄取
只建立材料证据索引与可读性缺口,不在本阶段确定课程定位、课纲或正文。
输入与工具路由
读取用户给出的项目目录、文件和 URL。优先复用已安装工具:
- PDF、DOCX、表格、音视频分别调用对应文件 Skill;不要自建通用解析器。
- 飞书 Wiki 先解析真实对象,再用
lark-doc/lark-drive读取。 - 飞书妙记用
lark-minutes获取 transcript;摘要和关键词只用于导航。 - 无法读取的来源保留原路径或 URL,状态写为
blocked,记录真实错误,不猜内容。
执行流程
- 确认课程项目已经用
tools/course-project.mjs init初始化;未初始化则先初始化。 - 递归盘点用户明确放入范围的文件,排除
.course-producer/、版本库、缓存和构建产物。 - 为每个来源生成稳定
source_id,计算本地文件 SHA-256;远程对象优先记录对象 token、版本或更新时间,无法取得时记录fingerprint: null。 - 识别同一材料的版本与派生关系。只有文件内容、更新时间、明确版本声明或用户决定能证明权威性;不能因为文件名含“最终版”就自动设为当前版本。为每组相关材料记录
source_group、version_relation与authority_status,证据不足时使用candidate或conflict。 - 读取可读正文并分类,分类只能是:
execution_instruction:给 Agent 的执行约束,不进入学员正文;course_material:观点、方法、案例、数据、故事、原话和教学决策;meeting_chatter:问候、排期、掉线和无关闲聊;unreadable:缺权限、损坏、格式不支持或内容缺失。
- 判断每个来源可用于定位、访谈、知识萃取、课纲、逐字稿、审校或海报中的哪些阶段。
- 把一行一个 JSON 对象追加或幂等更新到
.course-producer/materials.jsonl。同一source_id + fingerprint不重复写入。 - 在
.course-producer/artifacts/material-gap-report.md汇总可用材料、版本冲突、重复、不可读项和后续阶段真正缺少的证据;单独列出每组材料的当前权威候选与判定依据。 - 用状态工具把 intake 标记完成,登记
materials.jsonl与缺口报告、输入指纹和验证结果。
materials.jsonl 契约
每条记录至少包含:
{"source_id":"src-001","source_group":"expert-interview-01","source_type":"minutes_transcript","location":"https://...","title":"专家访谈","fingerprint":"sha256:...","status":"ready","classification":"course_material","version_relation":"canonical","authority_status":"confirmed","purposes":["knowledge_extraction","lesson_writing"],"evidence_locator":"00:12:40-00:18:05","notes":null}
status:ready、partial、blocked、ignored。source_type:写真实类型,如local_markdown、pdf、docx、audio、minutes_transcript、lark_doc。version_relation:canonical、supersedes、superseded_by、parallel、duplicate、unknown。authority_status:confirmed、candidate、conflict、not_applicable;只有证据充分时使用confirmed。evidence_locator:页码、段落标题、时间戳或 block id;暂时未知可为null,后续抽取时补齐。- 记录错误时使用
error.code和error.message,不要记录凭据。
完成检查
- 所有用户指定来源都已登记,数量能与原始输入对上。
- 每条记录都有来源、类型、位置、状态、分类和用途。
- transcript 与摘要没有混用;执行指令和会议闲聊没有进入课程素材。
- 不可读项全部进入缺口报告,错误可复现。
- 同组多版本材料的权威关系有证据;未解决冲突不会被文件名或修改时间静默覆盖。
materials.jsonl每行都是合法 JSON,且没有重复的source_id + fingerprint。
完成后只交付材料索引与缺口报告,把下一阶段交给 course-positioning。
What ships with it: 1 file
282 B alongside SKILL.md
agents/
- openai.yaml282 B