SuperAPI AI 工具集

analyze-risks

安全与审计

查看项目

更新于 10-17 16:20

技能介绍

analyze-risks 是一个面向 ISO 14971 风险分析的访谈式技能,归属 jan-jan/guardrails 技能集,发布页为 https://www.skills.sh/jan-jan/guardrails/analyze-risks。

【用途】 该技能用于在变更工作区(change worktree)中对某项待分析能力执行结构化的风险管理分析:识别危险、危险情况与伤害,依据可接受性矩阵评估风险,并在风险不可接受时制定风险控制措施。分析过程中需同步更新配置中指定的风险管理文档(doc_rmf)。

【主要能力】

  1. 按 ISO 14971 链条逐项分析:危险 → 危险情况 → 伤害,并要求使用者明确每种情况起止范围。
  2. 内置探查维度:错误输出或剂量、报警缺失、数据过期、共享状态竞态、操作中途断电、可预见误用、SOUP 降级行为。
  3. 严重度(S1 可忽略、S2 非严重伤害、S3 严重伤害或死亡)与概率(P1 不太可能、P2 偶发、P3 频繁)分级。
  4. 安全等级校验:一旦给出严重度即校验项目 IEC 62304 等级(配置中的 safety_class);若伤害超出当前等级假设(如 Class B 项目出现 S3),须停止并报告,先变更分级并重跑 safety-class 访谈、记录 ADR。
  5. 风险控制按 ISO 14971 优先顺序选择:固有安全设计 → 防护措施(报警、联锁)→ 安全信息(标签);每个控制须追问“该控制会破坏什么”并分析其引入的新危险。
  6. 剩余风险评估:在控制生效后重新估计严重度与概率并记录可接受性。
  7. 控制移交:软件类控制移交 grill-requirements 转为含 (implements: RC-…) 的可测试需求;代码库外的控制(硬件联锁、标签)在 RMF 中注明实现位置。
  8. 衍生需求评估:对 grill-requirements 与 design-architecture 送来的 satisfies: derived: 的 REQ/LLR 逐项评估是否引入新危险、影响既有危险情况或改变控制有效性,并在 RMF 中以独立 assesses: 行声明覆盖项。

【使用方式】 技能开始时需声明“Using the analyze-risks skill for ISO 14971 risk analysis.”。访谈中一次只问一个问题并附推荐答案。条目使用脚本工具管理:用 .guardrails/scripts/find-items.sh list 查找 HAZ 与 RC,show 读取条目,refs 查找引用;用 new-id.sh HAZ 或 RC 生成编号,禁止手写编号。新条目写入 docs/risk/<YYYY-MM-DD>-<slug>.md,修改既有条目应改其定义所在日期文件。条目须符合 check-trace.sh 可解析的语法,例如 HAZ 条目描述危险、危险情况、伤害并标注严重度与概率,RC 条目描述控制并标注其缓解的 HAZ。条目改写或替换时使用 superseded-by 与 supersedes 互相引用,不得删除。

【适用场景】 适用于医疗器械软件团队在变更集成过程中维护风险管理文件、建立危险与控制的可追溯关系、检查是否存在未缓解危险、未实现控制或未分析的衍生需求;也适用于需要在编码前把安全设计决策与需求关联起来的受监管开发流程。

【完成条件与限制】 完成标准:每个已分析危险均有控制与剩余风险陈述或可接受性理由;每个软件 RC 均已转为 REQ;每个送来的衍生条目均在 assesses: 行中列名;check-trace.sh 对涉及条目不再报告 UNMITIGATED-HAZARD、UNIMPLEMENTED-CONTROL 或 UNANALYZED-DERIVED。限制包括:依赖 guardrails 配置与脚本环境;等级不符时须中断流程而非仅记录;标签不能作为首选控制手段;仅有表格或句中出现 ID 不视为已评估。该技能的具体收费、平台与额外效果信息暂未提供。