AGC 小红书导出 skill:测试按模块命名,取舍记录改回清单
- 隐藏测试 .vite-config.test.mjs 重命名为 .vite.config.xhs-minitool.test.mjs,与 pack.mjs → .pack.test.mjs、validate.mjs → .validate.test.mjs 的命名口径一致; - .selective_rule.txt 去掉日期段落,把「二次清理」的条目并进 SKILL.md / zip-artifact-spec.md 对应条目,恢复为逐文件「删除与去处」清单; - decision-log 补记 dist 收尾归 Vite 插件、pack 只读打 zip 的决策、失败语义与验证口径; - skill-pack 指纹无需重算:本次改动均为隐藏文件与文档,manifest 仍为 2026-08-26.51。
This commit is contained in:
+4
-26
@@ -1,5 +1,4 @@
|
||||
【取舍记录】minitool-zip-builder MUST-only 清理
|
||||
日期:2026-10-04
|
||||
|
||||
原则
|
||||
- references/ 只保留 MUST(必须 / 须 / 禁止 / 不得),非 MUST 的建议、可选、工具用法全部删除。
|
||||
@@ -15,12 +14,15 @@
|
||||
- 步骤 9:删掉 tsc / Vite 已保证项(语法错误、未定义函数、加载顺序),改为指向 references/MANUAL_CHECKS.md。
|
||||
- 步骤 10:删掉 Node / Python / 人工分支,改为运行 validate.mjs 与 pack.mjs。
|
||||
- 步骤 3 与 Reference 表:删掉已不存在的「目录结构 / 路径规则 / 打包自检」描述。
|
||||
- 被外部精简重写为 vite-export-xhs-minitool,只剩 Reference 表,原步骤 9 / 10 已不存在;Reference 表指向「index.html 要求」。
|
||||
- zip-artifact-spec.md
|
||||
- 删 §1 目录结构与打包方式:pack.mjs 保证 zip 根 index.html、不多套层。
|
||||
- 删 §4 路径与引用规则:base:'./' 与 pack.mjs 保证相对路径。
|
||||
- 删 §6 打包前自检:validate / pack / MANUAL_CHECKS 已覆盖。
|
||||
- 删 §5 表格里「资源全为相对路径」「脚本外置」两行(前者 Vite 保证,后者 §3 CSP 已声明)。
|
||||
- 保留 §2 文件类型、§3 容器 CSP、§5 index.html 要求。
|
||||
- 删 §5 的「index.html 模板」整段 HTML 骨架与其中的 reset / 字体 CSS;标题改为「index.html 要求」,只留要求表与 <title> 说明。
|
||||
- 原因:模板是 pack 之后的 dist 形状,对 Vite 源 index.html 是错的(源需要 <script type="module"> 入口);reset / 字体 CSS 不是容器要求;doctype / charset / lang 由 validate 的 *_MISSING 兜。
|
||||
- 保留 §2 文件类型、§3 容器 CSP、§5 index.html 要求(viewport 含 width=device-width, initial-scale=1.0, viewport-fit=cover;不用 <base href>;不引用外部资源;不自建 CSP <meta>)。
|
||||
- device-capabilities.md
|
||||
- 删 §6 能力扫描清单:validate 的禁用 API code 已全覆盖。
|
||||
- 保留 §1–§5(可用能力、禁用能力与替代、常见交互写法)。
|
||||
@@ -53,27 +55,3 @@
|
||||
口径说明(避免后续误判为缺失)
|
||||
- zip-artifact-spec.md 删除 §1 / §4 / §6 后,保留 §2 / §3 / §5,编号故意留空,未重排,避免打断跨文件引用。
|
||||
- device-capabilities.md 现止于 §5;performance-budget.md 现止于 §5;js-compatibility.md 现止于 §4;css-compatibility.md 现止于 §6。
|
||||
|
||||
后续更新规则
|
||||
- references/ 只加 MUST。建议、经验、数值标定写进脚本(带检查码)或本文件,不写回 references。
|
||||
|
||||
二次清理(同日)
|
||||
- zip-artifact-spec.md §5:删掉「index.html 模板」整段 HTML 骨架和其中的 reset / 字体 CSS;标题改为「index.html 要求」,只留要求表与 <title> 说明。
|
||||
- 原因:模板是 pack 之后的 dist 形状,对 Vite 源 index.html 是错的(源需要 <script type="module"> 入口);reset / 字体 CSS 不是容器要求;doctype / charset / lang 由 validate 的 *_MISSING 兜。
|
||||
- 保留的 4 条要求:viewport 含 width=device-width, initial-scale=1.0, viewport-fit=cover;不用 <base href>;不引用外部资源;不自建 CSP <meta>。
|
||||
- SKILL.md:被外部精简重写为 vite-export-xhs-minitool,只剩 Reference 表,原步骤 9 / 10 已不存在;Reference 表指向「index.html 要求」。
|
||||
- 本文件名由「取舍记录.txt」改为 selective_rule.txt。
|
||||
|
||||
目录调整(同日)
|
||||
- packages/pack-script、packages/validate-script、packages/vite-config-example 已合并进本 skill:
|
||||
- scripts/pack.mjs(原 packages/pack-script/pack.mjs)
|
||||
- scripts/validate.mjs(原 packages/validate-script/scripts/validate-xhs-tool.mjs,已改名)
|
||||
- scripts/vite.config.xhs-minitool.mjs(原 packages/vite-config-example/vite.config.xhs-minitool.mjs)
|
||||
- references/MANUAL_CHECKS.md(原 packages/validate-script/MANUAL_CHECKS.md)
|
||||
- pack.mjs 的 import 改为 './validate.mjs';performance-budget.md 的门禁链接改为 '../scripts/validate.mjs';xhs/packages 已空。
|
||||
|
||||
收尾职责归位(2026-10-05)
|
||||
- 背景:pack.mjs 之前会就地改写 dist(把 index.html 改成相对路径 / 去 module 痕迹 / 脚本移到 body 末尾 / 删空目录 / 兜底复制 icon),再打 zip。dist 只有跑完 pack 才合规,validate 看到的是中间态。
|
||||
- 决策:dist 收尾移进 `scripts/vite.config.xhs-minitool.mjs` 的 `xhsMinitoolArtifactPlugin`(`closeBundle` 钩子,`apply: 'build'` + `enforce: 'post'`)。构建结束 dist 即合规;`pack.mjs` 只做白名单预检与打 zip,不再写盘。
|
||||
- 口径:编译约束留在 `minitoolBaseConfig`,收尾只在插件里做一次,禁止在 pack 或项目脚本里重复。
|
||||
- 验证:`scripts/.vite-config.test.mjs` 真跑一遍 `vite build`,断言 dist 无 `type="module"` / `crossorigin` / 根路径、脚本在 body 末尾、空目录被清、`copyPublicDir: false` 时 icon 兜底;`scripts/.pack.test.mjs` 断言 pack 不再改写 index.html。
|
||||
|
||||
@@ -1,5 +1,15 @@
|
||||
# 决策记录
|
||||
|
||||
## 2026-10-06 小红书导出 skill:dist 收尾归 Vite 插件,pack 只读打 zip
|
||||
|
||||
- 背景:`vite-export-xhs-minitool` 的 `pack.mjs` 之前会就地改写 dist(相对路径 / 去 `type="module"` / `crossorigin` / 脚本移到 body 末尾 / 清空目录 / 兜底复制 icon)再打 zip;dist 只有在跑完 pack 后才合规,`validate.mjs` 看到的是中间态,打包脚本也因此同时承担「整理产物」与「打 zip」两件事。
|
||||
- 决策(职责边界):dist 收尾移进 `scripts/vite.config.xhs-minitool.mjs` 的 `xhsMinitoolArtifactPlugin`(`apply: 'build'` + `enforce: 'post'` 的 `closeBundle`);`minitoolBaseConfig` 只保留编译约束。构建结束 dist 即合规,`pack.mjs` 只做白名单预检与打 zip,不再写盘;`--vite-built-dir` / `--zip-out` 契约与产物落点不变,已适配项目无需改脚本。
|
||||
- 决策(失败语义):rollup 在构建失败时也会调 `closeBundle`,插件用 `buildEnd(error)` 记下失败并直接返回,避免留下只复制了 icon 的半成品 dist,也避免用插件的「index.html 不存在」盖掉真正的语法报错。
|
||||
- 注:本条同时取代 2026-10-05 条目里 `--out-dir` 与「就地删掉非白名单扩展名文件」的旧描述——现行参数是 `--vite-built-dir`,且只预检、不删除、不改写。
|
||||
- 影响范围:`resources/agc-skills/vite-export-xhs-minitool/{SKILL.md,.selective_rule.txt,scripts/{pack.mjs,vite.config.xhs-minitool.mjs}}` 与其 `resources/agc-skills/manifest.json` 指纹、`scripts/.pack.test.mjs`(补「pack 不改写 index.html」)、新增隐藏开发辅助 `scripts/.vite.config.xhs-minitool.test.mjs`(真跑 `vite build` 断言收尾、`copyPublicDir: false` 的 icon 兜底、失败不收尾、`pruneEmptyDirs` 只删空目录)。隐藏测试不进清单、不改 `skill_pack.rs` 的 `include_bytes!` 条目数(仍 36),manifest version=2026-08-26.51。
|
||||
- 验证方式:`node --test scripts/.vite.config.xhs-minitool.test.mjs scripts/.pack.test.mjs scripts/.validate.test.mjs`(30 passed)、`npm run agc:skill-pack:check`、`git diff --check`、`npm run check:encoding`。
|
||||
- 边界:仍是小红书小工具一个目标的适配脚本;宿主 `export/draft/xhs_minitool` 链路不变,第二目标出现时再抽 target 描述符。
|
||||
|
||||
## 2026-10-05 导出产物面板:适配归 code agent,宿主只校验并运行项目脚本
|
||||
|
||||
- 背景:AGC 需要把项目导出成第三方平台制品,首个目标是小红书小工具。平台不给上传 API,用户只能人工上传;而制品规范(zip 根目录、扩展名白名单、尺寸上限、`index.html` 要求)会随平台变化。把规范复刻进 Rust 等于在客户端养一份会过期的第二真源。
|
||||
|
||||
Reference in New Issue
Block a user