# ACK ACK 是一个显式调用的 Agent Skill,用三种独立角色运行工程协作闭环: - Coordinator 拆解需求、派发任务并终检。 - Developer 实现并执行白盒验证。 - Test 独立执行黑盒复测。 关键约束是验证者不等于实现者。每个任务最多修复三轮,仍未通过时记录为 `leftover`,然后继续处理其它任务。 ## 安装 全局安装: ```bash skiff add ack -g ``` 或只安装到当前项目: ```bash skiff add ack ``` ACK 只在用户显式调用 `/ack` 或 `$ack` 时运行。 ## 初始化项目 ```bash skiff init ack skiff init ack --project ~/code/my-app ``` 初始化后,项目只保存自己的 ACK 状态: ```text docs/ack/ ├── project.md └── tasks.yaml ``` 不会在项目中复制或链接 ACK Skill。通用规范、模板和脚本始终从已安装的 Skill 目录读取。 ## Skill 结构 ```text skills/ack/ ├── SKILL.md ├── README.md ├── VERSION ├── references/ # 三角色规范、闭环流程和初始化说明 ├── templates/ # project.md 与 tasks.yaml 模板和 schema ├── examples/ # 完整示例 └── scripts/ # tasks.yaml 与 worker 命令校验器 ``` `SKILL.md` 是 Agent 的工作流入口。`references/` 是按需读取的稳定规范; `docs/ack/project.md` 只保存当前项目的命令、路径和权限差异; `docs/ack/tasks.yaml` 保存当前任务状态。 ## 检查任务板 Agent 会从当前 ACK Skill 目录解析校验脚本: ```bash python3 /scripts/validate_tasks.py docs/ack/tasks.yaml ``` ## 开始一个需求 初始化完成后可以直接说: ```text /ack 处理这个需求:<一句话需求> ``` Coordinator 会先读取项目状态和 `references/kickoff.md`,生成产品文档、任务拆分与 可观测验收信号;用户确认后才派发实现和复测。 ## 版本 当前 Skill 版本见 `VERSION`。新项目在 `tasks.yaml` 中记录 `ackVersion`。旧项目的 `kitVersion` 可以继续读取,但建议迁移为 `ackVersion`。