Reality Check logo

Reality Check

Community
boshu2
reality-check

Audit claims that work is done or shipped against the diff or repo. Use when: asked whether something really got done, even if it looks obvious.

Overview

Publisherboshu2
Repositoryagentops
Skill namereality-check
Stars
450
Forks
42
Bundled files
5
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 5 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by boshu2 on GitHub. Read the source before you install it.

Installation

Install the Reality Check AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/boshu2/agentops/tree/main/plugin/skills/reality-check
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/boshu2/agentops.git /tmp/agentops
mkdir -p .claude/skills
cp -r /tmp/agentops/plugin/skills/reality-check .claude/skills/reality-check
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Reality Check in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Reality Check on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Reality Check is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Reality Check

Compare an expected state with observable evidence, measure declared goals, or report native status. Select the requested question; a snapshot needs no invented completion claim. Return facts and gaps without selecting work. Neighbours: advice on a plan or change is Review; an acceptance verdict on a finished change is Validate.

Claim comparison

Enumerate every stated claim, including work that was never started, and give each its own disposition: confirmed (cite the evidence), gap (cite what is missing or contradicts it) or unverifiable (name the evidence that would settle it). The named failure mode is auditing only what the diff touched: a claimed item with no trace in the evidence is a gap, not something to leave out of the report.

  1. Read the exact claim and its source, and split it into its separate items.
  2. Inspect the relevant files, command outcomes and artifacts, separating confirmed behavior, concrete gaps, incomplete evidence and changed assumptions. Credit only what the evidence shows: a reported run without its output, behavior left to a default or another component, and a test that exercises code without asserting the claimed outcome are unverifiable, not confirmed. Name the missing evidence instead of resolving an untestable claim by assertion. For a claim that behavior is implemented, search the code behind it for pretend implementations: constant or hard-coded results, TODO or not-implemented branches, sample data, or test doubles outside test code. Trace each hit to its callers before classifying it. A placeholder that a production path reaches makes the item a gap; a double used only by tests, or code nothing calls, does not. A claim that work was pushed, merged, shipped or fixed in a named commit or pull request has its delivery settled by reachability in current remote state, not by a local ref, push output or saved status; whether the content is still present at the target head and does what is claimed is checked as above. Pushed means reachable from the named remote branch, or from the pull request's current head in its own head repository, forks included. Merged means reachable from the target branch the claim names, otherwise the default branch head, or a pull request merged with that branch as its base; a merge into another base does not confirm it. Shipped means present in what the repository's release policy names (a tag, published release or deployment), read from that source. Where squash or rebase broke ancestry, compare the content with the target rather than assume an equivalent commit. Check a supplied SHA or pull request number's form before it reaches a command.
  3. When asked about a plan, compare proposed scope with the original goal; additions that lack authority are scope escalation the report cannot approve. Repeated measurements reuse the same question and criteria; a changed question starts a different comparison.
  4. Return the ledger with checked and not-checked scope. Keep native tracker, Git, runtime, deterministic-check and semantic-judgment facts distinct.
text
Claim: <the claim as stated, and where it came from>
| # | Stated item | Disposition | Evidence, or what would settle it |
|---|---|---|---|
| 1 | <item> | confirmed / gap / unverifiable | <file:line, command output, artifact> |
Checked: <what was inspected>. Not checked: <what was not>.

The ledger reports evidence; it carries no verdict, readiness call or PASS.

A quick answer is inline. A selected durable gap report uses reality-check-report.v1: write reality-check-report.json under the caller's chosen destination, default .agents/scratch/reality-check/<run-id>/, and check it with this skill's scripts/validate-output.sh <report.json>. Record the claim, evidence-backed finding kinds and the per-item dispositions in coverage. The format permits no verdict, readiness or PASS field; observations are not independent semantic judgment.

Establish the requested outcome

A request to check a stated claim (done, shipped, fixed, every item complete) against the evidence selects the claim comparison above without another question; so do explicit requests to measure declared goals or report native status. A bare readiness question with no claim and no settled purpose is ambiguous: ask once whether the caller wants advisory findings or an acceptance judgment, and wait. A claim audit is not acceptance and cannot substitute for Validate's fresh, author-distinct judgment. If acceptance is wanted, hand off and report a missing fresh reviewer as a gap, never as validation that occurred. Shared routing and handoff detail: advice or acceptance.

Health snapshot

For "is this repository healthy" or "do the checks pass", run the project's own read-only checks: those declared in its instructions or CI configuration, or found in its build files. Prefer a --check, dry-run or verify variant when one exists. List any step that writes tracked files, publishes, deploys or needs credentials as not run, with the reason. Record what you selected and where it came from. Run each one separately and keep going after a failure so later results are not lost. Report each check as passed, failed, not run because the tool is unavailable, or not determined because its output could not be captured, and take the result from the exit status rather than from parsing the output. Name declared checks you did not run. Do not fix anything, and do not fold the results into one score that hides a failure.

Goal measurement

Running ao goals against the declared goals source, its derived snapshots and what to return are in goals. Do not add, remove, prioritize, migrate or repair goals, or turn a measurement gap into assigned work.

Native status

Reading the evidence store with ao status, and what a snapshot cannot show, are in status. A recent artifact timestamp proves evidence recency, not an active worker.

Boundary

Return the selected report or snapshot. This skill neither changes native state nor issues semantic PASS, repairs records, schedules or retries work. The documented goal snapshots and requested report/spec writes are its only output side effects. A native caller pursuing an authorized outcome uses these facts and continues its work; the reporting mode does not decide completion for it.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Reality Check AI skill do?

Audit claims that work is done or shipped against the diff or repo. Use when: asked whether something really got done, even if it looks obvious.

Why use Reality Check on TypingMind?

Because you install it once and use it with any model. Reality Check is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Reality Check in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/boshu2/agentops/tree/main/plugin/skills/reality-check. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Reality Check?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Reality Check?

As many as you like. As long as a model supports skills, you can use Reality Check with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Reality Check AI skill free?

Yes. It is published on GitHub by boshu2 under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇