The idea

What happens if nobody answers?

Every review tool models waiting. None of them models not answering — which is where the decision actually gets made.

Your agent can build the thing. It cannot answer for it.

So it asks someone: a designer, a lawyer, a client, a PM. Somebody who does not work for you, does not use your tools, and has no reason to learn one. And at that moment every product in this category does the same thing. It sends a notification, shows a spinner, and marks the work blocked on Mike.

But waiting is not a state. It is the absence of one. And the question nobody asks is the question that decides everything:

What happens if Mike never answers?

The undeclared no

Here is what happens today. The agent asks. Mike is in a customer meeting. Thursday becomes Friday. Eventually somebody says “let’s just ship it,” or somebody says “we can’t ship without Mike” — and either way a decision has been made by a process nobody designed, on the strength of a human being busy.

About half the time that silence gets read as agreement. And when it does, the record — if there is one — says something worse than nothing. It says approved.

Nobody approved anything. Mike never opened the email.

This is not a rare failure. It is the ordinary case, and it is invisible precisely because it looks like the system worked.

Declare it, then be held to it

The fix is not a better notification. It is to make the ask say what silence costs, before anyone is bothered.

An ask on HumanGated declares one of four things, and the engine does exactly what it declared:

The ask saysIt blocksAt the deadline
courtesynothing
awaiteduntil the deadlineproceeds without it
requireduntil the deadlineabandons the work
blockingindefinitelynever expires

The interesting one is awaited, because it is the case everybody actually has and nobody can express. I need your read, I am not going to sit here forever, and I will tell you exactly when I stop waiting.

And Mike is told the same thing, in the same words, in the email:

Kay is holding this until Fri 5:00pm EDT, then continuing without it.

Not a paraphrase. The identical sentence, from the identical function, in the email and on the page and in the report the agent gives back. If those three can drift, one of them is a lie, and the reviewer has no way to know which.

A deadline nobody enforces is a lie

Plenty of tools let you type a due date. Almost none of them do anything when it passes, which means the date was decoration.

That is not a small dishonesty. It is the failure that kills every notification system ever built. Mark something urgent when nothing is actually urgent, and you have taught one person to discount one signal. Do it twice and you have taught them to discount all of them. After that you can be as sincere as you like; the channel is dead.

So when the deadline passes, something happens. The work resumes, or it stops, exactly as declared. The reviewer gets no more reminders. The owner gets an email that says which one occurred and why.

We can do this because we hold both ends — the ask that went out and the agent that is waiting. Anybody running this over ordinary email can promise “I’ll proceed Friday.” Nobody else can make it true.

Silence is never approval

Here is the part I care most about.

When an ask expires unanswered, it is recorded as unopposed or abandoned. Never approved. Not as a default, not as a setting, not as a thing an administrator can switch on for their team.

There is a field on every ask that says what to do at the deadline. It accepts proceed, abort, and hold. It does not accept approve, and it never will — not because we disapprove of the idea, but because a value that does not exist cannot be set by accident, cannot be requested by a customer with a deadline, and cannot be added by whoever maintains this in two years without deleting this paragraph first.

“No objection by Friday means approved” is a real workflow and plenty of teams run it. You can run it here. What you cannot do is end up with a record that names a human as having approved something they never opened. That record would be worse than no record at all, because somebody would eventually rely on it.

What we will not claim

Every response carries a checksum of exactly what the person wrote, and the reviewer gets their own copy by email — signed by our domain, timestamped by their mail provider, in a mailbox we cannot reach or alter. That is the point of it. A checksum we compute and we store proves nothing to anyone who doubts us.

It proves the words have not changed. It proves nothing about who typed them.

So we say how sure we are, in words, every time: somebody typed that address, or redeemed a link handed to them, or clicked a link sent to their mailbox. Three different things, and none of them is proof of identity. You will not see us call this a certified audit, because it is not one, and the first person to lean on it as one in a real dispute would find out and be right to be angry.

And the block actually blocks

One more thing, because it is the difference between a policy and a mechanism.

Telling an agent to stop is a request it may decline. Skill text is persuasion. So in Claude Code, HumanGated ships a hook — it runs outside the model, before the tool call, and refuses the edit:

Blocked on Mike's ruling (ask 3f2a…, due Fri 5pm).
Run /hgd-status, or /hgd-unblock to override.

Scoped to the paths you named, so the agent keeps working on everything else. Overridable, because a guard you cannot override is a guard people uninstall — but every override is written down with a reason.

In other agents it degrades to advice, and says so. That limit is part of the honesty, not an embarrassment to bury.

Why nobody else has built this

The industry’s entire third-party review surface is the pull request: engineer-shaped, git-account-gated, useless for the designer and the lawyer and the client. Products with agent APIs count seats. Products where reviewers need no login have no agent API. And the protocols agents speak have no message addressable to anyone but the operator — so reaching a third party has to leave the protocol entirely.

Which leaves the unglamorous part: deliverability, no-account identity, capability links, durable inboxes, an honest assurance ladder. Frameworks cannot ship a sending reputation. Platforms do not want to be bulk senders on behalf of strangers.

Try it on something small

Install the skills, then say check with Mike to whatever agent you already use. He gets one email, opens one link on his phone, marks up the real thing, and never makes an account. Your agent pulls his judgment back as something it can act on.

Ask for a ruling with a deadline and let it expire on purpose. Watch what the record says. That is the whole argument.

npx skills@latest add Brightwing-Systems-LLC/humangated-skills -g --skill '*'

Free for prototypes and prompts · reviewers never sign up · what it does · the agent setup