dir_spec 0.5.0

A cross-platform Rust library for resolving XDG and platform-specific directories with proper fallbacks.
Documentation
# LLMs

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

## Project Overview

`dir_spec` is a cross-platform Rust library for resolving XDG and platform-specific directories. It prioritizes XDG
compliance across all platforms while providing sensible platform-specific fallbacks.

## Development Commands

All development tasks are managed through `mise` (formerly rtx):

```bash
# Build the project
mise run build  # or: mise run b

# Run linting and formatting checks
mise run lint   # or: mise run l

# Run tests
mise run test:unit      # Unit tests with cargo nextest
mise run test:coverage  # Tests with code coverage

# Security audit
mise run audit

# Clean build artifacts
mise run clean

# Project setup
mise run setup
```

## Architecture

The library is organized with platform-specific modules:

- `src/lib.rs` - Main library entry point and public API
- `src/xdg.rs` - XDG Base Directory Specification implementation
- `src/linux.rs` - Linux-specific directory resolution
- `src/macos.rs` - macOS-specific directory resolution  
- `src/windows.rs` - Windows-specific directory resolution

Each platform module implements directory resolution logic that:

1. First checks for XDG environment variables
2. Falls back to platform-specific defaults if XDG vars aren't set

## Testing Strategy

- Tests are embedded in source files using `#[cfg(test)]` modules
- Uses `cargo nextest` for faster test execution
- Each platform module contains platform-specific tests
- Tests verify both XDG compliance and platform-specific fallbacks

## Key Development Notes

- **Zero dependencies** - Only uses Rust's standard library
- **Clippy pedantic** - Strict linting is enforced via `.clippy.toml`
- **Platform compatibility** - Currently supports Linux and macOS (Windows support temporarily removed from CI)
- **Type safety** - All directory methods return `Option<PathBuf>`