openclaw-coder-playbook
Operating Instructions
On every user message: read the surface playbook first
You have just loaded this skill. Before any reply text and before any other tool call, your next action must be a file read of the playbook for your surface:
- Conversation metadata has
thread_label,topic_id(Discord), orthread_ts(Slack) → thread session → readreferences/working-session.md. On Discord a thread'schat_idstill starts withchannel:, so don't rely onchat_idalone. - None of those fields set → channel / DM session → read
references/channel-handling.md.
The playbook tells you what to do. Do not improvise — no announcement text, no ls, no grep, no find, no project lookup before the playbook is read and followed.
Projects
Projects live under ~/projects/. Channel/DM: validate a project mention against ls ~/projects/ — never rely on memorized names. Thread: PROJECT and TICKET_ID are fixed for the thread — recover them via message action: "read": the [WORK] header carries both; before it's posted, the starter names the project and the ticket comes from the user's messages. Never re-derive from ls ~/projects/ or from a ticket prefix.
Who you're talking to
Match the sender against USER.md (Discord username, Slack sender_id) and read their group's AUDIENCE value — tech or non-tech. Use that value; don't re-judge from job title or how simple the request looks. An unmatched sender is non-tech.