AgentSkillsCN

bash-tools

正确使用 Bash 与文件操作工具。当您执行 Shell 命令、编写文件,或在尝试使用 echo/cat/heredoc 将内容管道传输至文件时,可使用本技能。它能有效防止绕过权限的常见模式,例如:与其使用 Write 工具,不如通过 echo 将多行内容管道传输。本技能涵盖 Bash 工具、Write 工具、Edit 工具与 Read 工具的最佳实践。

SKILL.md
--- frontmatter
name: bash-tools
description: Proper usage of Bash and file operation tools. Use this skill when executing shell commands, writing files, or when tempted to use echo/cat/heredoc to pipe content to files. Prevents permission circumvention patterns like piping multiline content through echo instead of using Write tool. Covers Bash tool, Write tool, Edit tool, and Read tool best practices.

Bash Tools

Guidelines for proper tool selection when executing commands or modifying files.

Core Principle

Use specialized file tools for file operations. Use Bash only for actual shell commands.

Never use Bash to circumvent file operation permissions. If Write tool is blocked, that's intentional - do not work around it with echo, cat, or heredocs.

Tool Selection Decision Tree

code
Need to create/overwrite a file?
├── YES → Use Write tool (NOT echo/cat/heredoc)
└── NO → Continue...

Need to edit part of a file?
├── YES → Use Edit tool (NOT sed/awk)
└── NO → Continue...

Need to read file contents?
├── YES → Use Read tool (NOT cat/head/tail)
└── NO → Continue...

Need to search file contents?
├── YES → Use Grep tool (NOT grep/rg in Bash)
└── NO → Continue...

Need to find files by pattern?
├── YES → Use Glob tool (NOT find/ls in Bash)
└── NO → Continue...

Is this an actual shell command? (git, npm, docker, make, etc.)
├── YES → Use Bash tool
└── NO → Reconsider - probably need a file tool

Prohibited Patterns

These patterns attempt to circumvent Write tool permissions and MUST NOT be used:

PatternWhy It's WrongCorrect Approach
echo "content" > file.pyBypasses Write permissionsUse Write tool
cat << 'EOF' > file.pyHeredoc bypasses permissionsUse Write tool
printf '%s' "$content" > fileSame as echo bypassUse Write tool
tee file.py <<< "content"Redirect bypassUse Write tool

See references/permission-patterns.md for comprehensive examples.

Tool References

When Write Tool is Blocked

If the Write tool is blocked for a file:

  1. Accept the block - It exists for a reason
  2. Ask the user if they want to allow the operation
  3. Do NOT attempt to use Bash to write the file instead

The permission system protects the user. Circumventing it defeats its purpose.

Updating This Skill

When encountering new permission circumvention patterns or tool usage issues, see references/updating-skill.md.

Quick Reference

TaskToolNOT This
Create fileWriteecho > file
Edit fileEditsed -i
Read fileReadcat file
Search contentGrepgrep pattern
Find filesGlobfind . -name
Git commandsBash-
npm/yarnBash-
docker/makeBash-
Run testsBash-