feat(cli): 新增视觉漂移审计门禁与幂等迁移脚本
- 新增 lib/visual-rules.mjs 作为规则表单一来源:字号阶梯、时长三档、 阴影四档、焦点环收敛、圆角档位的判定与改写集中在一处,迁移与审计共用 - 新增 lib/visual-audit.mjs + ua audit:visual:按五类统计硬编码视觉字面量, 支持 --json 与 --baseline,默认与 .ua/visual-baseline.json 棘轮比对, 超基线退出码 1 并按 git 历史倒推疑似引入提交 - 新增 scripts/visual-migrate.mjs:幂等迁移 ui.css(重复运行零 diff), 另带 --seed 灌视觉欠账、--backfill-domain 回填域字段 - 实跑迁移:283 处降到 35 处(字号 27→5、时长 170→9、阴影 56→17、 圆角 2→0、焦点环 28→4),159 行逐行等价替换,括号/分号/行数不变 - package.json 把 audit:visual 追加到 check 链末尾,并补 visual:migrate
This commit is contained in:
@@ -4,6 +4,7 @@ import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { spawnSync } from 'node:child_process';
|
||||
import { visualAudit } from '../lib/visual-audit.mjs';
|
||||
|
||||
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
||||
|
||||
@@ -1437,10 +1438,13 @@ switch (cmd) {
|
||||
case 'lint-iterations':
|
||||
cmdLintIterations();
|
||||
break;
|
||||
case 'audit:visual':
|
||||
visualAudit(args, ROOT);
|
||||
break;
|
||||
case 'mcp':
|
||||
cmdMcp();
|
||||
break;
|
||||
default:
|
||||
console.log('usage: ua <index|list|search <kw>|info <name>|docs|tokens [--json]|style|sync-counts|verify|commit-lint|lint-iterations|changelog|mcp>');
|
||||
console.log('usage: ua <index|list|search <kw>|info <name>|docs|tokens [--json]|style|sync-counts|verify|commit-lint|lint-iterations|audit:visual [--json|--baseline]|changelog|mcp>');
|
||||
process.exit(cmd ? 1 : 0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user