cross-platform-compatibility — скилл для Claude Code: установка
Скилл учит ИИ писать код без привязки к конкретной ОС. Он подсказывает правила для путей файлов, переводов строк и зависимостей в Windows, macOS и Linux.
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-codeЧто делает cross-platform-compatibility
Скилл задаёт набор инструкций и справочников для работы с файловой системой, переменными окружения и процессами. Вместо захардкоженных слэшей агент приучается использовать path.join(), path.resolve() и os.homedir().
Внутри собраны паттерны для обработки os.EOL, кодировки UTF-8 и разграничения прав доступа к файлам. Для платформенных библиотек предлагается задействовать optionalDependencies и предусматривать запасные варианты при вызове команд оболочки.
Жёсткая привязка к Unix-сигналам или регистрозависимым путям ломает запуск на Windows. Скилл держит фокус на тестах в CI и проверке окружения во время выполнения приложения.
Какие задачи решает
- адаптировать файловые пути под Windows и Unix через модуль
path - настроить обработку системных переводов строк и кодировку UTF-8
- изолировать платформозависимые пакеты через
optionalDependencies - корректно экранировать системные команды в разных шеллах
Примеры запросов агенту
- Проверь скрипты сборки и перепиши хардкод путей через
path.join(). - Сделай запуск внешних shell-команд совместимым с Windows и Linux.
- Как переписать чтение файлов с учётом системных окончаний строк
os.EOL?
Как установить cross-platform-compatibility
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-code2Вручную: положить файлы
~/.claude/skills/cross-platform-compatibility/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/cross-platform-compatibility/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a codex2Вручную: положить файлы
.agents/skills/cross-platform-compatibility/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a cursor2Вручную: положить файлы
.cursor/skills/cross-platform-compatibility/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install aj-geddes/useful-ai-prompts cross-platform-compatibility2Вручную: положить файлы
.github/skills/cross-platform-compatibility/SKILL.md1Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a gemini-cli2Командой платформы
gemini skills install https://github.com/aj-geddes/useful-ai-prompts --path skills/cross-platform-compatibilityВручную: положить файлы
.devin/skills/cross-platform-compatibility/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о cross-platform-compatibility
Как установить cross-platform-compatibility в Claude Code?
Выполните команду npx skills add aj-geddes/useful-ai-prompts --skill cross-platform-compatibility -a claude-code. Также можно вручную поместить файл по пути ~/.claude/skills/cross-platform-compatibility/SKILL.md.
Что делает скилл cross-platform-compatibility?
Он предоставляет модели правила написания переносимого кода, уделяя внимание путям к файлам, разделителям строк, вызовам терминала и разнице между операционными системами.
Как скилл предлагает управлять зависимостями под разные ОС?
Инструкция советует выносить специфичные для платформы модули в блок optionalDependencies и реализовывать запасные сценарии, если системный API недоступен.
Исходный текст
SKILL.md · MIT
---
name: cross-platform-compatibility
description: >
Handle cross-platform compatibility including file paths, environment
detection, platform-specific dependencies, and testing across Windows, macOS,
and Linux. Use when dealing with platform-specific code or OS compatibility.
---
# Cross-Platform Compatibility
## Table of Contents
- [Overview](#overview)
- [When to Use](#when-to-use)
- [Quick Start](#quick-start)
- [Reference Guides](#reference-guides)
- [Best Practices](#best-practices)
## Overview
Comprehensive guide to writing code that works seamlessly across Windows, macOS, and Linux. Covers file path handling, environment detection, platform-specific features, and testing strategies.
## When to Use
- Building applications for multiple operating systems
- Handling file system operations
- Managing platform-specific dependencies
- Detecting operating system and architecture
- Working with environment variables
- Building cross-platform CLI tools
- Dealing with line endings and character encodings
- Managing platform-specific build processes
## Quick Start
Minimal working example:
```typescript
// ❌ BAD: Hardcoded paths with platform-specific separators
const configPath = "C:\\Users\\user\\config.json"; // Windows only
const dataPath = "/home/user/data.txt"; // Unix only
// ✅ GOOD: Use path module
import path from "path";
import os from "os";
// Platform-independent path construction
const configPath = path.join(os.homedir(), "config", "app.json");
const dataPath = path.join(process.cwd(), "data", "users.txt");
// Resolve relative paths
const absolutePath = path.resolve("./config/settings.json");
// Get path components
const dirname = path.dirname("/path/to/file.txt"); // '/path/to'
const basename = path.basename("/path/to/file.txt"); // 'file.txt'
const extname = path.extname("/path/to/file.txt"); // '.txt'
// Normalize paths (handle .. and .)
const normalized = path.normalize("/path/to/../file.txt"); // '/path/file.txt'
```
## Reference Guides
Detailed implementations in the `references/` directory:
| Guide | Contents |
|---|---|
| [File Path Handling](references/file-path-handling.md) | File Path Handling |
| [Platform Detection](references/platform-detection.md) | Platform Detection |
| [Line Endings](references/line-endings.md) | Line Endings |
| [Environment Variables](references/environment-variables.md) | Environment Variables |
| [Shell Commands](references/shell-commands.md) | Shell Commands |
| [File Permissions](references/file-permissions.md) | File Permissions |
| [Process Management](references/process-management.md) | Process Management |
| [Platform-Specific Dependencies](references/platform-specific-dependencies.md) | Platform-Specific Dependencies |
| [Testing Across Platforms](references/testing-across-platforms.md) | Testing Across Platforms |
| [Character Encoding](references/character-encoding.md) | Character Encoding |
| [Build Configuration](references/build-configuration.md) | Build Configuration |
## Best Practices
### ✅ DO
- Use path.join() or path.resolve() for paths
- Use os.EOL for line endings
- Detect platform at runtime when needed
- Test on all target platforms
- Use optionalDependencies for platform-specific modules
- Handle file permissions gracefully
- Use shell escaping for user input
- Normalize line endings in text files
- Use UTF-8 encoding by default
- Document platform-specific behavior
- Provide fallbacks for platform-specific features
- Use CI/CD to test on multiple platforms
### ❌ DON'T
- Hardcode file paths with backslashes or forward slashes
- Assume Unix-only features (signals, permissions, symlinks)
- Ignore Windows-specific quirks (drive letters, UNC paths)
- Use platform-specific commands without fallbacks
- Assume case-sensitive file systems
- Forget about different line endings
- Use platform-specific APIs without checking
- Hardcode environment variable access patterns
- Ignore character encoding issues
© aj-geddes · MIT · aj-geddes/useful-ai-prompts