# Vibe Cross Platform

Cross-platform development rules for Mistral Vibe.

- Repository: https://github.com/mistralai/mistral-vibe (5270 stars)
- Category: Testing
- License: Apache-2.0
- Last updated: 2026-10-30
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add mistralai/mistral-vibe --skill vibe-cross-platform -g -a claude-code -y`
Codex: `npx skills add mistralai/mistral-vibe --skill vibe-cross-platform -g -a codex -y`
Cursor: `npx skills add mistralai/mistral-vibe --skill vibe-cross-platform -g -a cursor -y`
Gemini CLI: `npx skills add mistralai/mistral-vibe --skill vibe-cross-platform -g -a gemini-cli -y`

## Description

Cross-platform development rules for Mistral Vibe. Use when writing platform-specific logic, handling paths, Windows support, shell compatibility, terminal data streams, or cross-OS testing strategies.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Vibe Cross-Platform

Vibe ships on Linux, macOS, and Windows, but **CI runs the test suite on Linux only**. The machine you develop on is not the machine that gates the PR, code and tests must pass on every platform, and must be *provably* correct on the platforms CI cannot exercise.

## Code rules

- Never rely on host-specific behavior (shell, path separator, line ending, available binaries, `$SHELL`, case sensitivity). Assume the same code runs under `cmd.exe`, Git Bash, `zsh`, and `sh`.
- Branch platform-specific logic behind the helpers in `vibe.core.utils.platform` (`is_windows()`, `resolve_windows_shell()`), not ad-hoc `sys.platform` checks. Keep POSIX-only assumptions (forward slashes, POSIX `shlex` escaping, `$SHELL`) out of shared paths and scope Windows-only handling to `is_windows()`.
- Use `pathlib.Path` for path composition; never hardcode `/` or `\\`.

## Terminal data

- Treat terminal and PTY data as arbitrarily chunked streams: normalize CRLF before interpreting lone `\r` as an in-place redraw, buffer incomplete control sequences until their terminator arrives, and add Linux-runnable regression tests covering CRLF plus every split boundary of representative control sequences.

## Testing

- Test other-platform code paths **on Linux** by monkeypatching `sys.platform`, env vars, and probes like `shutil.which`, do not `@pytest.mark.skipif` them away. A Windows-only behavior with no Linux-runnable test is untested in CI.
- When an assertion depends on the platform, force it explicitly (e.g. `monkeypatch.setattr(module, "is_windows", lambda: True)`) instead of letting the test pass only because of the host it happened to run on. A test that would flip its result on a different OS is a bug.

