{
  "meta": {
    "total": 13,
    "source": "tasks/00-总体方案.md 第四节；文案规则见 handoff/15-screen-copy.md 第二节",
    "copy_rules": [
      "标题是任务名词短语，不超过 8 个字",
      "引导语一句话，对学生说，说明这一步做什么、助教做什么不做什么",
      "按钮是动词短语，每屏只有一个主按钮",
      "页面不自评，不出现被禁用的自评词",
      "数字出现即带口径角标"
    ],
    "integration": "第二波 T6 集成：viz 与 viz_alt 写的是这一步真正装进去的组件名（见 app/js/core/viz-registry.js）；hook_in 是上一段完成卡留下的问题，显示在这一段第一屏的标题下面。"
  },
  "segments": [
    {
      "id": "task",
      "name": "任务",
      "steps": [
        1,
        2
      ]
    },
    {
      "id": "analyze",
      "name": "分析",
      "steps": [
        3,
        4,
        5
      ]
    },
    {
      "id": "design",
      "name": "设计",
      "steps": [
        6,
        7,
        8
      ]
    },
    {
      "id": "verify",
      "name": "验证",
      "steps": [
        9,
        10,
        11
      ]
    },
    {
      "id": "result",
      "name": "成果",
      "steps": [
        12,
        13
      ]
    }
  ],
  "steps": [
    {
      "n": 1,
      "seg": "task",
      "title": "任务书",
      "lead": "读右边的任务书，点开一张现场难题卡，再接受任务。",
      "no_ai_note": "这一步没有助教；看不懂就点右上角的「了解更多」。",
      "primary": "接受任务",
      "primary_kind": "primary",
      "template": "select",
      "visual": "四张难题卡",
      "viz": null,
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": null,
      "assistant_opening": null,
      "evidence": "四张难题卡的阅读记录与你选中的第一个入手难题",
      "more": "四个难题分别来自北斗定位终端、中继无人机、单兵电台与前沿雷达。它们合起来覆盖本课程的核心章节：LC 谐振与阻抗匹配、调幅与包络检波，以及作为次要练习的三点式振荡器与丙类功放。要把四个场景收到这些章节上，全站统一按同一条教学链路讨论：10.7 MHz 中频、240 kHz 通频带、包络检波。这条链路是简化过的——真实北斗终端的信号带宽约 4 MHz，解调也不用包络检波；这里的频率与带宽只代表课程里这条教学链路，不代表某一台真实终端。"
    },
    {
      "n": 2,
      "seg": "task",
      "title": "技术指标",
      "lead": "把四个难题里的要求，写成一张你自己的技术指标表；助教只追问，不代写。",
      "primary": "确定并请助教评价",
      "primary_kind": "confirm",
      "template": "quad",
      "visual": "指标表",
      "viz": null,
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": "AI 助教 · 技术指标",
      "assistant_opening": "我不会往你的表里写字。点「引导」，我把要想清楚的四点列给你，再追问你一句；写完点「确定」，我再逐条看。",
      "evidence": "你写的设计要求与技术指标表，以及助教对这一稿的逐条追问",
      "more": "先说任务书里最挡路的那句：「中频通道邻道抑制不低于 60 dB（整机；单级选频回路按 35 dB 计）」写的是两个数，不是一个数——60 dB 是整台接收机最后要做到的，35 dB 是你这一级选频回路要做到的，多级级联起来才凑出 60 dB。这一步你按哪个写都行，写 35 dB 就在后面注明「单级」，写 60 dB 就注明「整机」，第 8 步那六条约束用的是单级 35 dB 这一档。任务书里的「要求」还不是技术指标：指标要有量、有单位、有测量条件。比如「邻道抑制不低于 60 dB」缺了「在多大频偏处」，「恢复连续定位」缺了可测量的量。一处口径先说清：本任务书里的「邻道」指峡谷里那部与本机频差 1 MHz 的强邻频电台，不是体制规定的信道间隔；「邻道抑制」就是对这部电台的抑制量，所以写这一条时要把「@ 频偏 1 MHz」一起写上。",
      "completion": {
        "seg_name": "任务",
        "happened": "你读完了任务书，把四个难题里的要求写成了一张自己的技术指标表。",
        "evidence": "设计要求若干条、技术指标表若干行，以及与助教的全部对话。",
        "hook": "指标定下来了。可是同一个谐振回路，实验台上的曲线和理论算出来的对不上——先去看现象。"
      }
    },
    {
      "n": 3,
      "seg": "analyze",
      "title": "现场现象",
      "lead": "同一个谐振回路，理论与实测对不上；写下三种可能，再锁定最有把握的一条作为初判。",
      "primary": "锁定初判",
      "primary_kind": "confirm",
      "template": "chart",
      "visual": "双曲线（蓝理论、金实测）",
      "viz": "dual-curve",
      "problems": [
        "p1"
      ],
      "assistant_title": "AI 助教 · 现场现象",
      "assistant_opening": "这一步我不给提示。你先把三条可能写完，我们再谈。",
      "evidence": "三条初判、你最有把握的一条，以及你给出的信心",
      "more": "图上蓝线是理论计算，金线是按探头加载模型算出的实测样例，与第 9 步仿真同一组参数。这条回路取自难题一的中频选频通道：L = 10 μH、C = 22 pF、线圈损耗 6.74 Ω，与第 9 步预置电路 C1 同一组参数，算出来理论谐振点 10.730 MHz、有载 Q 37.5、通频带 286 kHz、回路电压峰值 1.265 V。金线是同一只回路在实验台上量到的那一版：谐振点 4.381 MHz、峰值 0.436 V。两条线差多少，写在图下方的读数行里；数据口径写在图下方的说明行——本轮没有实验台的原始记录，金线是按那次测量的等效元件值复现的，不是原始数据。",
      "hook_in": "指标定下来了。可是同一个谐振回路，实验台上的曲线和理论算出来的对不上——先去看现象。"
    },
    {
      "n": 4,
      "seg": "analyze",
      "title": "找原因",
      "lead": "原因要覆盖器件、负载、测量、布局、信号五类，每一支写出能和别的支区分开的判据，五支齐了才能生成证据计划。",
      "primary": "生成证据计划",
      "primary_kind": "confirm",
      "template": "sandbox",
      "visual": "原因树画布",
      "viz": null,
      "problems": [
        "p1",
        "p2"
      ],
      "assistant_title": "AI 助教 · 找原因",
      "assistant_opening": "我不告诉你是哪一支。每加一支，我只问一句：你打算用什么数据，把它和别的支区分开？",
      "evidence": "五类原因分支及各自的判据，以及由判据生成的证据计划",
      "more": "判据不是「我觉得是器件不准」，而是「换一种接法后如果读数回到理论值，就说明是这一支」。判据要写成可以照着做一遍的动作加一个能判真假的结果。"
    },
    {
      "n": 5,
      "seg": "analyze",
      "title": "器件与链路",
      "lead": "在整机收发链路电平图上找出四个难题各落在哪一级，再翻开这一级的关键器件。",
      "primary": "记录我的判断",
      "primary_kind": "confirm",
      "template": "chart",
      "visual": "链路电平图与器件三维模型",
      "viz": "link-level-diagram",
      "viz_alt": "parts3d",
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": "AI 助教 · 器件认知",
      "assistant_opening": "我按结构、参数、工程要点、常见故障四步讲，随时可以打断我。",
      "evidence": "四个难题在链路上的定位，以及你查看过的器件与提问",
      "more": "链路电平图上，蓝线是信号电平，金点是每一级的输出，红虚线是噪声底。每一级都对应教材里的一章：选频、变频、放大、检波。四个难题落在哪一级由你判断：左栏四个下拉都选完之后，图上才会把四个难题的徽标标出来给你对答案。一处口径：这张图只把增益与噪声系数逐级累计（噪声按弗里斯公式），选择性、通频带与群时延不在这张图上级联；图上的中频选频也只画了一级，别处文案里说的「两级级联」不在这张图上体现。",
      "completion": {
        "seg_name": "分析",
        "happened": "你写下了三条初判，搭出覆盖五类的原因树，并把四个难题定位到了收发链路的具体一级。",
        "evidence": "初判三条、原因树各支的判据、证据计划，以及链路定位记录。",
        "hook": "原因有了候选，也知道该动哪一级了。接下来要把它们变成具体的数值。"
      }
    },
    {
      "n": 6,
      "seg": "design",
      "title": "参数估算",
      "lead": "估算 Q 值、带宽、匹配网络的电感与电容、检波 RC，每一项写一句你为什么这么估。",
      "primary": "确定并请助教评价",
      "primary_kind": "confirm",
      "template": "dialog",
      "visual": "参数表单",
      "viz": "resonance-sweep",
      "problems": [
        "p1",
        "p2",
        "p3"
      ],
      "assistant_title": "AI 助教 · 参数估算",
      "assistant_opening": "我不替你算。我只问一句：这个 Q 值，你是按带宽定的，还是按邻道抑制定的？",
      "evidence": "参数估算表及每一项的理由，助教的评价记录",
      "more": "这一步的图跟着你正在估的那一项走：估 Q 值、带宽、匹配元件时看幅频曲线族，估检波 RC 时看调幅波与检波输出。曲线全部由浏览器里的解析公式现算：谐振与 Q 来自 LC 谐振公式，检波 RC 的界来自惰性失真条件。点数值右上角的角标可以看到用的是哪一条式子。",
      "hook_in": "原因有了候选，也知道该动哪一级了。接下来要把它们变成具体的数值。",
      "viz_alt": "detector-waveform"
    },
    {
      "n": 7,
      "seg": "design",
      "title": "指标—参数矩阵",
      "lead": "需求做行、设计特性做列，在交叉格里标出这一行要靠哪几列去实现。",
      "primary": "确定并请助教评价",
      "primary_kind": "confirm",
      "template": "matrix",
      "visual": "质量屋",
      "viz": "qfd-matrix",
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": "AI 助教 · 质量屋",
      "assistant_opening": "先认行列：一行是一条需求（你要达到什么），一列是一项设计特性（你能动手调什么），交叉格标的是这一行要靠这一列使多大劲。屋顶上每出现一个负相关，我都会问你打算怎么取舍。",
      "evidence": "关系强度矩阵、屋顶的耦合标记、由此排出的特性优先级",
      "more": "关系强度用三档：强、中、弱。屋顶上的正相关表示两项特性可以同向做好，负相关表示提高一项会压低另一项——Q 值与带宽就是典型的一对。"
    },
    {
      "n": 8,
      "seg": "design",
      "title": "扫描与边界",
      "lead": "拖动 Q 值与匹配网络参数看幅频、相频、带宽与驻波比怎么变，再把设计点挪进可行域。",
      "primary": "应用到设计点",
      "primary_kind": "primary",
      "template": "chart",
      "visual": "曲线族与约束边界",
      "viz": "constraint-boundary",
      "viz_alt": "matching-vswr",
      "problems": [
        "p1",
        "p2"
      ],
      "assistant_title": "AI 助教 · 约束分析",
      "assistant_opening": "设计点落在可行域外时，我会指出违反了哪一条，但不会替你挪。",
      "evidence": "扫描区间、最终设计点坐标，以及被违反过的约束记录",
      "more": "设计平面的横轴是回路有载品质因数 Q_L，纵轴是耦合因数 η = k·Q，六条虚线是六条约束的边界，薄荷青阴影是六条同时满足的可行域。先说总口径：六条线、图下六个读数、可行域与推荐点，全部是单级选频回路的取值，这一步不做任何级联折算。邻道抑制这条线用的是单级 35 dB，任务书写的整机 60 dB 要靠多级级联或陶瓷滤波器实现；这里的「邻道」指与本机频差 1 MHz 的那部强邻频电台，不是体制规定的信道间隔。群时延也是单级取值，两级级联后翻倍——但任务书没有给整机通道的时延门限，翻倍后的值在这里没有可比的限。通频带、中心凹陷、通道幅度一致性同样是单级取值：按别处文案里的「两级级联」实做时，这三条的整机值都要另算，本步不替你算。另一个页签是匹配网络的驻波比随频率。",
      "completion": {
        "seg_name": "设计",
        "happened": "你估出了关键参数，用质量屋排出了优先级，并在六条约束围出的设计平面上定下了自己的设计点。",
        "happened_tpl": {
          "feasible": "你估出了关键参数，用质量屋排出了优先级，并把设计点挪进了六条约束围出的可行域（六条全部满足）。",
          "partial": "你估出了关键参数，用质量屋排出了优先级，并在六条约束围出的设计平面上定下了自己的设计点（这一轮六条里满足 {ok} 条，还差 {names}）。"
        },
        "evidence": "参数估算表、质量屋矩阵与优先级、设计点坐标与约束核对记录。",
        "hook": "纸上的设计点你已经定了。放进电路里，它还站得住吗？",
        "hook_tpl": {
          "feasible": "纸上的设计点落在可行域里了。放进电路里，它还站得住吗？",
          "partial": "纸上的设计点你已经定了（六条里满足 {ok} 条，还差 {names}）。放进电路里，它还站得住吗？"
        }
      }
    },
    {
      "n": 9,
      "seg": "verify",
      "title": "电路仿真",
      "lead": "双击电路图上的元件改一个值，看示波器上的波形与下面的读数怎么变；换电路在仿真器标题栏右边的「预置电路」下拉里选，探头那一路是 C6、按你第 8 步设计点搭的那只双调谐回路是 C7。",
      "primary": "记录这次改动",
      "primary_kind": "confirm",
      "template": "sandbox",
      "visual": "电路仿真器",
      "viz": "circuitjs",
      "problems": [
        "p1",
        "p3"
      ],
      "assistant_title": "AI 助教 · 电路仿真",
      "assistant_opening": "我不替你调元件值。你说改了什么、看到什么，我陪你对照公式。",
      "evidence": "每次改动的元件值、改动前后的波形与仿真器示波器上的读数，以及设计点电路的读数",
      "more": "预置了七个电路：单调谐 LC 并联谐振回路、双调谐互感耦合回路、L 型阻抗匹配网络、二极管包络检波、简化丙类功率放大器、带示波器探头加载的选频回路，最后一个 C7 是按你在第 8 步定下的设计点（Q_L 与耦合因数 η）搭出来的双调谐中频回路——上一段留下的那句「放进电路里，它还站得住吗」，就在这里量。仿真器在本机自托管，断网也能打开；每个电路文件顶部写了取值依据与仿真器读数。",
      "hook_in": "纸上的设计点你已经定了。放进电路里，它还站得住吗？",
      "hook_in_tpl": {
        "feasible": "纸上的设计点落在可行域里了。放进电路里，它还站得住吗？",
        "partial": "纸上的设计点你已经定了（六条里满足 {ok} 条，还差 {names}）。放进电路里，它还站得住吗？"
      }
    },
    {
      "n": 10,
      "seg": "verify",
      "title": "实测验证",
      "lead": "依次补入探头输入电容与示波器输入电阻，再核对一次带宽，看仿真曲线怎样一步步和实测曲线合上。",
      "primary": "播放回填与核对",
      "primary_kind": "primary",
      "template": "chart",
      "visual": "曲线合上",
      "viz": "dual-curve",
      "viz_alt": null,
      "problems": [
        "p1",
        "p2"
      ],
      "assistant_title": "AI 助教 · 实测验证",
      "assistant_opening": "曲线合上不等于解释成立。我会问你：补进去的每一项，物理上对应什么？",
      "evidence": "每一步回填的参数、回填后两条曲线的偏差，以及你的解释",
      "more": "回填分两步：先补探头输入电容 110 pF（回路总电容 22 pF → 132 pF，谐振点从 10.730 MHz 掉到 4.381 MHz），再补示波器输入电阻 1 MΩ（有载 Q 从 32.0 压到 31.7、通频带从 137.1 kHz 放到 138.3 kHz）。每补一步，图下方的读数行会同步刷新仿真与实测各自的谐振点、有载 Q、3 dB 带宽，以及两者的偏差，全部按同一组元件值用谐振回路的公式现算。最后一档把两条线的 3 dB 带宽标在图上逐点核对。"
    },
    {
      "n": 11,
      "seg": "verify",
      "title": "AI 协同优化",
      "lead": "在左边写扫描函数，点「运行扫描」真跑一遍，再和对照方案比。",
      "primary": "运行扫描",
      "primary_kind": "primary",
      "template": "matrix",
      "visual": "曲线族与雷达图",
      "viz": "resonance-sweep",
      "viz_alt": "constraint-boundary",
      "problems": [
        "p1",
        "p4"
      ],
      "assistant_title": "AI 助教 · 代码评审",
      "assistant_opening": "我会引用你在第 8 步定的约束来看你的目标函数。分数更高，不代表那个方案能用。",
      "evidence": "你写的扫描函数、两套方案的对比结果，以及你的取舍理由",
      "more": "点「运行扫描」会把你写的这段代码送进浏览器的一条独立线程里真跑一遍：那条线程里备好了这门课的九组公式，以 rf 交到你手上，跑过 3 秒会被停掉，出错会把浏览器给出的错误原文原样显示，不美化也不伪造结果。曲线族里每一条的 Q 值，就是你的函数返回的那几组。另一个页签把「只看得分、不看约束」取到的对照方案放到第 8 步那张设计平面上：它的邻道抑制更高，却踩了好几条约束。判断权在你，取舍理由会进入成果报告。",
      "completion": {
        "seg_name": "验证",
        "happened": "你在仿真器里改了元件值，用回填让仿真曲线与实测曲线合上，并评审了另一套优化方案。",
        "evidence": "仿真改动记录、参数回填过程与偏差、扫描函数与你的取舍理由。",
        "hook": "验证做完了。回到开头那四个难题：现在各自解决到什么程度？"
      }
    },
    {
      "n": 12,
      "seg": "result",
      "title": "成效对照",
      "lead": "四张前后对照图逐一回应开头的四个难题；左栏切优化前后，难题四还能切极坐标与直角坐标。",
      "no_ai_note": "这一步没有助教；看不懂就点右上角的「了解更多」。",
      "primary": "四张对照都看过了",
      "primary_kind": "primary",
      "template": "chart",
      "visual": "四场景前后对照图",
      "viz": "scenario-compare",
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": null,
      "assistant_opening": null,
      "evidence": "四个场景的前后对照读数与依据等级",
      "more": "四张图分别是定位误差热图、图传覆盖热图、通信稳定分布图与相控阵方向图，算法来自本课程既有的原型，在浏览器里重算。每张图标两件事：依据等级（公式计算 / 仿真结果 / 教学示意 / 实验台实测）与模型依据（物理公式 / 简化模型 / 示意）。难题四的「优化后」用的是你在第 8 步定的设计点。一处口径：难题一「优化后」的说明里同时给了单级值与两级级联折到整机的值，热图本身算的是单级值；全站折算过的也只有邻道抑制这一项，通频带、群时延、中心凹陷与通道幅度一致性都还是第 8 步的单级取值，没有折算到整机。",
      "hook_in": "验证做完了。回到开头那四个难题：现在各自解决到什么程度？"
    },
    {
      "n": 13,
      "seg": "result",
      "title": "成果报告",
      "lead": "以下是你这一轮留下的全部证据；确认无误后生成可下载的成果报告。",
      "no_ai_note": "这一步没有助教；看不懂就点右上角的「了解更多」。",
      "primary": "生成成果报告",
      "primary_kind": "primary",
      "template": "cards",
      "visual": "报告",
      "viz": null,
      "problems": [
        "p1",
        "p2",
        "p3",
        "p4"
      ],
      "assistant_title": null,
      "assistant_opening": null,
      "evidence": "成果报告，含全部对话与输入记录",
      "more": "报告包含：任务书与你的技术指标表、原因树与证据计划、参数估算与质量屋、设计点与约束核对、仿真与回填记录、四张成效对照图，以及各步与助教的全部对话。",
      "completion": {
        "seg_name": "成果",
        "happened": "四张前后对照图逐一回应了开头的四个难题，成果报告已生成。",
        "evidence": "一份成果报告，含全部对话与输入记录。",
        "hook": "还没解决干净的那一条，下一轮带回实验台。"
      }
    }
  ]
}
