Skip to content
Back to skills

979 Skill Eb282269

ASecurity

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.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 11, 2026
toolsgoshellbashgit

Works with

  • claude code
  • cli

Security analysis

A100/100

Scanned October 11, 2026

npx -y skills add tools-only/X-Skills --skill 979-skill_eb282269 --agent claude-code

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.

Security grade badge for 979 Skill Eb282269
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tools-only-979-skill-eb282269/badge)](https://www.skillsdirectory.com/skills/tools-only-979-skill-eb282269)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.