Skip to content

What Tripcord checks

24 rules run by default. 37 more are opt-in because they are newer or noisier. Every finding names its rule, the file and the line.

Files it reads

Found by name and location. Each is read as text; nothing is run.

  • CLAUDE.md, AGENTS.md, GEMINI.md
  • .cursorrules and .cursor/rules
  • .claude/settings.json, commands, agents and skills
  • Plugins a repository ships (.claude-plugin)
  • .mcp.json and other MCP server configs
  • .codex/config.toml
  • .gemini/settings.json
  • .github/copilot-instructions.md and .github/instructions
  • .windsurfrules and .windsurf/rules
  • .vscode/tasks.json

Scripts that a hook, task or MCP launch command points at are read too, and scored for network calls, credential paths, pipe-to-shell and decode-and-run.

Rules on by default

Run on every scan, with no flag.

Rules
RuleWhat it flags
AG-001Permission widening or bypass
AG-002Command that runs automatically from agent settings
AG-003Project MCP servers auto-approved by project settings
AG-004Local agent settings file is tracked by git
AG-005Environment override redirects credentials or injects code
AG-006MCP server launched through a shell or inline interpreter
AG-007MCP server runs an unpinned package
AG-008Hardcoded secret
AG-009MCP remote server over plain HTTP
AG-010MCP server with overbroad filesystem or command access
AG-011MCP server uses a known-bad or known-vulnerable package
AG-013MCP server launches a repo script with risky behaviour
AG-014Package registry or index redirected
AG-020Hidden Unicode characters
AG-021Exfiltration instruction
AG-022Silence or override instruction
AG-023Agent-config self-propagation
AG-025Skill or subagent requests unrestricted tools
AG-030VS Code task runs automatically on folder open
AG-110Project settings weaken the Bash sandbox
AG-111Hook approves tool calls without asking
AG-114Allow rule for a command that runs other commands
AG-117MCP server marked trusted: tool confirmations are skipped
AG-118Codex configuration removes the sandbox or runs a notify command

Opt-in rules

Turn them on with --experimental, or enableExperimentalRules in the repository config. They need a license.

Rules
RuleWhat it flags
AG-024Encoded or hidden content in an instruction file
AG-100Persona, system-prompt or priority override
AG-101Non-English instruction override
AG-102Tool-poisoning markers in instructions or MCP descriptions
AG-103Encoded instruction the agent is told to decode and follow
AG-104Imperative text hidden by markup
AG-105Look-alike letters from another alphabet in a word
AG-106Keyword spelled out letter by letter
AG-107Instruction to put secrets or conversation data into a URL or a public place
AG-108Instruction file tells the agent to run a script fetched from the network
AG-109Instruction to add an external script to generated code
AG-112Project settings register a plugin marketplace
AG-113Environment variable injects code or weakens TLS (MCP env, or agent env AG-005 skips)
AG-115Allow rule lets the agent edit its own configuration or shell startup files
AG-116Additional directories give the agent access outside the project
AG-120MCP package name imitates a well-known MCP package
AG-121MCP container runs with host access or an unpinned image
AG-122MCP server launched with broad Deno permissions
AG-123mcp-remote bridge to a plain-HTTP server
AG-124MCP server command is a download or proxy-execution tool
AG-125MCP tooling pinned to a version with a published RCE
AG-126Filesystem MCP server rooted at credentials or system directories
AG-127MCP server code is fetched from a URL at launch
AG-128MCP headersHelper runs a risky command when the server connects
AG-130Auto-run command installs a package from a remote or unpinned source
AG-131Auto-run command runs remote content through a Windows system binary
AG-132Auto-run command plants persistence, destroys data or weakens the machine
AG-133Auto-run command starts a container with host access
AG-134Folder-open task reaches a risky task through dependsOn
AG-135Auto-run command sends data out in a DNS lookup
AG-136Auto-run command hides its command name with shell expansion
AG-137Instruction file tells the agent to install from outside the registry
AG-138Instruction file tries to lower the agent's own guard
AG-139Instruction file impersonates the harness, pulls in remote rules or extends itself
AG-140Instruction describes an outbound shell session without naming a command
AG-141Instruction-like prose inside a structured config file
AG-142Text pushed out of view with whitespace

Output and modes

Findings print as readable text. For tools, write JSON or SARIF 2.1.0 with --json and --sarif. Exit code 0 means clean, 1 means findings at or above the threshold (high by default), 2 means a tool error.

diff compares two git revisions and reports only what the change introduced or made worse. Its configuration and baselines come from the base revision, so a pull request cannot excuse itself.

lock and verify hash MCP server and hook definitions and report drift. baseline accepts current findings. report ties findings to the commit that added them, with a monthly trend. harden prints a safer settings template.

common commands
$ tripcord scan .$ tripcord scan . --sarif results.sarif$ tripcord diff origin/main HEAD --fail-on high$ tripcord lock . && tripcord verify .$ tripcord baseline create .$ tripcord report . --format html --out report.html

Rules match known patterns. They do not read your application code, and a finding is a pattern match, not proof of intent. See what it does not do.