{
  "author": "陈鹏旭",
  "date": "2026-10-14",
  "kind": "conditional-software-model",
  "modelChecksPassed": 20,
  "browserChecksPassed": 15,
  "assumptions": {
    "fullChargeWh": 64.78,
    "socPct": 25,
    "externalWh": 170,
    "averageW": 25,
    "outputW": 100,
    "requiredW": 95,
    "reservePct": 10,
    "saveMinutes": 3,
    "protectionW": 15,
    "safetyFactor": 1.5,
    "marginWh": 0.25,
    "stableReadings": 0,
    "stableSamples": 0,
    "telemetryKnown": true,
    "hasInternalBattery": true
  },
  "scenarios": [
    {
      "scenarioId": "external-disconnect",
      "title": "外接线意外拔掉",
      "description": "底座能源仍在，电脑无法通过断开的线缆取得它。",
      "layer": "供电连续性",
      "phase": "buffering",
      "phaseLabel": "内置电池提供模型缓冲",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": false,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "内置电池只能在本模型假设下提供缓冲；真实切换连续性和性能需要设备测试。",
      "actions": [
        "提示外接供电不可用；外接标称容量此时不计入可用能源。",
        "检查内置电池和电量读数，再提示保存到可用的本地位置。",
        "暂停启动新重任务的建议需用户确认；本模型不会调频或控制应用。",
        "重新连接后核对供电能力、文件和环境，再由用户决定续跑。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "外接线意外拔掉",
          "detail": "底座能源仍在，电脑无法通过断开的线缆取得它。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "buffer",
          "title": "内置电池提供模型缓冲",
          "detail": "内置电池只能在本模型假设下提供缓冲；真实切换连续性和性能需要设备测试。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "external-empty",
      "title": "底座能源耗尽",
      "description": "外接能源归零，检查内置电池是否还有保护窗口。",
      "layer": "供电连续性",
      "phase": "buffering",
      "phaseLabel": "内置电池提供模型缓冲",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 0,
      "externalAvailable": false,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "内置电池只能在本模型假设下提供缓冲；真实切换连续性和性能需要设备测试。",
      "actions": [
        "提示外接供电不可用；外接标称容量此时不计入可用能源。",
        "检查内置电池和电量读数，再提示保存到可用的本地位置。",
        "暂停启动新重任务的建议需用户确认；本模型不会调频或控制应用。",
        "重新连接后核对供电能力、文件和环境，再由用户决定续跑。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "底座能源耗尽",
          "detail": "外接能源归零，检查内置电池是否还有保护窗口。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "buffer",
          "title": "内置电池提供模型缓冲",
          "detail": "内置电池只能在本模型假设下提供缓冲；真实切换连续性和性能需要设备测试。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "dual-low",
      "title": "双能源告急",
      "description": "外接不可用，内置电池至多剩1%；保存也可能来不及。",
      "layer": "能量预算",
      "phase": "emergency",
      "phaseLabel": "电量告急，保存可能来不及",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 1,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 0.6478,
      "externalWh": 0,
      "externalAvailable": false,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 2.5912,
      "safeWorkMinutes": 0,
      "telemetryKnown": true,
      "energyAllowsSave": false,
      "canAttemptSave": false,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "至多1%的内置电量不自动构成三分钟保存窗口；突发关机可能早于保存结束。",
      "actions": [
        "优先提示立即保存当前工作，避免继续启动高耗能任务。",
        "如果剩余电量不覆盖保存耗能含余量，明确显示“不能承诺保存完成”。",
        "保留此前有效版本；在供电恢复后校验，未保存修改可能丢失。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "双能源告急",
          "detail": "外接不可用，内置电池至多剩1%；保存也可能来不及。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "emergency",
          "title": "电量告急，保存可能来不及",
          "detail": "当前输入不足以覆盖保存预算，不能显示保存成功。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件未确认成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [
        "save-energy-condition-not-met"
      ],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "underpowered",
      "title": "外接功率不足",
      "description": "假设工作要求95W，外接只有65W；不承诺原有性能。",
      "layer": "性能供电",
      "phase": "power-insufficient",
      "phaseLabel": "要求的性能供电条件未满足",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 65,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": false,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "不能用平均功耗或大容量代替功率、协议和电脑兼容性验证。",
      "actions": [
        "将“电量够用”和“供电功率足够”分开显示。",
        "提示外接65W低于假设95W要求；不保证内置电池补差，也不保证持续原性能。",
        "由用户选择兼容且足够功率的供电方案，或接受重新设定工作要求。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "外接功率不足",
          "detail": "假设工作要求95W，外接只有65W；不承诺原有性能。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "power-blocked",
          "title": "要求的性能供电条件未满足",
          "detail": "不能用平均功耗或大容量代替功率、协议和电脑兼容性验证。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "stale-telemetry",
      "title": "电量读数失效",
      "description": "无法知道剩余电量时，取消确定的续航与保存窗口估计。",
      "layer": "观测与决策",
      "phase": "observation-lost",
      "phaseLabel": "电量未知，暂不估计保护时长",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": false,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": null,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": null,
      "safeWorkMinutes": null,
      "telemetryKnown": false,
      "energyAllowsSave": false,
      "canAttemptSave": false,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": false,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "旧读数不能证明电池当前剩余能量；本模型也无法据此宣布安全续跑。",
      "actions": [
        "提示读数过期或不可用，并移除确定的剩余分钟数。",
        "建议尽快保存当前工作，但不宣称有足够保存窗口。",
        "取得新读数并核对供电后，再重新计算能源预算。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "电量读数失效",
          "detail": "无法知道剩余电量时，取消确定的续航与保存窗口估计。"
        },
        {
          "state": "unknown",
          "title": "读数不足，停止确定性估计",
          "detail": "不显示确定续航，不把旧电量当作当前电量。"
        },
        {
          "state": "hold",
          "title": "电量未知，暂不估计保护时长",
          "detail": "旧读数不能证明电池当前剩余能量；本模型也无法据此宣布安全续跑。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件未确认成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "bms-cutoff",
      "title": "底座硬件保护断开",
      "description": "仅建模能源模块已断开；不触发真实热故障或短路。",
      "layer": "硬件安全边界",
      "phase": "module-isolated",
      "phaseLabel": "底座保护断开，保持隔离",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": false,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": false,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "硬件保护与工作保护是两个层次；断开故障模块后是否连续供电仍需硬件验证。",
      "actions": [
        "保持底座模块已断开的状态；软件不得越过硬件保护。",
        "在内置电池可用且读数可信的前提下，提示保存工作。",
        "原因和复位条件交由合格硬件方案处理，本演示不触发热故障或短路。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "底座硬件保护断开",
          "detail": "仅建模能源模块已断开；不触发真实热故障或短路。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "isolate",
          "title": "底座保护断开，保持隔离",
          "detail": "硬件保护与工作保护是两个层次；断开故障模块后是否连续供电仍需硬件验证。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "flapping",
      "title": "线缆反复断连",
      "description": "累计三次一致的稳定读数前，不自动恢复工作任务。",
      "layer": "恢复条件",
      "phase": "awaiting-stability",
      "phaseLabel": "等待三次一致的稳定读数",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "三次读数是此原型的演示门槛，真实时间间隔和去抖策略尚未经过设备验证。",
      "actions": [
        "反复断连期间保持保护提示，避免每次连上都立刻自动续跑。",
        "要求至少三次一致的稳定读数，并检查所需功率。",
        "条件满足只允许提出恢复建议；用户核对保存版本和环境后决定。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "线缆反复断连",
          "detail": "累计三次一致的稳定读数前，不自动恢复工作任务。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "stability",
          "title": "等待三次一致的稳定读数",
          "detail": "当前稳定读数次数：0；功率条件在模型中满足；恢复环境仍待用户确认。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "peripheral-loss",
      "title": "底座SSD路径丢失",
      "description": "电脑仍有电不代表外接盘还可写入或原文件已安全。",
      "layer": "数据可达性",
      "phase": "storage-unavailable",
      "phaseLabel": "原保存路径不可用",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": false,
      "storageAvailable": false,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "内置电池保护电脑供电，不会让断开的外接SSD继续可访问。",
      "actions": [
        "提示外接SSD路径失效，禁止把电脑仍供电解释为文件已安全。",
        "提示改存至电脑本地可用位置，并核验写入结果。",
        "外接盘重新连接后核对文件版本，避免覆盖较新内容。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "底座SSD路径丢失",
          "detail": "电脑仍有电不代表外接盘还可写入或原文件已安全。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "storage-blocked",
          "title": "原保存路径不可用",
          "detail": "内置电池保护电脑供电，不会让断开的外接SSD继续可访问。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用不可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [
        "original-save-destination-unavailable"
      ],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "save-failure",
      "title": "保存写入失败",
      "description": "新版本写入失败时，保留此前校验有效的版本。",
      "layer": "写入完整性",
      "phase": "save-failed",
      "phaseLabel": "新版本未写入，保留旧有效版本",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": false,
      "storageAvailable": false,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "有电和有保存预算均不能证明存储写入成功。",
      "actions": [
        "明确提示本次保存失败，不能更新“已保存”标志。",
        "保持此前校验有效的检查点，不先删除旧版本。",
        "检查可用容量、权限和保存位置；成功写入并校验后才能宣布保存成功。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "保存写入失败",
          "detail": "新版本写入失败时，保留此前校验有效的版本。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "write-failed",
          "title": "新版本未写入，保留旧有效版本",
          "detail": "有电和有保存预算均不能证明存储写入成功。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用不可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [
        "original-save-destination-unavailable"
      ],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "checkpoint-corrupt",
      "title": "检查点内容损坏",
      "description": "校验失败的版本不能恢复；寻找较早的有效版本。",
      "layer": "恢复完整性",
      "phase": "checkpoint-validation",
      "phaseLabel": "拒绝损坏版本，寻找有效回退",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "FNV校验只能发现意外改变，不能证明文件未被恶意篡改或已经掉电持久。",
      "actions": [
        "读取时核对检查点格式和完整性校验，拒绝损坏版本。",
        "在两个版本中选择较新的有效版本；若两版均无效，明确报告无法恢复。",
        "显示回退版本与可能丢失的未保存修改，用户确认后再编辑。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "检查点内容损坏",
          "detail": "校验失败的版本不能恢复；寻找较早的有效版本。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "validate",
          "title": "拒绝损坏版本，寻找有效回退",
          "detail": "FNV校验只能发现意外改变，不能证明文件未被恶意篡改或已经掉电持久。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "app-crash",
      "title": "应用模型中断",
      "description": "内存中尚未保存的修改不可凭空恢复。",
      "layer": "应用恢复",
      "phase": "application-interrupted",
      "phaseLabel": "应用模型中断，只恢复有效已保存版本",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": false,
      "storageAvailable": true,
      "appAssumedAlive": false,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "检查点保护范围取决于应用支持；本网页草稿实验不能证明编辑器、剪辑软件或本地AI都已接入。",
      "actions": [
        "重新打开后读取有效检查点；内存里未保存的内容不能凭空重建。",
        "展示恢复内容和版本，不直接把任务进度标成完成。",
        "用户确认工作环境后再继续；本模型不会重启真实应用。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "应用模型中断",
          "detail": "内存中尚未保存的修改不可凭空恢复。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "recover",
          "title": "应用模型中断，只恢复有效已保存版本",
          "detail": "检查点保护范围取决于应用支持；本网页草稿实验不能证明编辑器、剪辑软件或本地AI都已接入。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用不可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [
        "volatile-content-unavailable"
      ],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    },
    {
      "scenarioId": "environment-change",
      "title": "恢复环境改变",
      "description": "路径、项目或依赖环境改变时，先核对再决定是否续跑。",
      "layer": "恢复条件",
      "phase": "environment-changed",
      "phaseLabel": "环境改变，禁止盲目续跑",
      "inputs": {
        "fullChargeWh": 64.78,
        "socPct": 25,
        "externalWh": 170,
        "averageW": 25,
        "outputW": 100,
        "requiredW": 95,
        "reservePct": 10,
        "saveMinutes": 3,
        "protectionW": 15,
        "safetyFactor": 1.5,
        "marginWh": 0.25,
        "stableReadings": 0,
        "telemetryKnown": true,
        "hasInternalBattery": true,
        "warnings": [],
        "stableSamples": 0,
        "environmentConfirmed": false
      },
      "internalWh": 16.195,
      "externalWh": 170,
      "externalAvailable": true,
      "saveEnergyWh": 0.75,
      "saveEnergyWithMarginWh": 1.375,
      "saveBudgetWh": 6.478,
      "reserveWh": 6.478,
      "bufferMinutes": 64.78,
      "safeWorkMinutes": 23.320800000000002,
      "telemetryKnown": true,
      "energyAllowsSave": true,
      "canAttemptSave": true,
      "storageAvailable": true,
      "appAssumedAlive": true,
      "powerAssumedUsable": true,
      "powerMeetsRequestedW": true,
      "taskResumeAllowed": false,
      "performanceGuaranteed": false,
      "hardwareValidated": false,
      "risk": "能恢复文字不等于代码、视频工程或AI任务可以在不同环境直接续跑。",
      "actions": [
        "比较恢复版本的环境标识与当前环境。",
        "提示用户核对项目路径、输入文件和依赖，避免在错误环境继续执行。",
        "环境核对完成前仅允许查看恢复内容，不自动运行任务。"
      ],
      "trace": [
        {
          "state": "detect",
          "title": "恢复环境改变",
          "detail": "路径、项目或依赖环境改变时，先核对再决定是否续跑。"
        },
        {
          "state": "budget",
          "title": "计算内置保护预算",
          "detail": "剩余内置电量与保存耗能含余量分别比较；固定预留百分比不能保证保存完成。"
        },
        {
          "state": "environment-check",
          "title": "环境改变，禁止盲目续跑",
          "detail": "能恢复文字不等于代码、视频工程或AI任务可以在不同环境直接续跑。"
        },
        {
          "state": "decision",
          "title": "保护与恢复保持分开",
          "detail": "保存能量条件成立，当前路径与应用在模型中可用；这不代表写入已成功或硬件已验证。"
        }
      ],
      "warnings": [],
      "hardwareLimit": "全部故障供电行为是条件模型；真实供电切换、峰值功率、协议兼容、硬件保护和掉电持久性均未验证。"
    }
  ],
  "limitations": [
    "所有电源故障均为模型",
    "未验证硬件切换和掉电持久性",
    "网页只保存本页草稿"
  ]
}
