ya-te-lavaste-las-manos

ya-te-lavaste-las-manos is a skill for Claude Code from mcasillas17/mexican-mom. It costs 77 tokens per session (1,427 once invoked), scanned A, original, MIT.

A security checklist for handling data that comes from outside the program, such as web requests, files, environment variables, or third-party services.

In plain words
What is it for?
Use it when processing request data, command-line arguments, uploads, webhook or API responses, LLM output, tokens, keys, SQL, shell commands, HTML, or file paths.
Why use it?
It reduces the risk that untrusted data causes injection attacks or mishandles credentials. It requires checking data at entry points and protecting it again where it is used.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the mexican-mom plugin — 24 skills shipped together

Good fit Use it when processing request data, command-line arguments, uploads, webhook or API responses, LLM output, tokens, keys, SQL, shell commands, HTML, or file paths.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add mcasillas17/mexican-mom --skill ya-te-lavaste-las-manos
Clone the repo
git clone --depth 1 https://github.com/mcasillas17/mexican-mom

Made for: Claude Code.

Or install mexican-mom, the plugin that ships this one along with the rest of its 24 skills.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for ya-te-lavaste-las-manos

README.md
[![agentmods](https://agentmods.dev/badge/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos/github.svg)](https://agentmods.dev/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos)
Your own site
<a href="https://agentmods.dev/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos"><img src="https://agentmods.dev/badge/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for ya-te-lavaste-las-manos

Your own site · 80×15
<a href="https://agentmods.dev/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos"><img src="https://agentmods.dev/badge/skills/mcasillas17/mexican-mom/ya-te-lavaste-las-manos.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 77 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,427 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00077 $0.01427
Opus 5 $0.00039 $0.00714
Sonnet 5 $0.00015 $0.00285
Haiku 4.5 $0.00008 $0.00143

Measured 12d ago against content hash 535cd2fe5448, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-12, from the pricing page.

Security

Grade A, and why

ya-te-lavaste-las-manos scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 12d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

skills/ya-te-lavaste-las-manos/SKILL.md · 96 lines

How it starts

The opening of the file, as written. The whole thing — 96 lines — stays where its author put it; the contents beside it link to each section on GitHub.

¿Ya te lavaste las manos?

It does not matter that the data looks fine. You do not know where it has been.

Rule

Data from outside this process is dirty until it is validated at the trust boundary, and it stays dangerous at every sink it reaches. So you do both, always: validate at the boundary — allowlist shape, type, range, length — and encode or parameterize at the sink. Never build SQL, shell commands, HTML, templates, or filesystem paths by string interpolation. "It was validated upstream" is not a defense; upstream is not this line.

Procedure

Run steps 1–6 in order for the change in front of you.

  1. List every untrusted entry point it touches. HTTP body, query string, path segment, header, cookie; CLI argument; environment variable; file or upload contents; message-queue or webhook payload; third-party API response; LLM output; any deserialized blob. If a value did not originate in this codebase, it is on the list.
  2. Trace each entry point to every sink it reaches. Follow it through helpers, framework middleware, and stored state — data written to a database today is untrusted again when it is read back and rendered tomorrow. Name the sinks; do not assume the path is short.
  3. Validate at the boundary. Parse into a typed value once, against an allowlist: permitted shape, type, enum members, numeric range, maximum length. Reject what does not match — do not strip, escape, or "clean" it into acceptance. Rejection is loud and specific; the error names the field, never the value.
  4. Neutralize at the sink. Find each sink in the table and apply its row.
Sink Required form
SQL / any query language Parameterized query with bound placeholders. Never concatenation, f-strings, or format. Identifiers and sort columns come from an allowlist map, not from input
Shell, subprocess, exec Argument array with the shell disabled (shell=False, execFile). Never a composed command string, never shell=True "just for the pipe"
HTML, attributes, JS, CSS, URLs Context-correct escaping by the templating layer, autoescape on. Never innerHTML, dangerouslySetInnerHTML, or |safe on untrusted data
Template engine Render a fixed template with data passed as parameters. Never build the template string from input — that is code execution, not rendering
Filesystem path Join, resolve to an absolute path, then confirm the result is still inside the intended root. Reject .., absolute inputs, and symlinks that escape
Deserializer JSON parsed against a strict schema. Never pickle, never yaml.load without a safe loader, never eval, never a reviver that instantiates types named by input
Outbound HTTP (SSRF) Allowlist scheme and host, resolve the name and reject loopback, link-local, and private ranges, and do not follow redirects blindly
LLM output Treat as data, always. Validate against a schema, then send it through this same table before it reaches any other sink. Never exec, never eval, never a query

Read the full file on GitHub · 96 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 12d ago First seen · 96 lines · 77 tokens per session scan A 535cd2fe5448

Subscribe to this mod's changes

ya-te-lavaste-las-manos is a skill published in the GitHub repository mcasillas17/mexican-mom (2 stars, last pushed 1mo ago), licensed MIT. It adds 77 tokens to every session and 1,427 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.