CALL-E evaluator path · 90 seconds

Verify the payout terms before doing the work.

Alerting can find a reward; PayoutProof checks whether its payout path can become cash before a contributor commits. It compiles one published but incomplete reward into one masked, approval-bound CALL-E inquiry, minimizes retained data, and never treats a phone answer as a contract.

Official contribution merged10/10 tests passOne call maximumLocal proof only · no live call
Technical execution · partialCALL-E adapter, merged official contribution, and 10/10 tests are public. The required authentic runtime call is the one named gap.
Impact & UX · evidencedOne 90-second path shows whether a published payout route can become cash before work begins.
Creativity & problem-solving · evidencedNot another reward alert: a permissioned phone check resolves post-discovery payout ambiguity.
Reusability & developer experience · evidencedDeterministic packet, one-command judge route, strict output boundary, and merged ecosystem listing.

One chronological proof

Every value below comes from the deterministic fictional fixture.

00:00–00:12

1. A concrete blocker

A public reward exists, but its currency, payout rail, timing, tax/identity categories, and current written terms are incomplete. An autonomous worker should not start blindly.

Fixture sources: example.org/reward · example.org/contact — reserved example-domain placeholders

00:12–00:27

2. One bounded inquiry

The destination is displayed only as +12****0147. The fixture uses the NANP-reserved 202-555-0147 range.

  1. Payout currency
  2. Payout rail
  3. Payout timing
  4. Identity or tax step categories
  5. Written terms location
00:27–00:43

3. Deterministic custody

The same owner-reviewed packet always produces the same control identifiers.

packet_hash     bade77a79b653473…f9747f7b
idempotency     payoutproof-bade77a79b653473c3a01bd2
approval_id     approve-bade77a79b653473
max_calls       1
recurrence      false
00:43–00:56

4. Live starts fail closed

The evaluator attempts a start without live enablement. The production gate stops before the CALL-E runner or any network side effect.

Unauthorized start:
live calls disabled; set PAYOUTPROOF_ENABLE_LIVE=1
only after exact authorization

CALL-E runner invoked: false
00:56–01:12

5. A smaller result

A clearly labeled synthetic result passes through the production normalizer. Raw transcript, provider summary, and full phone are discarded.

{
  "status": "COMPLETED",
  "terminal": true,
  "masked_phone": "+12****0147",
  "written_source_required": true,
  "contractual_verification": false
}
01:12–01:30

6. Why the boundary matters

Impact: avoid work with unusable payout logistics. Idea: turn one narrow phone interaction into a permissioned evidence checkpoint. Implementation: strict validation, hashes, idempotency, dual live gate, and allowlisted output. Experience: one path from incomplete terms to a written-source-required verdict.

Verification you can reproduce

No account or secret is needed for the local judge path.

Installnpm ci
Evaluatenpm run judge
Regression10 passed · 0 failed
Public sourcecurrent main