Adding Agents

A guide for getting Claude to build automation agents for you β€” like "every morning, count tomorrow's checkouts and post to Slack." Describe your idea in a sentence and Claude investigates, asks questions, and plans it with you. Also clarifies what only humans can do (approve, activate).

What is this?

The platform can run automation agents: small jobs that run automatically on a schedule β€” like "every morning, count tomorrow's checkouts and post the number to Slack."

Your part is to describe the automation in plain words and hand it to Claude. Claude then builds it by following the /add-agent-to-platform skill. A few steps, though, are deliberately human-only (so nothing goes live on its own).

Symbols on this page:

  • πŸ€– = a step you hand to your Claude (copy-paste the prompt)
  • πŸ‘€ = a step you do by hand
  • πŸ›  = a step only an admin / owner can do (ask one if you can't)

This assumes Claude is already connected to the platform via MCP. If not, do Connect Claude (MCP) first.

What can an agent do? (three output types)

TypeWhat it doesWrites data?
NotifyJust tells you in SlackNo (simplest β€” best starting point)
ProposeCreates a change, applied only after a human approvesOnly after approval
ReportWrites a text summaryNo

There are two ways it runs (the "route"). Usually DSL (follows fixed steps; normally no extra AI cost); only when judgment is needed does it use an LLM agent (token cost). You don't have to choose β€” Claude decides by looking at the task (when in doubt, DSL wins).

If you only want to move an existing app job onto the platform's schedule (the logic already lives in the app), Claude can use a minimal setup called trigger β€” almost no new code.

Before you start (prerequisites)

What you needWhyWho
MCP connectedSo Claude can read data and register the instructionπŸ‘€ If not, see the connect guide
A rough idea in words of the automationTo kick off the conversation with ClaudeπŸ‘€ You
The data exists on the platform (bookings, shifts, staff meals, pricing, recruiting, etc.)It's the agent's source dataπŸ‘€ Confirm (ask Claude if unsure)
Ability to change code and open a PRFor any new logicπŸ€– Claude writes it β†’ πŸ‘€ you review/merge
An agent-console admin who can approve/activate, or one to askThe final step to go liveπŸ›  Admin

Adding an agent is not "one prompt and done." It's usually two tracks: a code change (PR) and governance setup. Claude writes the code; you review/merge it via the normal Minor Changes flow.

Step 1 β€” Plan it together with Claude πŸ‘€ β†’ πŸ€–

You don't need to write a finished spec up front. Describe what you want to automate in a sentence or two, and Claude will (1) update the repo to the latest, (2) read the /add-agent-to-platform skill, (3) investigate this monorepo's conventions, the real data visible via MCP, and existing agents worth referencing, and (4) come back with feasibility and spec questions for you. You answer, and the implementation plan takes shape through the conversation.

Starting in Claude Code's Plan Mode lets you review and adjust the plan before any code or PR is written.

πŸ€– Kick off the planning conversation (edit only the last line)
Claude prompt
I want to build a business-automation agent using this Vibe Coding Platform's Agent Console. First, update this repository to the latest, and read and understand the /add-agent-to-platform skill. Then, to turn the automation idea below into an implementation plan, investigate: - this monorepo's conventions and spec, - the real data available via MCP, - existing agents that could serve as references. Then surface any feasibility and spec questions and ask me (don't start implementing yet). Automation I want to build: (briefly describe what you want to automate β€” e.g. "Every morning, tell staff on Slack how many rooms check out tomorrow.")

A one- or two-line idea is enough for "Automation I want to build." Three common shapes:

  • Notify β€” every morning, tell staff on Slack how many rooms check out tomorrow
  • Propose β€” auto-draft next month's shifts for a manager to approve and confirm
  • Report β€” summarize last week's handover notes into key points

Notify vs. propose: notify just tells you in Slack and stops. Propose creates a draft that only takes effect after a human approves it in the console (nothing in production changes until then).

From here Claude asks its questions, folds in your answers, and settles the implementation plan (route / output / write_policy / data / schedule / how personal info is handled). Once you agree, it writes code and opens a PR (if needed) and drafts the instruction. The next section clarifies how much Claude can do and where the human's job begins.

Step 2 β€” What Claude (MCP) can do vs. what humans must do πŸ€–πŸ‘€πŸ› 

This is the key distinction. Claude (via MCP) can go as far as "draft and configure," but it cannot "approve" or "activate" β€” those are deliberately human-only for safety.

StepWhoNote
Share the idea & answer questionsπŸ‘€ YouThe Step 1 planning conversation
Build the logic / write code (when needed)πŸ€– ClaudeDSL first; new code via a normal PR
Review / merge the PRπŸ‘€ YouThe Minor Changes flow
Register / draft the instructionπŸ€– Claude (MCP) or πŸ›  adminThe authoring tools require admin rights
Set the schedule (what time it runs)πŸ€– Claude (MCP) or πŸ›  adminOr the console Schedule editor
Set the Slack channelπŸ›  console (pick by name) / πŸ€– MCP needs an IDConsole picker is the easy, name-based way
ApproveπŸ›  Human only (console)Not possible via MCP
ActivateπŸ›  Human only (console)Only now does it become live
Toggle write_policy (propose / auto)πŸ›  Admin (console)"Auto" applies without approval
Test run (Run now)πŸ›  Admin (console)Run it once by hand
Env vars, inviting the Slack bot, etc.πŸ›  OwnerThe groundwork to run it
View run resultsπŸ€– Claude (MCP run_read) / πŸ‘€ consoleMCP run_read has no personal info; console report bodies may show staff names

Why are approve and activate human-only? They're the safety valve that keeps an agent from going live on its own. Claude does the "prep"; a human always gives the GO. If you're not an admin, ask one for these two.

Step 3 β€” Test β†’ schedule β†’ Slack (finishing up)

Once the code (PR) is merged and the instruction is registered, three finishing steps remain.

β‘  Test it first (Run now) πŸ›  / πŸ€–

Don't jump straight to daily. Run it once by hand and check the result. A console admin does this with "Run now" (πŸ› ). You can also have Claude check the result:

πŸ€– Have Claude review the latest run
Claude prompt
Using the run_read tool, show me the latest run of the agent I just made. Did it succeed, how many items did it process, and if there were any failures or "0 results," why?

"0 results" can still be a success. By design it doesn't notify when there's nothing to report, so "nothing in Slack" doesn't always mean "broken." Check the run result first.

β‘‘ Put it on a schedule πŸ€– / πŸ› 

If the test looks good, set the run time. You can ask Claude (or use the console Schedule editor, πŸ› ):

πŸ€– Have Claude set the schedule
Claude prompt
Please schedule this agent to run automatically every morning at 7:00 (Japan time). Once set, tell me the schedule now in effect (days, time, timezone).

For scheduled runs, the owner must have the worker turned ON (RUNNER_WORKER_ENABLED=true) (πŸ› ). If it's set but not running, check this first.

β‘’ Set the Slack channel πŸ›  (console)

Decide which channel the notifications go to. The easiest way is to pick the channel from the list on the instruction page in agent-console β€” you choose it by name (no ID hunting; it's resolved to the correct ID under the hood).

Setting it via MCP (Claude) currently needs the channel ID (C… / G…) β€” MCP has no nameβ†’ID lookup yet. Get the ID from Slack's channel details β†’ "Copy channel ID." To choose by name, the console picker is easier.

To post to a private channel, the owner must invite the bot to that channel (πŸ› ). Public channels usually don't need this. If it's set but nothing arrives, suspect a missing invite.

Troubleshooting

SymptomMeaning / fix
Doesn't run on scheduleIs it activated? Is the schedule ON? Is the worker ON on the owner side (πŸ› )?
No Slack notificationDid you set the channel? For a private channel, is the bot invited? Or it may be 0 results = skipped (by design). Check the run result first.
Approved but nothing appliedCheck write_policy and the approver's token permissions (πŸ› ).
Numbers look wrong / data is staleAsk Claude to check the read tools used and the row limit.
Claude can't see the new toolsRight after a deploy, restart (reconnect) the MCP client.

Quiz

Quiz

Who can perform the final 'approve' and 'activate' that take an agent live?

What's next

Once your agent is live, you'll eventually want to tune or fix it β€” "only flag it when the signal is strong," "run it earlier," "post somewhere else." That's a different (but just as Claude-guided) flow: see Modifying Agents.