feat: add skill init/check and isolate builder makefile

Give ack, builder, and deployer an explicit init/check mode that reports
missing project config instead of failing mid-work. Point builder at
makefile.builder so its contract targets do not collide with an existing
Makefile.
This commit is contained in:
2026-08-25 16:49:28 +08:00
parent e9d2b5fde6
commit 10d8800f07
21 changed files with 1129 additions and 95 deletions
+23 -8
View File
@@ -89,10 +89,18 @@ description: >-
11. 检查 `project.md`、`tasks.yaml`、`knowledge.yaml`、`delivery.yaml` 与
`regression.yaml` 是否仍有 `<...>` 占位符。
结构校验通过且必填项目事实完整时才称“初始化完成;否则称“部分完成”并列出
缺失值
12. 报告创建的路径、检测到的命令、校验结果和下一步。除非用户明确要求,不提交、
不推送。
12. 按下面格式报告。结构校验通过且必填项目事实完整时才称完成;否则称
「部分完成」或「阻塞」并列出待配置项。除非用户明确要求,不提交、不推送
初始化 ACK **不**自动初始化 deployer 或 builder。
```text
## ack 初始化:完成 | 部分完成 | 阻塞
已具备: …
待配置: 路径 + 字段 + 可粘贴示例 + 缺了会挡住哪步
工具链: pouch …
下一步: 一句话
```
## 检查
@@ -132,6 +140,11 @@ description: >-
必须同时为空或同时填写。
缺少结构化路由的旧任务板只能使用手动模式,不能自动创建 worker。
8. 检查不会自动修复或覆盖现有配置;用户明确要求修复后再修改。
9. 若 `delivery.yaml` 已把 `intents.testEnvironment` 写成 `{via: deployer, env: <env>}`
只读运行已安装 deployer skill 的 `scripts/deploy/check.py --project <project-root>`。
未通过时列入待配置,加载 deployer skill 的「检查」说明;不要在 ACK 里复制
compose/rsync 命令,也不要静默初始化 deployer。
10. 用与「初始化」相同的报告格式,标题改为 `## ack 检查:…`。
## 工作
@@ -232,8 +245,9 @@ description: >-
1. 读取 `references/delivery.md`、deployer skill、模板、schema、现有
`delivery.yaml`、项目构建/发布入口和 CI。测试环境写成
`intents.testEnvironment: {via: deployer, env: <env>}`,并按 deployer skill
准备 `.pouch/deployer/<env>`;不要把 compose/rsync 命令写进 ACK。发版仍指向
`intents.testEnvironment: {via: deployer, env: <env>}`。若
`.pouch/deployer/<env>` 不存在或 deployer `check.py` 未通过:停止,加载
deployer skill 的「初始化」,不要在 ACK 里复制 compose/rsync 命令。发版仍指向
本文件的 profile。不要拆成第二份文档。配置只引用仓库内脚本或声明式工具
target,不保存 shell。本地 `npm run dev` / `go run` 写在 `project.md` 的
Developer 白盒命令里,不算测试环境部署。
@@ -262,8 +276,9 @@ description: >-
5. 把访问地址交给用户或随后的 Test 黑盒。证据写入 `deliveryRuns`
`intent: testEnvironment``profile` 记 `deployer-<env>``taskIds` 可为空。
6. 派发 Test 前若该 intent 已启用,必须先完成本步骤。deployer 未安装、环境目录
不存在或健康检查失败:fail closed,报告 `userAction`,不把环境失败写成产品
失败
不存在或 `check.py` 未通过:停止,加载 deployer skill 的「初始化」,报告
`userAction`,不把环境失败写成产品失败,也不要在 ACK 里发明 compose 命令
健康检查失败同样 fail closed。
## 运行回归