le-app-design v1.2.0:确认环节与一致性修复(冷读评审驱动)。①盲盒阀门:S4 拆 a/b,新增停点 1.5 首屏确认(截图必发,豁免停顿不豁免发图),停点 2 附修复前后截图;②修复三处自相矛盾:轻量路由 vs 验收门硬冲突(evidence_report 新增 --require 支持子集门与履职前缀,四象限回归通过)、S3 降级 vs S7 必验 MASTER(改条件 artifact)、截图档位两口径(统一 390 主档+375 兼容,移动 Web 免桌面);③补占位符定义:项目代号进 BRIEF、slug 来源、S5 双 sub-agent 派发模板要点、note 命名规范表、回弹降级三条操作化判据、轻量路由 S2快速版/S4′/S5′ 定义、保持现状=跳 S6 直 S7

This commit is contained in:
leroy
2026-11-07 17:15:33 +08:00
parent 9ec5bf1c52
commit bc66afda33
3 changed files with 87 additions and 45 deletions
+28 -21
View File
@@ -60,7 +60,7 @@ python3 <SKILL>/scripts/log_call.py ui-ux-pro-max --run-dir <RUN> --note S3-ux-c
**两条规则**:
- **硬约束否决权**:frontend-design 定的 hex/字号若不达标(WCAG/HIG/MD 数据为准),**改值不改方向**;每处修改记入 design-plan 决策记录。
- **目录回弹降级**:pro-max 风格目录(51 个活跃风格)若对已定方向匹配失败——生成结果明显回弹到品类默认(拿 tell 清单对:cream 底、默认靛蓝、SaaS 卡组等)——则**不采用该 MASTER**,降级为「design-plan 的 token 表即规范 + pro-max 逐项校验补硬约束」,决策记录写明降级理由。方向的独特性优先于系统的便利性。
- **目录回弹降级(操作化判据)**:生成结果命中以下任意两条即判回弹、不采用该 MASTER——①Style 名与方向关键词无词面或语义关联(如「练习本手写」→ Swiss/Helvetica);②色板命中 AI-tell 家族(暖奶油底、默认靛蓝/紫系、近黑+酸绿)且与 design-plan 色板无共享主色;③关键 Effects/Anti-patterns 与方向的手感相反(如手绘方向得到 corporate/rational)。降级后:design-plan 的 token 表即规范 + pro-max 逐项校验补硬约束,决策记录写明命中哪两条。方向的独特性优先于系统的便利性。
**验收**:MASTER.md 存在且与方向一致,或降级路径已记录;校验检索在账本;design-plan 决策记录含 S3 的改值/降级条目。
@@ -68,25 +68,24 @@ python3 <SKILL>/scripts/log_call.py ui-ux-pro-max --run-dir <RUN> --note S3-ux-c
把 BRIEF(要点)、design-plan(方向 + ASCII + 色板 + 原则)、MASTER 要点或 S3 降级说明展示给用户,明确请求确认或调整意见,**终止回合**。用户豁免(已说「一口气跑完」)→ 跳过继续。
## S4 高保真构建
## S4 高保真构建(a 首屏 → 停点 1.5 → b 全量)
**动作**
**S4a 首屏**
1. Read `<DEP_IMP>/reference/craft-floor.md` 并记账:
`python3 <SKILL>/scripts/log_call.py impeccable --run-dir <RUN> --note S4-craft-floor --load <DEP_IMP>/reference/craft-floor.md`
2. 构建:默认无构建链的 HTML/CSS/JS(单文件优先,可拆 CSS/JS 文件)。硬性要求:
2. 只构建**主界面一屏**(真实内容 + 规范 tokens + design-plan 个性),390×844 截一张。
**停点 1.5(首屏确认)**:截图发到对话请用户确认方向落地;豁免时跳过停顿但截图必须发出。**终止回合**;这一站是「盲盒阀门」——成品首见从 S5 之后提前到构建开头。
**S4b 全量**
1. 构建:默认无构建链的 HTML/CSS/JS(单文件优先,可拆 CSS/JS 文件)。硬性要求:
- token 来自 MASTER.md(或降级时的 design-plan token 表),不发明规范之外的美学量
- 布局与个性按 design-plan;SVG 图标(真图标库或手绘一致笔画),禁 emoji 图标
- craft-floor 全条目施工时遵守(尤其:eyebrow 是 ban;嵌套卡片必错;elevation 声明一次;浏览器表面——selection/caret/scrollbar/focus ring/表格数字——要从色板定制)
- craft-floor 全条目施工时遵守(尤其:eyebrow 是 ban;嵌套卡片必错;elevation 声明一次;浏览器表面——selection/caret/scrollbar/focus ring/表格数字——从色板定制)
- 交互真实可用(点击/切换/滚动行为写 JS),不是静态画片
- pro-max Pre-Delivery 逐条过:44px 触控、4.5:1 对比、focus ring、reduced-motion、375px 无横滚
3. 截图核对(headless Chrome,找不准路径先 `ls /Applications | grep -i chrome`):
```bash
"/Applications/Google Chrome.app/Contents/MacOS/Google Chrome" \
--headless=new --disable-gpu --screenshot=<RUN>/shot-mobile.png \
--window-size=390,844 file://<绝对路径>
```
移动 390×844 + 桌面 1440×900 至少各一张;按 craft-floor「一次看一批」:Read 截图找问题 → 修完一批 → 再截。
**显隐与布局断言用渲染事实(computed display / getBoundingClientRect),不信 hidden 属性——id/类选择器的 display 会压过 [hidden](2026-11-07 v1.1 重跑实测翻车:两页堆叠渲染而属性检查全绿)。编排器无法亲验截图图像时,把截图交 S5 Assessment A 首个看图,不得只凭 DOM 断言放行。**
2. 截图口径(统一):**390×844 主档 + 375 兼容档各至少一张**;移动 Web 任务免桌面档(body 居中列已保证桌面不破)。按 craft-floor「一次看一批」:Read 截图找问题 → 修完一批 → 再截。编排器无法亲验截图图像时,交 S5 Assessment A 首个看图。
3. **显隐与布局断言用渲染事实(computed display / getBoundingClientRect),不信 hidden 属性**——id/类选择器的 display 会压过 [hidden](实测翻车:两页堆叠渲染而属性检查全绿)。
**验收**:原型可打开(`file://` 直开无 console error 级问题)、双档截图在 `<RUN>/`、craft-floor 关键项肉眼过。
@@ -101,6 +100,9 @@ python3 <SKILL>/scripts/log_call.py ui-ux-pro-max --run-dir <RUN> --note S3-ux-c
按 context 输出的指令行事(它可能要求 init/PRODUCT.md——轻量原型按其 SCOPED_EXISTING_ALLOWED 通道走,不阻塞)。
2. Read `<DEP_IMP>/reference/critique.md` 并记账(`--load`)。**按 critique.md 原文执行**,特别注意其 Hard Invariants:
- 双独立 sub-agent:Assessment A(设计评审)/ Assessment B(detect + 浏览器证据)。ZCode/Claude Code 用 Agent 工具并行派发,两者互不可见对方输出;Codex 有 spawn_agent 先问一次;都没有才单上下文顺序跑并打 `⚠️ DEGRADED` 横幅
- **派发模板要点**(子代理看不到主上下文,prompt 必须自带全部材料):
- A 传:目标文件路径、BRIEF/design-plan 路径、全部截图路径(要求「真正看图」)、四模式与受众摘要、输出契约(specificity/十启发式表/认知负荷/情绪/P0-P3/persona)
- B 传:经 log_call 包裹的 detect 命令全文(注明 exit 0=clean / 2=findings 属成功)、截图清点、误报核对要求(对源码实算)、fallback signal 原文案
- B 的 CLI 扫描:
```bash
python3 <SKILL>/scripts/log_call.py impeccable --run-dir <RUN> --note S5-detect -- \
@@ -115,7 +117,7 @@ python3 <SKILL>/scripts/log_call.py ui-ux-pro-max --run-dir <RUN> --note S3-ux-c
## 停点 2
展示审查报告,给结构化选项请用户定修复范围:全部 / Top 3 / 仅 P0–P1 / 保持现状。**终止回合**;豁免规则同停点 1(豁免时默认修 P0+P1,并在审查报告末尾补字面行 `Questions skipped: 停点2经用户豁免(默认修复 P0+P1)`,满足 impeccable critique 的收尾契约)。
展示审查报告**并附修复前后关键截图**,四选一:全部 / Top 3 / 仅 P0–P1 / 保持现状(跳过 S6 直接 S7,报告照出)。**终止回合**;豁免规则同停点 1(豁免时默认修 P0+P1,并在审查报告末尾补字面行 `Questions skipped: 停点2经用户豁免(默认修复 P0+P1)`,满足 impeccable critique 的收尾契约)。
## S6 优化迭代
@@ -127,17 +129,22 @@ python3 <SKILL>/scripts/log_call.py ui-ux-pro-max --run-dir <RUN> --note S3-ux-c
**动作**
```bash
# 完整流程:默认三方门,pro-max 计履职前缀(S2-research 不混门)
python3 <SKILL>/scripts/evidence_report.py --run-dir <RUN> \
--out <RUN>/INTEGRATION-REPORT.md --title "<任务名> 集成证据" \
--artifact <原型主文件> --artifact <RUN>/shot-mobile.png \
--artifact <项目根>/design-system/<slug>/MASTER.md --artifact <RUN>/design-plan.md
--out <RUN>/INTEGRATION-REPORT.md --title "<项目代号> 集成证据" \
--require "ui-ux-pro-max:S3-,frontend-design:S2-,impeccable" \
--artifact <原型主文件> --artifact <RUN>/shot-<主档>.png --artifact <RUN>/design-plan.md
# 仅审查路由:--require "impeccable";局部修改:--require "impeccable[,frontend-design]"
# 系统路径(非降级)另加 --artifact design-system/<slug>/MASTER.md;
# slug 由上游按 -p 项目代号生成(小写连字符),跑完 S3 用 ls design-system/ 确认实际目录名
```
向用户交付:原型入口(`file://` 路径,可交互)、INTEGRATION-REPORT 判定与三方统计、审查分数与修复摘要、运行目录索引。**FAIL 时不宣称完成**,把缺口(哪个上游 0 成功调用/哪个产物缺失)说清楚。
向用户交付:原型入口(`file://` 路径,可交互)、关键截图、INTEGRATION-REPORT 判定与调用统计、审查分数与修复摘要、运行目录索引。**FAIL 时不宣称完成**,把缺口(哪个门没过/哪个产物缺失)说清楚。
## 全程通用约束
- 每次对上游的调用都过 `log_call.py`,`--note` 标阶段(S2-design-system / S5-detect…),失败调用也要留痕。
- **note 命名规范**(验收门的履职前缀依赖它):`S2-load`(frontend-design 装载)、`S2-research`(可选调研,不计入门)、`S3-design-system` / `S3-ux-check` / `S3-typography-check`(pro-max 履职)、`S4-craft-floor`、`S5-context` / `S5-critique-playbook` / `S5-detect`、`S6-redetect`。
- 每次对上游的调用都过 `log_call.py`,`--run-dir` 显式传(缺省会另建 `<时间戳>-run` 目录,账本裂成两份、验收门读空账本 FAIL);失败调用也要留痕。
- 不修改三个上游目录的任何文件;PYTHONDONTWRITEBYTECODE 已由脚本注入。
- 运行目录是本次任务的唯一工作痕迹区:BRIEF / design-plan / 截图 / 报告全进 `<RUN>`;MASTER.md 在项目根(上游约定位置)。
- 用户豁免只作用于停点,不作用于铁律与验收门。
- 运行目录是本次任务的唯一工作痕迹区:BRIEF / design-plan / 截图 / 报告全进 `<RUN>`;MASTER.md 在项目根(上游约定位置,slug 跑完 S3 后 `ls design-system/` 确认实际目录名)。
- 用户豁免只作用于停点,不作用于铁律与验收门;豁免停点 1.5 时首屏截图仍须发出。