Prevents Git Bash path conversion issues when running Anubis commands on Windows. Use when building targets with `cargo run` or `anubis.exe` that use `//` target paths.
Installs into .claude/skills of the current project.
Are you the author of 979 Skill Eb282269?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/tools-only-979-skill-eb282269)
---
name: anubis-windows-commands
description: Prevents Git Bash path conversion issues when running Anubis commands on Windows. Use when building targets with `cargo run` or `anubis.exe` that use `//` target paths.
---
# Anubis Windows Commands
## Problem
When running Claude Code on Windows in Git Bash (MSYS/MinGW environment), the shell automatically converts paths starting with `//` to `/`. This breaks Anubis target paths like `//mode:win_dev` or `//examples/simple_cpp:simple_cpp`.
**Example of the problem:**
```bash
# What you type:
cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
# What Git Bash sends to the command:
cargo run --release -- build -m /mode:win_dev -t /examples/simple_cpp:simple_cpp
```
This causes Anubis to fail because it expects target paths to start with `//`.
## Solution
Use the `MSYS_NO_PATHCONV=1` environment variable prefix to disable Git Bash path conversion.
## Required Command Format
### For `cargo run` commands:
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
```
### For `anubis.exe` directly:
```bash
MSYS_NO_PATHCONV=1 ./target/release/anubis.exe build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
```
### For multi-target builds:
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l debug --mode //mode:win_release --targets //examples/nested_staticlib_cpp/...
```
## When to Apply This Fix
Apply `MSYS_NO_PATHCONV=1` when ALL of these conditions are true:
1. **Platform is Windows** (`host_platform` is `windows`)
2. **Shell is Git Bash** (MSYS/MinGW environment - check for `MSYSTEM` env var or `/usr/bin/bash` path)
3. **Command contains `//` paths** (Anubis target notation)
## Detection
To detect if you're in Git Bash on Windows:
```bash
# Check if MSYSTEM is set (Git Bash sets this)
echo $MSYSTEM
# Or check the shell path
echo $SHELL
```
If `MSYSTEM` is set to `MINGW64`, `MINGW32`, or `MSYS`, you're in Git Bash and need the prefix.
## Command Templates
### Build a single target (Windows dev mode):
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
```
### Build a single target (Windows release mode):
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_release -t //examples/simple_cpp:simple_cpp
```
### Build a single target (Linux cross-compile):
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:linux_dev -t //examples/simple_cpp:simple_cpp
```
### Build all targets in a directory (recursive):
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/...
```
### Build with debug logging:
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -l debug -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
```
### Build with trace logging and custom worker count:
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build --workers 16 -l trace -m //mode:win_dev -t //examples/simple_cpp:simple_cpp
```
### Build multiple specific targets:
```bash
MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:win_dev -t //examples/simple_cpp:simple_cpp -t //examples/trivial_cpp:trivial_cpp
```
## Common Anubis Commands Reference
| Action | Command |
|--------|---------|
| Build target | `MSYS_NO_PATHCONV=1 cargo run --release -- build -m //mode:MODE -t //path:target` |
| Install toolchains | `cargo run --release -- install-toolchains` (no `//` paths, no prefix needed) |
| Build Anubis itself | `cargo build --release` (no `//` paths, no prefix needed) |
| Run tests | `cargo test` (no `//` paths, no prefix needed) |
## Notes
- The `MSYS_NO_PATHCONV=1` prefix is harmless on non-Windows systems or non-Git-Bash shells, but it's only necessary in Git Bash on Windows.
- This only affects commands with `//` path arguments. Standard cargo commands like `cargo build` or `cargo test` don't need the prefix.
- The prefix must come before the command, not after.
## Troubleshooting
If you see errors like:
- `Error: Failed to parse target path '/mode:win_dev'`
- `Error: Target path must start with '//'`
- `Error: Invalid target specification`
These indicate Git Bash path conversion is occurring. Add the `MSYS_NO_PATHCONV=1` prefix.