feat(ds-flow): Phase 1.1-1.2 — 原型单源目录 + tokens.css 迁为真源

- design/prototype/serve.mjs:零依赖热重载预览服务器(照搬 jiu,check-ds
  存在性守护,Phase 5 前静默跳过)
- design/prototype/tokens.css:token 真源(现结构已满足 ds-flow 的
  base :root + [data-theme=dark],字节迁移保证 codegen 零 diff)
- design/colors_and_type.css:退化为薄 @import 别名(供历史 preview/*.html
  浏览器内引用;codegen 不再读它)
- 三个 codegen(Flutter gen_flutter_tokens / website+usercenter build-tokens)
  + drift 检查全部重指向 prototype/tokens.css
- 生成产物 diff 仅头注释源路径行,token 数值零变化(已验证)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-07-08 00:00:38 +08:00
parent 3311430db6
commit 805bf8e2ca
11 changed files with 341 additions and 236 deletions
+2 -2
View File
@@ -1,7 +1,7 @@
#!/usr/bin/env bash
# check-codegen-drift.sh — codegen 漂移检查(支柱 2:契约单源 / token 单源)。
#
# design/colors_and_type.css 是唯一 token 真相源,client/lib/pangolin_tokens.gen.dart
# design/prototype/tokens.css 是唯一 token 真相源,client/lib/pangolin_tokens.gen.dart
# 由 design/codegen/gen_flutter_tokens.mjs 生成、勿手改(CLAUDE.md 铁律)。本检查重新
# 生成一遍,若生成物与已提交版本不一致 → 漂移:要么改了 CSS 没重生成,要么手改了
# 生成物。两者都会让"单源"失效、契约悄悄分叉。
@@ -22,7 +22,7 @@ echo "→ 重新生成 Flutter token (design/codegen/gen_flutter_tokens.mjs) ...
node design/codegen/gen_flutter_tokens.mjs
if ! git diff --quiet -- "$GEN"; then
echo "❌ codegen 漂移:$GEN 与 design/colors_and_type.css 不一致。" >&2
echo "❌ codegen 漂移:$GEN 与 design/prototype/tokens.css 不一致。" >&2
echo " 原因:改了 CSS 真相源却没重生成,或手改了生成物(铁律:勿手改 *.gen.dart)。" >&2
echo " 修复:node design/codegen/gen_flutter_tokens.mjs 后提交生成物。" >&2
echo " ── diff(前 40 行)──" >&2