# 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>`