
Fix Errors
Clear Warp monorepo presubmit failures—fmt, clippy, WASM targets, and tests—before you open or update a PR.
Overview
Fix Errors is an agent skill most often used in Ship (also Build) that resolves Warp Rust presubmit failures across fmt, clippy, WASM, and tests.
Install
npx skills add https://github.com/warpdotdev/common-skills --skill fix-errorsWhat is this skill?
- Single entry `./script/presubmit` runs formatting, linting, and all tests before PRs
- Split debug paths: `cargo fmt --check`, workspace clippy with `-D warnings`, and `warp_completer`-scoped clippy
- WASM track: `cargo clippy --target wasm32-unknown-unknown` with `release-wasm-debug_assertions`
- Covers compilation, unused imports, clippy, formatting, and Objective-C/C++ clang-format expectations
- Unified presubmit via `./script/presubmit`
- Separate `warp_completer` clippy pass documented
- WASM clippy uses `wasm32-unknown-unknown` and `release-wasm-debug_assertions` profile
Adoption & trust: 3.5k installs on skills.sh; 18 GitHub stars; 3/3 security scanners passed (skills.sh audits).
What problem does it solve?
Your Warp branch fails presubmit or local checks and you need the exact cargo, script, and target flags this monorepo expects.
Who is it for?
Warp contributors fixing Rust/WASM/clippy/test regressions on the official workspace layout.
Skip if: Greenfield Rust apps, other companies’ monorepos, or builders who only need generic `cargo test` without Warp scripts.
When should I use this skill?
User hits build errors, clippy or fmt failures, test failures, or needs to run or interpret presubmit before a Warp PR.
What do I get? / Deliverables
Presubmit and targeted checks pass so you can open or update a Warp pull request with confidence.
- Clean presubmit run or passing individual fmt/clippy/test commands
- Code changes that resolve documented failure categories
Recommended Skills
Journey fit
Spans multiple journey phases - primary shelf plus alternate fits below.
Canonical shelf is Ship/testing because presubmit and test interpretation gate merge-ready code, though fixes happen while still in active Build. Presubmit runs formatting, lint, and the full test matrix—the same discipline as pre-release verification.
Where it fits
Unblock a feature branch after a type mismatch or unused import breaks `cargo build`.
Run `./script/presubmit` and fix the first failing test suite before opening a PR.
Address Clippy `-D warnings` and fmt check failures flagged in CI matching local presubmit.
Regression after a merge—re-run targeted clippy and WASM targets to restore green main.
How it compares
Warp-specific presubmit playbook—not a portable rust-analyzer or generic fix-my-compile chat prompt.
Common Questions / FAQ
Who is fix-errors for?
Developers contributing to the Warp terminal codebase who use agents to interpret and fix presubmit output.
When should I use fix-errors?
During Build while iterating on Rust changes, and in Ship/testing before PRs when fmt, clippy, WASM clippy, or tests fail.
Is fix-errors safe to install?
It instructs running local cargo and repo scripts only; review the Security Audits panel on this Prism page and treat it as trusted only inside your Warp clone.
SKILL.md
READMESKILL.md - Fix Errors
# fix-errors Fix compilation errors, linting issues, and test failures in the warp Rust codebase. ## Overview This skill helps resolve common issues encountered during development, including: - Compilation errors (unused imports, type mismatches, etc.) - Linting failures (clippy warnings) - Formatting violations - WASM-specific errors - Test failures Before opening or updating a pull request, all presubmit checks must pass. ## Presubmit Checks Run all presubmit checks at once: ```bash ./script/presubmit ``` This runs formatting, linting, and all tests. If it passes, you're ready to open a PR. ### Individual Checks Run checks separately when debugging specific issues: **Rust formatting:** ```bash cargo fmt -- --check ``` **Clippy (full workspace):** ```bash cargo clippy --workspace --exclude warp_completer --all-targets --all-features --tests -- -D warnings cargo clippy -p warp_completer --all-targets --tests -- -D warnings ``` **WASM Clippy:** ```bash cargo clippy --target wasm32-unknown-unknown --profile release-wasm-debug_assertions --no-deps ``` **Objective-C/C/C++ formatting:** ```bash ./script/run-clang-format.py -r --extensions 'c,h,cpp,m' ./crates/warpui/src/ ./app/src/ ``` **All tests:** ```bash cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2 cargo nextest run -p warp_completer --features v2 ``` **Doc tests:** ```bash cargo test --doc ``` ## Running Specific Tests **Single package:** ```bash cargo nextest run -p <package_name> ``` **Filter by test name:** ```bash cargo nextest run -E 'test(<substring>)' ``` **Specific package with filter:** ```bash cargo nextest run -p <package_name> -E 'test(<substring>)' ``` **With output (no capture):** ```bash cargo nextest run -p <package> --nocapture ``` ## Common Error Types ### Unused Imports Remove unused `use` statements identified by the compiler. ### Unused Constants Remove constants that are defined but never used. ### Unknown Imports Add the correct `use` statement for undefined types. Search the codebase to find the correct module path. ### Type Mismatches Update function calls to pass arguments of the correct type. Common fixes: - Use `.as_str()` instead of `.clone()` when a `&str` is expected - Use `&value` when a reference is needed - Use `.to_string()` when `String` is expected but `&str` is provided ### Struct Field Changes When a struct adds/removes fields, update all places where it's constructed or destructured: - Struct initialization - Pattern matching (`match`, `if let`) - Destructuring assignments ### Function Signature Changes When a function adds a new parameter, update all call sites to provide the new argument: - For `bool` params: pass `true` or `false` based on context - For `Option<T>` params: pass `None` as default or `Some(value)` if needed ### Enum Variant Changes When adding a new enum variant, update exhaustive `match` statements: - Add a new match arm with appropriate handling - Mirror the implementation pattern of similar variants ### Incorrect Trait Implementation Fix trait implementations that return the wrong type or don't satisfy trait bounds. ### WASM-Specific Errors WASM builds (`wasm32-unknown-unknown` target) don't support filesystem operations. Code that uses filesystem APIs must be gated behind the `local_fs` feature flag. **Common WASM errors:** - Dead code warnings for code only used in non-WASM builds - Unused code that's only relevant when `local_fs` is available - Tests that require filesystem access **Fixes:** **Gate tests behind `local_fs`:** ```rust #[test] #[cfg(feature = "local_fs")] fn test_find_git_repo_with_worktree() { // Test that us