# 更新日志
本项目所有显著变更都记录在此,格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
## [0.9.0] - 2026-09-20
### 新增
- **新 skill `test-reliability`(flaky 与套件可靠性治理,第 12 个 skill)**:回答"这套测试的结果还能不能信"——单条 flaky 判定(复跑矩阵 M1–M6 取证)→ 根因四分类(S1 时序等待/S2 共享状态/S3 环境/S4 并发竞态)→ 隔离与门禁语义(quarantine 可见、不计分母但必须披露)→ 重试诚实语义(重试绿≠修复,clean/retry/quarantine 三项分开统计)→ 套件健康度机读摘要(挂 `core/report-template` 机读段)。配 `references/flaky-playbook.md`(判定树含**非平稳信号复核强制闸门**:失败率趋势/外部变更相关/阈值穿越任一命中即翻转为真失败候选上抛——防"真缺陷穿着 flaky 外衣"潜伏)。出生双语 description(296 字符);合入证据链:入池 2 任务(rel-quarantine-verdict / rel-retry-gate-health,r1 审计全采纳)→ On/Off 门(首轮 FAIL→失败模式归类→playbook 修订→On 臂复验 P05 正控 0%→100%、纪律点 On=1.0 vs Off=0.833,P15 全防形态裁定 KILL 未触发)→ 最弱模型门(dfic:deepseek-v4-flash 同档替换,On 各指标不劣于 Off)→ X26 触发屏(34/35 零新增错判)。判定权归属与实验记录见 GATES §6 与 E1_RULE.md。
- **Skill 描述双语化 C0 批 0 收官(11/12)**:回炉单元 `automated-e2e-testing` / `exploratory-testing` / `qa-memory` 完成双语化上线(全部 ≤300 字符红线、双引号包裹合规)。预注册逐个过门(EXPECTED v1.9 X26 路由屏,temperature=0 确定性仪器,B0=33/35 错误集 {R24 既有混淆, R28 边界样本}):exploratory-testing 34/35(顺带修复 R28,零新增错判)、qa-memory 33/35(错误集与 B0 一致,`test-case-writing` 指针反触发显式化)、automated-e2e-testing 33/35(错误集与 B0 一致)。**教训(实测两次证实):双语化压缩不得丢失语义锚点与单元名指针反触发**——e2e 首版删去"写自动化前的业务熟悉踩点"锚点、exploratory 首版删去"(automated-e2e-testing 工作流零)"指针,均立即触发 R26 新增错判,回滚后携锚点/指针重写方过门。**bug-analysis 维持中文原文**:三个差异显著的双语变体(273/298/263 字符)均稳定触发组合刃口新增错判(R26 对 bug 双语化敏感),按预注册回滚缓议并登记 X20 观测、深轮再议——宁缺毋滥,不对路由屏过拟合。同批:安装形态宿主广度格实测通过(`npx skills add -g -a codex` 裸 HOME 沙箱:12 单元全就位、85 处 `../core/` 引用全通),RELEASING 矩阵更新。
## [0.8.1] - 2026-09-07
### 修复
- **双语 description 的 YAML 非法写法致标准解析器宿主拒载(0.8.0 缺陷,本版修复)**:0.8.0 的 8 个双语 description 以裸 plain scalar 书写,值内 ASCII `": "` 序列被手写解析器(校验器 / dsh / 评测 harness)放行,但宿主侧标准 YAML 解析器(js-yaml / `yaml` npm 包 / PyYAML)全部拒绝——装了 0.8.0 的宿主可能无法加载这批 skill,skills.sh 索引面同样受影响。修复 = 全部 12 个 frontmatter description 按 YAML 规范以双引号包裹(内部引号转义),解析值与 0.8.0 逐字符等价(零内容变化)。
- **守门骗绿根除(同族事故第三例)**:validate_skills 的 frontmatter 检查此为手写行解析,与标准解析器口径分裂——非法 YAML 放行。现增加 strict YAML 门(PyYAML safe_load + 手写解析值比对不一致即 FAIL),**缺 PyYAML 时整门 FAIL**(fail-loud,与 validate_repo 同口径);CI 安装依赖步骤上移至首个校验之前;新增 4 个正反例回归测试(裸 ": " 必 FAIL / 双引号包裹+转义 PASS / 引号不配对 FAIL / 单引号翻倍 PASS)。
- **dsh 插件 parseSkill 剥引号后同步反转义 `\"` 与 `\\`**:否则双引号标量会把字面反斜杠注入宿主上下文(与校验器 _fm_scalar 同口径)。
### 新增
- **examples 扩容至五组 On/Off 对照(B7 首批)**:在原 test-case-writing 对照外新增四组真实评测产出——api-testing(判分覆盖 0.94 vs 0.72,**真实执行通过率 0.97 vs 0.51**)、automated-e2e-testing(覆盖近但执行成功率 0.56 vs 0.39 的诚实信号)、qa 编排(九阶段含阶段 0 探索旁路 vs 通用八阶段框架)、exploratory-testing(证据分级风险清单 vs 泛化骨架);选样规则=双臂各取中位样本(不挑最好 On、不丑化 Off),泄漏扫描零命中,examples/README 重构为五组索引+逐组判读指南+产出溯源表(run/通道/选样口径可核查)。
## [0.8.0] - 2026-09-07
### 新增
- **Skill 描述双语化首批 8 单元(补强方案 C0 批,X26 路由门护航)**:`qa` / `test-case-writing` / `test-strategy` / `test-case-review` / `api-testing` / `regression-testing` / `requirement-analysis` / `core` 的 frontmatter description 改为中英双语(英文在前供 skills.sh 跨宿主发现,中文触发词与反触发互指全保留,全部 ≤300 字符红线)。预注册两批滚动门(EXPECTED v1.9 X26,`run_eval.py routing` 35 意图 × local:Qwen3.5-9B-4bit):基线 34/35 → 批 A(旗舰 2 单元)34/35 零新增错判 PASS → 批 B(10 单元齐上)31/35 **FAIL**(新增错判 3,跌破 32 底线)→ 按预注册单条粒度回滚 `automated-e2e-testing` / `exploratory-testing` / `bug-analysis`(批 B 交互肇事)与 `qa-memory`(二分定位单独肇事:其 "governed writes" 表述与"更新用例文件"意图语义竞争)→ 终态复跑 34/35 零新增错判 PASS。回炉 4 单元改写后逐个重过 X26 再双语上线;长期触发质量归 X20 周度探针(发版后两周重点观测)。
- **安装形态实测矩阵登记(RELEASING)**:新增专节——第三方安装器产物形态不受我方 install.sh 把控,凡影响 `../core/` 相对引用的发版按矩阵登记实测(共享目录整仓 ✅ / 单装缺 core ❌ 设计内 / Claude Code 裸 HOME 整仓 ✅ 本批补测;其余宿主待测、不超前宣称)。
- **官网 FAQ 区与 AI 引擎可读层(GEO)**:落地页新增"常见问题"六问(免费与否 / 宿主兼容 / 可执行性 / 上手成本 / 数据边界 / 英文层现状——含 Token 3.3 倍与英文层缺位等不利答案的如实披露),问答与 `FAQPage` JSON-LD 同源;页面头部补 `SoftwareApplication` 结构化数据(版本 / 许可 / 同名渠道 / 能力清单);新增站点根 `llms.txt` 机器可读摘要并随 Pages 部署(`pages.yml` 触发路径与 stage 同步)——本产品的检索者与潜在"买家"大量是 AI agent 与 AI 搜索引擎,此层此前完全空白。跟踪面白名单同步扩容(`validate_skills.py` 红线 10 + CONTRIBUTING 红线 8 登记 `llms.txt`);营销定位底座按 GitHub 政策归 `docs/` 本地资料区、不入库。
- **qa-memory skill(QA 项目知识库)**:新增第 11 个 skill 与配套门禁,让测试知识第一次可以跨会话沉淀——在被测项目仓库内维护 `.qa/` 知识目录(`INDEX.md` 派生视图 + 6 个主题文件,唯一真相源是主题文件,随项目 git 提交),沉淀环境怪癖 / flaky 判定 / 缺陷配方 / 接口契约 / 业务域 / 自愈配方与例程七类知识。条目 schema(`references/entry-schemas.md` 与门禁同源):H2 标题(创建后不可变)+ fenced-yaml 受限子集,首写默认 tentative、时间失效不删除(superseded/retired 标记 + git 历史兜底)、`verified`/`evidence` 溯源字段;薄治理 skill 三工作流:读取预算化(INDEX 唯一必读、条目按需跳读)、写入过"三个月判据"+ `memory_validate.py` 门禁(零依赖纯标准库;schema/预算三重(条目/文件/INDEX 行数+字节)/秘密扫描占位符白名单/指令模式 WARN 投毒防线;`--init` 建骨架、`--rebuild-index` 机械重建索引消除并发冲突;fail-loud 不设降级通道)、治理全经人审(prune 归档、写 AGENTS.md/.gitignore 的入口自举逐处确认)+ 威胁模型四防线(条目=数据非指令、G6 确认门、CODEOWNERS 建议、溯源字段)。四个既有 skill 挂最小钩子(regression-testing 知识库输入、bug-analysis/exploratory 沉淀判定、qa 编排跨会话知识注记;automated-e2e-testing 的沉淀钩子已撤出,见下方「变更」);`install.sh`/`uninstall.sh` 单元清单、安装冒烟下限(12 单元)、双语 README(含 `.qa/` 分宿主装载表)、落地页与 npm 描述计数同步;CONTRIBUTING 新增红线 9(schema 变更必须同步门禁与单测)。
- **CI 守门扩面(仓库面守门)**:新增 `scripts/validate_repo.py`,补上五个此前无人机查、坏了照绿的面——git 跟踪全部 .py 语法(此前仅被单测导入的脚本被覆盖,新增脚本写错语法 CI 照绿)、全部 .yml/.yaml 合法性(ci/pages workflow、labeler、ISSUE 模板、cordis 补丁——paths 触发的 workflow 语法坏了会静默不跑且无红叉)、全部 .json 合法性、根目录门面文档(README 双语 / CONTRIBUTING / RELEASING / CHANGELOG / AGENTS)相对链接与 `
` / `` 目标存在性(README 是仓库门面,404 直接面向访客)、落地页 index.html 引用资产存在性(部署 stage 只做 cp 不校验引用,引用不存在的配图 = CI 绿、线上破图);新增 `tests/test_repo_gates.py`(提取形态正负例 + 对本仓库实跑全绿的自锚定契约)。
- **安装器行为冒烟**:新增 `tests/install_smoke.sh` 接入 CI——copy/link 双方式安装、重装幂等、防误删拒绝覆盖外来同名目录、双向卸载干净(期望单元以首次安装实际产物为准 + 单元数下限,防清单缺损时冒烟安静变绿);此前安装器门仅 `bash -n` 语法检查,与步骤名"零成本回归"名实不符。
- **CI 硬化**:job 级 `timeout-minutes` 与同 ref 并发去重(concurrency);单测发现模式从写死 `test_product_scripts.py` 扩为 `test_*.py`(新增测试文件自动被发现);pages.yml 部署前跑同一仓库面守门(部署自身挡破图,不依赖 CI 时序);单测步补装 PyYAML(validate_schema 零用例防骗绿检查依赖全量解析,runner 默认无 PyYAML 时按设计降级返回 0,测试必挂——本地有 PyYAML 故仅 CI 失败)。
- **接口压测承接**(api-testing):新增 `references/k6-conventions.md`——类型矩阵轴 1 执行层(原十轴中唯一无执行片段的脚本型轴):移交包字段→k6 options 逐项映射、单接口阶梯加压模板、thresholds 退出码与流水线四值语义对接(阈值失败默认 S 级复核归因,不自动定性为缺陷)、触发分层(夜间 standard / 发布卡点 full)、结果按 report-template §7 回收;frontmatter 与 When to Use 补性能触发面。
- **e2e 断言强度自检与冒烟卡点**(automated-e2e-testing):工作流内联"断言三问"(区分度前置 / 触发方式保真 / 环境区分度)+ 工程约定 §15 完整版(反向断言示例、UI 断言三件套、弱断言黑名单)+ 工作流"基线零通过禁交付"卡点(全部测试失败视为流程认知错误,回工作流零重踩后才可交付)——X19 门同通道 On−Off 杀伤差 +0.55 实证。
- **契约与 schema 一致性**(api-testing):类型矩阵轴 10 执行层落地——schema 一致性校验(Schemathesis / jsonschema)与结构级负向 fuzzing 两层形态、与参数矩阵的分工、"schema 校验 ≠ 消费者契约"概念边界。
- **测试数据工厂**(core/methods/data-factory.md):执行层造数工程模式——makeX 构造器(TS/Python 双形态)、造数通道三选一决策表(API 造数默认 > DB 快照 > UI 造数)、前缀隔离与清理三道防线。
- **分片与门禁汇聚**(core/pipeline-integration.md §3.1):`--shard` + blob reporter + merge-reports 的分片范式与 gate job 稳定 check name(GitHub required checks 不支持 matrix job 的标准解法)。
### 变更
- **skills.sh 徽章与 core 误装补救命令(双语 README)**:徽章行补 skills.sh 安装徽章(直达收录页);core 依赖警示补具体补救命令(误单装后补跑 `npx skills add fishzjp/qa-skills --skill '*'` 或手动补拷 `core/`——此前只有抽象警示)。
- **npm 断档清偿决策登记(RELEASING)**:v0.7.0 起的断档不再逐版补发——0.8.0 定版直接同步 npm(npm 不要求版本连续;补发缺 qa-memory 的旧版反而制造第二次断档);新增踩坑 #9(跳版直发优于逐版补发,跳版只允许向前跳且 CHANGELOG 须登记跳过版本与理由)。
- **安装方式重排:`npx skills add` 提为方式一(实测解锁)**:沙箱实测 `npx skills add fishzjp/qa-skills --skill '*'` 全量安装——11 个 skill + `core/` 全部就位、`../core/` 相对引用完好(core 具备自述性 SKILL.md,会被安装器发现);单装 skill 坐实不带 core(引用断裂)。据此双语 README 与落地页把一行命令提为第一安装方式,core 依赖警示随命令就近展示;宿主数量口径按安装器实际列表由"50+"修正为"70+";落地页安装卡同步重排(npx 主位、安装脚本次位、dsh 收敛为内联命令)。
- **撤出 automated-e2e-testing 的 qa-memory 知识沉淀钩子**:X19 门 FAIL(纪律禁止带病合入),其余四个 skill 的钩子不受影响;e2e 侧待定向证据后再评估重新挂载。
- **官网落地页 v2 转正**:单文件新页(暗色视觉体系 + 动效 + Space Grotesk/JetBrains Mono)替换旧版;旧版 13 张生图配图(`assets/landing/`)与运行时生图端点依赖一并移除——页面零本地图片引用,Pages 产物收敛为 index.html + og.jpg,`pages.yml` 触发路径与产物清单同步;顺带修复 `--font-display` 变量缺失导致的标题/大数字静默回退系统字体。
- **守门脚本扩面与产品测试面建立**:`validate_skills.py` 引用校验从「SKILL.md + core/」扩展到 `skills/` 下全部 .md(references/、templates/ 此前为盲区,死链 CI 抓不到),并按框架既有路径约定(相对消费方 SKILL.md 所在目录,见 core/test-type-matrix.md 口径注)机器化强制——仅按文件自身可解析的写法判「路径基准违反约定」,两套互斥基准并存的解析歧义从源头堵住;markdown 链接形态复用跨 skill 归属判定(堵住链接绕过);docstring 清除"docs 三例外"陈旧描述,白名单清除死项 `og.jpg`;显式 `encoding="utf-8"`、`Path.relative_to` 3.8 兼容实现、`git ls-files -z` 关闭中文路径八进制转义(Windows / 老 Python 本地可跑)。新增 `tests/test_product_scripts.py`(12 例:validate_schema 退出码契约 / scan_signals YAML 转义顺序 / 引用解析基准三形态),`tests/` 入跟踪面白名单并接入 CI——此前三份随产品分发的脚本零单测;CI 同时补安装器与 dsh 插件语法门(`bash -n` / `node --check`,三大安装路径的零成本回归)。
- **随产品分发脚本的用户环境加固**:`validate_schema.py` 堵"零用例骗绿"(YAML 合法但一条 TC 未收集到时此前全绿放行——顶层 key 拼错是模型产出最常见的失败形态,现直接判 FAIL 并给出 key 提示);非 UTF-8 输入(中文 Windows 记事本 GBK 高发)由裸 traceback 改为自解释报错。`scan_signals.py` 文件读取由 `errors="ignore"` 改为 GBK/GB18030 显式回退并新增 `decode_fallback_files` meta 计数——此前非 UTF-8 老仓库的中文信号(PII/库存/秒杀等 CJK 模式)被静默丢弃整轴假阴性;补 `S_ISREG` 守卫(指向字符设备的符号链接可致无限读);行号口径对齐编辑器(`split("\n")`)。
- **对外口径对齐批**:落地页"七个环节"改为不与 README"9 阶段流水线"冲突的表述、"类型决策覆盖率"统一为 README 口径"类型查全率"、示例用例时长对齐 examples 真实产物(10 分钟);双语 README 与 RELEASING 的增益矩阵快照承诺由"每版 Release 附"诚实化为"按里程碑随 Release 附带"(v0.6.0/v0.7.0 实际未附本版快照,名实相符优先);PR 模板去除已退跟踪的 docs 指引、自检清单对齐 CONTRIBUTING 完整枚举;feature_request 的 core 文档枚举补齐 triage / pipeline-integration;RELEASING "红线 7"指称点名校验器出处、SYNC COUNT 叫法修正(11 = 10 skill + core 依赖单元,core 不是 skill);AGENTS.md 污染检查指引注明 CONTAMINATION.md 为本地维护。
- **死资产与配置清理**:删除 `assets/banner.html` / `banner-dark.html`(零引用,git 历史留档)与 `.npmignore`(package.json `files` 白名单存在时对白名单内路径无效,注释却仍宣称兜底——踩坑 6 已实证,真防线是 files 否定模式);双语 README 结构树补齐 `scripts/`、`tests/`、`index.html` 行(穷举纪律);`labeler.yml` 拆出 engineering 标签(CI / 工程配置 / 安装器 / 产品脚本改动不再误归 documentation),`index.html` 归 documentation。
- **README 文案通读润色(说人话)**:翻译腔与评测内部行话改写为平实中文——"人在环路的检查点"→"关键决策归你拍板"、"零显式类型决策"→"没有一次给出显式的类型决策"、"挂信号 / 挂证据"→"给出信号依据 / 给出证据"、"G 级信号"→"能机械扫描的信号"、"in-situ 探针"→"真实宿主抽查","类别性判读 / 宽容口径 / 梯度轮 / 噪声带 / 消融 / LLM judge"等行话改写或补白话释义(异构裁判首现处补"裁判模型与被评模型不同源"、预注册门槛补"防事后挑指标"目的注);能力总览两处压缩表述展开(可测点清单作分母、评级必须给出证据);数字、口径与事实全部未动。
- **README 双语精简改版**:三节设计论述(可执行性 / 三层架构 / 类型决策矩阵)归并为「核心设计」小节、标题由口号式改为自明式;安装指引去重(dsh 版本验证细节并入宿主兼容表,手装折叠区补齐升级说明);实测效果逐项口径与门判定块压缩,勘误沿革细节收敛为 CHANGELOG 指针;仓库结构树保持穷举;全部数字、事实与对外承诺未变。
- **规划文档与设计稿移出跟踪面**:`docs/`(DESIGN / 决策层设计稿 / v2 规划)整目录转为维护者本地资料——`git rm --cached` 退跟踪、`.gitignore` 整目录隔离(删除三文件例外放行),沿用评测链路"本地维护、不随仓库分发"先例;同步改写:`validate_skills.py` 白名单清除 docs 精确登记、CONTRIBUTING 红线 8、双语 README 摘除全部 docs 链接(工作原理 DESIGN 指针 / 延伸阅读三条 / 结构树 docs 行 / 宿主兼容性注)、`examples/README.md` DESIGN 链接摘除、`labeler.yml` 去 `docs/**` 通配。文件本体保留本地;git 历史不重写。
- **skills/ 对外文本去内部化**:清除 11 处内部迭代轮次标注("2026-08-23 Rn"——轮次沿革归 CHANGELOG,不留在产品文本);内部黑话改为自明表述("格式锤"→"格式硬约束 / 防弱模型格式漂移",中英 README 与 docs 同步;"GT 错标让飞轮"等评测内部表述改写为平实语言;删除 "exec 0.5"、"净收益 −13.5pp" 等对外未定义指标的裸引用,保留机制性结论);`test-type-matrix` 的 V1–V5 权威定义指针修正为 `core/scripts/validate_schema.py`(原指 test-strategy SKILL.md,但该文件只使用编号、从未定义);`api-testing` 四分类括注病句订正(B1/B2 口径对齐 triage);`regression-testing` 夜间档口径与 `pipeline-integration` 精确对齐(P1 全量 + P2 抽样);`qa` frontmatter description "Bug分析" 补空格。
- **脚本与工程配置小修**:`scan_signals.py` 去内部设计代号"决策层方案 B"(docstring + argparse description);`validate_schema.py` 删除模式二的不可达分支(死代码);`dependabot.yml` 注释更正(仓库已有 npm 插件包 `package.json`,因声明零运行时依赖而不配置 npm 生态,原注释"公开仓库无 package.json"已过时)。
- **目录治理**:根目录缓存与系统垃圾清除(`.DS_Store`、`.pytest_cache`、`__pycache__`、空 `.benchmarks/`——均为运行时可再生文件);2026-08-27 的两份 smoke 备份包(`.smoke_f2_backup.zip` 混合工程 fixture、`.smoke_f3_backup.zip` 畸形 schema fixture)自仓库根归档至 `eval/archive/`(本地评测区,不入库);`.gitignore` 补 `.claude/`(此前仅靠贡献者全局 git ignore 兜底,换机裸克隆会露出未跟踪项,与 `.zcode/`/`.trae/` 同族);`og.jpg` 归位 `assets/og.jpg`——落地页分享图与 hero / landing / 社交预览图统一收纳视觉资产目录,线上 URL 不变(`pages.yml` 打包时重命名回站点根 `og.jpg`,og:image 绝对 URL 与已流通分享链接均不受影响;触发路径、RELEASING 发版检查单、双语 README 结构图同步)。
### 修复
- **落地页终端"复制"按钮剔除 `$` 提示符**:按钮此前复制 `pre` 全部文本,行首 `$ ` 一并进剪贴板——粘贴进终端直接报错(首屏主行动路径上的摩擦);现在剪贴板只放可执行命令,注释行保留。
- **第二轮全项目审查修复批(2026-09-07,方法论深审 / 落地页质量 / 仓库机体 / 修复批 meta-review)**:
- **安装器自毁守卫补完(上批修复的半成品收尾)**:`REPO_ROOT`/`SRC_ROOT` 改用 `pwd -P` 物理路径——上批只改了 TARGET 侧,仓库经 symlink 别名访问时守卫两侧路径口径分叉仍可绕过(实测干跑坐实);安装器冒烟新增"别名路径把安装目标指回仓库 skills/"单元;uninstall 的动态清单补空守卫(skills/ 缺失时此前静默只删 VERSION 就报成功)。
- **headless 第二形态闭环(skills 产品本轮最重要修复)**:未决项落盘两处"统一"口径矛盾消除(qa 编排说 `流水线状态.md`、pipeline-integration 说 `证据/未决项_{日期}.md`——统一为前者,续跑凭据与人工回流入口单点化);补上回流闭环缺的半边——断点续跑现在先消费未决区已回填的裁决(增量修订产物、`budget_review` 补 `approved_by`),不再"答复永远进不了产物";补 headless 下 `budget_review` 的诚实语义(如实记 headless 未决 + 保守依据,不得写成用户已批准,回流后补批注——消除"裁 Critical = 伪造裁决 / 不裁 = V4 FAIL"的纸面死锁);qa 开工输入补对比基线 base(阶段 7 回归范围的续跑凭据)。
- **落地页外链点击不再"带走"当前页**:删除 `window.open(…, 'noopener')` 拦截——按规范该调用恒返回 null,兜底分支必然后跳当前页,且废掉 Ctrl/Cmd+点击;`rel="noopener"` 原生行为本已足够。
- **展示字体真正装车**:Space Grotesk 变量字体(latin 子集 22KB)自托管 `assets/fonts/`,`@font-face` + preload + `font-display: swap`——此前 `--font-display` 引用的字体从未被加载,标题/大数字在几乎所有访客机器上静默回退系统字体(`--font-display` 变量丢失事故的同类复发);`--mono` 摘除从未加载的 JetBrains Mono 名(SF Mono/Cascadia/Consolas 原生栈覆盖);pages.yml 部署产物与触发路径、双语 README 结构树同步。
- **滚动渐入动效复活**:36 个非首屏 `.reveal` 去掉静态 `.in`(此前 41/41 全量写死使 IntersectionObserver 空转、入场编排从不发生——"无 JS 可见"修复时误伤),补 `