Agent skill

Ground Truth Gate

by CALLE-AI in CALLE-AI/awesome-phone-call-agents

A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…

MITAuto-check passed

Install Ground Truth Gate

skills CLI
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill ground-truth-gate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install CALLE-AI/awesome-phone-call-agents ground-truth-gate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/CALLE-AI/awesome-phone-call-agents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/ground-truth-gate .claude/skills/ground-truth-gate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ground-truth-gate
GitHub stars
107
Token cost
~3.3k tokens
SKILL.md length
1,817 words
Files
12 (incl. scripts, references, assets)
Skills in repo
101
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…

  • Works in 4 steps: provisional — the answer available right… → gap — the single fact the call must… → call — the call task placed to the… → …
  • An agent holds some evidence for a physical-world claim but the evidence is broader
  • SKILL.md covers Overview, When To Use, When Not To Use and The Contract, plus 10 more sections
  • Runs Python scripts from its folder; calls python3; reaches api.heycall-e.com; needs CALLE_API_KEY

What it does

Ground Truth Gate is an agent skill from CALLE-AI/awesome-phone-call-agents. Use when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a phone call is warranted at all. Triages the claim, answers provisionally, and gates the fact behind one disclosed CALL-E call to the party whose word is binding. When the decision to call has already been made, use verify-by-phone instead.

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 14 other files, including scripts, reference files and assets (for example `assets/sample-claim.json`, `assets/sample-result.json` and `references/calle-api.md`).

The repository describes itself as: Portable phone-call Agent Skills, apps, examples, adapters, and scheduler recipes for AI agents. The licence is MIT.

When your agent uses it

  • An agent holds some evidence for a physical-world claim but the evidence is broader
  • Older than the exact question asked
  • It must first decide whether a phone call is warranted at all

Example prompts

  • “/ground-truth-gate”

Requirements

  • Python 3
  • A credential in CALLE_API_KEY

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. provisional — the answer available right now, its evidence age, and why it is provisional.
  2. gap — the single fact the call must establish, as one question a human can answer.
  3. call — the call task placed to the authoritative party, or the blocker that stopped it.
  4. record — the durable claim record the correction will be written back into.

What it can do on your machine

Read from SKILL.md and the folder at commit 38d4118. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 5 files in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • api.heycall-e.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • CALLE_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ground Truth Gate loads about 3.3k tokens when it runs, and up to ~9.8k if it reads all its reference files. Until then it costs about 109 tokens; SKILL.md has 1,817 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~9.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from CALLE-AI/awesome-phone-call-agents at commit 38d4118, republished under its MIT licence (© CALLE-AI). 1,817 words, ~3,340 tokens.

Download SKILL.mdSave it as .claude/skills/ground-truth-gate/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.
name
ground-truth-gate
description
Use when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a phone call is warranted at all. Triages the claim, answers provisionally, and gates the fact behind one disclosed CALL-E call to the party whose word is binding. When the decision to call has already been made, use verify-by-phone instead.
license
MIT

Ground Truth Gate

Overview

Some facts are not on the web. They live in one human's head, behind a phone number: whether the part is on the shelf at this branch, whether the unit is still available at the advertised price, whether the slot is really open today.

An agent asked for such a fact has three options, and the first two both fail the user. It can assert from stale text, which produces a confident wrong answer. It can hedge and tell the user to go call, which hands the work straight back. The third option is to gate the claim: answer provisionally now, place one disclosed call to the party that actually knows, and correct the record when the call lands.

Core principle: absence of evidence is never evidence. A claim is released as fact only on positive evidence from an authoritative source, and only when the abstention gate agrees.

When To Use

  • The agent is about to state a physical-world fact its sources cannot currently support, and it has not yet decided whether calling is justified.
  • The evidence is stale, or its scope does not match the question asked. Text saying an item is "in stock at Northgate Appliance" does not answer "in stock at the Bellevue branch today".
  • A wrong assertion is expensive and asymmetric: a wasted trip, a wired deposit, a missed deadline.
  • The authoritative party is known and reachable by phone, and the user asked for the answer.

When Not To Use

  • The decision to call is already made. Use verify-by-phone, which owns disclosed verification calls and the calibrated abstention this skill defers to.
  • The fact is cheap to be wrong about, or a real API answers it authoritatively. Both are disclose or answer outcomes here, not calls.
  • No authoritative phone contact was supplied by the user. Guessing a number is a blocker, never a default.
  • The user has not asked for the answer. This skill never places a call to satisfy the agent's own curiosity.
  • The question is time-critical to someone's safety. An emergency is not a claim to triage.

The Contract

Every gated claim produces exactly these four parts, in this order:

  1. provisional — the answer available right now, its evidence age, and why it is provisional.
  2. gap — the single fact the call must establish, as one question a human can answer.
  3. call — the call task placed to the authoritative party, or the blocker that stopped it.
  4. record — the durable claim record the correction will be written back into.

scripts/gate.py builds all four as data (format_contract), so the contract is asserted rather than hoped for. A response missing any part is not a gated claim: with no gap nobody knows what the call is for, and with no record the correction has nowhere to land.

Decide: Gate Or Pass

Evaluated in this order. The first row that matches wins.

ConditionAction
Every term asked is covered by the evidence, and it is within the staleness limit (default 90 days; a per-claim override may only tighten)answer directly
Being wrong is cheapdisclose the answer with its evidence age, place no call
The cost of being wrong is unknownblocked — ask the user, never assume cheap
The user did not ask for this answerblocked — curiosity is not intent
No phone contact, or not valid E.164blocked — state it, ask for the contact
Otherwisegate the claim

Scope comparison is a set of casefolded terms, not an ordered tuple: ("ppo", "aetna") and ("aetna", "ppo") are the same scope. The asked terms must be a subset of what the evidence covers.

Every call this skill builds opens by identifying itself as an automated assistant, naming who it is calling for, and giving a recording notice, before it asks anything. It asks one question, once. It does not leave voicemail, does not ask for personal data, does not read identifiers aloud to establish trust, and ends the call if the conversation turns to medical, legal, financial, or emergency advice. build_task() is the only place a task string is constructed, and self_test.py asserts each of those clauses is present.

Naming who is responsible

47 CFR 64.1200(b)(1)-(2) asks an artificial-voice call to name the entity responsible for it and give a callback number. Two environment variables supply them, because they are properties of the deployment rather than of any one claim:

VariableEffect
CALLE_CALLER_IDENTITYSpoken as "This call is placed by ...". Unset means the opener stays as it is; it already identifies an automated caller.
CALLE_CALLER_CALLBACKAppended as "reachable at ...". Ignored unless an identity is set.

Both fail closed. The identity is spoken inside a quoted script, so a value carrying a straight or curly quote is refused rather than escaped - an apostrophe would close that script early and everything after it would reach the calling agent as a fresh instruction. The callback is validated as E.164 and never repaired by guessing. A half-filled disclosure is worse than the plain one, so a malformed value stops the call instead of going out half-right.

Runtime Workflow

The call is asynchronous by design. A chat reply cannot wait for a phone call, and a phone call must not be hidden behind one.

text
auth status -> POST /v1/calls -> webhook terminal event -> GET /v1/calls/{id} re-fetch
            -> release() -> write back correction -> notify user
            -> if no terminal event by T+6h: surface the claim as unresolved

The re-fetch is not optional. CALL-E webhook deliveries are unsigned, so a delivery proves nothing on its own; the authoritative state comes from GET /v1/calls/{id}. The webhook URL must also carry an unguessable path segment, which require_public_https() enforces along with refusing private and metadata addresses. See references/calle-api.md.

The sweep is not optional either. Silence looks identical to a pending correction. A gated claim with no terminal event by the deadline is surfaced to the user as still unconfirmed, rather than left waiting for a correction that is never coming. sweep_due() is that check.

Use POST /v1/calls, not the goal-run path. The extraction schema is result_schema() in scripts/gate.py; two rules make it safe, and both are enforced by test: every decision field is a string enum rather than a boolean, and every enum carries unknown with a description telling the extractor when to choose it.

Show full SKILL.md (804 more words)Show less

Verdict Rules

Call resultReleased as fact?What the user is told
confirmed_true, gate did not abstainYesConfirmed, with the quote, who said it and when
confirmed_false, gate did not abstainYes, as a negativeCorrected, with the quote
confirmed_true, gate abstainedNoStill unconfirmed, quote shown as an unverified note
refused_to_answerNoThe party would not confirm, which is a normal outcome
unknown, no answer, voicemail, unreachableNoStill unconfirmed, provisional answer stands unchanged
No abstention decision supplied at allNoStill unconfirmed — a missing signal is itself absence of evidence

Never collapse the bottom four rows into a yes. A call that did not happen is not a call that said yes.

This skill decides what counts as positive evidence. It does not decide how much confidence is enough: that rule is a calibrated abstention gate in verify-by-phone, so release(verdict, abstain) takes the abstain decision as an input. Only an explicit False releases. See references/composition.md for the handoff.

Common Mistakes

  • Asking the wrong party. Ask the entity whose word is binding, not the one easiest to reach.
  • Widening the question on the phone to make an answer likely. The gap is one question, asked as written.
  • Booleans in the schema. in_stock: false cannot distinguish "no" from "nobody knew".
  • Guessing the cost of being wrong. An unknown cost blocks; it does not quietly become cheap.
  • Calling without the user asking. A phone call is a real-world side effect on a stranger's day.
  • Trusting a webhook body. Re-fetch before you write.
  • Overwriting the provisional answer silently. The user who acted on it is the one who must see the correction, on the same channel.

Quick Start

scripts/gate.py triages a claim, prints the four-part contract, and builds the exact request body. It opens no sockets, needs no credential, and never places a call, so any decision can be reviewed before a phone rings.

bash
python3 scripts/gate.py --demo
python3 scripts/gate.py --input assets/sample-claim.json --claim-id claim-42
python3 scripts/gate.py --reconcile assets/sample-result.json --abstain false
python3 scripts/self_test.py

To rehearse the live-call path itself — send, poll, reconcile — with no credential and no real phone ringing, start the mock server and point place_call.py at it:

bash
python3 scripts/mock_calle.py --outcome unknown &
CALLE_API_KEY=test python3 scripts/place_call.py \
    --input assets/sample-claim.json --base-url http://127.0.0.1:8787 \
    --send --poll --abstain false

Environment Variables

Two more variables control credentials and the target endpoint, separate from the caller-identity disclosure pair above:

VariableEffect
CALLE_API_KEYBearer token sent as Authorization: Bearer ... on every request to the CALL-E API. Required only to place a live call: --send without it stops before any request goes out. The dry run and the mock rehearsal loop need no key beyond the mock's own --api-key (default test).
CALLE_BASE_URLOverrides the CALL-E base URL, default https://api.heycall-e.com. Set it, or pass --base-url, to point place_call.py at scripts/mock_calle.py during rehearsal.

Side Effects And Cancellation

One outbound phone call per gated claim, plus one correction written into the claim record. scripts/gate.py and scripts/demo_card.py never open a socket: they build the request body and render it. scripts/place_call.py is the one live-call path in this directory — --send runs create_call(), which posts to POST /v1/calls and places a real call. Dry run is its default; nothing dials until --send is passed explicitly. The user can withdraw a claim before the call is placed and no call happens; once a call is in flight it cannot be recalled, and the user is told that plainly rather than promised a cancel that does not exist. place_call.py derives its idempotency key from the request body itself (idempotency_key()), so a retry after a timeout replays the same key instead of dialing the same person twice. See references/safety.md.

Troubleshooting

  • CALLE_API_KEY not set, --send used. place_call.py stops before sending anything: set CALLE_API_KEY to place a live call. Run scripts/mock_calle.py and pass --base-url to exercise the whole loop without a credential.
  • Connection refused against the mock. scripts/mock_calle.py isn't running, or --base-url doesn't match its --port (default 8787). request_json() reports it as could not reach <url>: <reason>.
  • CALL-E (or the mock) rejects the request body. create_call() raises HTTP <code> from POST <url>: <detail>. The mock returns 422 with missing required fields: task, recipients when either is empty.
  • A call that never reaches a terminal status. poll_until_terminal() gives up after POLL_TIMEOUT_SECONDS (600s) and place_call.py prints No terminal event within 600s. The claim is UNRESOLVED.... Treat it the way sweep_due() does: unresolved, not unconfirmed-and-settled.

Files

PathWhat it is
scripts/gate.pyTriage, call construction, webhook validation, release rule
scripts/place_call.pyThe one script that opens a socket: sends the call (--send), polls to a terminal state, reconciles the re-fetched result
scripts/mock_calle.pyLocal stand-in for the CALL-E API; lets the send/poll/reconcile loop run end to end with no credential
scripts/demo_card.pyRenders a claim as a before/after answer card; presentation only, no decision logic of its own
scripts/self_test.pyNo-network regression checks
assets/sample-claim.jsonInput fixture for --input
assets/sample-result.jsonTerminal result fixture for --reconcile
references/safety.mdConsent, numbers, credentials, boundaries, storage
references/calle-api.mdEndpoint choice, webhook trust, schema rules
references/composition.mdWhat this defers to verify-by-phone and the host scheduler
references/examples.mdWorked claims, including the ones that do not call

© CALLE-AI, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 11 other files (scripts, references, assets) in skills/ground-truth-gate of CALLE-AI/awesome-phone-call-agents.

  • SKILL.md
  • assets/sample-claim.json
  • assets/sample-result.json
  • references/calle-api.md
  • references/composition.md
  • references/examples.md
  • references/safety.md
  • scripts/demo_card.py
  • scripts/gate.py
  • scripts/mock_calle.py
  • scripts/place_call.py
  • scripts/self_test.py

Open the folder on GitHubat commit 38d4118

Compare with similar skills

Ground Truth Gate next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ground Truth Gate compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ground Truth Gate this skillCALLE-AI/awesome-phone-call-agents107—~3.3kAutomated safety check: PassMIT
Claimsruvnet/ruflo74k1 repos~1.1kAutomated safety check: PassMIT
Gate Testsvercel/next.js143k—~2.8kAutomated safety check: PassMIT
Dos Verify Done Claimssickn33/agentic-awesome-skills47k1 repos~2.1kAutomated safety check: PassMIT
Gateplugin87/ux-ui-agent-skills1.6k—~532Automated safety check: PassMIT
Brain Ingest Gategarrytan/gbrain31k—~3.9kAutomated safety check: PassMIT

Similar skills

  • Claims

    ruvnet/ruflo

    Claims-based authorization for agents and operations. An agent skill from ruvnet/ruflo.

    74k GitHub starsUsed in 1 repo~1.1k tokens
    Backend & APIsAuto-check passed
  • Gate Tests

    vercel/next.js

    Official

    How to use the @gate / @force-gate test directives instead of it.skip or fake-green skip patterns.

    143k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Dos Verify Done Claims

    sickn33/agentic-awesome-skills

    Before accepting an agent's 'done / shipped / fixed' claim, verify it against ground truth (git ancestry + the commit's own diff) using the DOS kernel's dos verify and dos commit-audit — never the…

    47k GitHub starsUsed in 1 repo~2.1k tokens
    Media & CreativeAuto-check passed
  • Gate

    plugin87/ux-ui-agent-skills

    Run the one-command quality gate and report the real N/N result.

    1.6k GitHub stars~532 tokensUpdated 3 days ago
    Frontend & DesignAuto-check passed
  • Brain Ingest Gate

    garrytan/gbrain

    Pre-write quality gate for content entering the brain. An agent skill from garrytan/gbrain.

    31k GitHub stars~3.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Physical Address

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing local business websites, e-commerce sites, or any site where a physical presence affects trust or local search visibility.

    74k GitHub stars~574 tokensUpdated 5 days ago
    Marketing & SEOAuto-check passed

More from CALLE-AI/awesome-phone-call-agents

All 101 skills in this repo
  • Accessible Outing Verifier

    CALLE-AI/awesome-phone-call-agents

    Demonstrates advisory accessibility-planning checks with offline fixtures and a proposed bounded CALL-E workflow; use for exploring unknown or qualified venue claims without making calls.

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Is It Accessible

    CALLE-AI/awesome-phone-call-agents

    Call a venue and ask the accessibility questions that matter to one specific person — step-free entry, hearing loop, guide dogs, quiet hours, changing places — then return a per-need verdict backed…

    107 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Landmark Navigation Assist

    CALLE-AI/awesome-phone-call-agents

    Turns a pre-written, building-level location config into a CALL-E outbound phone-call task that guides a delivery driver through the last few hundred metres to a specific building using landmarks…

    107 GitHub stars~1.6k tokensUpdated yesterday
    Auto-check passed
  • Research Gap Call Verifier

    CALLE-AI/awesome-phone-call-agents

    Turn cited business research into a bounded, approval-gated phone-call plan that asks only unresolved factual questions, then reconcile CALL-E-compatible results without treating voicemail, refusal…

    107 GitHub stars~1.7k tokensUpdated yesterday
    Auto-check passed
  • Structured Outcome Followup Call

    CALLE-AI/awesome-phone-call-agents

    Place a goal-driven CALL-E call that collects specific structured answers, score those answers against a deterministic rubric you supply, and conditionally trigger a follow-up action — all runnable…

    107 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Znak Callops

    CALLE-AI/awesome-phone-call-agents

    Ask a service provider about availability and price in one authorized phone call, then return full transcript quotations and explicit unknowns without booking anything.

    107 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Questions about Ground Truth Gate

What does Ground Truth Gate do?

A skill your agent uses when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a…. Ground Truth Gate is an agent skill from CALLE-AI/awesome-phone-call-agents. Use when an agent holds some evidence for a physical-world claim but the evidence is broader, narrower, or older than the exact question asked, and it must first decide whether a phone call is warranted at all.

When should I use Ground Truth Gate?

Ground Truth Gate fits situations like: an agent holds some evidence for a physical-world claim but the evidence is broader; older than the exact question asked; it must first decide whether a phone call is warranted at all.

How do I install Ground Truth Gate in Claude Code?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill ground-truth-gate -a claude-code`. Or copy the skill folder (skills/ground-truth-gate in CALLE-AI/awesome-phone-call-agents) into .claude/skills/ground-truth-gate in your project. Claude Code loads it when a task matches its description.

How do I install Ground Truth Gate in Codex?

Run `npx skills add CALLE-AI/awesome-phone-call-agents --skill ground-truth-gate -a codex`. Or copy the skill folder (skills/ground-truth-gate in CALLE-AI/awesome-phone-call-agents) into .agents/skills/ground-truth-gate in your project. Codex loads it when a task matches its description.

Can I use Ground Truth Gate in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add CALLE-AI/awesome-phone-call-agents --skill ground-truth-gate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ground-truth-gate, .gemini/skills/ground-truth-gate, .github/skills/ground-truth-gate and .opencode/skills/ground-truth-gate in your project.

What does Ground Truth Gate need to run?

Going by SKILL.md and its folder, Ground Truth Gate needs Python for the scripts in its folder, the command-line tools its instructions call (python3) and credentials named CALLE_API_KEY. Our summary lists: Python 3; A credential in CALLE_API_KEY.

Does Ground Truth Gate access the network?

SKILL.md names 1 domain. In commands or code: api.heycall-e.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Ground Truth Gate safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Ground Truth Gate use?

Ground Truth Gate is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ground Truth Gate use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.4k tokens, read only when the agent opens those files.

What are the alternatives to Ground Truth Gate?

Skills that share tags, products or a category with Ground Truth Gate: Claims (ruvnet/ruflo, 74k stars), Gate Tests (vercel/next.js, 143k stars), Dos Verify Done Claims (sickn33/agentic-awesome-skills, 47k stars) and Gate (plugin87/ux-ui-agent-skills, 1.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ground Truth Gate?

CALLE-AI (a GitHub organization) maintains it in CALLE-AI/awesome-phone-call-agents, which has 107 GitHub stars. The repository holds 101 skills in this directory. The repository was last updated on October 10, 2026.

Source: CALLE-AI/awesome-phone-call-agents on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.