Mole Bug Patterns
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
UNIX command-line interface guidelines for building tools that follow POSIX conventions, proper exit codes, stream handling, and the UNIX philosophy.
$ npx skills add pproenca/dot-skills --skill unix-cli -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install pproenca/dot-skills unix-cli --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/.experimental/unix-cli .claude/skills/unix-cli && rm -rf skills-srcUse ~/.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/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .claude/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cliType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add pproenca/dot-skills --skill unix-cli -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install pproenca/dot-skills unix-cli --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/.experimental/unix-cli .agents/skills/unix-cli && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .agents/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pproenca/dot-skills --skill unix-cli -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install pproenca/dot-skills unix-cli --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/.experimental/unix-cli .cursor/skills/unix-cli && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .cursor/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/pproenca/dot-skills.git --path skills/.experimental/unix-cli--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add pproenca/dot-skills --skill unix-cli -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install pproenca/dot-skills unix-cli --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/.experimental/unix-cli .gemini/skills/unix-cli && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .gemini/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install pproenca/dot-skills unix-cliInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add pproenca/dot-skills --skill unix-cli -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/.experimental/unix-cli .github/skills/unix-cli && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .github/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add pproenca/dot-skills --skill unix-cli -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install pproenca/dot-skills unix-cli --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/pproenca/dot-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/.experimental/unix-cli .opencode/skills/unix-cli && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "unix-cli" agent skill from https://github.com/pproenca/dot-skills/tree/master/skills/.experimental/unix-cli into .opencode/skills/unix-cli/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "unix-cli", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
unix-cliUNIX command-line interface guidelines for building tools that follow POSIX conventions, proper exit codes, stream handling, and the UNIX philosophy.
Unix CLI is an agent skill from pproenca/dot-skills. UNIX command-line interface guidelines for building tools that follow POSIX conventions, proper exit codes, stream handling, and the UNIX philosophy. This skill should be used when writing, reviewing, or designing CLI tools to ensure they integrate properly with the UNIX tool chain. Triggers on tasks involving CLI tools, command-line arguments, exit codes, stdout/stderr, signals, or shell scripts.
Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 50 other files, including reference files and assets (for example `assets/templates/_template.md`, `metadata.json` and `references/_sections.md`).
It sits in Development, covering Shell scripting. The repository describes itself as: A collection of AI agent skills following the Agent Skills open format. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit cf93c57. It shows what the files ask for, not the result of running them.
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.
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.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Unix CLI loads about 1.8k tokens when it runs, and up to ~23k if it reads all its reference files. Until then it costs about 102 tokens; SKILL.md has 471 words of instructions outside code blocks.
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.
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.
The full file from pproenca/dot-skills at commit cf93c57, republished under its MIT licence (© pproenca). 471 words, ~1,769 tokens.
.claude/skills/unix-cli/SKILL.md (or your agent's skills folder). This skill also uses 47 other files; get the full folder from GitHub.Comprehensive guidelines for building command-line tools that follow UNIX conventions, designed for AI agents and LLMs. Contains 44 rules across 8 categories, prioritized by impact from critical (argument handling, exit codes, output streams) to incremental (configuration and environment).
Reference these guidelines when:
| Priority | Category | Impact | Prefix |
|---|---|---|---|
| 1 | Argument & Flag Design | CRITICAL | args- |
| 2 | Exit Codes | CRITICAL | exit- |
| 3 | Output Streams | CRITICAL | output- |
| 4 | Error Handling | HIGH | error- |
| 5 | I/O & Composition | HIGH | io- |
| 6 | Help & Documentation | MEDIUM-HIGH | help- |
| 7 | Signals & Robustness | MEDIUM | signal- |
| 8 | Configuration & Environment | MEDIUM | config- |
args-use-getopt - Use standard argument parsing librariesargs-provide-long-options - Provide long options for all short optionsargs-support-double-dash - Support double-dash to terminate optionsargs-require-help-version - Implement --help and --version optionsargs-prefer-flags-over-positional - Prefer flags over positional argumentsargs-use-standard-flag-names - Use standard flag namesargs-never-read-secrets-from-flags - Never read secrets from command-line flagsargs-support-option-bundling - Support option bundlingexit-zero-for-success - Return zero for success onlyexit-use-standard-codes - Use standard exit codesexit-signal-codes - Use 128+N for signal terminationexit-partial-success - Handle partial success consistentlyexit-distinguish-error-types - Distinguish error types with different exit codesoutput-stdout-for-data - Write data to stdout onlyoutput-stderr-for-errors - Write errors and diagnostics to stderroutput-detect-tty - Detect TTY for human-oriented outputoutput-provide-machine-format - Provide machine-readable output formatoutput-line-based-text - Use line-based output for text streamsoutput-respect-no-color - Respect NO_COLOR environment variableerror-include-program-name - Include program name in error messageserror-actionable-messages - Make error messages actionableerror-use-strerror - Use strerror for system errorserror-avoid-stack-traces - Avoid stack traces in user-facing errorserror-validate-early - Validate input early and fail fastio-support-stdin - Support reading from stdinio-write-to-stdout - Write output to stdout by defaultio-be-stateless - Design stateless operationsio-handle-binary-safely - Handle binary data safelyio-atomic-writes - Use atomic file writesio-handle-multiple-files - Handle multiple input files consistentlyhelp-show-usage-on-error - Show brief usage on argument errorshelp-structure-help-output - Structure help output consistentlyhelp-show-defaults - Show default values in helphelp-include-examples - Include practical examples in helphelp-version-format - Format version output correctlysignal-handle-sigint - Handle SIGINT gracefullysignal-handle-sigterm - Handle SIGTERM for clean shutdownsignal-handle-sigpipe - Handle SIGPIPE for broken pipessignal-cleanup-on-second-interrupt - Skip cleanup on second interruptconfig-follow-xdg - Follow XDG Base Directory Specificationconfig-precedence-order - Apply configuration in correct precedence orderconfig-env-naming - Use consistent environment variable namingconfig-never-store-secrets - Never store secrets in config files or environmentconfig-respect-standard-vars - Respect standard environment variablesRead individual reference files for detailed explanations and code examples:
| File | Description |
|---|---|
| references/_sections.md | Category definitions and ordering |
| assets/templates/_template.md | Template for new rules |
| metadata.json | Version and reference information |
© pproenca, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 47 other files (references, assets) in skills/.experimental/unix-cli of pproenca/dot-skills.
Open the folder on GitHubat commit cf93c57
Unix CLI 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Unix CLI this skillpproenca/dot-skills | 214 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Mole Bug Patternstw93/Mole | 69k | — | ~2k | Automated safety check: Pass | GPL-3.0 | |
| CLI DeveloperJeffallan/claude-skills | 12k | 1 repos | ~1.2k | Automated safety check: Pass | MIT | |
| JSON Processing with jqcharmbracelet/crush | 29k | — | ~746 | Automated safety check: Pass | Custom licence | |
| Crush Shell Builtinscharmbracelet/crush | 29k | — | ~790 | Automated safety check: Pass | Custom licence | |
| Shellm Architecture Referencelaude-institute/headlong | 1.2k | — | ~2k | Automated safety check: Notes | Apache-2.0 |
tw93/Mole
A catalog of recurring bug shapes in the Mole Mac cleaner, used to review safety-sensitive diffs for deletion safety, unbounded commands, shell traps and weak tests.
Jeffallan/claude-skills
Walks through designing, building and polishing a command-line tool: user workflow and command hierarchy, implementation in commander, click, typer or cobra, completions and cross-platform testing.
charmbracelet/crush
Explains the jq command built into Crush for querying, filtering and reshaping JSON, including its supported flags and where it differs from standard jq.
charmbracelet/crush
Explains how to add a new in-process builtin command to Crush's embedded POSIX shell, so it is intercepted before reaching the OS, with context polling and exit-status rules.
laude-institute/headlong
Explains how shellm's bash-based recursive LLM shell fits together - its core engine, identity system, memory, skills and trajectory log.
crazyguitar/cppcheatsheet
Comprehensive C/C++ programming reference covering everything from C11-C23 and C++11-C++23, system programming, CUDA GPU computing, debugging tools, Rust interop, and advanced topics.
pproenca/dot-skills
Audio forensics and voice recovery guidelines for CSI-level audio analysis.
pproenca/dot-skills
Guided, scripted pipeline for running JSX/TSX/React codemods safely across large legacy codebases.
pproenca/dot-skills
Create well-structured RFCs and technical proposals for software projects.
pproenca/dot-skills
Developer-experience friction auditing and fixing — slow onboarding, repeated manual setup steps, missing bootstrap/reset/seed scripts, undiscoverable conventions.
pproenca/dot-skills
Turn a rough idea for a language into a complete, implementable specification — a DSL, query, config/data, template, or protocol language — by interviewing the author dimension by dimension until…
pproenca/dot-skills
Drafting Python Enhancement Proposals (PEPs) — proposing a Python language feature, a standard library change, an interoperability standard, or an informational/process document for the Python…
Categories
UNIX command-line interface guidelines for building tools that follow POSIX conventions, proper exit codes, stream handling, and the UNIX philosophy. Unix CLI is an agent skill from pproenca/dot-skills. UNIX command-line interface guidelines for building tools that follow POSIX conventions, proper exit codes, stream handling, and the UNIX philosophy.
Unix CLI fits situations like: tasks involving CLI tools; command-line arguments.
Run `npx skills add pproenca/dot-skills --skill unix-cli -a claude-code`. Or copy the skill folder (skills/.experimental/unix-cli in pproenca/dot-skills) into .claude/skills/unix-cli in your project. Claude Code loads it when a task matches its description.
Run `npx skills add pproenca/dot-skills --skill unix-cli -a codex`. Or copy the skill folder (skills/.experimental/unix-cli in pproenca/dot-skills) into .agents/skills/unix-cli in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add pproenca/dot-skills --skill unix-cli -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/unix-cli, .gemini/skills/unix-cli, .github/skills/unix-cli and .opencode/skills/unix-cli in your project.
SKILL.md names no scripts, command-line tools or credentials: Unix CLI is instructions for the agent only.
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.
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.
Unix CLI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.8k tokens (SKILL.md is roughly 7.1k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 21k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Unix CLI: Mole Bug Patterns (tw93/Mole, 69k stars), CLI Developer (Jeffallan/claude-skills, 12k stars), JSON Processing with jq (charmbracelet/crush, 29k stars) and Crush Shell Builtins (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
pproenca (a GitHub user) maintains it in pproenca/dot-skills, which has 214 GitHub stars. The repository holds 182 skills in this directory. The repository was last updated on August 15, 2026.
Source: pproenca/dot-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.