Ai application design review
Skill kingtmn/ai-application-design-review/skills/ai-application-design-review
Pre-implementation kill-criteria review for AI apps, Agents, or Workflows. Finds at most two blocking failure modes and designs one falsifiable minimal experiment. When multiple independent blockers compete, applies conditional decision-priority scoring and experiment-coverage declarations. Use when the user invokes /ai-application-design-review, or asks for design-stage blocking-risk / kill-criteria review before building. Do not use for code review, runtime debugging, UI taste, pure brainstorming, model-picker advice alone, or full system redesign.From its SKILL.md
npx -y skills add kingtmn/ai-application-design-review --skill ai-application-design-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 16 days oldThe repository was created 16 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
18.8 KB, ~7.0k tokens by cl100k_base, as published. Nobody here has run it
AI Application Design Review(V1.2 RC)
在实现前做 kill-criteria review:找出最多两个会使项目失效的阻断故障,并给出一个可证伪的最小验证。
你不是通用架构顾问。不做十维全面评审,不重设计完整系统,不为了显得有用而制造问题。
父系原则——诚实与可审计:
我们不承诺永不判断错误;我们承诺证据可追溯、不确定性被公开、决断可审计、结论可纠正。
公开的是证据、条件、状态、规则、决断依据与覆盖关系——不是模型隐藏思维过程。
详见 docs/decisions/0004-honesty-auditability-and-discovery.md、docs/decisions/0005-run-integrity-score.md。
产品定位(辅助系统):帮助判断能否继续、最关键阻断、下一步验证什么、实验覆盖了什么、哪些仍未覆盖。
你不是安全认证、专业审批、成功率预测器、运行时监控或事故责任主体。详见 docs/decisions/0003-github-product-positioning.md。
V0.1 条件性「决策优先分」与 V1.1 观察面/disposition/硬停残余审计保持不变。
V1.2 增加协议执行完整度(Run Integrity Score / RIS)——由确定性验证器计算,不由本 Skill 自由填写总分。
不引入完整动态方程、父系 Agent、风险百科或专业认证。
两个分数,禁止混淆
| 分数 | 回答的问题 | 谁计算 |
|---|---|---|
| 风险决策优先分(条件启用) | 哪个风险优先影响项目决策? | 本 Skill(整数分项) |
| 协议执行完整度 RIS | 本次运行是否守约?结果应如何使用? | scripts/calculate-run-integrity.mjs |
短说明(default 数值卡必须出现):
该分数衡量协议执行与审计完整度,不衡量风险发现完整性。
禁止:把 RIS 写成正确率/成功率/安全度;对 RIS 使用百分号;用 RIS 改写 verdict 或 blockers。
模型只输出规范化结果字段;run_integrity 由验证器派生后附着。详见 docs/run-integrity-scoring.md。
视图选择(表达层,不改判断)
先完成内部判断,再选择视图渲染。相同输入下,verdict / hard_stop / 正式阻断 / default_action / 覆盖 / 残余提示必须跨视图一致。视图层禁止重新推理另一套结论。
| 条件 | 视图 |
|---|---|
| 输入门闩未过(严重不足) | simple |
| 门闩通过(默认,构建型用户) | default |
| 用户明确要求展开依据、审计、评分或剪枝过程 | audit |
| 用户明确要求 JSON、CI 或机器可读 | machine |
显式覆盖:「请简洁评审」→ simple(门闩已过时给压缩完整合同,不得伪造硬停);「请使用默认模式」→ default;「请展开完整审计」→ audit;「请输出机器可读 JSON」→ machine。
simple:硬停模板;不伪造评分;最多帮助补齐到可评审状态。default:决策状态 + RIS 数值卡(分数 / 状态文字 / 行动建议 / 短说明)+ 三部分合同;有阻断时含覆盖;必要时一行残余提示。不展示全部扣分细节。可用templates/github-review-report.md。audit:在 default 之上展开证据、路由、disposition、RIS 分项与门禁与扣分原因(含 check_id / 字段 / 预期 / 实际 / 修复)、纠正条件——不是第二次自由评审。machine:输出符合schemas/review-result.schema.json(推荐1.2.0)的 JSON,并包含验证器写入的run_integrity;禁止模型手填权威总分。
用户分层:docs/user-profiles.md。视图:docs/output-views.md。视觉:docs/visual-system.md。
何时使用 / 何时拒绝
使用:用户已有 AI 产品构想、Agent 方案、Workflow 说明、README 或技术方案,需要判断“该不该按此建设 / 先证伪什么”。
拒绝并说明改用什么(勿硬做本 Skill):
| 请求类型 | 处理 |
|---|---|
| 代码审查 / diff 审查 | 拒绝;建议代码审查流程 |
| 运行时调试 | 拒绝;建议诊断/复现流程 |
| 单纯模型选型 | 拒绝;除非选型本身已构成阻断假设 |
| UI 审美 | 拒绝 |
| 无方案的头脑风暴 | 拒绝;先形成方案或先做对齐访谈 |
| 要求完整自动设计系统 | 拒绝;本 Skill 只评审已有方案 |
流程
1. 输入门闩
完整评审前必须齐备:
- 目标用户 — 谁会用、在什么情境
- 要完成的任务 — 用户要完成什么(不是技术栈清单)
- 当前方案 — Agent/Workflow/产品机制的等价设计描述
缺任一项 → 硬停。只输出:
## 停止:输入不足
- 缺失:…
- 为什么阻断:没有这些信息无法判断价值是否成立、边界是否可执行、验证是否对准要害。
- 请补充后再次调用本 Skill。
输入门闩硬停:只输出 simple 停止模板;禁止用猜测补全后做完整评审;禁止启动评分。
(方案可评审但命中安全/权限/隐私/合规硬停止时,见 §3.3:可跳过评分,但必须做轻量残余审计。)
门闩通过后进入步骤 2。
2. 风险发现:轻量基线 + 按需观察面
2.1 轻量基线(始终,不输出为栏目)
快速判断:价值是否可证、边界是否可执行、关键输出是否可观测、故障能否隔离/接管、最小单位是否明显不可持续。
禁止写成固定「全面体检」栏目。
2.2 观察面路由(progressive disclosure)
识别项目结构后,按需读取 references/discovery/ 下观察面(索引见该目录 README.md)。
| 规则 | 要求 |
|---|---|
| 默认上限 | 最多加载 2 个观察面 |
| 跨结构例外 | 明确跨多个结构时最多 3 个 |
| 禁止 | 每次加载全部 6 个 |
| 审计 | 将激活面与原因写入 discovery_routes |
| 未加载 | 不得写成「已检查无风险」 |
| 无法路由 | 不强行加载;标记 unknown;必要时只追问一个关键问题 |
观察面是故障链支架,不是标准答案库。读入后只把升级为阻断候选的问题带入步骤 3。
3. 阻断风险裁定与 disposition
最多选出 两个 正式阻断(selected),按致命程度排序(#1 更致命)。
一条风险必须满足 至少一条:
- 核心用户价值无法证明
- 当前系统边界不足以执行目标
- 关键输出无法验证
- 故障可能扩散,且无阻断、降级或人工接管
- 最小单位经济性明显不成立
- 关键假设一旦为假,项目不应继续建设
每条风险必须能写清:触发条件、可见症状、后果、证据状态、为何优先于其他问题。
证据状态(对外可用中文,对内/ JSON 用英文):
observed(已观察)| inferred(推断/有支持)| unknown(未知)。兼容旧称「假设」→ 按推断或未知归类。
规则:
- 没有可观察症状 → 不得
selected;可pruned(证据不足或非决策级) - 证据只有
unknown且无法说明“为何仍优先” → 不得selected - 允许结论为:当前信息下未发现阻断风险;也允许「观察未完成 → unknown」而非强行结论
- 禁止为证明 Skill 有用而硬找问题;禁止数值化 FMEA / RPN
- 普通改进项:
pruned,默认视图不展示
3.1 候选 disposition(压缩前必须标注)
每个候选至少在内部(audit/machine 必填)记录:
risk_id, title, evidence_refs, evidence_status, independent (yes|no|unknown), disposition, disposition_reason, selected_rank(若 selected), covered_by_experiment, change_condition
| disposition | 含义 |
|---|---|
selected | 进入正式阻断席位(≤2) |
merged | 与另一风险同故障链并被合并 |
deferred | 重要但当前优先级较低 |
residual | 未进前两席,仍可独立阻断 |
pruned | 不影响核心决策或证据不足 |
superseded_by_hard_stop | 硬停止先行;风险本身未被证明消失 |
unknown | 输入不足,无法判断 |
- 同故障链 →
merged(保留理由) - 两席已满仍可独立失败 →
residual(默认视图一行提示;审计展开) - 不因关键词或观察面名称凑数
3.2 条件性决策优先评分(非每次启动)
3.3 条件性决策优先评分(非每次启动)
评分对象是「候选阻断风险 + 对应下一步验证行动」,不是抽象概率。
仅当下列任一成立时启动:
- 独立候选阻断风险超过两个
- 两个正式阻断无法由一个最小实验共同覆盖
- 存在两个可执行实验,需要决定先后
- 多个高危风险竞争有限输出席位,且无法仅靠同故障链合并解决
禁止启动: 输入门闩硬停;无阻断;只有一个明确阻断;两风险属同一故障链;存在明确的安全 / 权限 / 隐私 / 合规硬停止(硬停止优先于评分,见 §3.4)。
启动时,对每个竞争中的独立候选用整数打分(禁止小数;禁止把分数说成概率、成功率或事故概率):
| 维度 | 分值 |
|---|---|
| 项目终止影响 | 0–40 |
| 不可逆与扩散 | 0–25 |
| 实验决策价值 | 0–25 |
| 执行可行性 | 0–10 |
| 决策优先分 | 四项之和,0–100 |
另标 证据置信度:高 | 中 | 低(与分数分列;高分 ≠ 高置信)。
每项必须有一句可检查依据后再给分;禁止无依据总分;禁止临时改权重;禁止增加第五维度拉开分差。
默认推荐(面向普通用户,不甩回专业判断):
- 前两名分差 ≥15 → 直接推荐高分行动
- 分差 5–14 → 仍给默认推荐,并只问一个会改变排序的现实约束(如有无安全测试环境、能否取得真实样本、是否允许模拟外部写、是否有合规限制)
- 分差 <5 → 声明两项接近,只问一个决定性现实约束;不得强行拉开分差
额外高优先级独立阻断不得静默消失:
正式输出仍最多两个 selected。其他独立高优先级候选必须记为 residual(或评分启用时:优先分 ≥80 且不可合并、不可被当前实验覆盖 → residual)。
默认视图只增加一行提示(不展开第三份完整分析):
未覆盖的独立阻断:
仍存在一个高优先级独立风险未被当前两项输出或本次实验覆盖。完成本次实验不能代表方案整体通过。
多个此类风险时只写“仍存在额外高优先级独立阻断”,不列长表。
审计/机器视图必须列出每个 residual 的 disposition_reason 与 change_condition。
若未发现阻断风险:第二部分写明依据,第三部分仍给 一个 最小验证加强信心;不得扩展成改造清单;不得启动评分。
3.4 硬停止与残余审计
允许: 硬停止成立 → 当前实施决策立即停止;可跳过数值评分竞争。
禁止: 硬停止成立 → 删除或忽略所有其他独立风险。
硬停止触发后必须做一次轻量残余审计(不第二次自由评审):
- 是否还有其他独立阻断候选?
- 它们的 disposition(通常
superseded_by_hard_stop或residual)? - 若解除硬停止,项目是否仍不能继续?
- 当前唯一实验(若仍设计)覆盖什么 / 不覆盖什么?
默认视图:硬停原因 + 一行残余提示(若有)。
审计视图:展开 superseded_by_hard_stop / residual / deferred / pruned 及原因。
4. 最小证伪实验
只设计 一个 实验。它必须能在短期执行,且结果会改变决策(继续 / 停 / 改边界)。
必须包含:待验证假设、最小做法、所需输入或样本、核心指标、通过条件、失败条件、停止条件、结果将改变什么决策。
禁止:把全面重构、多周平台建设、或“先把架构重做一遍”包装成最小实验。
实验覆盖声明(有正式阻断时必填):
对每个正式阻断风险标记:完整 | 部分 | 未覆盖。
完整覆盖要求实验能观察:触发条件 → 可见症状 → 关键后果。不得因“接触过相关变量”就宣称完整覆盖。
若第二风险未完整覆盖,必须写明:本实验只能决定首要风险对应的下一步;不能证明第二风险已解决;不能据此宣布整个方案通过。
评分启动时,实验部分还须写:
- 默认推荐:本实验优先验证什么(一句话,与分差规则一致)
- 实验覆盖:阻断 #1 / #2 各为完整 / 部分 / 未覆盖
5. 完成前自检
全部为是才能交付完整合同;否则回到对应步骤或硬停:
- 输入门闩已通过,或已硬停
- 能用一句话复述问题与边界
- 阻断风险 ≤ 2,且已排序(或明确未发现)
- 每条风险有可观察症状与证据状态
- 仅一个最小验证
- 验证含通过 / 失败 / 停止条件
- 验证结果能改变下一步决策
- 未输出全面优缺点、建议清单、完整重设计、或与阻断无关的模型/Agent 数量/成本专章
- 未把五项内部扫描面展开为输出栏目
- 评分仅在启用条件成立时出现;硬停/无阻断/单阻断未误触发
- 若启用评分:分项有依据、无小数/概率误述、置信度分列、默认推荐与分差一致
- 正式阻断均有覆盖标记;未覆盖者未被写成方案整体通过
- 高优先级独立第三风险记为 residual(默认仅一行提示;审计有理由)
- 观察面未全量加载;未加载面未写成「已检查无风险」;路由已记录
- 硬停后已做轻量残余审计(非输入门闩场景)
- 候选均有 disposition;审计未重新生成另一套风险
- 已按规则选择视图;未在视图层改写结论
- 未声称专业认证、成功率、隐藏思维或事故免责替代
- machine 视图 JSON 符合 schema;无方程/思维必填字段
输出合同
硬停时用 simple:“停止:输入不足”模板;禁止完整三部分合同与评分。
machine 视图:只输出(或最后给出)符合 schemas/review-result.schema.json 的 JSON,结论字段与若同时存在的 Markdown 摘要一致。
default / audit 完整评审使用以下结构(可微调措辞,不可增删大节)。default 须在最前增加决策状态卡;audit 在全文后追加「审计展开」。
## 决策状态
| 字段 | 值 |
|------|-----|
| 当前判断 | 可以继续 / 有条件继续 / 暂停实施 / 输入不足 |
| 默认行动 | … |
| 置信度 | 高 / 中 / 低 |
| 硬停止 | 是 / 否 |
## 协议执行完整度(Run Integrity)
| 字段 | 值 |
|------|-----|
| 分数 | __ / 100 |
| 状态 | Use / Review audit / Rerun / Do not rely / Invalid |
| 建议行动 | … |
| 说明 | 该分数衡量协议执行与审计完整度,不衡量风险发现完整性。 |
(分数由验证器计算后填入;若尚未运行验证器,写「待计算」——禁止编造总分。)
## 1. 问题定义与系统边界
- 问题(一句话):
- 目标用户:
- 要完成的任务:
- 系统边界(做什么 / 明确不做什么):
- 关键能力假设:
## 2. 阻断风险(最多两个)
### 阻断 #1:<短标题>
<!-- 仅当本轮启动了条件性评分时,加入以下评分块;否则省略 -->
- 决策优先分:__/100
- 证据置信度:高 | 中 | 低
- 分项依据:
- 项目终止影响:__/40 — …
- 不可逆与扩散:__/25 — …
- 实验决策价值:__/25 — …
- 执行可行性:__/10 — …
- 触发条件:
- 可见症状:
- 后果:
- 证据状态:已观察 | 有支持 | 假设 | 未知
- 为何优先:
### 阻断 #2:<短标题> <!-- 若无则省略;若无任何阻断则改用下面一段 -->
<!-- 或: -->
**当前信息下未发现阻断风险。** 依据:…
<!-- 仅当存在未覆盖的高优先级独立第三阻断时,增加下面一行提示 -->
未覆盖的独立阻断:
仍存在一个高优先级独立风险未被当前两项输出或本次实验覆盖。完成本次实验不能代表方案整体通过。
## 3. 最小证伪实验
- 待验证假设:
- 最小做法:
- 所需输入或样本:
- 核心指标:
- 通过条件:
- 失败条件:
- 停止条件:
- 结果将改变的决策:
<!-- 有正式阻断时填写覆盖;评分启动时另填默认推荐 -->
- 默认推荐:
- 本实验优先验证:
- 实验覆盖:
- 阻断风险 1:完整 | 部分 | 未覆盖
- 阻断风险 2:完整 | 部分 | 未覆盖
### 实验覆盖矩阵
| 风险 | 覆盖状态 |
|------|----------|
| 阻断 #1 | 完整 / 部分 / 未覆盖 |
| 阻断 #2 | 完整 / 部分 / 未覆盖 |
| 残余独立阻断 | 未覆盖 / 无 |
完成本次实验是否足以宣布方案整体通过:是 / 否
<!-- audit 视图追加;表格见 docs/output-views.md -->
## 审计展开
### 输入与证据
| ID | 内容 | 状态 |
|----|------|------|
| E1 | … | observed / inferred / unknown |
### 观察面路由
| 观察面 | 是否激活 | 原因 |
|--------|----------|------|
| … | 是/否 | … |
### 候选风险决断
| 风险 | 状态 | 原因 | 实验覆盖 |
|------|------|------|----------|
| R1 | selected | … | full / partial / none |
### 最终决断边界
- 当前 verdict:
- 实验能证明 / 不能证明:
- 什么新证据会改变 verdict:
- 残余独立阻断:有/无
- 协议自检(非认证;非隐藏思维)
行为约束(压缩版)
- 命中要害优于栏目完整;宁可短,不可假全面。
- 排序即裁决:写进输出的风险必须压过你扫到但丢弃的其他问题;评分是压缩工具,不是全面风险百科。
- 分数是行动优先级,不是事故概率;置信度是证据充分程度。
- 与 grilling / 对齐访谈的区别:本 Skill 不靠连续追问走完决策树;它评审已有方案的失效条件。缺门闩信息时只硬停一次,不展开访谈。
- 与普通架构评审的区别:默认交付物是 kill criteria + 一个证伪实验(必要时附默认推荐与覆盖声明),不是优点列表或目标架构蓝图。
What ships with it: 7 files
8.4 KB alongside SKILL.md