# Prompts and AGENTS.md for coding agents

> Copy-paste prompts for a lead screen, proposal drafts, and a task board, plus an AGENTS.md snippet that keeps a coding agent on the Workspace369 tools.

- Product: Workspace369
- Documentation version: 2026.3
- Section: Build with AI
- Last updated: 2026-10-18
- Canonical source: https://docs.workspace369.com/v/2026.3/build-with-ai/prompts-and-agents-md-for-coding-agents/

---

A coding agent builds better when it knows which tools to use and which to leave alone. This article gives you three prompts and a short instruction file you can add to a project. Each prompt uses tools that exist in the Workspace369 MCP server today. Connect your agent first with [Build a custom CRM with an AI coding agent](/v/2026.3/build-with-ai/build-a-custom-crm-with-an-ai-coding-agent/).

All prompts assume the agent already has the `workspace369` MCP server and that an admin has turned MCP on.

## Prompt 1: a client and lead screen

This builds a lead inbox and a client list, with prospects and clients kept apart.

```text
Build a lead and client screen for my team using the workspace369 MCP tools.
Do not create your own tables for clients or leads.

1. Lead inbox: call requests_search with status "new". Show name, email,
   phone, message, and form. Follow nextCursor until there are no more pages.
2. A "Convert to client" button on each lead. It must call
   requests_convert_to_client with the request_id. Show whether the client was
   created or already existed (the "created" field). Converting can start the
   workspace's own workflows, which may message the person, so ask me to
   confirm before the button does anything.
3. Client list: call clients_search and split the results into two tabs using
   each client's lifecycle_stage, which is either "prospect" or "client".
   Add a search box that passes the text as "query".
4. Client page: show the client's details from clients_get, their proposals
   from proposals_search, and their invoices from invoices_search, filtered
   to that client with the clientId argument.

Rules: server code only for tool calls, token from the environment, and show
the reason when a result has isError set. Read each tool's input schema from
tools/list before using it.
```

## Prompt 2: proposals with a deposit

This builds a form that drafts a proposal. A person sends it from Workspace369.

```text
Add a "New proposal" form to the client page using the workspace369 tools.

1. Call proposals_get_defaults and show the workspace's current signature and
   deposit settings.
2. Let me pick catalog services with products_list, set quantities, and enter
   a title.
3. Create the proposal with proposals_create_draft using the client's id, the
   title, and the line items. Use an idempotency_key so a double click does
   not create two drafts.
4. If I ask for a deposit or a signature, set it with proposals_update_draft.
5. Show a link to the draft and the total. Do NOT call proposals_send. Tell me
   the draft is ready to review and send from Workspace369.

Deposits are collected by Stripe when the client accepts, so tell me if the
workspace has no Stripe account connected instead of guessing.
```

Sending is left to the person on purpose. Even if you let the agent call `proposals_send`, it is held until the person approves it in the Workspace369 app.

## Prompt 3: a task board

```text
Build a simple task board page using the workspace369 tools.

1. Call task_boards_list and let me choose a board. Use its ordered statuses
   as the columns.
2. Call tasks_search with that boardId. Group the tasks by status. Follow
   nextCursor for more pages. Add filters for assignee_id and for overdue
   work (an assignee with due_before set to now).
3. A form to add a task with tasks_create. It needs a board id and a status
   name that exists on that board.
4. Moving a task to another column calls tasks_update with the task id, its board_id, and the new status.

Never delete anything. The workspace369 tools cannot delete tasks.
```

## An AGENTS.md or CLAUDE.md snippet

Add this to the `AGENTS.md` file in your project, or to `CLAUDE.md` for Claude Code, so every session starts with the right rules.

```markdown
## Workspace369

This project uses Workspace369 as the system of record for business data.

- Use the `workspace369` MCP tools for clients, requests (leads), proposals,
  contracts, invoices, payments, projects, tasks, and calendar events. Do not
  create database tables or local models for these records.
- Before using a tool, read its description and input schema from the tool
  list. Do not guess argument names.
- Call the tools from server code only. The access token comes from the
  `WORKSPACE369_TOKEN` environment variable. Never put it in browser code,
  logs, commits, or screenshots.
- Prefer read tools while exploring. Search tools return pages; follow
  `nextCursor` until it is empty.
- Tools that send something to a person (invoices, proposals, contracts,
  messages, workflows) are held until the user approves them in the
  Workspace369 app. If a result has `held_for_approval`, stop, show the user
  the `approval_url`, and do not call the tool again. Check the outcome with
  `approvals_get`.
- Create drafts instead of sending. Leave sending to the user.
- The tools cannot delete records, edit existing workflows, or manage team
  members. Do not try to work around that.
- Stay under 120 calls per minute. On HTTP 429, wait for the `Retry-After`
  header and retry.
- If a result has `isError`, show the reason to the user. Do not retry the
  same call unchanged.
```

## Check the result

1. Start a new agent session in the project.
2. Ask: "What rules does this project set for Workspace369?" The agent should summarize the snippet.
3. Ask it to draft a proposal. It should call `proposals_create_draft` and not `proposals_send`.
4. Open **AI Connections (MCP)** in Settings and confirm its calls appear in the **Activity Log**.
