create_course
Create a new course from scratch for a fresh topic, with optional contract linking and planned lesson count to define completion.
Instructions
新建一个 course. 零材料启动新主题时用——不需要挂靠已有 course. 可选 contract_id: 建课即履约——有现役合约时应携带, 建课成功后新课 id 会自动并入该合约的 covered_course_ids(等价紧接着调一次 update_contract_coverage, 这里省一刀)。contract_id 必须现役 (经 lib/currentContract 判定路径)且属于同一 pair, 否则拒绝建课(不留孤儿关联)。建课时问学习者的第一问——"一共几节"——落 planned_lesson_count(可选, 正整数)。定了它, complete_contract/get_context 的结业判定会多一道门槛: 已发布节数须够这个数才算课程完成; 留空(null)则 goal_completion_ready 恒为 false, 结业永不放行, 且事后无补录入口。
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| topic | Yes | ||
| contract_id | No | 可选——现役合约 id, 建课成功后自动并入其 covered_course_ids. | |
| description | No | ||
| generated_from | No | SourceRef[] | |
| idempotency_key | No | 可选。幂等键 (建议 uuid) —— 同一 key 重放此调用返回首次结果, 不重复写入. 网络重试/断线重连时带上同一个 key, 而不是猜"上次到底写没写". | |
| syllabus_version | No | ||
| planned_lesson_count | No | 可选——这门课计划一共几节 (正整数)。建课时问学习者的第一问, 定了它会成为结业判定的节数门槛 (见 complete_contract)。留空则该课结业永不放行, 且事后无补录入口。 |