Riby

The page-your-human skill

The judgment layer - teaches an agent when to page, when to stay quiet, and how to handle the answer.

The MCP server gives an agent the ability to page you. The page-your-human skill gives it the judgment. Without a policy, agents drift toward one of two failure modes: paging about everything, or paging about nothing and quietly doing the irreversible thing. The skill pins down the middle.

Its core rule, verbatim:

NEVER TAKE AN IRREVERSIBLE OR PERMISSION-GATED ACTION WITHOUT A HUMAN REPLY.
WHILE WAITING, PAUSE THAT WORKSTREAM.

What it teaches

When to page. Concrete, observable triggers mapped to the right tool:

SituationTool
Command destroys unrecoverable state: rm -rf, DROP, force-push, prod migrationrequest_permission with danger_level: "high"
Action spends money, uses credentials, or has external side effects: deploy, payment, publish, sendrequest_permission
Action changes shared or prod configuration, secrets, or accessrequest_permission
A significant multi-step plan is drafted and about to executerequest_plan_check
Two viable approaches differ materially in cost, scope, or user-facing behaviorrequest_steering with options
A requirement is ambiguous and the repo, docs, and prior instructions cannot resolve itrequest_steering

When not to page. The answer is already in the repo or prior instructions; the choice is trivial or freely reversible; the human already decided it; it is a progress update (Riby deliberately has no notify-only type); the agent wants reassurance rather than a decision.

Session start. Call check_pending before new work. Pages outlive the process: if the agent crashed mid-wait, the answer (or the safe expiry) is sitting there. The skill also forbids duplicate pages for a question that is still pending.

How to write a page. Title is the decision in one line, gist is just enough context to decide from a phone, extended is dashboard-only detail. Lead with the consequence, end with the question. Steering options are buttons — complete answers, not "option A".

Handling the reply. Approved covers the described action only — widened scope needs a new page. Denied means read the free-text answer for direction, and never re-page hoping for a different outcome. Expired means denied: wrap up safely, note the skipped step, never retry-loop.

It also carries a rationalization table for the excuses agents invent mid-task ("the human is probably fine with it", "it timed out, so nobody minded") with the short answer to each: probably is not a reply, and timeout is the answer — deny.

Install

The skill is a directory: a SKILL.md policy plus reference files (payload formats, worked triage examples, API mechanics) the agent loads on demand.

For Claude Code, copy it into a skills directory — project-level to share with the repo, user-level for every project:

# project
cp -r skills/page-your-human .claude/skills/page-your-human

# or user-wide
cp -r skills/page-your-human ~/.claude/skills/page-your-human

The directory ships in the Riby repo under skills/page-your-human.

[PLACEHOLDER — one-line install from the skill registry lands with the distribution decision.]

For harnesses without a skills mechanism, the policy is plain Markdown: include SKILL.md in your system prompt or rules file. It is written to work standalone.

Skill and server are a pair

The server without the skill pages correctly but at the agent's whim. The skill without the server is policy with no pager. Install the server per your setup guide, add the skill, and the loop closes: the agent knows when to ask, the call genuinely blocks, and your answer is the only way forward.

On this page