cross-platform-compatibility

aj-geddes/useful-ai-prompts · updated Apr 8, 2026

$npx skills add https://github.com/aj-geddes/useful-ai-prompts --skill cross-platform-compatibility
0 commentsdiscussion
summary

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.

skill.md

Cross-Platform Compatibility

Table of Contents

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:

// ❌ 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 File Path Handling
Platform Detection Platform Detection
Line Endings Line Endings
Environment Variables Environment Variables
Shell Commands Shell Commands
File Permissions File Permissions
Process Management Process Management
Platform-Specific Dependencies Platform-Specific Dependencies
Testing Across Platforms Testing Across Platforms
Character Encoding Character Encoding
Build Configuration 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

Discussion

Product Hunt–style comments (not star reviews)
  • No comments yet — start the thread.
general reviews

Ratings

4.647 reviews
  • Shikha Mishra· Dec 24, 2024

    cross-platform-compatibility reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Min Garcia· Dec 24, 2024

    cross-platform-compatibility has been reliable in day-to-day use. Documentation quality is above average for community skills.

  • Dev Ghosh· Dec 24, 2024

    cross-platform-compatibility is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.

  • Benjamin Perez· Dec 24, 2024

    Useful defaults in cross-platform-compatibility — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

  • Min Thompson· Dec 16, 2024

    I recommend cross-platform-compatibility for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Yash Thakker· Nov 15, 2024

    I recommend cross-platform-compatibility for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.

  • Neel Thompson· Nov 15, 2024

    cross-platform-compatibility fits our agent workflows well — practical, well scoped, and easy to wire into existing repos.

  • Dev Zhang· Nov 7, 2024

    cross-platform-compatibility reduced setup friction for our internal harness; good balance of opinion and flexibility.

  • Dev Bhatia· Oct 26, 2024

    Registry listing for cross-platform-compatibility matched our evaluation — installs cleanly and behaves as described in the markdown.

  • Dhruvi Jain· Oct 6, 2024

    Useful defaults in cross-platform-compatibility — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.

showing 1-10 of 47

1 / 5