agentsclimarketplace

Course material intake

Skill Ivor-NCUT/course-producer/skills/course-material-intake

课程材料盘点与证据化摄取。扫描本地课程目录、飞书文档或 Wiki、飞书妙记转录、PDF、Word、Markdown、音视频转写和已有课程稿,生成可追溯的 materials.jsonl 与材料缺口报告。Use when the user says 盘点课程材料、读取课程素材、整理访谈文件、建立材料清单、检查哪些资料能用,或 Course Producer 进入 intake 阶段。From its SKILL.md

Install
npx -y skills add Ivor-NCUT/course-producer --skill course-material-intake

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 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.

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,记录真实错误,不猜内容。

执行流程

  1. 确认课程项目已经用 tools/course-project.mjs init 初始化;未初始化则先初始化。
  2. 递归盘点用户明确放入范围的文件,排除 .course-producer/、版本库、缓存和构建产物。
  3. 为每个来源生成稳定 source_id,计算本地文件 SHA-256;远程对象优先记录对象 token、版本或更新时间,无法取得时记录 fingerprint: null
  4. 识别同一材料的版本与派生关系。只有文件内容、更新时间、明确版本声明或用户决定能证明权威性;不能因为文件名含“最终版”就自动设为当前版本。为每组相关材料记录 source_groupversion_relationauthority_status,证据不足时使用 candidateconflict
  5. 读取可读正文并分类,分类只能是:
    • execution_instruction:给 Agent 的执行约束,不进入学员正文;
    • course_material:观点、方法、案例、数据、故事、原话和教学决策;
    • meeting_chatter:问候、排期、掉线和无关闲聊;
    • unreadable:缺权限、损坏、格式不支持或内容缺失。
  6. 判断每个来源可用于定位、访谈、知识萃取、课纲、逐字稿、审校或海报中的哪些阶段。
  7. 把一行一个 JSON 对象追加或幂等更新到 .course-producer/materials.jsonl。同一 source_id + fingerprint 不重复写入。
  8. .course-producer/artifacts/material-gap-report.md 汇总可用材料、版本冲突、重复、不可读项和后续阶段真正缺少的证据;单独列出每组材料的当前权威候选与判定依据。
  9. 用状态工具把 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}
  • statusreadypartialblockedignored
  • source_type:写真实类型,如 local_markdownpdfdocxaudiominutes_transcriptlark_doc
  • version_relationcanonicalsupersedessuperseded_byparallelduplicateunknown
  • authority_statusconfirmedcandidateconflictnot_applicable;只有证据充分时使用 confirmed
  • evidence_locator:页码、段落标题、时间戳或 block id;暂时未知可为 null,后续抽取时补齐。
  • 记录错误时使用 error.codeerror.message,不要记录凭据。

完成检查

  • 所有用户指定来源都已登记,数量能与原始输入对上。
  • 每条记录都有来源、类型、位置、状态、分类和用途。
  • transcript 与摘要没有混用;执行指令和会议闲聊没有进入课程素材。
  • 不可读项全部进入缺口报告,错误可复现。
  • 同组多版本材料的权威关系有证据;未解决冲突不会被文件名或修改时间静默覆盖。
  • materials.jsonl 每行都是合法 JSON,且没有重复的 source_id + fingerprint

完成后只交付材料索引与缺口报告,把下一阶段交给 course-positioning

What ships with it: 1 file

282 B alongside SKILL.md

agents/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.