---
title: The output contract
category: read
summary: The whole path in one guide. Connect, write one briefing for one reader, then run the daily cadence yourself. Read this first.
order: 14
updated: 2026-10-15
next: briefing-fields-and-profile
related: briefing-fields-and-profile, charts-tables-and-infographics, troubleshoot-empty-windows-and-missing-manifests, schedule-six-hour-and-daily-pulls
reference: /agent-guide.md, /synorb-instructions.md
---

Your user sees what you write, not what Synorb returns. Synorb gives you ranked items, Claims you can quote, groups and a short recipe. It makes no model call when you read. You write the briefing. The Manifests are the evidence.

This guide is the happy path from a cold start to a daily briefing. The rules are in `render.note`.

## When to use this

Read it before you show results to a person.

## Smallest working call

**1. Connect.** Get a key with no email and no card. Keep the key and the `visitor_token` the response gives you. Send the token back later to get the same key. See [Get a key with /connect](/agent-guides/get-a-key-with-connect).

**2. Pull a small page.** A demo key allows 25 Manifests. Each new Manifest uses one. Pull only what you will write about, with the default `response_profile` (`full`). Counts cost nothing: check first with `mode: "count"`.

```mcp billed
synorb-manifests
{"stream_ids": ["STREAM_ID"], "days": 7, "target_count": 3}
```

**3. Write the briefing.** `render.max_items` is how many items to present. `render.suggested_format` is the shape: `briefing`, `single_highlight` or `digest` for a delivery, `list` for a Beacon inventory.

**4. Own the daily cadence.** Synorb does not run schedules and does not push. Your runtime pulls.

- Use an overlapping window such as `days: 2`. Drop IDs you already showed. Keep the Beacon ID and the job.
- If your host cannot keep a job, say that no daily schedule is active.

## What you get back

Each delivery carries `presentation_items`, one entry per Manifest, matched by `manifest_id`. The nine notes below are the text of `render.note`, word for word.

```text
1. Use only facts from this data. Each number, name, date, quote, cause and link in your briefing should come from a claim, a supporting quote, an entity or a tag in the Manifests you read. If a fact is not in the data, leave it out. Do not make up a quote, statistic, chart value, source or link. Plot only values from chart_series or the claims, not estimates. If you add a conclusion of your own, say that it is your inference. Do not present it as stated or measured. If the data is thin, write a shorter briefing instead of padding it.

2. Read the full Manifest: its claims with their confidence and evidence, the signal, the brief and the metadata. Titles and one-liners are not enough to write from.

3. Write one briefing for one reader. briefing.scaffold lists the ranked items, the groups and the claims. Follow briefing.scaffold.recipe to write 2 to 4 sentences that link the items. Put the most important item first. Give an item the reader would not act on one line. Give each specific fact its source.

4. Label each claim with its own confidence as given (stated, measured, implied, inferred). Do not change implied or inferred to stated or measured. A claim with no label is unlabelled.

5. Synorb's interpretation is not the source. why_it_matters, key insights and tldr are Synorb's generated reading of the source. They are not the source's own statements. Say "Synorb's summary says", or check them against the claims and supporting quotes, which are the evidence. Do not present a why_it_matters sentence as what the source says.

6. Say why each kept item matters to this reader (role, goals, watchlist or a supplied profile). With no reader context, say so and stay general. Do not guess.

7. Keep the first-party link (source_url or action.url) on every item, inline. List every item once in a source index at the end (title, publisher, published_at, link). Build your reasoning on top of the links.

8. Draw only where it helps the argument. For measured comparisons or time series, build a chart or table in code from the real values, with units and source. Make an image only if you can render images. If nothing is worth drawing, add no visual.

9. Cover every suitable item, up to render.max_items: take, evidence, why it matters, link, and a visual if it is earned. Depth follows the evidence, not a fixed count. Thin evidence gets a short treatment, not padding. Name a duplicate or off-scope item instead of developing it. State the effective dates and say that the items are a sample of the matched total. Adapt to your surface.
```

Three more notes (10 to 12) cover time and silence:

10. **Name the date.** Quote `available_through` for freshness. Do not say "now". A Daily Batch key (72 Hour Agent Demo, Starter, Individual) reads through yesterday by design. Professional and above have no daily ceiling. See [Freshness and available-through dates](/agent-guides/freshness-and-available-through).
11. **Say plainly when nothing came back.** Say if the result was empty, refused or unproven. Say "nothing happened" only when the check is proven. Do not send a blank or padded update.
12. **Tell the truth about schedules.** Connecting, saving a Beacon or one delivery does not make a daily schedule.

The render note also carries this item inventory: `Items: presentation_items (by manifest_id): headline, one_liner, full, published_at, stream_name, claims, supporting_quotes, tag_names, action.url, story_id, why_you_see_this, urgency (profile only). See briefing.stories[].chart_series, briefing.profile and briefing.scaffold.` The fields are in [Briefing fields and the reader profile](/agent-guides/briefing-fields-and-profile).

### The shape of a briefing

Open with 2 to 4 sentences that you write. Below them, show the items in threads with the evidence. Flag decisions, or say there are none. Keep every item reachable. Put process and coverage below the opening. Make visuals from item figures only, and label them as made by the agent.

Write the opening from `briefing.scaffold`. It holds the ranked `items` with their Claims and exact `figures`, the `groups` of items that share a key, and a `recipe`. Synorb builds it from stored Claims. It makes no model call. A group is a lead to check, not a conclusion. The fields and a real scaffold are in [Present Manifests to your users](/agent-guides/present-manifests-to-your-users#present-a-pull-as-a-memo).

This opening follows the recipe. It is written from a real daily pull of the AI Companies Beacon, and it uses only the listed Claims:

```text
Oracle published two items: context assembly builds an agent's prompt from memory under versioned rules (2), and Oracle True Cache is a SQL and object cache that remains automatically synchronized with Database (3). In IBM's study, only 37% of executives say their current governance system is designed to scale with agentic AI deployment (1).
```

Details, the daily variant and visuals: [Present Manifests to your users](/agent-guides/present-manifests-to-your-users).

## Failure modes

| Symptom | Cause | What to do |
| --- | --- | --- |
| A flat recap or a list of links | You wrote about the items, not for the reader | Write the opening from the scaffold. Say why each item matters to this reader. |
| A number, name or quote that is not in the data | You filled a gap | Remove it. Thin data means a shorter briefing. |
| An item has no link | `action.url` and `source_url` are both missing | Use the Manifest's source URL. If none is valid, say so. |
| You said daily updates are on | The key works, but no job exists | State the schedule status. See the scheduling guide. |

## Make it good for your user

End with one useful next step, such as a daily watch. Offer only what you can do.

## Next guide

[Briefing fields and the reader profile](/agent-guides/briefing-fields-and-profile): where each quote, link, chart value and reason lives, and how to send a reader profile. Then [Present Manifests to your users](/agent-guides/present-manifests-to-your-users), the long guide.
