4.5 KiB
4.5 KiB
name, description
| name | description |
|---|---|
| ack | 初始化、检查并运行 ACK(Agent Collaboration Kit)三角色协作闭环。仅在用户显式调用 /ack 或 $ack,并要求初始化 ACK、检查 docs/ack 配置、按 ACK 规划需求或指挥 Coordinator/Developer/Test 工作时使用。 |
ACK 项目协作入口
把全局 skill 作为入口,把项目状态留在 docs/ack/,把通用规范留在
~/.skills/kits/ack/。不要在本 skill 复制或改写 kit 的核心规范。
选择模式
- 用户要求初始化、接入或安装 ACK:执行“初始化”。
- 用户要求检查 ACK 是否可用、配置是否完整:执行“检查”。
- 用户要求用 ACK 做需求、修复问题或继续任务:执行“工作”。
始终先解析真实项目根目录。优先使用 git rev-parse --show-toplevel;不是 Git
项目时使用用户指定目录或当前目录。不要修改项目的 AGENTS.md、CLAUDE.md
或其它 Agent 指令文件。
初始化
-
确认
skiff可执行,并检查<project>/docs/ack是否存在。 -
不存在时执行:
skiff kit init ack --project <project-root>默认使用软链接模式。只有用户明确要求项目自带完整副本时才加
--copy。 -
如果
docs/ack已存在,不重复初始化、不覆盖文件;转入“检查”,报告缺失项并 只补用户授权且能安全确定的内容。 -
读取项目的公开配置和文档,例如 README、语言清单、包管理清单、测试配置与 CI,确定项目名、技术栈、源码/规格/测试路径及真实可执行命令。
-
完善
docs/ack/project.md:- 用实际项目值替换全部占位符。
- 无服务地址时把 Base URL 写为
n/a,不要虚构端口。 - 无法从项目证据确定的命令写为
n/a,并在结果中列为待配置项。 - 保留
docs/ack/kit/core/引用,不复制 core 内容。
-
完善
docs/ack/tasks.yaml的项目信息。纯初始化且用户没有提供真实任务时, 删除模板示例任务并保留tasks: [];不要虚构需求或缺陷。 -
更新
updatedAt,并运行:python3 docs/ack/kit/scripts/validate_tasks.py docs/ack/tasks.yaml -
检查
project.md与tasks.yaml是否仍有<...>占位符。结构校验通过且 必填项目事实完整时才称“初始化完成”;否则称“部分完成”并列出缺失值。 -
报告创建的路径、软链接或复制模式、检测到的命令、校验结果和下一步。除非用户 明确要求,不提交、不推送。
检查
- 检查以下路径:
docs/ack/kitdocs/ack/project.mddocs/ack/tasks.yaml
- 确认
kit可访问VERSION、core/、templates/和scripts/。软链接模式下 同时报告其真实目标。 - 对比
tasks.yaml的kitVersion与kit/VERSION。 - 查找未替换占位符,并核对项目路径、覆盖层路径、Developer 白盒命令、Test 黑盒命令和 Base URL。
- 运行任务板校验器。只报告证据明确的问题,不因可选字段缺失而宣称失败。
- 检查不会自动修复或覆盖现有配置;用户明确要求修复后再修改。
工作
- 若
docs/ack不存在,停止并建议先用/ack初始化;不要静默初始化。 - 依次读取:
docs/ack/project.mddocs/ack/tasks.yamldocs/ack/kit/core/kickoff.md- kickoff 指定且与当前任务相关的 core 文件
- 当前会话担任 Coordinator,遵守项目覆盖层中的命令、路径权限、模型路由和 worker 复用规则。项目覆盖层优先于通用示例命令。
- 新需求先写产品文档、任务拆分与可观测验收信号,更新
tasks.yaml并校验, 然后交给用户确认;确认前不派发实现。 - 用户已确认的任务按 ACK 闭环执行:Developer 实现与白盒验证,Test 独立黑盒
复测,Coordinator 读取证据终检并唯一写入
tasks.yaml。 - 不把
worker_done或 Test 自报成功直接当作完成。每项最多三轮,仍失败则记录leftover并继续其它任务。
边界
- 不修改或追加任何项目 Agent 指令文件,包括
AGENTS.md。 - 不在 skill 中维护第二份 ACK core、模板或任务 schema。
- 不猜测项目命令、服务地址、worker handle 或模型名称。
- 不覆盖已有
docs/ack文件,不擅自提交、推送、创建终端或新 worktree。 - kit 初始化的机械操作始终委托给
skiff kit init ack。