Agent skill

Conversation Clarify

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

Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning…

MITAuto-check passed

Install Conversation Clarify

skills CLI
$ npx skills add CALLE-AI/awesome-phone-call-agents --skill conversation-clarify -a claude-code

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

GitHub CLI
$ gh skill install CALLE-AI/awesome-phone-call-agents conversation-clarify --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/conversation-clarify .claude/skills/conversation-clarify && 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
conversation-clarify
GitHub stars
107
Token cost
~2.8k tokens
SKILL.md length
1,600 words
Files
4 (incl. references)
Skills in repo
101
Repo updated
First seen
Licence
MIT

At a glance

Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning…

  • Works in 6 steps: Check who answered. If it is not the… → Disclose that it is an AI assistant, on… → State the situation — what was asked,… → …
  • Another email round-trip is unlikely to resolve an ambiguity that both parties have stopped noticing
  • SKILL.md covers When to use, When not to use, The two patterns this detects and The call contract, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Conversation Clarify is an agent skill from CALLE-AI/awesome-phone-call-agents. Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning the answer bound to the recipient's own words or refusing to answer at all. Use when another email round-trip is unlikely to resolve an ambiguity that both parties have stopped noticing.

Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files, including reference files (for example `references/examples.md`, `references/patterns.md` and `references/safety.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

  • Another email round-trip is unlikely to resolve an ambiguity that both parties have stopped noticing

Example prompts

  • “/conversation-clarify”

Workflow steps

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

  1. Check who answered. If it is not the intended recipient, go straight to the ending
  2. Disclose that it is an AI assistant, on whose behalf, and about which thread.
  3. State the situation — what was asked, what came back, and why that did not settle it.
  4. Ask one question. The one the detector identified. Nothing else.
  5. Read the answer back and get confirmation. Say explicitly that this step cannot be
  6. Thank them and end.

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

    No scripts in the folder and no shell commands in SKILL.md (its code samples are json).

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

  • Network

    No URLs in SKILL.md.

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

  • Credentials

    Names no API keys, tokens, secrets or passwords.

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

Context cost

Conversation Clarify loads about 2.8k tokens when it runs, and up to ~7.2k if it reads all its reference files. Until then it costs about 101 tokens; SKILL.md has 1,600 words of instructions outside code blocks.

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

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); files beside SKILL.md 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,600 words, ~2,795 tokens.

Download SKILL.mdSave it as .claude/skills/conversation-clarify/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
conversation-clarify
description
Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning the answer bound to the recipient's own words or refusing to answer at all. Use when another email round-trip is unlikely to resolve an ambiguity that both parties have stopped noticing.
license
MIT

Conversation Clarify

Use this skill when a written exchange contains a question that is still open, and neither party has noticed.

Email fails quietly. Its characteristic failure is not silence, which is obvious, but false resolution: a reply that is grammatically responsive and semantically empty. Both sides believe the matter is settled. It is not.

You: Does Monday or Tuesday work for the kickoff? Stephen can only join Tuesday. Them: Yeah, I'll be there.

Which day? A further email costs two days and may repeat the failure. Thirty seconds of voice ends it. This skill decides when that trade is worth making, composes the one question the call must ask, and — this is the part that matters — refuses to write anything down unless the call actually established an answer.

Conversation analysts call this repair: the machinery by which speakers detect and fix trouble in speaking, hearing or understanding. What is unusual here is that the trouble happened in writing and the repair happens in voice.

This is not a skill for calling people who cannot be emailed. Here the recipient obviously has email: you are mid-thread with them. That is precisely the problem. Use the phone when email is insufficient, not when it is impossible.

When to use

  • A reply agreed to an either/or question without naming either option.
  • A reply committed to an action without naming a date, quantity, or deliverable.
  • The cost of continuing to be wrong exceeds the cost and intrusion of one short call.
  • The recipient's number appears in the thread itself, and they are someone you are already corresponding with.

When not to use

  • Anything relationship-sensitive. A rate negotiation, a complaint, a first contact, bad news, or anything where the recipient would expect a person. A disclosed AI caller is fine for logistics and wrong for these.
  • When nobody asked and nothing is ambiguous. A thread that reads cleanly needs no call. Silence is the correct output far more often than a finding.
  • To chase someone who has not replied. That is not repair; that is pursuit, and it needs a different justification.
  • When the number had to be looked up. If it is not in the thread and the user did not type it, there is no call to make.
  • Medical, legal, financial, or emergency substance. Route those to a person.

The two patterns this detects

A. Unclear choice. The ask offered two or more options; the reply is affirmative and names none of them.

B. Commitment without specifics. The ask requested something; the reply agrees but contains no date, time, or quantity. Vague-time words — soon, shortly, ASAP, end of day — raise confidence rather than lower it.

Both require an affirmative reply. "I'll check and revert" is not a failure of the channel; it is a person telling you they will get back to you.

Further patterns worth detecting, documented here so they can be added deliberately rather than discovered accidentally, are described in references/patterns.md: unacknowledged conditions, contradictions across a thread, and pre-commitment verification.

Rules first, a model only to widen recall

Detect with rules: deterministic, offline, no key, and readable by whoever needs to know exactly what fires. A model pass on top catches phrasings the rules were never written for — "should we ship to everyone at once, or stagger it over the week?" answered with "whatever you think is best" — but it must be constrained in code, not in the prompt:

  • Require verbatim quotes. Every model finding must quote a question and a reply that appear in the thread; check them against the actual messages and discard a paraphrase. This is the guard that stops a confident hallucination becoming a proposal to telephone a real person.
  • Check attribution. The ask must come from the user, the non-answer from the other party, in that order. A model that misreads who said what is proposing the wrong call.
  • Never let it reach a destination or a dial. It produces findings, nothing else.
  • Rules win where both fire, and a model finding is never marked high confidence.
  • Degrade loudly. If the provider is unreachable, fall back to rules and say so, rather than silently detecting less.

The call contract

Give the call numbered steps, not a paragraph. Observed across four live calls: given prose, the caller reordered the sequence — disclosing the whole purpose before checking who had answered — and on one call dropped the read-back entirely. Numbered, both held.

  1. Check who answered. If it is not the intended recipient, go straight to the ending rule. Ask this before disclosing anything.
  2. Disclose that it is an AI assistant, on whose behalf, and about which thread.
  3. State the situation — what was asked, what came back, and why that did not settle it.
  4. Ask one question. The one the detector identified. Nothing else.
  5. Read the answer back and get confirmation. Say explicitly that this step cannot be skipped and the call must not end before they confirm. It is the recipient's only chance to correct a mishearing before it is written into their thread.
  6. Thank them and end.

Throughout: greet once, stay under a minute, discuss nothing else, and never agree, commit, negotiate, or answer on the user's behalf. Ending rule — on voicemail, an automated system, or the wrong person, end politely without leaving any of the details.

A caller that can be drawn into a second topic is a caller that can commit the user to something they never approved.

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

The evidence gate

A call produces testimony, not fact. Before a single word is written back into the thread, all of these must hold:

CheckWhy
status == "completed"The call ran to a terminal state.
task_completed == trueCALL-E judged the task reached a clear end.
structured_result is not nullA schema-valid result was extracted at all.
answered_by == "human"Voicemail and IVR are not answers.
resolved == "yes"The question was actually settled.
a non-empty answerSomething was said.
a quote that appears in the transcriptChecked against what the recipient actually said, so "verbatim" means something.
the answer is one of the options offeredWhole-word, and rejected if negated. Catches an extraction that invented a value.

Any failure means nothing is drafted and the user is told, in plain language, which checks failed. An unresolved thread left untouched is a correct outcome, not an error.

completion_confidence is not consulted. On an observed call that never rang, CALL-E returned completion_confidence: {"score": 0.85, "label": "high"} alongside task_completed: false. Confidence expresses certainty in the judgement, not success of the task. Treating it as evidence would have drafted a confirmation from a phone that never rang.

Workflow

  1. Read the thread, expanding anything collapsed first. A thread read in fragments risks attributing a question to the wrong person. Attribute every message to a sender; refuse if attribution is uncertain.
  2. Detect. Emit at most one finding per reply — one call settles one question. If detection runs automatically as threads are opened, run the deterministic rules only: a model pass on every thread opened costs money and latency for threads that are almost always fine. Reserve the model for a check a person asked for.
  3. Take the destination from the thread or from the user. Never look one up. Require strict ASCII E.164; surface a number without a country code as unusable rather than completing it with a guess.
  4. Show the user the exact question, the masked destination, and the full task text before asking for approval.
  5. Require explicit intent for that specific proposal, on a control that names the destination. A configuration setting is not intent. Issue the dial endpoint a one-time token with the proposal so a call cannot be started without first fetching what it would be.
  6. Place one call with an idempotency key derived from the thread content, the finding, the destination, and a nonce for the running process. Advance the attempt counter only after the previous attempt reaches a terminal state, so a retry is possible but a double-click is not. If the provider answers with a call it already holds rather than placing a new one, refuse it instead of polling it — see references/safety.md.
  7. Poll to terminal. Do not trust an unsigned webhook for a side effect. Treat the submission as failed only when the provider answered and rejected it. A timeout, a connection reset or a server error leaves the outcome unknown: the call may already have been placed. Hold the key, require reconciliation, and do not issue a new one.
  8. Apply the gate. Draft, or explain the abstention.

Result schema

Keep required to fields that can always be filled. CALL-E returns structured_result: null for the whole call if the schema cannot be satisfied, so a required free-text field can destroy an otherwise usable verdict. Express absence with an empty string: union types such as {"type": ["string", "null"]} are rejected.

json
{
  "type": "object",
  "required": ["resolved", "answered_by"],
  "properties": {
    "resolved":       { "type": "string", "enum": ["yes", "no", "unknown"] },
    "answered_by":    { "type": "string", "enum": ["human", "ivr", "voicemail", "unknown"] },
    "chosen_option":  { "type": "string" },
    "evidence_quote": { "type": "string" }
  },
  "additionalProperties": false
}

answered_by must be requested explicitly. The Calls API has no built-in answering machine detection, and its failure_code is not a published enum, so no-answer and decline cannot be distinguished. Treat both as unresolved.

Side effects and cancellation

Placing a call rings a real person's phone. That cannot be undone: CALL-E exposes no cancellation operation, and a call already in flight runs to completion. Say so plainly rather than implying a stop button exists.

Nothing is ever sent on the user's behalf. The draft is handed back for review and the user sends it themselves.

References

© 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 3 other files (references) in skills/conversation-clarify of CALLE-AI/awesome-phone-call-agents.

  • SKILL.md
  • references/examples.md
  • references/patterns.md
  • references/safety.md

Open the folder on GitHubat commit 38d4118

Compare with similar skills

Conversation Clarify 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.

Conversation Clarify compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Conversation Clarify this skillCALLE-AI/awesome-phone-call-agents107—~2.8kAutomated safety check: PassMIT
Modeling Conversion MetricsPostHog/posthog40k—~1.4kAutomated safety check: PassCustom licence
Threat Detectionalirezarezvani/claude-skills28k—~3.5kAutomated safety check: PassMIT
Reply To PR Conversationtobihagemann/turbo408—~804Automated safety check: PassMIT
Resemble Detectgithub/awesome-copilot40k3 repos~4.1kAutomated safety check: PassApache-2.0
Pii Detectruvnet/ruflo74k—~350Automated safety check: NotesMIT

Similar skills

  • Official

    Build reusable conversion models — funnel/step conversion rates, drop-off, and time-to-convert — on either PostHog data-warehouse views (HogQL) or an external dbt project.

    40k GitHub stars~1.4k tokensUpdated yesterday
    Data & AnalyticsAuto-check passed
  • Threat Detection

    alirezarezvani/claude-skills

    A skill your agent uses when hunting for threats in an environment, analyzing IOCs, or detecting behavioral anomalies in telemetry.

    28k GitHub stars~3.5k tokensUpdated 1 mo ago
    SecurityAuto-check passed
  • Reply To PR Conversation

    tobihagemann/turbo

    Draft, confirm, and post a single conversational reply to GitHub PR conversation comments (issue comments).

    408 GitHub stars~804 tokensUpdated 2 days ago
    Auto-check passed
  • Resemble Detect

    github/awesome-copilot

    Official

    Deepfake detection and media safety — detect AI-generated audio, images, video, and text, trace synthesis sources, apply watermarks, verify speaker identity, and analyze media intelligence using…

    40k GitHub starsUsed in 3 repos~4.1k tokens
    Media & CreativeAuto-check passed
  • Pii Detect

    ruvnet/ruflo

    Detect and flag personally identifiable information (PII) in text, code, and configurations.

    74k GitHub stars~350 tokensUpdated yesterday
    Auto-check: notes
  • Reply Automation

    ComposioHQ/awesome-claude-skills

    Automate Reply tasks via Rube MCP (Composio). An agent skill from ComposioHQ/awesome-claude-skills.

    77k GitHub starsUsed in 3 repos~723 tokens
    Productivity & AutomationAuto-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
  • Ground Truth Gate

    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…

    107 GitHub stars~3.3k 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

Questions about Conversation Clarify

What does Conversation Clarify do?

Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning…. Conversation Clarify is an agent skill from CALLE-AI/awesome-phone-call-agents. Detect when a written exchange has failed - a reply that agrees without saying which option, or commits without saying when - and settle it with one bounded, disclosed CALL-E phone call, returning the answer bound to the recipient's own words or refusing to answer at all.

When should I use Conversation Clarify?

Conversation Clarify fits situations like: another email round-trip is unlikely to resolve an ambiguity that both parties have stopped noticing.

How do I install Conversation Clarify in Claude Code?

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

How do I install Conversation Clarify in Codex?

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

Can I use Conversation Clarify 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 conversation-clarify -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/conversation-clarify, .gemini/skills/conversation-clarify, .github/skills/conversation-clarify and .opencode/skills/conversation-clarify in your project.

What does Conversation Clarify need to run?

SKILL.md names no scripts, command-line tools or credentials: Conversation Clarify is instructions for the agent only.

Does Conversation Clarify access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Conversation Clarify 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. Review the folder before installing.

What licence does Conversation Clarify use?

Conversation Clarify 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 Conversation Clarify use?

About 2.8k tokens (SKILL.md is roughly 11k 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 4.4k tokens, read only when the agent opens those files.

What are the alternatives to Conversation Clarify?

Skills that share tags, products or a category with Conversation Clarify: Modeling Conversion Metrics (PostHog/posthog, 40k stars), Threat Detection (alirezarezvani/claude-skills, 28k stars), Reply To PR Conversation (tobihagemann/turbo, 408 stars) and Resemble Detect (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Conversation Clarify?

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.