# 组件配置审校清单
# 用于节点6：对生成的组件配置进行多维度校验

checks:
  # === 基础信息 ===
  - id: "ID_FORMAT"
    name: "ID格式"
    rule: "格式为 [2位季度][2位单元][3位自增]，如020501。同组件类型下ID不重复，序号连续。"
    severity: critical
    auto_check: true

  - id: "TASK_TITLE"
    name: "任务标题"
    rule: "10字以内，无序号（含-连接/（一）等），无多余标点。直接填写清晰简洁的任务描述。"
    severity: critical
    auto_check: false

  - id: "COMPONENT_TYPE"
    name: "组件类型匹配"
    rule: "componentType/cType 与列A的「类型」值一致。核心互动必须匹配core_xxx_xxx格式，中互动匹配dialogue_xxx格式。"
    severity: critical
    auto_check: true

  # === 字段完整性 ===
  - id: "FIELD_COMPLETENESS"
    name: "必填字段完整性"
    rule: |
      核心互动必填：ID, dataStatus, kpInfo, taskData(taskInfo), jsonData(questionData), 互动描述, 关联知识点
      中互动必填：ID, dataStatus, kpInfo, taskData, jsonData, 互动描述
    severity: critical
    auto_check: true

  - id: "KPINFO_MATCH"
    name: "知识点匹配"
    rule: "kpInfo中的知识点(kpId/kpTitle)必须与文档的知识点参考表一致。知识点的kpType正确(vocab/pattern)。"
    severity: critical
    auto_check: false

  # === 互动内容 ===
  - id: "OPTION_FORMAT"
    name: "选项格式"
    rule: |
      对话类互动：选项使用「选项1：XXX」「选项2：XXX」格式
      图片类互动：选项仅保留00/01/02编号，无文字
      所有选项单词统一小写开头（除非是专有名词）
    severity: high
    auto_check: true

  - id: "HIGHLIGHT_RULE"
    name: "高亮规则"
    rule: |
      对话类互动：不需要$符号
      图片类互动：仅知识点单词前后加$符号高亮，非知识点单词不加
      例：Close the $window$.（window为知识点）
    severity: high
    auto_check: true

  - id: "BLANK_FORMAT"
    name: "挖空格式"
    rule: "挖空统一使用3个英文下划线___，前后各空一格（如 'It is ___.'）。"
    severity: high
    auto_check: true

  - id: "FEEDBACK_FORMAT"
    name: "反馈格式"
    rule: |
      正确反馈：统一填「无」
      错误反馈：必须是符合当前剧情场景的自然角色对话，带角色名
      禁止指令式/说教式表达（如"Try to pronounce clearly, one more time."）
    severity: high
    auto_check: false

  # === 上下文 ===
  - id: "CONTEXT_INTRO"
    name: "情境引入"
    rule: "无内容填「无」。多句时每行一句，格式为「角色名: 台词」。不得使用组件行之前的台词。"
    severity: medium
    auto_check: true

  - id: "POST_DIALOGUE"
    name: "后置对话"
    rule: "组件行之后紧接的角色台词需放入后置对话。无内容填「无」。"
    severity: medium
    auto_check: false

  - id: "RESOURCE_CONFIG"
    name: "资源配置"
    rule: |
      图片时机：无教研图填「图片时机：无」，有图填出现阶段
      音频载体：无特殊要求填「无」
      需图片资源时，图片命名格式：组件ID.png
    severity: medium
    auto_check: true

  # === 难度适配 ===
  - id: "DIFFICULTY_CHECK"
    name: "难度等级适配"
    rule: |
      词库限制：L1仅用L1词库，L2可用L1+L2词库
      句型限制：句型必须在对应级别句型库范围内
      句长限制：核心知识点句≤7词，通用句≤10词
    severity: high
    auto_check: true

  - id: "VOCAB_CHECK"
    name: "超纲词检查"
    rule: "所有词汇在对应级别词库范围内，L1级禁止使用L2词汇。超纲词需标记并替换为大纲内词。"
    severity: high
    auto_check: true

  - id: "PATTERN_CHECK"
    name: "超纲句型检查"
    rule: "所有句型在对应级别句型库范围内。出现超纲句型需标记。"
    severity: high
    auto_check: true

  # === 格式规范 ===
  - id: "PUNCTUATION"
    name: "标点符号"
    rule: "统一使用标准英文标点符号。禁止使用「～」「!!!」「。。。 」等非标准标点。"
    severity: low
    auto_check: true

  - id: "DISABLED_CONTENT"
    name: "禁用内容"
    rule: |
      - 完全删除所有【图片资源】行
      - 音频载体无特殊要求时填「无」
      - 禁止在组件中使用教学指令式语言
    severity: medium
    auto_check: true

# === 审校报告格式 ===
report_format:
  sections:
    - "表格概况（行数/列数/组件行数/组件类型分布）"
    - "🔴 必须修改（critical级问题，按行号列出）"
    - "🟡 建议关注（high/medium级问题）"
    - "⚠️ 缺失项（需要的组件但未生成）"
    - "✅ 整体评价（覆盖率/通过率/建议）"
