---
title: Test the briefing scaffold
category: troubleshoot
summary: Check for yourself that a read costs no model call, that the scaffold is honest, and that the docs match the payload. A checklist for any agent.
order: 31
updated: 2026-10-16
next: choose-mcp-or-rest
related: output-contract, briefing-fields-and-profile, present-manifests-to-your-users
reference: /agent-guide.md, /synorb-instructions.md
---

A read from Synorb makes no model call, on any plan. The server does not write a memo. Each briefing carries `briefing.scaffold`: ranked items, Claims with exact figures and links, groups of items that share a key, and a short strict recipe. Your own model writes the two to four linking sentences from it.

This guide is a checklist. Use it to test that statement against a live response and to report what you found.

## When to use this

Use it when you must decide whether to trust the scaffold, or when you must report on it. Do not use it to write a briefing. For that, read [Present Manifests to your users](/agent-resources/present-manifests-to-your-users).

## Smallest working call

**1. Pin the build.** `GET https://api.synorb.com/health` returns `build.commit` (the deployed commit) and the same value in the `X-Synorb-Build` header. `GET https://mcp.synorb.com/health` does the same. Record both before you test. If the commit changes during your run, start again.

**2. Connect fresh.** Read the starter phrase from `https://synorb.com/data/agent-phrase.json`. Get a key as in [Get a key with /connect](/agent-resources/get-a-key-with-connect). Use a new organization and a new visitor.

Each network can mint only a limited number of demo keys per day. Do not bypass the cap.

**3. Pull with REST and with MCP.** Use REST `POST https://api.synorb.com/manifests/query` and MCP `synorb-manifests`. Use these windows: weekly (168 hours, 10 items), daily (48 hours, 5 items) and a parity pull (168 hours, 5 items).

**4. Score the response** against the six checks below.

## What you get back

Score each check as PASS or FAIL. Quote the field you read.

1. **Grouping is honest.** In `briefing.scaffold.groups`, each group has at least two items. `written_as` shows the key as each item writes it. `kind` is `shared_term`, `shared_entity` or `same_publisher`. `note` says what the group does not prove.

   Zero groups is a correct answer when items share nothing. A group must not be a bare number, a generic acronym, or only the name of the source presented as a finding.

2. **Claims are exact and sourced.** Each Claim has an `id` such as `2.c1`. Every string in `figures` is a literal substring of that Claim's `text`. A number inside a name (Gemini 4, Xeon 6+, Intel 18A) is not a figure. Every Claim has at least one link in `source_urls`. This holds for the scaffold, for `presentation_items[].claims[]` and for the raw `manifests[].signal.body.claims[]`.
3. **The recipe is strict.** `briefing.scaffold.recipe` asks for two to four sentences. It allows only listed Claims. It says to copy figures exactly, to cite item numbers and to give no advice. It yields to your own instructions.
4. **Ordering holds.** Items run high, medium, low significance. Ties keep Synorb's ranking. Every returned item is reachable.
5. **The floor holds.** REST and MCP markdown are byte-identical on the same IDs and index. Counts, billing dedupe, coverage and freshness notices sit below the lead. `briefing.synthesis.path` is `deterministic`, `model_attempted` is `false` and `llm_cost` is `0`. On MCP, `runtime_llm_tokens` is `0`.
6. **The docs match the payload.** Read `https://synorb.com/agent-resources/output-contract.md`, `present-manifests-to-your-users.md` and `briefing-fields-and-profile.md`. The scaffold fields they list are the fields you see.

## Failure modes

| Symptom | Cause | What to do |
| --- | --- | --- |
| Fewer or weaker groups than a model would find | Groups come from key terms in stored Claims, computed at read time. Keys built at ingest do not exist yet. | Treat this as a known gap, not a fault. Report the count you saw. |
| `briefing.markdown` opens with a plain joined lead | The lead is a rule-built fallback. It is not the take. | Write your own opening from the scaffold. |
| An ellipsis in the body fails a strict scorer | A source headline itself ends in "…". Synorb shows source headlines unaltered and adds no ellipsis. | Treat an ellipsis inside a source title as data. |
| A Claim list is shorter than expected | The scaffold lists up to four Claims per item. Quotes contribute figures only. | Read the quote words in the evidence section of `briefing.markdown`. |
| The mint cap blocks a fresh key | The daily demo-key cap for your network is used up | Wait, or reuse the key with your `visitor_token`. Report the number of runs you completed. |

## Make it good for your user

Report what you ran, not what you hoped. Give the build commit and the UTC time. For each pull, give the access point (REST or MCP) and the window. For each check, give PASS or FAIL and the field you read. Say what you could not test. A short honest report is more useful than a long confident one.

## Next guide

This is the end of the path. Start again at [Choose MCP, REST, or S3](/agent-resources/choose-mcp-or-rest), or browse every topic from the [Agent Resources hub](/agent-resources).
