This skill is config-driven. All board IDs, column IDs, and names come from plugin config (see frontmatter above). For this installation:
{{config.board_id}}{{config.owner_name}}{{config.agent_name}}ColumnConfig KeyDefault IDTypePurposeStatuscolumns.status``color_mm0yr4nmstatusActive / Done / BlockedCheck Frequencycolumns.check_frequency``text_mm0y6b8rtextHow often to check: 1h, 2h, 4h, 8h, dailyLast Checkedcolumns.last_checked``date_mm0y8p9jdateWhen agent last reviewed this itemDetailscolumns.details``long_text_mm0yce5elong_textFull definition of done, context, blockersAssigned Bycolumns.assigned_by``color_mm10z99xstatusWho created/assigned this task
{{config.assigned_by_labels.owner}}): Only {{config.owner_name}} can mark them Done. Agent may suggest completion but must NOT change status to Done.{{config.assigned_by_labels.agent}}): Agent can mark them Done independently.{{config.api_token_env}} in ~/.openclaw/.envhttps://api.monday.com/v2 (GraphQL)Authorization: <token>This is the core loop. Every hour, a cron job fires and the agent runs a real work session — not just a status check.
Execute the plan:
Write an update on the main accountability item in Monday (Updates section) with what was done and results
If stuck, blocked, or unsure what to do next:
{{config.owner_name}} or others. Don't limit yourself. If someone else has the context or ability to unblock you, reach out to them directly.{{config.owner_name}} can do that{{config.board_id}} with create_item mutation{{config.assigned_by_labels.owner}} or {{config.assigned_by_labels.agent}} depending on who initiated itEvery day at 9:00 AM, review all active items and write a consolidated update to {{config.owner_name}}.
Sub-items are used as subtasks under each accountability item. They represent specific work units.
graphql
mutation { create_subitem(parent_item_id: PARENT_ID, item_name: "SUBTASK_NAME") { id } }
graphql
{ items(ids: [PARENT_ID]) { subitems { id name column_values { id text value } } } }
Replace BOARD_ID with {{config.board_id}} and column IDs with values from config.
graphql
{ boards(ids: BOARD_ID) { items_page(limit: 50) { items { id name column_values { id text value } updates(limit: 3) { body created_at } subitems { id name column_values { id text value } } } } } }
graphql
mutation { create_item(board_id: BOARD_ID, item_name: "TITLE", column_values: "{\"DETAILS_COL\":{\"text\":\"DETAILS\"},\"FREQ_COL\":\"FREQ\",\"ASSIGNED_COL\":{\"label\":\"OWNER_LABEL\"}}") { id } }
graphql
mutation { create_update(item_id: ITEM_ID, body: "<p>UPDATE_HTML</p>") { id } }
graphql
mutation { change_column_value(board_id: BOARD_ID, item_id: ITEM_ID, column_id: "LAST_CHECKED_COL", value: "{\"date\":\"YYYY-MM-DD\"}") { id } }
Status labels: Working on it (1/orange), Done (2/green), Stuck (0/red)
graphql
mutation { change_column_value(board_id: BOARD_ID, item_id: ITEM_ID, column_id: "STATUS_COL", value: "{\"label\":\"Working on it\"}") { id } }
Run scripts/monday-api.sh for common operations:
bash
export MONDAY_API_TOKEN="your_token"
export MONDAY_BOARD_ID="your_board_id"
# List items
bash scripts/monday-api.sh list
# Add update to item
bash scripts/monday-api.sh update <item_id> "<html body>"
# Set last checked
bash scripts/monday-api.sh checked <item_id>
{{config.messaging_hours.start}} – {{config.messaging_hours.end}} ( {{config.messaging_hours.timezone}}) unless it's genuinely urgent{{config.owner_name}} can be messaged anytime if something is truly urgentBefore doing ANY work on an accountability item, you MUST read the full Document/Details column on that item first. This contains important context, constraints, and explicit instructions about what to do and what NOT to do. Skipping this step has caused the agent to undo previous decisions. No exceptions.
When spawning any sub-agent for work on an accountability item, you MUST include the full text from the item's Details/Doc column in the sub-agent's task prompt. This includes constraints, warnings, history, and explicit "DO NOT" instructions. The sub-agent has no memory of previous sessions — if it doesn't get the context in its prompt, it will make decisions that contradict prior decisions.