Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .claude/skills/uvm-info/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
name: uvm-info
description: Query Unity version information using uvm - list installed versions, available modules, detect project versions.
license: MIT
metadata:
author: larusso
version: "1.0"
---

Use this skill to query Unity version information without making changes.

## Available Commands

Run these via the development binary or installed `uvm`:

```bash
# List installed Unity versions
cargo run --bin uvm -- list

# Show available modules for a specific version
cargo run --bin uvm -- modules <version>

# Detect Unity version from current project
cargo run --bin uvm -- detect

# Show all available Unity versions from Unity's API
cargo run --bin uvm -- versions
```

## When to Use

- **Exploring what's installed**: Use `list` to see current Unity installations
- **Planning an installation**: Use `modules <version>` to see what modules are available
- **Understanding a project**: Use `detect` to find which Unity version a project needs
- **Finding versions**: Use `versions` to see what's available to install

## Examples

```bash
# What Unity versions are installed?
cargo run --bin uvm -- list

# What modules can I install for Unity 2022.3.0f1?
cargo run --bin uvm -- modules 2022.3.0f1

# What version does this project need?
cargo run --bin uvm -- detect

# What LTS versions are available?
cargo run --bin uvm -- versions --lts
```

## Notes

- These commands are read-only and safe to run
- Use the development binary (`cargo run --bin uvm --`) when working on the codebase
- Output helps understand the current state before making changes
89 changes: 89 additions & 0 deletions .claude/skills/uvm-test-install/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
---
name: uvm-test-install
description: Install Unity to a temporary directory for testing. Use this to see real installation output and verify installer behavior.
license: MIT
metadata:
author: larusso
version: "1.0"
---

Use this skill to perform a real Unity installation to a temporary directory. This lets you observe actual installer output, verify fixes, and debug installation issues.

## Basic Usage

```bash
# Create a temp directory and install
TEMP_UNITY=$(mktemp -d)
cargo run --bin uvm -- install <version> "$TEMP_UNITY"

# Example: Install Unity 2022.3.0f1 to temp
TEMP_UNITY=$(mktemp -d)
cargo run --bin uvm -- install 2022.3.0f1 "$TEMP_UNITY"
```

## With Modules

```bash
# Install with specific modules
TEMP_UNITY=$(mktemp -d)
cargo run --bin uvm -- install <version> -m <module> "$TEMP_UNITY"

# Example: Install with Android support
TEMP_UNITY=$(mktemp -d)
cargo run --bin uvm -- install 2022.3.0f1 -m android "$TEMP_UNITY"
```

## With Verbose Logging

```bash
# Enable debug logging to see detailed installation steps
RUST_LOG=debug cargo run --bin uvm -- install <version> "$TEMP_UNITY"

# Or trace level for maximum detail
RUST_LOG=trace cargo run --bin uvm -- install <version> "$TEMP_UNITY"
```

## Cleanup

After testing, clean up the temporary installation:

```bash
rm -rf "$TEMP_UNITY"
```

## When to Use

- **Verifying a bug fix**: See if changes to installer code work correctly
- **Understanding error messages**: Observe real failure modes
- **Testing module installation**: Verify module dependencies resolve correctly
- **Debugging platform-specific issues**: See actual extraction/installation output

## Cautions

- **Downloads are large**: Unity editor is several GB; modules add more
- **Takes time**: Full installation can take 10+ minutes depending on network
- **Disk space**: Ensure temp directory has enough space (5-10 GB minimum)
- **Consider using small modules**: Language packs (.po files) are tiny and fast for quick tests

## Quick Test with Minimal Download

For a fast test of the installation flow, install just a language pack:

```bash
# First install editor (required base)
TEMP_UNITY=$(mktemp -d)
cargo run --bin uvm -- install 2022.3.0f1 "$TEMP_UNITY"

# Then add a small language module
cargo run --bin uvm -- install 2022.3.0f1 -m language-ja "$TEMP_UNITY"
```

## Architecture Selection (macOS)

```bash
# Force x86_64 architecture
cargo run --bin uvm -- install <version> --architecture x86-64 "$TEMP_UNITY"

# Force ARM64 architecture
cargo run --bin uvm -- install <version> --architecture arm64 "$TEMP_UNITY"
```
15 changes: 13 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ Lower-level crates don't depend on higher-level ones.
- **Installation**: `uvm_install/src/` - core install/uninstall logic
- **Hub integration**: `unity-hub/src/` - Unity Hub paths and installations

### Deep Dives

- [Installer Architecture](docs/installer-architecture.md) - execution flow, platform-specific logic, external dependencies

## Code Conventions

- **Rust Editions**: mixed (2018, 2021, 2024); check each crate's `Cargo.toml` for its edition (e.g., `unity-version` is 2021; `uvm_detect`/`uvm_gc` are 2024)
Expand All @@ -64,11 +68,18 @@ Lower-level crates don't depend on higher-level ones.

Use imperative mood: "Fix bug" not "Fixed bug" or "Fixes bug"

Do NOT add Co-Authored-By lines.

```
Short summary (50 chars or less)

Detailed explanation if needed, wrapped at 72 chars.
Use markdown formatting. Bullet points are okay.
## Description

Detailed explanation of the change.

## Changes

- Bullet list of specific changes made
```

## Pull Requests
Expand Down
1 change: 1 addition & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading