call-cross-call-consistency-checker · git:20260923.60e8a14 · 2026-09-23 · sha256 b57b88c0e5c43c91

call-cross-call-consistency-checker git:20260923.60e8a14A

Immutable. This exact content is served forever at /api/v1/blob/b57b88c0e5c43c91.

---
name: call-cross-call-consistency-checker
description: Offline experimental CALL-E helper that compares amounts, dates, and times stated by the agent across two finished calls to the same destination and grades each fact kind CONSISTENT, CONTRADICTED, or ONLY_STATED, plus a consistency-guarded goal template. It is not proof either call lied, a record of truth, or authorization for another call.
license: MIT
---

# call-cross-call-consistency-checker

> **Call someone twice and say two different things, and you were never
> really trusted the first time.**

Every other skill in this repository analyzes one call. This one analyzes
the space BETWEEN two calls to the same person: did the organization tell
them the same price, the same date, the same time it told them before?
Contradictions across calls are how campaigns lose people - each new call
quietly rewrites reality, and the person on the line is the only one who
notices.

## When To Use

- when a destination has received two or more calls and any result from
  the latest one will be written somewhere
- before drafting the NEXT call to a person whose earlier call had
  disputed or confusing values
- to generate a consistency-guarded goal for the follow-up plan_call

## When Not To Use

- to decide which call's value is true; the record (or a human with it)
  decides - this skill only routes to verification
- on calls to different destinations; comparing unrelated people's facts
  is meaningless
- as a memory system; it compares two transcripts you hand it, it stores
  nothing
- during a call; strictly post-call analysis plus pre-call goal crafting

## Workflow

### Compare two finished calls

```bash
python3 scripts/cross_call_consistency_checker.py analyze \
  --transcript-a path/to/call-a.json --transcript-b path/to/call-b.json
```

Reads the real `get_call_run` result shape (`{status, result: {transcript}}`)
or the flat fixture shape used by sibling skills. Emits a card:

- `comparisons[]` per fact kind (`amount` / `date_weekday` /
  `date_day` / `time`; weekdays and day-of-months are separate sub-kinds
  so "Tuesday the 15th" vs "Wednesday the 15th" contradicts on the
  weekday instead of hiding behind the shared day number):
  - `CONSISTENT` with the shared values when the calls overlap
  - `CONTRADICTED` when both calls state the kind and share no value
  - `ONLY_STATED` when just one call mentions the kind
- Only AGENT turns are extracted: the organization's statements must stay
  consistent; the callee mentioning a different value is a correction,
  not a record
- Legitimate reschedules do not self-contradict: "we moved you from the
  12th to the 15th" shares a value with a later call that says "the 15th"
- `verdict`: `CONTRADICTIONS_FOUND` / `CONSISTENT` / `NOTHING_TO_COMPARE`,
  plus `unclear` paths for empty or agent-less inputs
- Values are normalized ($45 = "45 dollars"; Tuesday the 15th = weekday +
  ordinal; 2 p.m. = 1400) and masked in output

### Craft the consistency-guarded goal

```bash
python3 scripts/cross_call_consistency_checker.py craft --scenario consistency-guarded-callback
```

Emits the plan_call inputs JSON whose goal makes the agent state values
with their source, acknowledge discrepancies instead of silently picking
a side, and never close a call with two unreconciled values.

## Scientific Foundation

| Research | Relevance |
|---|---|
| In Prospect and Retrospect: Reflective Memory Management for Long-term Personalized Dialogue Agents (Tan et al., ACL 2025, arXiv 2502.00299) | Long-term dialogue agents must keep personalized facts stable across sessions; our cross-call comparison is the transcript-side audit of exactly that property |
| Truth-Maintained Memory Agent: Proactive Quality Control for Reliable Long-Context Dialogue (Phadke, Guo, Koch et al., NeurIPS 2025 Workshop on Socially Responsible and Trustworthy Foundation Models, OpenReview) | Write-time quality control against false and contradictory memory; our CONTRADICTED routing is the call-records analogue |

Citation notes recorded during verification: the RMM paper's full title
begins "In Prospect and Retrospect:"; the TMMA paper is a NeurIPS 2025
WORKSHOP paper (not main conference), stated as such. This skill compares
two transcripts lexically and labels every output
`analysis_mode: "heuristic"`.

## Differences from sibling skills

- `call-state-reconciler` reconciles platform signals (status,
  task_completed, confidence) within one call; this skill reconciles
  human-readable facts across two calls.
- `adherence-memory-callback` remembers callers to make its own calls
  smarter; this skill audits any two transcripts for organizational
  consistency and stores nothing.
- `call-sycophancy-guard` catches the agent folding within a call; this
  skill catches the organization drifting between calls.