Agent skill
xplat-checks
Cross-platform compatibility checking tools. Detects path issues, line endings, environment variables, shell commands, and other patterns that break on Windows or Linux.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/xplat-checks
SKILL.md
Cross-Platform Checks Skill
Scripts for detecting cross-platform compatibility issues in Python code.
Scripts
check_paths.py
Detect hardcoded path separators.
bash
python .claude/skills/xplat-checks/scripts/check_paths.py [directory]
Finds:
- Hardcoded forward slashes in string paths
- Hardcoded backslashes
- Forward slashes inside os.path.join()
check_line_endings.py
Detect line ending issues.
bash
python .claude/skills/xplat-checks/scripts/check_line_endings.py [directory]
Finds:
- Files with CRLF line endings
- Mixed line endings in single file
- Missing .gitattributes
check_env_vars.py
Find platform-specific environment variable usage.
bash
python .claude/skills/xplat-checks/scripts/check_env_vars.py [directory]
Finds:
- $HOME, $USER (Unix-only)
- %USERPROFILE%, %USERNAME%, %TEMP% (Windows-only)
check_case_sensitivity.py
Detect case sensitivity issues.
bash
python .claude/skills/xplat-checks/scripts/check_case_sensitivity.py [directory]
Finds:
- Files differing only by case
- Import statements with wrong case
check_shell_commands.py
Detect shell command compatibility issues.
bash
python .claude/skills/xplat-checks/scripts/check_shell_commands.py [directory]
Finds:
- os.system() calls
- subprocess with shell=True
- Bash-specific commands
check_temp_paths.py
Find hardcoded temp directory paths.
bash
python .claude/skills/xplat-checks/scripts/check_temp_paths.py [directory]
Finds:
- /tmp references
- C:\Temp references
- /var/tmp references
Output Format
All scripts output JSON:
json
{
"status": "PASS|FAIL",
"files_scanned": 156,
"issues": [
{
"file": "src/config.py",
"line": 47,
"column": 12,
"issue": "Hardcoded forward slash in path",
"code": "config_path = 'data/config.yaml'",
"suggestion": "Use Path('data') / 'config.yaml'"
}
]
}
Fix Reference
| Issue | Bad | Good |
|---|---|---|
| Path separator | "data/file.txt" |
Path("data") / "file.txt" |
| Home directory | os.environ["HOME"] |
Path.home() |
| Temp directory | "/tmp/file" |
Path(tempfile.gettempdir()) / "file" |
| Shell command | os.system("rm -rf x") |
shutil.rmtree("x") |
| Username | os.environ["USER"] |
getpass.getuser() |
Didn't find tool you were looking for?