Commit Graph
2 Commits
Author SHA1 Message Date
aurora-admin 16f365a045 feat: P4 阶段A+B — data.js 瘦身 116KB(预计算 + css 分离)
执行 ROADMAP 的 S1-P4,按规划的三阶段走,本次完成 A 与 B。

阶段 A · 预计算 scenarios(验证「构建期预计算 + 运行时回退」链路)
- tools/precompute.mjs:与 app.js 的 extractScenarios 逻辑完全一致,
  构建期算出结果写进 data.components[].scenarios
- app.js 加快速路径:优先读 c.scenarios,缺失时回退运行时解析
- 浏览器实测:预计算值与运行时提取值**完全一致**(逐字节比对)
- 实测收益有限:仅 4 个组件有 ≥2 场景(场景卡片本就少见),
  但链路验证通过,为阶段 C 的 API 预计算铺路

阶段 B · css 源码分离(零风险,css 不参与任何解析)
- css 从 data.js 移到 site/sources/<slug>/css.txt(79 个文件)
- data.js 里改为 sourcesRef.css 引用,data.json 保持完整(For Agents 承诺)
- data.js: 1058 KB → 942 KB(−116 KB)
- app.js 新增 srcOf(c, kind) / hasSrc(c, kind):
  · srcOf 同步返回已有源码,缺失时触发后台 fetch 并缓存
  · __aaSrcReady 回调在加载完成后填充代码区
- 修正回调时机 bug:原实现捕获构建时的 current(初始 tab),
  导致用户后续切换的 tab 收不到通知。改为回调内实时比对当前 tab

关于 P4 的实测修正(已登记 ROADMAP 规划修正记录)
- 规划估计「拆 sources → ~110KB」。实测 css 仅占 119KB/888KB,
  且 html/vue2/vue3/jsx 共 765KB 被**渲染期同步消费**
  (extractComponentAPI 读 vue3/vue2/jsx,extractScenarios 读 html)
- 故需分阶段:A+B 先减 116KB,阶段 C 需先预计算 API 表才能分离其余 4 端

新增构建链(两步,不可省第二步)
- npm run build:site = build-site.ps1 + precompute.mjs
- build-site.ps1 会把 data.js 重写回全量,precompute 才做瘦身
- 已写入 AGENTS.md 的铁律章节(含「只跑第一步会怎样」的后果说明)

验证
- 回归 100%:1003/1003,79 页全通过,N/A 35
- 浏览器实测:展开代码区 → CSS tab → 2121 字符正常显示,
  Network 出现 sources/button/css.txt 请求
- 预计算 vs 运行时场景提取结果逐字节一致
2026-09-11 23:23:08 +08:00
aurora-admin dd1e306c86 docs: AGENTS.md 执行约定 + 补全 ROADMAP 的结构性缺口
补三处规划漏洞(自查发现,非用户指出)

1) 缺「执行模型自动能读到的约束」
- 新建 AGENTS.md(216 行):其他模型不会主动翻 ROADMAP,但大多会自动读
  AGENTS.md。把它做成硬约束入口
- 含六条铁律(零依赖/ASCII-only/改模板/改内嵌层/data.json 是承诺/八次回归)
- 含禁止事项表(6 条)、交付说明模板、失败升级路径、关键文件地图、
  已知陷阱速查(7 条)、当前状态
- 验证过文档里承诺的命令真能跑:铁律 1 的验收命令在 package.json 不存在时
  输出 "n/a" 而非报错(原写法会失败)

2) 缺「显式不做」清单
- 新增第四章:8 项不做什么及理由(不引打包器/不做全量像素回归/不做 SSR/
  不做主题商店/不重写 app.js/不改 frameworks 视觉/不做 Storybook/不做单测)
- 没有这份清单,执行模型会以为"漏了",或在不当时机自作主张

3) 缺「未解问题」
- 新增第五章:6 个我无法单方面决策的问题(是否发布 npm/目标用户/设计团队
  协作/RTL 必要性/性能预算底线/暗色 iframe 策略),每项附影响面与建议

修正验收命令的 3 处踩坑(自查发现)
- P2 的 npm pack 校验:原写法 `npm pack | grep -q site/ && echo FAIL || echo OK`
  在 npm 不可用时 grep 也失败 → 误报 OK。改为显式判断 exit code
- P4 的 sources 文件计数:目录不存在时错误信息不友好 → 加提示与 exit 1
- 铁律 1 的依赖检查:package.json 不存在时报错 → 改为可容错

章节编号顺延(原「五、验收总纲」→「七」,因新增两章)

回归:100%(961 断言 / 0 失败 / 79 页全通过)
2026-09-11 22:47:51 +08:00