Walkthrough

From a request to durable work

See the complete developer path: an assistant captures a follow-up, Briefs records it, and a client reads the item and its history.

The scenario

A user tells an assistant: “Follow up with the design team about the onboarding flow next Tuesday.” Your application wants that request to become durable work that can be reviewed in Daily or a custom interface.

1. Capture through MCP

The assistant calls the Briefs MCP adapter. It does not need to know how Postgres, actors, or activity records are stored.

MCP tool call
items_create({
  "name": "Follow up with the design team about onboarding",
  "kind": "task",
  "description": "Discuss the onboarding flow next Tuesday",
  "status": "open"
})

2. Briefs persists the work

The MCP tool calls the System API with the authenticated bearer token. The API validates the input against itemCreateInputSchema, creates the Item, resolves the acting Actor, and appends an Activity in the same write path.

Created item
{
  "id": "item_123",
  "name": "Follow up with the design team about onboarding",
  "kind": "task",
  "status": "open",
  "ownerActorId": "actor_456"
}

3. Read it from any client

A web client can read the projection through REST and render it however its users need. Daily is the reference client, but a CRM, operations console, or internal tool can use the same endpoints.

REST
GET /api/v1/items/item_123
Authorization: Bearer <access-token>

GET /api/v1/items/item_123/activities
Authorization: Bearer <access-token>

4. Build on the contract

A custom client can share the schemas and UI primitives, then own its presentation and workflows:

Client imports
import { itemSchema } from "@briefs/shared/item";
import { AppShell } from "@briefs/web-shared";

const item = itemSchema.parse(await response.json());

The result is a client that can evolve independently without creating a second work model or losing the activity history created by assistants and services.

Where to start

Run the local stack with the Quickstart, inspect the reference client in client/web/daily, then follow Build a client to create your own interface.