Skip to content

voidd0/boundary-check

Repository files navigation

boundary-check

License: MIT Node ≥18

Web app · Live compare page · Packaged compare brief · Deep Dive · Signal toolkit · replytone · GitHub · npm · All tools · Contact


boundary-check answers one narrow question:

Does this draft set a boundary clearly, or does it apologize, overexplain, negotiate against itself, or escalate harder than it needs to?

Best fit search intent:

  • salary boundary checker
  • scope creep checker
  • client boundary draft
  • recruiter boundary message
  • say no professionally
  • boundary draft checker

It also works as a narrower, faster alternative to ChatGPT or Gemini when the real need is not "write a whole message for me" but "tell me whether this draft actually holds the line."

It scores one outgoing draft for:

  • boundary clarity
  • appeasement
  • overexplaining
  • negotiation leaks
  • heat

Then it gives one deterministic call:

  • send the boundary
  • trim the explanation
  • name the limit plainly
  • stop negotiating the limit
  • cool it down

The point is not to sound cold. The point is to stop users from turning one clean limit into a debate, apology tour, or angry monologue.

If the user wants the direct side-by-side before installing anything, start with the live compare page:

https://tells.voiddo.com/boundary-check/compare-chatgpt-gemini.html?ref=boundary-check-readme

If they are reading inside npm or GitHub and want the packaged version that ships with the CLI, use:

compare-chatgpt-gemini.md

Why this exists

The paid product is tells, which reads what people leave unsaid across messages, people, and profiles.

But many users hit a narrower draft problem first:

  • "Am I setting a boundary, or begging for permission?"
  • "Is this reply too long because I am scared of their reaction?"
  • "Did I just reopen the limit I was trying to set?"
  • "Is this client, recruiter, family, support, or dating reply going to sound harsher than I mean?"

That shows up in more than dating threads. It also shows up in recruiter follow-ups, salary or process boundaries, client scope creep, support or account-management drain, family guilt loops, workplace expectation sprawl, cofounder conflicts, and vendor or sales threads where one weakly framed limit invites more pressure.

boundary-check is the deterministic first pass for that moment.

Install

npm install -g @v0idd0/boundary-check

Browser-first free path

If you want to use boundary-check in the browser before installing the CLI, use the live route here:

https://tells.voiddo.com/boundary-check/?ref=boundary-check-readme

If the user wants the wider browser-first cluster around it, use the live tells toolkit here:

https://tells.voiddo.com/signal-toolkit/?ref=boundary-check-readme

If the user needs one adjacent browser-first check before buying deeper analysis:

  • replytone for warmth, pressure, and urgency in the actual draft: https://tells.voiddo.com/replytone/?ref=boundary-check-readme
  • call-not-text for deciding whether the conversation already needs a call instead of more wording tweaks: https://tells.voiddo.com/call-not-text/?ref=boundary-check-readme
  • message-next-step for deciding what to do with the incoming message before drafting the boundary at all: https://tells.voiddo.com/message-next-step/?ref=boundary-check-readme

Compare surface

boundary-check now has two compare assets for two acquisition moments:

  • live compare page for browser-first "boundary-check vs ChatGPT / Gemini" traffic: https://tells.voiddo.com/boundary-check/compare-chatgpt-gemini.html?ref=boundary-check-readme
  • packaged compare brief for npm/GitHub readers deciding whether to install: compare-chatgpt-gemini.md

That split matters because browser users want the shortest path into the free checker, while package readers need a self-contained explanation that ships with the tarball.

Best next free exits

If the user already knows the boundary draft is only one symptom, route them to the adjacent free tool instead of dropping them into the full catalog too early:

  • replytone when the real question is whether the draft sounds warm, clear, or too sharp: https://tells.voiddo.com/replytone/?ref=boundary-check-readme
  • message-next-step when the real question is what to do with the incoming message before drafting the limit: https://tells.voiddo.com/message-next-step/?ref=boundary-check-readme
  • call-not-text when another carefully worded text is weaker than switching to a call or stopping the thread: https://tells.voiddo.com/call-not-text/?ref=boundary-check-readme
  • ghost-or-go when the real question is whether silence after the limit means wait, send one final ping, or close the loop: https://tells.voiddo.com/ghost-or-go/?ref=boundary-check-readme

Usage

boundary-check --context client "I can't review a new round tonight. Please send one consolidated version by Monday and I'll look at that."
cat draft.txt | boundary-check --context recruiter
boundary-check --context family --json "Sorry, I hate to be difficult, but maybe we could do this another way unless you really need me there."
boundary-check --file draft.txt --context support

Example output

posture: clear-limit
context: client
boundary clarity: 7.2/10
appeasement:      1.5/10
overexplaining:   3.6/10
negotiation:      2/10
heat:             1.5/10

decision: send the boundary
why: The draft already sounds like a usable limit instead of an anxious explanation.
- Client boundaries need scope clarity more than emotional cushioning.
- The actual limit is already visible in the wording.

repair moves:
1. Pair the boundary with one clean next step or channel.

next:
Use tells when the draft boundary is only one symptom and you need the thread, the person, or the recurring pressure pattern.
- quick next paid step: https://tells.voiddo.com/deep-dive/?ref=boundary-check-cli
- recurring reads: https://tells.voiddo.com/?ref=boundary-check-cli

What it scores

  • boundary clarity — whether the draft clearly names the actual limit
  • appeasement — whether apology or permission-seeking is doing too much work
  • overexplaining — whether backstory is overwhelming the operational point
  • negotiation — whether the draft reopens the limit through caveats or side offers
  • heat — whether the draft is trying to win compliance through escalation

Good use cases

  • client scope, deadline, and revision boundaries
  • recruiter replies where you need salary, process, or schedule limits
  • support or account-management drafts that need a process boundary without sounding hostile
  • workplace or cofounder drafts where the real issue is expectation control
  • family messages where you want warmth without self-erasing
  • dating drafts where overexplaining the boundary would only invite more bargaining
  • vendor, partnership, or sales drafts where you need to say no cleanly
  • any thread where your real question is "does this limit sound usable, or am I talking myself out of it?"

Bad use cases

  • therapy, legal, or crisis guidance
  • deciding whether a boundary is morally correct in the whole relationship
  • deception detection
  • full pattern analysis across months of messages

If the real issue is the pattern over time, use tells.

Why not just use ChatGPT or Gemini?

Because the first problem here is structural, not mystical.

For a draft-boundary check, deterministic heuristics have real advantages:

  • same input gives the same output
  • no API key
  • no prompt fiddling
  • no reward for anxious overexplaining

Then, once the issue becomes "why does this person keep pushing past my limits?" or "why do I keep writing like this with them?", the right upgrade is tells.

If you want the side-by-side version of that argument in the browser, use:

https://tells.voiddo.com/boundary-check/compare-chatgpt-gemini.html?ref=boundary-check-readme

If you want the packaged version that travels with the CLI, use:

compare-chatgpt-gemini.md

The short version:

  • use boundary-check when one draft boundary needs a deterministic hold/trim/cool-down call
  • use ChatGPT or Gemini when you want broad brainstorming or many rewrite variants
  • use tells Deep Dive when the boundary problem is really a recurring person, pattern, or pressure loop

Paid next step

When the one-draft check is not enough:

  • Deep Dive$19 once for one loaded thread or one recurring person
  • Starter$14.99/mo for repeated message reading
  • Practitioner$99.99/mo for coaches, recruiters, mediators, trainers, support leads, account teams, or client-facing managers using this with clients

Start here:

https://tells.voiddo.com/deep-dive/?ref=boundary-check-readme

If you still want the wider browser-first free path first:

https://tells.voiddo.com/signal-toolkit/?ref=boundary-check-readme

Related free checkers

If the problem is adjacent but not exactly "does this boundary hold?", use the matching free tool first:

  • replytone for checking warmth, pressure, and urgency in the whole draft: https://tells.voiddo.com/replytone/?ref=boundary-check-related-readme
  • call-not-text for deciding whether more texting is already the wrong bandwidth: https://tells.voiddo.com/call-not-text/?ref=boundary-check-related-readme
  • message-next-step for deciding what to do with one incoming message before drafting the boundary at all: https://tells.voiddo.com/message-next-step/?ref=boundary-check-related-readme
  • ghost-or-go for deciding whether silence after the boundary means wait, one final ping, or close the loop: https://tells.voiddo.com/ghost-or-go/?ref=boundary-check-related-readme
  • double-text-risk for deciding whether a follow-up after the boundary adds value or just stacks pressure: https://tells.voiddo.com/double-text-risk/?ref=boundary-check-related-readme

Programmatic API

import { analyzeBoundaryCheck, formatReport } from "@v0idd0/boundary-check";

const result = analyzeBoundaryCheck(
  "I can't take calls after 6. Please send one written update and I will reply tomorrow.",
  { context: "workplace" }
);

console.log(result.decision.action);
console.log(formatReport(result));

Development

npm test
node bin/boundary-check.js --context client "I can't review a new round tonight. Please send one consolidated version by Monday and I'll look at that."

More from the studio

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

License

MIT.


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