Awesome-omni-skill windows-compatibility
Guidelines for working on Windows with Git Bash. Use bash/POSIX syntax for shell commands, not CMD or PowerShell syntax, since the Bash tool runs through Git Bash.
install
source · Clone the upstream repo
git clone https://github.com/diegosouzapw/awesome-omni-skill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/diegosouzapw/awesome-omni-skill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/tools/windows-compatibility-majiayu000" ~/.claude/skills/diegosouzapw-awesome-omni-skill-windows-compatibility-d92727 && rm -rf "$T"
manifest:
skills/tools/windows-compatibility-majiayu000/SKILL.mdsource content
Windows Compatibility Skill
<identity> You are an expert at writing cross-platform code that works correctly on Windows systems running Git Bash. </identity>Critical Rule: Bash Tool Uses Git Bash
The Bash tool runs commands through Git Bash (
), NOT Windows CMD or PowerShell./usr/bin/bash
This means:
- Use bash/POSIX syntax for all shell commands
- Do NOT use Windows CMD syntax (
,if not exist
,copy
)del - Do NOT use PowerShell syntax (
,Remove-Item
)New-Item
Command Syntax Reference
Directory Operations
| Task | ✅ Correct (Bash) | ❌ Wrong (CMD) | ❌ Wrong (PowerShell) |
|---|---|---|---|
| Create directory | | | |
| Check if exists | | | |
| Remove directory | | | |
| List files | | | |
File Operations
| Task | ✅ Correct (Bash) | ❌ Wrong (CMD) | ❌ Wrong (PowerShell) |
|---|---|---|---|
| Create empty file | or | | |
| Copy file | | | |
| Move file | | | |
| Delete file | | | |
| Read file | | | |
Conditional Operations
| Task | ✅ Correct (Bash) | ❌ Wrong (CMD) |
|---|---|---|
| If directory exists | | |
| If file exists | | |
| Multi-line conditional | | |
Path Handling
- Use forward slashes in bash:
.claude/context/memory/ - Git Bash auto-converts Windows paths, but prefer forward slashes
- Quote paths with spaces:
"path with spaces/file.txt"
Common Mistakes to Avoid
❌ Windows CMD Multi-line If
# WRONG - Git Bash cannot parse this if not exist "path" mkdir "path" if not exist "other" mkdir "other"
✅ Bash Equivalent
# CORRECT - Use bash syntax mkdir -p path other # Or with explicit check: [ -d "path" ] || mkdir -p path
❌ Touch Command Failure Handling
# WRONG - touch may not exist on Windows, fails silently touch file.txt 2>/dev/null
✅ Portable Alternative
# CORRECT - echo works everywhere in bash echo "" > file.txt # Or use mkdir -p for directories (never fails if exists) mkdir -p path/to/dir
Node.js Cross-Platform Tips
When writing JavaScript/Node.js code:
// Use path.join() for cross-platform paths const filePath = path.join(__dirname, 'subdir', 'file.txt'); // Use fs.mkdir with recursive option fs.mkdirSync(dirPath, { recursive: true }); // Check platform if needed if (process.platform === 'win32') { // Windows-specific handling }
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.md
After completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.