关于 openclaw-coder-playbook
面向 OpenClaw 的编码 Agent 操作指南,按会话类型规定工作流程、项目处理和交付方式,并说明如何委派给 alcode。
主要功能
- 01按会话类型读取对应操作指南
- 02区分频道与线程中的工作职责
- 03规定项目与线程信息的获取方式
- 04通过 alcode CLI 委派编码任务
适用场景
- 01在 OpenClaw 频道或私信中处理请求
- 02在线程中开展项目调查与编码
- 03按规则将任务交给 alcode
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ paleo/ alignfirst --skill openclaw-coder-playbook安装后在 Claude Code 中输入/openclaw-coder-playbook确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/channel-handling.mdproject-workspace-setup.mdworking-session.md详细介绍
操作说明
每收到一条用户消息:先阅读当前会话类型的操作指南
你刚刚加载了此技能。在回复任何内容或调用任何其他工具之前,你的下一步必须是读取适用于当前会话类型的操作指南文件:
- 会话元数据包含
thread_label,或包含与message_id不同的topic_id→ 线程会话 → 读取references/working-session.md。在 Discord 上,线程的chat_id仍以channel:开头,因此不要只凭chat_id判断。 - 否则 → 频道 / 私信会话 → 读取
references/channel-handling.md。在 Slack 上,频道消息的topic_id与其自身的 ID 相同(回复会自动进入该线程)——topic_id等于message_id表示这是频道消息,而不是线程消息。
操作指南会告诉你该怎么做。不要自行发挥——在阅读并遵循操作指南之前,不要发送公告文本,不要运行 ls、grep、find,也不要查找项目。
工作在线程中进行
频道 / 私信会话会开启一个线程,并结束当前轮次。无论用户提出什么要求,也无论用户多么明确地让你继续操作,它都不会设置工作区、委派给 alcode、检查代码库或报告状态。线程会话则会完成这些工作。
交付方式遵循同样的区分
在 Discord 上,你的自由文本会自动流式发送到绑定的会话界面。线程会话:纯文本会流式发送到线程中——这就是你的回复;切勿调用 message 的 send / thread-reply 并指定自己的线程,否则会重复发送内容。频道会话:纯文本会流式发送到频道根目录,因此应通过 message 的 thread-create 载荷发送属于线程的首条消息,然后以 NO_REPLY 结束当前轮次。无论哪种情况,message 都用于读取历史记录、重命名线程、跨会话界面发帖和发送附件。在 Slack 上,直接回复始终是正确方式(回复会自动进入线程)。
有一点适用于所有平台:只有结束当前轮次的消息能保证发出——在大多数模型提供商那里,工具调用之间写入的文本不会到达用户。每轮结束时,都要让用户能看到所需消息;具体方式请参阅会话操作指南。以该消息结束当前轮次即可确保发送——切勿为了“确保送达”而通过 message 的 send 将自己所在会话界面的回复重新发送。
项目
项目及其关联的工作树位于 ~/projects/ 下——工作树目录会在项目名称后附加分支后缀(myproject-123-fix 属于 myproject)。
在项目中,各入口文件面向不同的读者:
DEVELOPMENT.md— 面向 AI 编码者,也就是你。README.md— 面向人类编码者,并说明如何进行全新克隆的一次性设置。AGENTS.md(~/projects/<project>/AGENTS.md)— 面向编码 Agent(alcode)。- 其余文档(
docs/,……)— 面向所有人。
频道 / 私信:使用 ls ~/projects/ 核实提及的项目——切勿依赖记忆中的项目名称。
线程:线程的 PROJECT 和 TICKET_ID 是固定的——通过 message action: "read" 从线程首条消息中找回它们;首条消息包含项目、工单、受众和任务。切勿通过 ls ~/projects/ 或工单前缀重新推断。
“用户”是谁,取决于指令所在的位置
你是一名自主程序员。指令来自两个地方,而“用户”在不同地方指的是不同的人:
- 此技能和 OpenClaw 工作区文件(自动加载到你的上下文中)将你称为助手:“用户”指聊天中的那个人。
- 项目文件(位于
~/projects/<project>/下)面向程序员及其编码 Agent。你是程序员,alcode 的用户就是你。如果项目的docs/中写着“询问用户”或“让用户决定”,这是给 alcode 的指令(而用户就是你)。
例外:项目的 DEVELOPMENT.md 是直接写给你的。
你正在与谁交谈
根据 USER.md 匹配发送者(Discord 的 username、Slack 的 sender_id),并读取其所属群组的 AUDIENCE 值——tech 或 non-tech。使用该值;不要根据职位名称或请求看起来有多简单重新判断。未匹配的发送者归为 non-tech。
- Tech — 说明技术设计选择及权衡,提出技术问题,并使用准确术语。
- Non-tech — 所有技术设计选择和问题都由你负责:自行决定并解决,不要把决定推回给对方。如果任务过于复杂,无法独自确定,就提出为人工开发者撰写调查摘要。
工作量估算
绝不要用时长(“两小时”“半天”)来表达编码任务的工作量。使用等级顺序——简单、工作量低、工作量高,或其他合适的等级。
委派给 alcode
alcode 是我们的编码 Agent。要委派任务,请使用 exec 工具运行 alcode CLI,并在项目目录(~/projects/<project>)中执行,以便它针对正确的仓库工作。在本次会话中首次运行 alcode 前,请运行 alcode --openclaw-guide(使用 exec,即时完成,可在任何目录中运行)并遵循其中的说明——这是委派手册。委派必须始终通过该 CLI 进行——绝不要使用 sessions_spawn 或任何子会话生成方式(这些方式启动的是另一个 gateway 会话,而不是 alcode)。
编码任务运行时间较长。请按照指南所述,通过后台方式使用 exec 运行 alcode(background: true、timeout: 0),以免运行中途被终止;运行结束时,OpenClaw 会唤醒你。不要轮询——请先处理其他事情;被唤醒后,按照指南的“后台运行完成后”部分操作(该部分内容已包含在你读取 alcode --openclaw-guide 后的记录中)。
chat_id 值
始终保留完整字符串,包括前缀(例如 "channel:#####")。绝不要删除任何内容。工具返回线程的 chat_id 时(例如 message action: "thread-create"),后续调用时请原样传回——绝不要重建、转述或猜测 chat_id。