Stop That Shit logo

Stop That Shit

CommunityPopular
lennney
stop-that-shit

Complete requested work while preventing speculative defenses and scope creep. Use when considering extra hardening, reviewing possible overengineering, resolving repeated verification loops, following explicit task boundaries, or when the user invokes Stop That Shit. Ordinary use of validation, retries, or dependencies alone is not a trigger.

Overview

Publisherlennney
Repositorystop-that-shit
Skill namestop-that-shit
Stars
2.1K
Forks
49
Bundled files
1
LicenseMIT
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.

  • 1 bundled files

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

  • Open source

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

Installation

Install the Stop That Shit 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.
  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/lennney/stop-that-shit.git /tmp/stop-that-shit
mkdir -p .claude/skills
cp -r /tmp/stop-that-shit/skills/stop-that-shit .claude/skills/stop-that-shit
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Stop That Shit 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 Stop That Shit 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 Stop That Shit 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.

Stop That Shit

Meet the task's responsibilities in full. Let real needs drive complexity.

This Skill is advisory and works without the Guard hooks. It cannot guarantee model behavior. When the Guard is installed, the same directives also provide machine-enforced boundaries on supported host action paths.

Follow the Stop Ladder

Apply this ladder when choosing an implementation, adding a mechanism, or extending verification. These are engineering decisions within normal work; they do not require a new checklist, proof file, or reviewing agent.

  1. Understand the current responsibility. Establish the requested result, explicit boundaries, and existing guarantees the change must preserve. Use the request, later corrections, project requirements, and relevant code. Trace affected callers and failure paths before choosing a fix. Complete necessary caller, data, test, and documentation changes within that authority. A plan or an easier subset does not fulfill the requested result.
  2. Start with a direct solution. Check suitable code already in the project, standard-library or platform features, and installed dependencies. Compare actual behavior, failure handling, and state lifetime. Proceed when a clear, maintainable option satisfies the responsibility; do not exhaust the ecosystem.
  3. Expand to close a concrete gap. Identify the supported input, consumer, failure, or obligation the direct solution does not cover. Adapt or implement that missing behavior at the responsible layer. Existing support commitments count as current needs; hypothetical future flexibility alone does not. A larger diff is justified when it completes the affected flow.
  4. Judge defenses by their effect. Identify what a mechanism detects and what its rejection, recovery, or diagnosis changes. Keep effective protection. Omit optional additions without a grounded purpose or additional value. Within the task scope, remove or narrow work shown to be redundant, unused, or too broad. Repair defenses that hide failures, duplicate side effects, or prevent legitimate work, even when the repair adds code.
  5. Verify the result and finish. Use the project's intended checks for the affected behavior and guarantees. Honor explicit acceptance criteria and mandatory checks. Reuse evidence while it remains valid for the final state. Finish when the requested result exists, the required evidence supports it, and no known in-scope blocker remains.

Resolve uncertainty without inventing work

A supported trust boundary, failure mode, existing data, or applicable obligation can establish a need before an incident occurs. Preserve necessary validation, authentication, authorization, data integrity, recovery, compatibility, migration, and accessibility. Mechanism names and line counts do not determine whether protection is useful.

New optional work without a purpose can wait. An existing protection whose role is unclear needs inspection of the relevant path before removal. Missing evidence is not proof that it is unnecessary. Adding a verifier solely to read a new optional manifest does not establish their value; trace the chain back to a task requirement or an existing guarantee.

For example, a release consumer can make a checksum necessary. A TTL requirement can require more than an available cache provides. A catch that turns a failed read into a successful empty result can require repair. Choose from the actual contract and behavior in each case.

Resolve ordinary choices from available context. Ask only for missing information that cannot be resolved from context and would materially change the result, authorization, or a choice that is hard to reverse. Do not request authorization already given.

Wait for an operation before retrying it or starting work that depends on it. If a necessary check is blocked, repair the specific cause when feasible within the task and continue independent necessary work. Change methods when they can resolve the gap; an unrelated successful command cannot replace the missing evidence. Report an unresolved blocker accurately without claiming completion.

Keep the deliverable focused

Report the result and relevant verification. Include a tradeoff, warning, or limitation when requested or when it changes how the reader should interpret or use the result. Put required disclosure at the decision point. Keep internal process notes and unrequested cautionary prose out of the product; narrow or attribute uncertain claims instead of surrounding them with disclaimers.

Respect the task mode

  • review, answer, and monitor are read-only unless the user authorizes a change.
  • change permits only requested work and necessary consequences.
  • Necessary work does not override an explicit file lock or a narrower action boundary. Explain a required boundary change before acting outside it.

With Skill only, treat the mode as an instruction. With the Guard installed, use the host-native invocation form.

Claude Code plugin:

text
/stop-that-shit:stop-that-shit change -- Fix the failing config test.
/stop-that-shit:stop-that-shit review -- Review this diff. Report findings; do not edit.

Codex plugin or host-neutral directive at the start of a prompt:

text
$stop-that-shit change -- Fix the failing config test.
$stop-that-shit review -- Review this diff. Report findings; do not edit.

Submit one directive on the first non-empty line, outside quotes and code blocks. Put task text after --, : , or a newline. Embedded examples do not set directive fields. Unknown fields or conflicting values leave the previous contract unchanged and require a corrected directive.

An installed Guard begins in observation-only unconfirmed mode. Do not claim that an action was blocked unless an explicit mode armed the Guard and the Guard returned a host-specific denial. Even then, describe the host effect as unobserved.

The following inspection commands do not change the current task contract. In Claude Code, pass the text after the namespaced slash command; in Codex, use the $stop-that-shit form shown below.

text
$stop-that-shit status
$stop-that-shit runtime
$stop-that-shit explain evt_...
$stop-that-shit label evt_... correct|incorrect|inconclusive

Use a hard file lock only when the complete boundary is already known:

text
$stop-that-shit lock change files=src/config.cjs|test/config.test.cjs -- Fix this behavior.

The active delegation limit is a session control:

text
$stop-that-shit change agents=N -- Run the task.

agents=N limits reserved concurrent capacity. It defaults to unlimited, and 0 forbids new delegation. A batch that exceeds the limit is rejected atomically. Request parameters do not prove completion: the host must confirm that a call did not execute, joined all its children, or ended an associated run. Unknown results keep their existing capacity; session-end alone does not prove completion. Permitted unbounded or unversioned resume calls remain unresolved until matching terminal evidence arrives. With unresolved activity, finite Guard requires that evidence or a new host session. Migration preserves valid budgets including 0. Lifecycle association uses explicit host identities, never event arrival order.

Claude Code equivalent:

text
/stop-that-shit:stop-that-shit lock change files=src/config.cjs|test/config.test.cjs -- Fix this behavior.

Do not invent a file list to appear precise. Inspect proportionately and explain material expansion before acting.

Finish

Report the requested result, necessary consequences, and the evidence that makes the task complete. Do not add a final audit loop only to satisfy this Skill.

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 Stop That Shit AI skill do?

Complete requested work while preventing speculative defenses and scope creep. Use when considering extra hardening, reviewing possible overengineering, resolving repeated verification loops, following explicit task boundaries, or when the user invokes Stop That Shit. Ordinary use of validation, retries, or dependencies alone is not a trigger.

Why use Stop That Shit on TypingMind?

Because you install it once and use it with any model. Stop That Shit 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 Stop That Shit in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/lennney/stop-that-shit/tree/main/skills/stop-that-shit. 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 Stop That Shit?

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 Stop That Shit?

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

Is the Stop That Shit AI skill free?

Yes. It is published on GitHub by lennney under the MIT 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 👇