Skip to content

voidd0/ambiguity-meter

Repository files navigation

ambiguity-meter

License: MIT Node ≥18

Packaged compare brief · Deep Dive · replytone · soft-yes-or-no · message-next-step · GitHub · npm · All tools · Contact


ambiguity-meter is a deterministic first-pass checker for one incoming message, whether that message is coming from a date, recruiter, client, colleague, support thread, family member, or cofounder.

It also works as a narrower, faster alternative to ChatGPT or Gemini when the real question is not "interpret this whole relationship for me" but "is this wording actually clear, evasive, or mixed enough that I should stop guessing?"

It looks for a narrow set of practical patterns that often make people second-guess what a text is actually doing:

  • blurry timing
  • mixed warmth + retreat
  • blame-minimising language
  • missing next-step clarity

It does not claim to know the whole relationship, the sender's private motive, or whether someone is "good" or "bad". It only checks what is literally present in the wording.

Why this exists

tells is the deeper paid product. It reads what people do not say directly across messages, people, and profiles.

But a lot of user intent starts one step earlier:

  • "is this actually vague, or am I imagining it?"
  • "is this affectionate, or just warm enough to keep me hanging?"
  • "is this text making my reaction the problem?"
  • "did this recruiter actually move the process forward?"
  • "is this client message a real next step or another soft stall?"
  • "is support de-escalating, dodging, or quietly blaming me?"
  • "is my cofounder actually naming the problem, or just keeping the conflict blurry?"
  • "is this manager or vendor reply a real path forward or another ambiguity loop?"

ambiguity-meter is the quick deterministic front door for that moment.

If you are comparing it with a general model instead of another tells microtool, the short acquisition asset is the packaged compare brief:

./compare-chatgpt-gemini.md

If the user already knows one message is not enough, the fastest paid next step is here:

https://tells.voiddo.com/deep-dive/?ref=ambiguity-meter-readme

If they still want one more free checkpoint before buying deeper analysis, route them into the live sibling tools that already cover the adjacent decision:

replytone: https://tells.voiddo.com/replytone/?ref=ambiguity-meter-readme
soft-yes-or-no: https://tells.voiddo.com/soft-yes-or-no/?ref=ambiguity-meter-readme
message-next-step: https://tells.voiddo.com/message-next-step/?ref=ambiguity-meter-readme

The live web app now also makes the paid next step explicit instead of leaving users at a vague flagship jump:

  • Deep Dive for one loaded message thread or one specific mixed-signal situation: $19 once
  • Starter for recurring message-reading habits: $14.99/mo
  • Practitioner for coach, mediator, or trainer workflows: $99.99/mo

That front door is also useful outside dating because ambiguity is expensive in other conversations too:

  • recruiter replies that sound polite but never name timing
  • client or vendor messages that keep movement fuzzy
  • support replies that de-escalate without committing
  • manager or cofounder notes that sound warm but avoid the decision

Install

npm install -g @v0idd0/ambiguity-meter

Best next live routes

Use the strongest live follow-up for the exact next question:

Need the paid full-thread read: https://tells.voiddo.com/deep-dive/?ref=ambiguity-meter-readme
Need to score your outgoing draft: https://tells.voiddo.com/replytone/?ref=ambiguity-meter-readme
Need to tell warm interest from a stall: https://tells.voiddo.com/soft-yes-or-no/?ref=ambiguity-meter-readme
Need the action decision on one message: https://tells.voiddo.com/message-next-step/?ref=ambiguity-meter-readme

Usage

ambiguity-meter "I care about you a lot, but I just can't do this right now. Maybe later when things calm down."
cat message.txt | ambiguity-meter
ambiguity-meter --json "You're overthinking this again. I was joking. Don't make this into a big thing."

Example output

status: mixed-signal heavy
decision: ask one concrete question

summary:
The message leaves timing or intent blurry enough that one precise follow-up is justified.

signals:
- ambiguity: 7.1
- clarity: 3.4
- push-pull: 6.8
- blame: 1.0

why:
1. The next step is not actually named.
2. Warmth is present beside retreat or distance.
3. Delay language keeps the relationship state unresolved.

next:
- quick next paid step: https://tells.voiddo.com/deep-dive/?ref=ambiguity-meter-cli
- recurring reads: https://tells.voiddo.com/?ref=ambiguity-meter-cli

Scoring model

The tool is fully heuristic:

  • delay phrases raise ambiguity
  • warmth-plus-withdrawal phrases raise push-pull
  • minimising and reaction-policing phrases raise blame
  • concrete dates or next steps raise clarity

That makes it useful for a first filter, not a final verdict.

Why not just use ChatGPT or Gemini?

Because a first-pass message check should be:

  • cheap
  • fast
  • repeatable
  • explainable

If the tool gives the same message a different answer every time, it is harder to trust as a quick reality check.

ambiguity-meter is useful precisely because it stays narrow:

  • no API key
  • no prompt fiddling
  • no "maybe the model was in a different mood"
  • same message gives the same baseline read

When one message is not enough, the upgrade path is not "ask a bigger model again." The next step is tells, which is opinionated around messages, people, and profiles.

The reusable package-side comparison brief for npm and GitHub readers is here:

./compare-chatgpt-gemini.md

Compare surface

  • packaged compare brief for npm/GitHub readers deciding whether to install: compare-chatgpt-gemini.md
  • live buyer-path exits when the question shifts from ambiguity into action: replytone, soft-yes-or-no, and message-next-step

Good use cases

  • reality-checking an incoming message before replying
  • spotting vague delay language in dating or friendship texts
  • checking whether a recruiter reply actually names a next step
  • checking whether a client message is postponing without commitment
  • checking whether a support or account-management reply is deflecting responsibility
  • checking whether a work message is dodging the actual issue
  • checking whether a family message is warm but evasive
  • checking whether a cofounder or manager message hides the real decision behind soft language
  • checking whether a vendor or partner reply delays action without naming terms
  • teaching communication patterns without model drift

Bad use cases

  • abuse certainty
  • legal or HR evidence
  • diagnosis
  • compatibility prediction
  • deciding what someone "really feels" from one message alone

Use tells when the pattern across multiple messages matters more than one line.

Good next paid step

When the quick check is not enough, the web app routes into three concrete tells paths:

  • Deep Dive$19 once for one loaded thread or one specific situation
  • Starter$14.99/mo for repeat message reads
  • Practitioner$99.99/mo for client-facing work

This matters because the job of the tool is not just to score one message. It is to capture the exact moment when someone realizes they need more context than one message can provide.

Roadmap

This repo is one part of the tells acquisition cluster:

  1. replytone — score an outgoing draft before sending
  2. ambiguity-meter — reality-check one incoming message for mixed signals across dating, workplace, support, family, and cofounder threads
  3. soft-yes-or-no — tell real movement from a warm maybe that never lands
  4. message-next-step — decide whether to reply now, wait, ask one question, move to a call, or let it go

The point is not three random utilities. The point is three narrow intent doors into one paid product.

If you want the best live free/cheap version of that cluster, use the adjacent tools directly:

replytone: https://tells.voiddo.com/replytone/?ref=ambiguity-meter-readme
soft-yes-or-no: https://tells.voiddo.com/soft-yes-or-no/?ref=ambiguity-meter-readme
message-next-step: https://tells.voiddo.com/message-next-step/?ref=ambiguity-meter-readme

Best next free exits

If the incoming-message ambiguity check is not the right layer, use the sibling checker that matches the decision:

  • message-next-step for deciding what to do with the message, not just how vague it sounds: https://tells.voiddo.com/message-next-step/?ref=ambiguity-meter-related-readme
  • soft-yes-or-no for judging whether the reply is real movement or only warm drift: https://tells.voiddo.com/soft-yes-or-no/?ref=ambiguity-meter-related-readme
  • replytone for checking the draft you are about to send back: https://tells.voiddo.com/replytone/?ref=ambiguity-meter-related-readme
  • double-text-risk for deciding whether another follow-up would help or only add pressure: https://tells.voiddo.com/double-text-risk/?ref=ambiguity-meter-related-readme
  • call-not-text for deciding whether the thread now needs a clearer call or pause instead of another ambiguous loop: https://tells.voiddo.com/call-not-text/?ref=ambiguity-meter-related-readme

Programmatic API

import { analyzeAmbiguity } from "@v0idd0/ambiguity-meter";

const result = analyzeAmbiguity(
  "I care about you, but maybe later when things calm down."
);

console.log(result.status);
console.log(result.metrics);

Development

npm test
node bin/ambiguity-meter.js "Let's not get into this today. Maybe next week."

More from the studio

See from-the-studio.md for the wider vøiddo catalogue.

Compare surface

If you are positioning this tool against a general-purpose AI assistant on npm, GitHub, or inside a package handoff, use this:

License

MIT.


Built by vøiddo — a small studio shipping AI-flavoured products, free dev tools, Chrome extensions and weird browser games.