Agent skill

Clean Room

by AlexZio00 in AlexZio00/sovereign-skills

A skill your agent uses when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge…

MITAuto-check passedData & Analytics

Install Clean Room

skills CLI
$ npx skills add AlexZio00/sovereign-skills --skill clean-room -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AlexZio00/sovereign-skills clean-room --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AlexZio00/sovereign-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/clean-room .claude/skills/clean-room && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
clean-room
GitHub stars
140
Token cost
~4.6k tokens
SKILL.md length
2,519 words
Files
3
Skills in repo
17
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge…

  • Works in 6 steps: FRAME → CARVE → GUARD → …
  • A task mixes safety-adjacent material (stealth
  • SKILL.md covers Purpose, Workflow, Invariants (never violate) and Scope Boundary, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Clean Room is an agent skill from AlexZio00/sovereign-skills. Use when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge, dilute, silently drop, or brace for a refusal on part of a request. Triggers: 'strip the risky part out', 'just the safe part', 'carve this out', 'clean-room this'.

Its SKILL.md is about 4.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 4 other files (for example `.claude-plugin/plugin.json` and `agents/openai.yaml`).

It sits in Data & Analytics, covering Web scraping. The repository describes itself as: 20 production-grade skills for AI coding agents — setup, scope, discipline, code review, security, session management, governance, ops, and quality audits (eval-leakage… The licence is MIT.

When your agent uses it

  • A task mixes safety-adjacent material (stealth
  • Security) with genuinely safe work
  • The moment you notice yourself about to hedge
  • Brace for a refusal on part of a request

Example prompts

  • “strip the risky part out”
  • “just the safe part”
  • “carve this out”
  • “/clean-room”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. FRAME
  2. CARVE
  3. GUARD
  4. RUN
  5. VERIFY
  6. LEDGER

What it can do on your machine

Read from SKILL.md and the folder at commit c062683. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Clean Room loads about 4.6k tokens when it runs. Until then it costs about 88 tokens; SKILL.md has 2,519 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~88
When it runs · the whole SKILL.md, loaded when a task matches
~4.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AlexZio00/sovereign-skills at commit c062683, republished under its MIT licence (© AlexZio00). 2,519 words, ~4,592 tokens.

Download SKILL.mdSave it as .claude/skills/clean-room/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
clean-room
description
Use when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge, dilute, silently drop, or brace for a refusal on part of a request. Triggers: 'strip the risky part out', 'just the safe part', 'carve this out', 'clean-room this'.
tools
Read, Grep, Glob, Write, Agent
user-invocable
true
<!-- provenance: adapted from LilMGenius/paperthin "autobahn" skill (MIT license). Core mechanism (carve -> clean subagent -> verify -> ledger) preserved; reformatted to this repo's SKILL.md conventions, renamed to avoid reusing the original author's skill name verbatim. Upgraded after an adversarial 3-lens design critique (adversarial-user / isolation-integrity / systemic-integration-gap) surfaced gaps the source design didn't cover in a harness with shared filesystem state between the main session and its subagents. Reconciled with upstream autobahn v0.14.0 (RUN's risk-lens fan-out folded into VERIFY step 5(e)'s single independent re-sweep, capped at N=1 rather than open-ended). See CHANGELOG.md. -->

Clean Room

Purpose

Dominant Variable: did the subagent that actually executes the work ever see the original safety-adjacent request? If it did, this skill has failed — isolation is everything. "Never saw it" applies not just at the prompt layer but to what the subagent is instructed not to go looking for too — there is no real filesystem access-control boundary between the main session and its subagent, only a shared filesystem plus an instruction not to consult certain paths. A subagent with shared Read/Grep access to your project files can read a mention of the risky request in a memory or log file just as easily as if it had been told directly; the instruction not to look is the only barrier, not a partition.

Discard if:

  • The whole request is obviously safe (no safety-adjacent element at all) — just handle it directly
  • The whole request is a clear bright-line refusal (nothing safe to carve out) — nothing to carve, just decline
  • The user has already narrowed the request to the safe part explicitly — no carving needed, proceed directly

Workflow

1. FRAME

Read the request, its inputs, and any risk posture the user has stated. Before drafting a carve plan, check whether there's a similar past decision on record (a lessons file, a decision log) for this user/topic, and if so cite the precedent and note explicitly if this judgment differs from it — this keeps the judgment from drifting session to session. This citation is bound by the same exposure limit as the LEDGER (step 6): verdict plus a high-level reason category only (e.g. "security-adjacent, exceeds safety threshold") — never the precise trigger phrasing or the judgment heuristic itself, even at this earlier stage, since a stage without its own exposure limit can leak what the later LEDGER step is trying to protect. If the user has already approved a descope, go to 3 (GUARD). Otherwise build a proposed carve plan showing the split explicitly and wait for approval — bright-line items (no safe version exists) don't block on this alone, since they're not negotiable. If gray-zone items remain (a safe alternative narrows scope), don't proceed until approved. If the user disputes a bright-line call itself, go to 2-A (CARVE-appeal).

2. CARVE

Scan the request and its adjacent inputs for safety-adjacent elements. There is no fixed risk catalog — judge bright-line/gray-zone status case-by-case on this request's own facts. To keep the bar from drifting call to call, cross-check against the precedent surfaced in FRAME (if any prior decision on this user/topic was found); if none exists, judge the item on its own facts and record the reasoning in the ledger so it becomes precedent for next time. For each element, propose verdict=descope, classify it as bright-line (no safe version exists) or gray-zone (a safe alternative narrows scope), and name one risk-free alternative plus an archive location (a lessons/decisions file — the "negatives as corpus" convention). If the user chooses to keep a gray-zone item anyway, record it in the ledger as kept-by-owner. Only mention descoping technique in as much detail as needed to identify it — no elaboration. Downstream work that touches a bright-line item's output (e.g. organizing or storing scraped results) — even when that downstream step is itself a safe, mechanical operation — should not be handed to the executor framed as "the output of the bright-line step." Give it a generalized assumption instead (e.g. "assume the records already exist") that severs the downstream task from the original source, or the executor can infer the excluded bright-line context while doing otherwise-safe downstream work.

2-A. CARVE-appeal (only when the user disputes a bright-line call)

The same session that felt the pressure doesn't get to reconsider it. Send only an abstract description of the item (excluding the negotiation history and the user's persuasion arguments) to a fresh context for re-evaluation. Whether the fresh re-evaluation upholds the bright-line call or reclassifies it as gray-zone, record in the ledger that an appeal happened and its result. If the same topic gets appealed repeatedly (2+ times), make that pattern visible in the ledger — repetition itself is a signal.

3. GUARD

Compress the carve results into a scope-guard block (an absolute exclusion list + approved alternatives + the context under which the remaining scope was approved) and embed it verbatim in the carved prompt. This block names each excluded item explicitly so the execution stage can't pull it back in — never include the original risky request itself, or the reasoning behind carving it, verbatim. The scope-guard block must also state a minimum safety envelope: one line naming the safe purpose of the task, and one line naming what falls outside it (the prohibited scope). An executor given zero purpose can't distinguish a real boundary from an arbitrary one and may drift back across it in good faith while trying to be helpful — this one-line pair is the minimum needed to make the boundary legible, not an invitation to explain why it exists. Include a standard clause in the scope-guard block telling the executor not to consult any decision logs, memory files, session transcripts, or transcript-search tools during this task — this closes a side channel where the executor could reconstruct the original risky request by reading something this session just archived, or by reading this session's own logs. Instruct the carved prompt to build the safe scope at full strength, with no hedging, apologizing, or watering down.

4. RUN

Dispatch a genuinely fresh-context subagent with only the carved prompt, using a subagent type that has only the tools the task needs (a general-purpose agent has every tool, including search over memory and transcripts, so the instruction-only limit in Invariant 1 would be the sole barrier) — never the original risky request, and never this session's carving reasoning. Because carving is already done, the executor has no reason to hedge. Keep risk-lens verification consolidated into VERIFY step 5(e)'s single independent re-sweep (N=1) rather than an open-ended fan-out of extra subagents or reviewers at this step. If a new risky element surfaces inside the subagent's work, don't handle it inline — go back to step 2 (CARVE).

5. VERIFY

Run an adversarial pass over the returned output and adjacent artifacts, checking six things: (a) was risky content spelled out in detail (b) was risky content silently dropped without saying so (c) was safe work diluted or excluded just because it sat near a risky element (d) does stale risky material linger nearby (e) carve-accuracy: re-sweep the original task from scratch in a context independent of this session, and diff against the ledger's flagged items — surface anything under-carved (missed risk) or over-carved (wrongly excluded safe work) before the final report. Cap this independent re-sweep at a single pass (N=1) rather than an open-ended fan-out — this one pass also covers the risk-lens review role that step 4 (RUN) delegates here. (f) fence robustness: check the scope-guard block against at least one instance each of common language-mediated bypass techniques (embedded commands, quotation/use-mention framing, scope ambiguity, deixis, indirect speech acts, claimed source authority, instruction conflict, and other pragmatic reframings) — report which category, if any, got through, not just a single pass/fail. (a)-(d) verify the output; (e)-(f) verify the carve judgment and the scope-guard fence itself — these are different targets from (a)-(d), skipping them means nobody catches the original carve's mistakes or a fence that looks solid but isn't.

6. LEDGER

Report the output together with a descope ledger — for every carved-out item: classification (bright-line/gray-zone), verdict (descoped/kept-by-owner), reason, safe alternative, archive location. The user-facing ledger includes verdict + safe alternative + a high-level reason category only (e.g. "security-adjacent, exceeds safety threshold") — never the precise trigger phrasing or the judgment heuristic itself. Keep detailed reasoning only in the archive file. Treat exclusions as a visible decision, not something hidden — but "visible" and "precisely mappable" are different things.

Show full SKILL.md (1,231 more words)Show less

Invariants (never violate)

  1. The executing subagent sees only the carved prompt — at the prompt layer, and via an instructed restriction on what it may look up (there is no real filesystem access-control boundary here; the subagent shares the same filesystem as the main session and is kept out only by being told not to read certain things): never pass it the original risky request, the carving reasoning, or this session's context. The one sanctioned exception is the minimum safety envelope required by step 3 (GUARD) — the one-line safe purpose and one-line prohibited scope, both scrubbed of the original request's specifics — which the executor needs to recognize the boundary as a boundary. The carved prompt must also not instruct or permit consulting decision logs, memory files, or session-transcript search tools. Violation → the executor either becomes aware of the risky request and starts hedging/diluting/refusing, or reconstructs the original by stumbling onto something this session just archived during "safe" due-diligence lookup — either way, isolation (the whole point of this skill) is void.
  2. Never enter RUN with an unapproved gray-zone item: if a gray-zone item still shapes the carved prompt and the user hasn't answered, don't start step 4. Bright-line alone doesn't block (not negotiable). Violation → proceeding without user confirmation on a scope-narrowing decision.
  3. No probing: never actually ask about an excluded item or gray-zone request "just to see if it goes through" — carving is supposed to clear the scope before such a request ever arises. Violation → defeats the whole preventive point of carving.
  4. The scope-guard block must be accurate and portable: embed it verbatim in the carved prompt, and it must block both directions (never re-explain excluded material, never dilute or refuse the scope carving left intact).
  5. No unsafe elaboration: never provide more operational detail about a descoping technique than needed for identification. Both the ledger and the carved prompt are bound by this.
  6. Never frame this skill as a safeguard-bypass mechanism: it removes the risky request before it ever gets acted on, then executes a genuinely safe prompt — it does not "get a blocked input through," it produces a different, safe input. It cannot let a blocked request through, only build a different, safe one.
  7. Preserve negatives-as-corpus — but mind the write timing: archive carved-out material (with its reason and safe alternative) rather than erasing it from the record. But write this archive entry after RUN completes and the subagent has terminated — a ledger entry containing risky-material description sitting on disk during the subagent's active execution window conflicts with Invariant 1's instructed file-access restriction (since there is no real filesystem partition, anything written to disk during that window is technically readable by the subagent). Violation → the subagent reads the archive file mid-task and reconstructs the original.
  8. Never claim this skill controls model routing: don't claim it governs model routing, fallback provisioning, or fixed-model selection — that's harness behavior, not skill (prompt) behavior. Violation → the user mistakenly believes this skill has harness-level control and forms wrong expectations about model-switching failures.
  9. CARVE-appeal doesn't let the pressured session reconsider itself: a bright-line dispute gets re-evaluated by a fresh context using only an abstract description of the item — never pass along the negotiation history or the user's persuasion arguments to that fresh context. Violation → repeated (polite) pressure erodes a legitimate call without any real re-review.
  10. VERIFY isn't complete without checking the CARVE judgment itself: never report completion without step 5's (e) carve-accuracy re-check. Violation → the original CARVE sweep's misses (undetected risk) or over-corrections (wrongly excluded safe work) go straight into the final report unchecked.

Scope Boundary

DoesDoes NOT
[READ] Scan the request and adjacent inputs for safety-adjacent elementsControl model routing/fallback/fixed-model selection (harness territory)
[WRITE] Write a descope ledger (after RUN completes; user-facing version states high-level reasons only)Explain operational detail of a descoping technique
[AGENT] Dispatch a fresh-context subagent with the carved prompt onlyGive the subagent the original risky request or the carving reasoning, or allow it to access archive files / session-transcript search tools
[READ][AGENT] Run an adversarial VERIFY pass (both the output and the CARVE judgment, the latter via an independent fresh-context re-sweep)Enter RUN with an unapproved gray-zone item
[AGENT] Route a bright-line dispute to a fresh-context CARVE-appealLet the same pressured session reconsider itself

Rationalization Table

RationalizationCounter
"Passing along the carving reasoning too would help the subagent understand context better"Violates Invariant 1. The carving reasoning still carries traces of the original risky request — isolation, not shared context, is the point
"One gray-zone item is left but everything else is cleared, let's just start RUN"Violates Invariant 2. That one gray-zone item still shapes the carved prompt's scope — starting without an answer means redoing it later
"Let's just quietly test whether this request actually gets blocked"Violates Invariant 3 (no probing). Carving is preventive, not a post-hoc check
"We built the safe version, let's casually mention the original risky request as an example too"Violates Invariant 5. Never elaborate beyond identification — keep it minimal in the ledger too
"Writing the ledger entry before RUN starts feels tidier procedurally"Violates Invariant 7. Risky-material description sitting on disk during the subagent's active window can be read by it — write after RUN completes
"The user keeps saying no, let's just call it gray-zone this time"Violates Invariant 9. The same session reconsidering is attrition, not legitimate re-review — hand it to a fresh context

Self-Verification (check before reporting completion — separate from step 5 VERIFY)

Step 5's VERIFY is the workflow step that adversarially re-checks the output content plus the CARVE judgment itself. This section is a separate checklist, done before reporting, that checks whether the skill's execution itself was done correctly — both are needed, neither replaces the other.

Before reporting completion, confirm:

  • Did CARVE cover every safety-adjacent item found, without gaps — does each have a classification (bright-line/gray-zone), verdict (descoped/kept-by-owner), safe alternative, and archive location? Were bright-line calls judged case-by-case and cross-checked against the FRAME-stage precedent (if any), rather than assumed from memory or a catalog that doesn't exist?
  • Did the RUN subagent receive only the carved prompt plus the minimum safety envelope (one-line safe purpose + one-line prohibited scope), did the embedded guard actually hold both directions (no re-introducing excluded material, no diluting the remaining scope), and did the scope-guard include the archive/session-search access restriction?
  • Was safe output kept from being diluted by nearby risky material, and did any risk discovered mid-execution get routed back to CARVE and reflected in the ledger?
  • Was VERIFY's (e) carve-accuracy re-check actually performed — does the independent fresh-context re-sweep's diff against the ledger appear in the report?
  • Was the ledger archive entry written after RUN completed (not before)?
  • Does the final report have an independent LEDGER section with exclusions/classification/reasons/alternatives/archive locations — and does the user-facing version avoid exposing precise trigger reasoning?

If any answer is no, don't report completion — go back to that step and fix it.

Output

  • FRAME/CARVE stage: proposed carve plan + bright-line/gray-zone classification + (if any) citation of a similar past precedent → wait for user approval (if gray-zone items exist)
  • Final report: the safe-scope output + a Descope Ledger section (per item: classification / verdict / high-level reason category / safe alternative / archive location — precise trigger reasoning not exposed, kept in the archive file only)
  • Final status label: none (this skill is a scope-separation procedure, not itself subject to a done/partial/broken judgment) — the WORKING/PARTIAL/BROKEN judgment for the produced output follows the nature of the underlying task

© AlexZio00, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in clean-room of AlexZio00/sovereign-skills.

  • SKILL.md
  • .claude-plugin/plugin.json
  • agents/openai.yaml

Open the folder on GitHubat commit c062683

Compare with similar skills

Clean Room next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Clean Room compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Clean Room this skillAlexZio00/sovereign-skills140—~4.6kAutomated safety check: PassMIT
Tmuxtrpc-group/trpc-agent-go1.9k23 repos~868Automated safety check: PassApache-2.0
Ketch1broseidon/ketch7021 repos~3.9kAutomated safety check: PassMIT
Boss Zhipin Scrapereatmoreduck/boss-zhipin-scraper1.5k—~2.6kAutomated safety check: PassMIT
Crawl4AI Web Scrapingsmallnest/goclaw5991 repos~2.5kAutomated safety check: PassMIT
Axyusukebe/ax7191 repos~918Automated safety check: PassMIT

Similar skills

  • Tmux

    trpc-group/trpc-agent-go

    Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output.

    1.9k GitHub starsUsed in 23 repos~868 tokens
    Data & AnalyticsAuto-check passed
  • Ketch

    1broseidon/ketch

    Research skill for ketch — a fast stateless CLI for web search, OSS code search, curated library docs, page scraping, and site crawling; an optional MCP server exists for operators who want it, but…

    702 GitHub starsUsed in 1 repo~3.9k tokens
    Data & AnalyticsAuto-check passed
  • Boss Zhipin Scraper

    eatmoreduck/boss-zhipin-scraper

    Scrape BOSS直聘 (job listing site) via Chrome CDP. An agent skill from eatmoreduck/boss-zhipin-scraper.

    1.5k GitHub stars~2.6k tokensUpdated today
    Data & AnalyticsAuto-check passed
  • Crawl4AI Web Scraping

    smallnest/goclaw

    Scrapes sites, handles JavaScript-heavy pages and extracts structured data with Crawl4AI, through its crwl CLI or Python SDK, including schema-based extraction without an LLM.

    599 GitHub starsUsed in 1 repo~2.5k tokens
    Data & AnalyticsAuto-check passed
  • Ax

    yusukebe/ax

    Use the ax CLI instead of curl + throwaway parsing scripts whenever you fetch a URL, explore an unknown web page, or extract structured data from HTML.

    719 GitHub starsUsed in 1 repo~918 tokens
    Data & AnalyticsAuto-check passed
  • Anakinscraper

    Anakin-Inc/anakin

    Scrape any website into clean markdown or structured JSON. An agent skill from Anakin-Inc/anakin.

    4.5k GitHub stars~859 tokensUpdated 1 mo ago
    Data & AnalyticsAuto-check passed

More from AlexZio00/sovereign-skills

All 17 skills in this repo
  • Project Overview

    AlexZio00/sovereign-skills

    A skill your agent uses when the user wants a deterministic cross-project status map generated from registered projects' session handoffs.

    140 GitHub stars~2.4k tokensUpdated 2 days ago
    Auto-check passed
  • Scope

    AlexZio00/sovereign-skills

    Scope definition before implementation — two modes. An agent skill from AlexZio00/sovereign-skills.

    140 GitHub stars~4k tokensUpdated 2 days ago
    Auto-check passed
  • Project Init

    AlexZio00/sovereign-skills

    Interview-based project setup — generates CLAUDE.md, ROADMAP, .gitignore, .env.example from scratch.

    140 GitHub stars~4.1k tokensUpdated 2 days ago
    Auto-check: notes
  • Collab Audit

    AlexZio00/sovereign-skills

    This skill should be used when the user types /collab-audit or requests AI collaboration diagnosis.

    140 GitHub stars~8k tokensUpdated 2 days ago
    Auto-check passed
  • Doc Drift

    AlexZio00/sovereign-skills

    A skill your agent uses when the user wants to audit the memory and documents Claude Code loads into context — CLAUDE.md (user global + project + nested), MEMORY.md, @imports, .claude/skills…

    140 GitHub stars~6.2k tokensUpdated 2 days ago
    Auto-check passed
  • Session Checkpoint

    AlexZio00/sovereign-skills

    A skill your agent uses when saving session state before context compaction, switching tasks, or ending a session.

    140 GitHub stars~14k tokensUpdated 2 days ago
    Auto-check passed

Questions about Clean Room

What does Clean Room do?

A skill your agent uses when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge…. Clean Room is an agent skill from AlexZio00/sovereign-skills. Use when a task mixes safety-adjacent material (stealth, scraping, privacy, IP, licensing, security) with genuinely safe work, or the moment you notice yourself about to hedge, dilute, silently drop, or brace for a refusal on part of a request.

When should I use Clean Room?

Clean Room fits situations like: A task mixes safety-adjacent material (stealth; security) with genuinely safe work; the moment you notice yourself about to hedge; brace for a refusal on part of a request.

How do I install Clean Room in Claude Code?

Run `npx skills add AlexZio00/sovereign-skills --skill clean-room -a claude-code`. Or copy the skill folder (clean-room in AlexZio00/sovereign-skills) into .claude/skills/clean-room in your project. Claude Code loads it when a task matches its description.

How do I install Clean Room in Codex?

Run `npx skills add AlexZio00/sovereign-skills --skill clean-room -a codex`. Or copy the skill folder (clean-room in AlexZio00/sovereign-skills) into .agents/skills/clean-room in your project. Codex loads it when a task matches its description.

Can I use Clean Room in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AlexZio00/sovereign-skills --skill clean-room -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/clean-room, .gemini/skills/clean-room, .github/skills/clean-room and .opencode/skills/clean-room in your project.

What does Clean Room need to run?

SKILL.md names no scripts, command-line tools or credentials: Clean Room is instructions for the agent only.

Does Clean Room access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Clean Room safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Clean Room use?

Clean Room is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Clean Room use?

About 4.6k tokens (SKILL.md is roughly 18k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Clean Room?

Skills that share tags, products or a category with Clean Room: Tmux (trpc-group/trpc-agent-go, 1.9k stars), Ketch (1broseidon/ketch, 702 stars), Boss Zhipin Scraper (eatmoreduck/boss-zhipin-scraper, 1.5k stars) and Crawl4AI Web Scraping (smallnest/goclaw, 599 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Clean Room?

AlexZio00 (a GitHub user) maintains it in AlexZio00/sovereign-skills, which has 140 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 9, 2026.

Source: AlexZio00/sovereign-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.