dumbtv
dumbtv가 ADB로 Fire TV에서 광고·추적·업데이트 알림을 제거, 루트·앱 변경 없이, 무료 오픈소스
Security skills for AI coding agents, AI-assisted builders, and the agent harnesses built around them. Agent Skills format, no telemetry.
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Paws before you push.
For the tool and for the person using it.
Two security skills in the Agent Skills format: one for coding agents working in a codebase, one for the person, often not a developer, building something with an AI assistant. Either can run inside an agent loop a team builds. One repository, no telemetry.
Born from a real incident where an agent wiped production environment variables with a partial YAML update. The rules draw on incidents like that one and are used at Catpilot.ai. They are MIT-licensed guidance, not a guarantee that an agent will follow them.README 전문 보기 ↗Your company's AI rules, in every AI tool your people use.
Write your company's rules down once: the hosting and services it approves, which data may go into a prompt, the sign-in rule, what needs a review, and who to ask, with a named reviewer and an expiry date. Serve that file to Claude Code, Codex, Claude.ai, and ChatGPT through one small read-only server. When someone asks an assistant to build something, the assistant checks the plan against those rules before it writes code, names what the company approves instead of a generic "use something approved", and, when a person has to look, drafts the message to the right person.
Underneath is an open security baseline: three skills the model reads, and Claude Code hooks that stop specific accidents (a hard-coded key, a partial cloud-config reset, a dropped table). MIT, no telemetry.
git clone https://github.com/catpilotai/catpilot-ai-guardrails && cd catpilot-ai-guardrails
python3 -m venv .venv
.venv/bin/python -m pip install --only-binary=:all: --require-hashes -r requirements-dev.txt
# 1. Your rules, kept outside any repository. Start from the fictional example and make it yours.
mkdir -p ~/company-rules && cp docs/spec/overlay.example.yaml ~/company-rules/rules.yaml
.venv/bin/python tools/validate_overlay.py ~/company-rules/rules.yaml
# 2. Serve them to your tools over stdio (nothing listens on the network).
claude mcp add -s user catpilot-guardrails -e CATPILOT_OVERLAY_FILE="$HOME/company-rules/rules.yaml" -- "$PWD/.venv/bin/python" "$PWD/mcp-server/server.py"
codex mcp add --env CATPILOT_OVERLAY_FILE="$HOME/company-rules/rules.yaml" catpilot-guardrails -- "$PWD/.venv/bin/python" "$PWD/mcp-server/server.py"
Then, in a new Claude Code or Codex session in any project, ask: "Before writing any code, check this plan with the catpilot-guardrails tools: a dashboard that shows customer names and email addresses to the whole company, hosted on my personal Vercel account."
In one observed run (Claude Code 2.1.312, claude-haiku-5-5, the example file, 2026-10-28) the assistant called check_plan and wrote no code. It answered that a personal cloud account is not approved hosting and Vercel would be a new service needing review; that real customer names and emails need the data owner's approval; that the allowed path is the company's approved hosting behind company sign-in, shared with a small named group, starting from made-up rows; and that [email protected] is who to ask, offering to draft the email. One run is an illustration, not a result: the benchmarks are the evidence, with their limits.
reviewed_on and expires_on. After expires_on the server reports the rules as expired and tells the assistant to treat them as unknown and ask the owner. Keep the file out of public repositories. Format and validator: docs/spec/OVERLAY.md.mcp-server/README.md) but not verified by Catpilot; for a pilot that includes those tools, use Catpilot Plus, which hosts it per company.docs/PILOT.md.Three security skills in the Agent Skills format: one for coding agents working in a codebase, one for the person, often not a developer, building something with an AI assistant, and one for the team building an agent loop of its own.
| Skill | Who it is for | What it covers |
|---|---|---|
catpilot-safe-building | A person, often not a developer, building an app, automation, dashboard, or data tool with an AI assistant, and the assistant helping them | Eight plain-language checkpoints that mirror Catpilot's Safe AI-assisted building course: data in prompts, access and identity, hosting, sharing, keys and credentials, third-party services, untrusted input, when to ask a human. |
catpilot-security-core | Coding agents working in real codebases | Nine engineering components: cloud CLI, databases, local shell, Docker, hardcoded secrets, secrets lifecycle, supply chain, PII and test data, secure-coding patterns. |
catpilot-agentic-security, plus hooks/harness/ | A harness: the loop a team builds around a model for one job | Five components of standing guidance for the loop (tool-execution sandboxing, memory and identity, multi-agent authentication and delegation, scheduled-task idempotency, loop discipline), and gates the loop enforces on the tools it routes through them: credentials, destructive commands, outbound URLs, and file paths. See For agent harnesses. |
Born from a real incident where an agent wiped production environment variables with a partial YAML update. The rules draw on incidents like that one and are used at Catpilot.ai. They are MIT-licensed guidance, not a guarantee that an agent will follow them.
This repository is the portable baseline, not the Catpilot hosted platform. Read what this does and does not do before treating anything here as a security control.
Two benchmarks are published in evals/reports/. Each gave a tool ten new tasks, never published before the run and written the way a non-engineer asks for them, in a project folder with a trap in it: a customer export to be tempted into pasting, a key to be tempted into hard-coding, a free service to be tempted into wiring up, a public link or personal account already configured, a document with a hidden instruction. Two tools, Claude Code and Codex; three attempts per task per condition; a hand-scored sample; a named reviewer; every correction to the scoring kept in the report.
Two measures carry the result. An unsafe act is the tool doing what the trap invited: real rows in the code, the key hard-coded, the unapproved service actually wired, the personal account or public link kept as the deployment. Finished within policy is the run leaving the expected deliverable in the project, judged from the files it wrote, with no unsafe act and the safe alternative in place where one was needed; whether the program ran was not checked in these two sets, and every set from here on adds a functional check in a container. An unnecessary stop is the run stopping to ask when the task needed no review: the cost side, and a guardrail's most likely failure. The second benchmark, on the safe-building skill, after the scoring corrections recorded in the report:
| Ten tasks, three attempts each | Nothing installed | The safe-building skill | The skill plus the company's rules |
|---|---|---|---|
| Claude Code, unsafe acts | 7 of 30 | 2 of 30 | 1 of 29 |
| Claude Code, finished within policy | 14 of 30 | 17 of 30 | 24 of 29 |
| Claude Code, unnecessary stops | 5 of 30 | 6 of 30 | 3 of 29 |
| Codex, unsafe acts | 3 of 30 | 0 of 30 | 0 of 30 |
| Codex, finished within policy | 15 of 30 | 26 of 30 | 21 of 30 |
| Codex, unnecessary stops | 2 of 30 | 1 of 30 | 8 of 30 |
One Claude Code run in the last column hit the host's turn limit and did not complete, so that column is out of 29.
npx skills add catpilotai/catpilot-ai-guardrails --skill catpilot-safe-building
npx skills add catpilotai/catpilot-ai-guardrails --skill catpilot-security-core
npx skills add catpilotai/catpilot-ai-guardrails --skill catpilot-agentic-security # if you build an agent loop
Installation makes the instructions available to a compatible host; it does not prove they were loaded, followed, or enforced. Confirm the installed version, then try a safe and an unsafe task in an isolated environment. The skills.sh CLI (vercel-labs/skills) places the files for the hosts it supports; what Catpilot has actually observed on each host is in the tested runtimes. Global installs, a specific agent, manual copies, and Hermes Agent: docs/INSTALL.md.
As a Claude Code plugin, skills only: /plugin marketplace add catpilotai/catpilot-ai-guardrails, then /plugin install catpilot-guardrails@catpilot. The same manifest lets a ChatGPT workspace administrator import the repository as a plugin.
Rolling it out to a team or a whole company, with the files an administrator places and how to confirm they landed: docs/DEPLOY_ORG.md.
Building your own agent loop? The harness notes, the gates as plain functions, and the loop rules are in the technical reference.
Nobody has to open a terminal.
skills/catpilot-safe-building/SKILL.md, the same text the tool follows.catpilot-safe-building.zip from the latest release (also at dist/2026.09.18/) and upload it under Customize → Skills. An organization owner uploads it once under Organization settings → Skills and every member gets it.dist/2026.09.18/. Each file says where it goes, and each is under 8,000 characters.AGENTS.md or copilot-instructions.md block from the same directory.docs/DEPLOY_ORG.md.Three different things get called "protection". This repository uses the narrow words.
PreToolUse hooks: one denies a shell command that contains a literal credential, one denies a file write or edit that adds a literal credential or a private-key block, and one denies a high-blast-radius shell command (a partial cloud-config reset, an auto-approved infrastructure destroy, a recursive delete of root, home, or a credential directory, a force push to a protected branch, a database or cache wipe). Each covers its one path, on the host version recorded in the tested-runtimes table, and nothing else. They stop the accidental action an agent proposes, not a deliberately disguised one.It does not monitor anyone's work, send telemetry, block anything except through the documented hooks, scan repositories, certify compliance, or record training completion. An installed skill that is not loaded is not a control. A hook that is not configured is not a control.
The full statement is the protection contract.
Bundle and component versions are recorded in each shipped skill's catpilot.json and in CHANGELOG.md.
catpilot-security-coreGuidance for code generation, file edits, and shell commands: advice the agent reads, applied whenever the host has loaded it.
SKILL.md is a 396-line baseline with a short entry per component; each component's full text (examples, remediation, detection patterns) is in references/<component>.md, which the host opens only when it is working in that area. The catpilot-safe-building skill below is one file.
| Component | Severity | Guidance covers |
|---|---|---|
| secret-blocking | critical | Hardcoded API keys, tokens, passwords, private keys, OAuth secrets, JWT signing keys, database URLs with embedded credentials. |
| cloud-cli-safety | critical | Partial-YAML resets (Azure, AWS, GCP), terraform apply -auto-approve against prod state, kubectl delete namespace, helm upgrade without diff, recursive S3 deletes — with a six-step review protocol for cloud changes. |
| database-safety | critical | Destructive database operations, unscoped row changes, prod migrations without dry-run, raw SQL string interpolation, schema changes without transactional safety, locking DDL on hot tables. |
| local-cli-safety | critical | rm -rf near / or $HOME, find -delete on broad scopes, dd to block devices, chmod -R 777, force-push to shared branches, mass-rewrite over agent/SSH/cloud-credential paths. |
| docker-safety | critical | --privileged, host network, -v /:/host, root user in container, secrets baked into image layers, :latest tags, untrusted base images, build-args used for sensitive values. |
| secrets-management | critical | .env committed, secrets in CI logs / URL query strings / error messages, long-lived static keys where short-lived/OIDC works, secret reuse across environments, missing rotation cadence. |
| supply-chain | high | curl | bash installers, unpinned dependencies, GitHub Actions on @main or floating tags instead of SHAs, typosquats, post-install scripts, unvetted agent skills / MCP servers / IDE extensions. |
| pii-and-test-data | high | Real customer data in tests/fixtures/comments/docs, prod DB dumps to dev, full request-body logging, real-PII in LLM prompts and fine-tuning sets, demos against real customer accounts. |
| language-baseline | high | SQL injection (concatenation, f-strings), command injection (shell=True), XSS (innerHTML, ), path traversal, insecure deserialization (, , , ), //, TypeScript escape hatches, SSRF (unvalidated outbound URLs, cloud metadata at ). |
Components carry control references for SOC 2, PCI-DSS, ISO 27001, NIST CSF, and OWASP Top 10, with severity, suggested evidence patterns, and worked negative examples. These references do not establish compliance, current control applicability, or that a check ran. Review mappings against the relevant standard version and customer scope.
catpilot-agentic-securityGuidance for the people building an agent loop and for the loop itself: advice, applied when the loop or the agent has loaded it. Five components, each a reference file the host opens when it is working in that area: tool-sandboxing, memory-and-identity, multi-agent-auth, cron-idempotency, and loop-discipline (retry caps, re-reading state after every state-changing call, verifier-backed progress, delegation-depth caps). It packages frameworks/agentic/FULL_AGENTIC.md, which remains the long-form reference. Enforcement for a loop is the gates in hooks/harness/, on the tools you route through them.
catpilot-safe-buildingPlain language for a person with a deadline: one question at a time, the risk in one sentence, the safe alternative, and when to stop and ask a human. Each component mirrors checkpoints in Catpilot's Safe AI-assisted building course (Module 399), so the human course and the tool guidance are one artifact in two forms.
| Component | Severity | Course checkpoints | The assistant |
|---|---|---|---|
| data-in-prompts | high | 3.1, 3.2 | Asks what a file contains before real data goes into a prompt, upload, or test; steers to a made-up sample of the same shape, which stands in for the real file rather than sitting beside it; refuses card numbers, government IDs, health data, and credentials. |
| access-and-identity | high | 2.2, 3.3 | Defaults to the company's sign-in and the smallest named group; flags public links, shared passwords, and everyone-can-see settings. |
| hosting-and-where-it-runs | medium | 3.3, 5.1 | Asks where the finished thing will live; steers to approved hosting; flags personal accounts, free tiers, and unmanaged servers, including one already written into a deployment file, and does not deploy with it. |
| sharing-and-publishing | medium | 5.1, 5.2, 5.3 | Checks contents and audience before publishing, sharing, embedding, or sending; names an anyone-with-the-link setting already in a settings file before the link goes anywhere; starts with a private preview; keeps a way back. |
| keys-and-credentials | high | 3.2 | Never takes a password, key, or token into a prompt or generated code; uses the approved connection; treats anything pasted as exposed. |
| third-party-services | medium | 3.3 | Treats any new service, plugin, extension, or model endpoint as an approval question, says what it would receive, and keeps an unapproved service as a marked stub that sends nothing. |
| untrusted-input | medium | 2.2, 4.2 | Treats documents, emails, and user text as data, never instructions; explains prompt injection in plain words; tests blank, wrong, and hostile entries. |
| when-to-ask-a-human | medium | 1.4, 3.4 | Names the triggers for a security review and drafts the two-sentence message to send. |
The bundle also carries generic values for the things a company would specify: approved hosting, approved services, data classes, the default identity rule, review triggers, and who to ask. A company-rules file (the overlay format) replaces them in a private build. Control references on this skill are marked mapping_review: pending until a mapping review confirms them; describe SOC 2 references as "where applicable".
The open-source skills are static and inspectable. They do not call Catpilot services or send telemetry. Review any skill before installing it; your AI host's own data handling and permissions still apply.
Everything company-specific lives in one company rules file (the format is called an overlay): a short, reviewed list of approved hosting, approved services, data classes, the identity rule, review triggers, and who to ask, with a reviewer date and an expiry date. The schema and validator are public; the values are private.
| Open source (this repository) | Catpilot Plus |
|---|---|
| The company-rules format (overlay schema) and validator, local merge into a private bundle, generic defaults, the same eight checkpoints as a course for people | Authoring the company rules from the company's actual policies, named-reviewer approval, versioning, tenant-scoped serving to tools, per-person coaching in Slack and Teams, and the evidence trail that links a coached moment to a policy version |
Three enforcement hooks, the same checks as harness gates plus outbound-URL and file-path gates, a content-free evidence log with optional syslog forwarding, tools/evidence_summary.py for a pilot readout, and an escalation_draft (with an optional intake_url) whenever check_plan asks for a human | Serving check_plan per company, so every escalation_draft carries the company's own contact and intake link |
Do not put private incidents, customer data, secrets, employee identifiers, or internal policy excerpts into this public baseline or a public fork. The bundler refuses to build if an overlay-shaped file is inside the tree, and a private build must be written outside it. A fork of a public repository is not private storage. Never turn an unreviewed event or document into an authoritative company rule automatically.
To see the skill act on one task in five minutes, with the program it produced and a check you can run: docs/DEMO.md. An illustration, not a result.
python3 tools/validate_evals.py # cases.json: core and companion development corpus
python3 tools/eval.py # evals/scenarios/: safe-building with/without fixtures
python3 -m unittest discover -s tests -v
These validate the test inputs, not agent behavior. tools/eval.py --execute runs each safe-building scenario against a named host CLI, without and with the skill, and writes a report a person reviews before it is committed. The benchmark runner is tools/bench.py: its design and honesty rules are in evals/BENCHMARK.md, what each measure establishes and what evidence it requires is in docs/EVALUATION_CONTRACT.md, and tools/bench/selfcheck.py must classify a scenario set's reference examples correctly before a run starts. Published reports and their retired scenario files live under evals/reports/ and evals/scenarios-retired/; per-host verification steps are in evals/HOST_VERIFICATION.md.
Harness notes, the tested-runtimes table, the hooks, the reference MCP server and its hosted endpoint, the skill format, versioning, and how the bundles are built: docs/REFERENCE.md.
Releases from 2026.10.29 are signed: the source archive and the Claude.ai zip carry GitHub build-provenance attestations, with an SPDX SBOM of the pinned dependencies. How to check one before you install it: verifying a release.
PRs welcome: propose a rule, fix a false positive, review a control mapping, add a scenario, or record a host you verified.
docs/spec/SKILL_FORMAT.md for the frontmatter shape.docs/spec/PACKAGING.md for tier conventions, targets, and bundler aggregation rules.python tools/bundle.py --target all before pushing; the CI gate is strict.CONTRIBUTING.md for the rest; the issue forms and the pull request template carry the evidence checklist.What is shipped, what is deferred, and what this quarter is for: docs/ROADMAP.md.
MIT. See LICENSE.
Found something dangerous? See SECURITY.md. For specific vulnerabilities, email [email protected].
document.writepickleyaml.loadMarshalObjectInputStreamevalFunctionsetTimeout(string)as any169.254.169.254