recipe-setup-sanitization

recipe-setup-sanitization is a skill for Claude Code from fakoli/fakoli-plugins. It costs 27 tokens per session (692 once invoked), scanned A, original, MIT.

A setup guide for Google Cloud Model Armor, a service that scans responses from Google Workspace command-line tools for prompt injection before they reach an AI agent. Prompt injection is hidden or misleading text that tries to change an agent's instructions.

In plain words
What is it for?
Use it to configure response scanning globally or for selected high-risk Google Workspace commands, with warning or blocking behavior.
Why use it?
It reduces the risk that untrusted content, such as an email or API response, can manipulate an agent performing actions through Workspace tools.

Skill for Claude Code

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

Part of the gws plugin — 94 skills, 15 commands, 11 agents shipped together

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.

agentmods
npx agentmods add skills/fakoli/fakoli-plugins/recipe-setup-sanitization
Any agent
npx skills add fakoli/fakoli-plugins --skill recipe-setup-sanitization
Clone the repo
git clone --depth 1 https://github.com/fakoli/fakoli-plugins

Made for: Claude Code.

Or install gws, the plugin that ships this one along with the rest of its 94 skills, 15 commands, 11 agents.

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 recipe-setup-sanitization

README.md
[![agentmods](https://agentmods.dev/badge/skills/fakoli/fakoli-plugins/recipe-setup-sanitization.svg)](https://agentmods.dev/skills/fakoli/fakoli-plugins/recipe-setup-sanitization)
Your own site
<a href="https://agentmods.dev/skills/fakoli/fakoli-plugins/recipe-setup-sanitization"><img src="https://agentmods.dev/badge/skills/fakoli/fakoli-plugins/recipe-setup-sanitization.svg" alt="Measured on agentmods" height="20"></a>
Per session 27 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 692 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
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.00027 $0.00692
Opus 5 $0.00014 $0.00346
Sonnet 5 $0.00005 $0.00138
Haiku 4.5 $0.00003 $0.00069

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

Security

Grade A, and why

recipe-setup-sanitization 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 2d 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.

plugins/gws/skills/recipe-setup-sanitization/SKILL.md · 87 lines

How it starts

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

Set Up Global Response Sanitization

Configure Google Cloud Model Armor to scan all gws API responses for prompt injection before they reach AI agents.

When to Use

Use this workflow when the user wants to set up response sanitization — either globally for all commands or for specific high-risk operations like reading untrusted emails.

Prerequisites

  • GCP project with Model Armor API enabled
  • Full scopes: gws auth login --full

Steps

  1. Create a Model Armor template:

    gws modelarmor +create-template \
      --project my-project-id \
      --location us-central1 \
      --template my-safety-template
    
  2. Test sanitization on a single command:

    gws gmail users messages get \
      --params '{"userId": "me", "id": "MSG_ID"}' \
      --sanitize "projects/my-project-id/locations/us-central1/templates/my-safety-template"
    
  3. Enable globally via environment variables:

    # Add to your .env or shell profile
    export GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE="projects/my-project-id/locations/us-central1/templates/my-safety-template"
    export GOOGLE_WORKSPACE_CLI_SANITIZE_MODE=warn
    
  4. Choose a mode:

    Mode Behavior
    warn (default) Logs a warning but returns the response
    block Returns an error if injection is detected
  5. Verify it's active:

    # Any gws command will now show sanitization status in debug logs
    GOOGLE_WORKSPACE_CLI_LOG=gws=debug gws gmail +triage
    
  6. Make it permanent — add to .env file:

    cat >> .env << 'EOF'
    GOOGLE_WORKSPACE_CLI_SANITIZE_TEMPLATE=projects/my-project-id/locations/us-central1/templates/my-safety-template
    GOOGLE_WORKSPACE_CLI_SANITIZE_MODE=warn
    EOF
    

Per-Command Override

Even with global sanitization, you can override per-command:

# Use a different template for sensitive operations
gws gmail users messages get \
  --params '{"userId": "me", "id": "MSG_ID"}' \
  --sanitize "projects/P/locations/L/templates/strict-template"

Read the full file on GitHub · 87 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. 2d ago First seen · 87 lines · 27 tokens per session scan A bbc03940ec5f

Subscribe to this mod's changes

recipe-setup-sanitization is a skill published in the GitHub repository fakoli/fakoli-plugins (4 stars, last pushed 28d ago), licensed MIT. It adds 27 tokens to every session and 692 once invoked, about $0.0001 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-09-03.

Related

Other skills, from other repositories

pr-vetting

Use when the user wants to thoroughly investigate, vet, review, or security-scan a pull request before deciding how to handle it - especially PRs from external or unknown contributors. Runs a parallel multi-agent investigation (technical, security, value/fit, contributor reputation) and merges the findings into one…

Marcel-Bich/marcel-bich-claude-marketplace · 83 tokens

audit

Read-only quality gate that audits already-built work against its stated requirement and Definition of Done before it is allowed to move to 2done/. Produces a severity-ranked decision proposal (BLOCKER/MAJOR/MINOR/NIT) with evidence, never a fix. Use when an item is claimed complete, before moving anything to 2done/…

Marcel-Bich/marcel-bich-claude-marketplace · 129 tokens

issue-triage

Use when the user wants to triage GitHub issues - decide whether an issue is still relevant, reproducible, closeable, a duplicate, or what concretely needs doing. Selects and prioritizes first (never dumps all issues at once), then deep-triages the chosen issues via parallel subagents, recommends actions for the owner…

Marcel-Bich/marcel-bich-claude-marketplace · 97 tokens

requirements-verbatim

Capture a user requirement, decision, approval, or constraint word-for-word into an append-only dated log so it survives context compaction and can never be trimmed, softened, or reinterpreted. Use whenever the user states or approves a requirement, gives a GO, sets a constraint, or makes any decision that later work…

Marcel-Bich/marcel-bich-claude-marketplace · 101 tokens

diag

Read-only root-cause diagnosis for a symptom, bug, failure, or unexpected behavior. Establishes the mechanism at file:line and reads up the facts instead of guessing, before any fix is attempted. Produces a diagnosis report; the fix is always a separate step gated by an explicit GO. Use when something is broken…

Marcel-Bich/marcel-bich-claude-marketplace · 118 tokens

orchestration

Delegate work to subagents safely and efficiently - decide how many subagents to run, keep parallel tracks on disjoint files, monitor them without flooding your context, inherit security to every subagent, and use return-and-resume so a subagent can ask a question and continue with full context. Use whenever you are…

Marcel-Bich/marcel-bich-claude-marketplace · 102 tokens