适配指令补上包根在 game/ 时的产物落点
- 适配与修复指令的产物契约补一句:路径相对项目根,而 npm 包根通常是 game/ 子目录,所以落点参数要写成 ../.export/xhs-minitool.zip(相对路径按脚本的工作目录解析)。缺这句时 agent 会把 zip 写到 game/.export/ 下,宿主只能报产物缺失,白跑一轮修复。 - 两例前端用例各加一条断言钉住这个落点。 - skill 的 AGC 契约不再给出 <项目根>/.export/xhs-minitool.zip 这个只在包根等于项目根时才成立的写法,改为只声明产物位置并把相对路径的解析规则指回 `node pack.mjs --help`;manifest 同步到 2026-08-26.42。
This commit is contained in:
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"schemaVersion": "agc-skill-pack.v1",
|
"schemaVersion": "agc-skill-pack.v1",
|
||||||
"version": "2026-08-26.41",
|
"version": "2026-08-26.42",
|
||||||
"skills": [
|
"skills": [
|
||||||
{
|
{
|
||||||
"name": "agc-unity-editor",
|
"name": "agc-unity-editor",
|
||||||
@@ -204,7 +204,7 @@
|
|||||||
"scripts/validate.mjs",
|
"scripts/validate.mjs",
|
||||||
"scripts/vite.config.xhs-minitool.mjs"
|
"scripts/vite.config.xhs-minitool.mjs"
|
||||||
],
|
],
|
||||||
"sha256": "9799b44c6de4c375148abdeb9dcbbe8c0acdf0eea11511c9f9da2cda96f6af7c"
|
"sha256": "3ed83d2d8bdfbeaefe9e22c36687f146c20ee2b971c7a4f73cf8bdf4bc8dc69c"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -18,7 +18,7 @@ metadata:
|
|||||||
宿主只按三条硬契约校验, 接入的项目 MUST 逐条满足:
|
宿主只按三条硬契约校验, 接入的项目 MUST 逐条满足:
|
||||||
|
|
||||||
- npm 包 (声明 `package.json` 的那层目录) MUST 声明脚本 `build:xhs-minitool`.
|
- npm 包 (声明 `package.json` 的那层目录) MUST 声明脚本 `build:xhs-minitool`.
|
||||||
- 该脚本跑完 MUST 在项目根留下非空的 `.export/xhs-minitool.zip`; 用 `pack.mjs --zip-out <项目根>/.export/xhs-minitool.zip` 指定落点, 不要依赖默认文件名.
|
- 该脚本跑完 MUST 在项目根留下非空的 `.export/xhs-minitool.zip`; 落点用 `pack.mjs --zip-out` 显式指定, 不要依赖默认文件名 (相对路径的解析规则见 `node pack.mjs --help`).
|
||||||
- `pack.mjs --out-dir` MUST 只指向 vite 构建输出目录: 它会就地删掉该目录里白名单之外的扩展名文件, 指向源码目录会删掉用户代码.
|
- `pack.mjs --out-dir` MUST 只指向 vite 构建输出目录: 它会就地删掉该目录里白名单之外的扩展名文件, 指向源码目录会删掉用户代码.
|
||||||
|
|
||||||
把示例脚本拷贝到 `<项目根>/.export/` 下再改 (拷贝是项目自己的代码, 允许改路径与入口);
|
把示例脚本拷贝到 `<项目根>/.export/` 下再改 (拷贝是项目自己的代码, 允许改路径与入口);
|
||||||
|
|||||||
+2
-2
@@ -55,7 +55,7 @@ export function buildXhsMinitoolAdaptationInstruction(
|
|||||||
'',
|
'',
|
||||||
'宿主按下面三条硬契约校验,请逐条满足(做不到就直接说明卡在哪一条,不要糊一个假产物):',
|
'宿主按下面三条硬契约校验,请逐条满足(做不到就直接说明卡在哪一条,不要糊一个假产物):',
|
||||||
`1. npm 包里声明脚本 \`${XHS_MINITOOL_SCRIPT_NAME}\`。npm 包根 = 声明 package.json 的那个目录(通常是 game/)。`,
|
`1. npm 包里声明脚本 \`${XHS_MINITOOL_SCRIPT_NAME}\`。npm 包根 = 声明 package.json 的那个目录(通常是 game/)。`,
|
||||||
`2. 跑完这个脚本,\`${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\` 必须存在且非空(相对项目根)。`,
|
`2. 跑完这个脚本,\`${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\` 必须存在且非空:这个路径相对**项目根**,而 npm 包根通常是 game/ 子目录,所以落点参数要写成 \`../${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\`(相对路径按脚本的工作目录解析)。`,
|
||||||
`3. \`${XHS_MINITOOL_REGISTRY_RELATIVE_PATH}\` 是宿主的注册表,形状只能是 ${XHS_MINITOOL_REGISTRY_SHAPE}:`,
|
`3. \`${XHS_MINITOOL_REGISTRY_RELATIVE_PATH}\` 是宿主的注册表,形状只能是 ${XHS_MINITOOL_REGISTRY_SHAPE}:`,
|
||||||
' 三个字段都是字符串,不要增删键、不要加状态字段。可以按产物实际情况填 name 与 introduction;',
|
' 三个字段都是字符串,不要增删键、不要加状态字段。可以按产物实际情况填 name 与 introduction;',
|
||||||
' iconPath 是项目内相对路径,留空由用户在面板里选文件。',
|
' iconPath 是项目内相对路径,留空由用户在面板里选文件。',
|
||||||
@@ -94,7 +94,7 @@ export function buildXhsMinitoolRepairInstruction(
|
|||||||
'',
|
'',
|
||||||
'同一份硬契约(宿主会按它校验):',
|
'同一份硬契约(宿主会按它校验):',
|
||||||
`1. npm 包根(声明 package.json 的目录,通常是 game/)里声明脚本 \`${XHS_MINITOOL_SCRIPT_NAME}\`。`,
|
`1. npm 包根(声明 package.json 的目录,通常是 game/)里声明脚本 \`${XHS_MINITOOL_SCRIPT_NAME}\`。`,
|
||||||
`2. 跑完它,\`${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\` 必须存在且非空。`,
|
`2. 跑完它,\`${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\` 必须存在且非空;它相对项目根,包根在 game/ 时落点要写成 \`../${XHS_MINITOOL_ARTIFACT_RELATIVE_PATH}\`。`,
|
||||||
`3. 打包装脚本的 \`--out-dir\` 只能指向 vite 构建输出目录,绝不能指向源码目录。`,
|
`3. 打包装脚本的 \`--out-dir\` 只能指向 vite 构建输出目录,绝不能指向源码目录。`,
|
||||||
'',
|
'',
|
||||||
`上下文:适配说明与上次的结论在 .export/xhs-minitool.pack.mjs 顶部注释里,示例脚本来自 \`${XHS_MINITOOL_SKILL_NAME}\` skill。`,
|
`上下文:适配说明与上次的结论在 .export/xhs-minitool.pack.mjs 顶部注释里,示例脚本来自 \`${XHS_MINITOOL_SKILL_NAME}\` skill。`,
|
||||||
|
|||||||
@@ -77,6 +77,8 @@ describe('交给 code agent 的指令', () => {
|
|||||||
);
|
);
|
||||||
// pack.mjs 会删 --out-dir 里的非白名单文件,这条坑必须写进指令正文。
|
// pack.mjs 会删 --out-dir 里的非白名单文件,这条坑必须写进指令正文。
|
||||||
expect(instruction).toContain('--out-dir');
|
expect(instruction).toContain('--out-dir');
|
||||||
|
// 包根在 game/ 时落点要回退一层,否则 zip 落在 game/.export/ 下,宿主必然报产物缺失。
|
||||||
|
expect(instruction).toContain('../.export/xhs-minitool.zip');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('修复指令带上宿主的失败现场', () => {
|
it('修复指令带上宿主的失败现场', () => {
|
||||||
@@ -88,6 +90,7 @@ describe('交给 code agent 的指令', () => {
|
|||||||
expect(instruction).toContain(PROJECT_PATH);
|
expect(instruction).toContain(PROJECT_PATH);
|
||||||
expect(instruction).toContain('.export/xhs-minitool.zip 不在');
|
expect(instruction).toContain('.export/xhs-minitool.zip 不在');
|
||||||
expect(instruction).toContain('build:xhs-minitool');
|
expect(instruction).toContain('build:xhs-minitool');
|
||||||
|
expect(instruction).toContain('../.export/xhs-minitool.zip');
|
||||||
});
|
});
|
||||||
|
|
||||||
it('每个失败变体都有一句人话与下一步', () => {
|
it('每个失败变体都有一句人话与下一步', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user