fix-errors

Исправить ошибки сборки и тестов в Warp

warpdotdev/common-skillsОт разработчика платформы
610звёзд34форковУ всего репозитория

Что получите

Исправленный участок кода Warp с результатами относящихся к нему проверок.

Что передать

Полный текст ошибки, затронутый пакет или тест и целевая сборка.

Автопроверка файлов

Проверен состав файлов. Запуск не тестировался. Что проверено

Оценки пользователей

Загрузка оценок…
Ваш опыт
Обсудить →

Как использовать

Помогает разработчикам Rust-кода Warp устранять ошибки компиляции, проверки кода, форматирования и тестов. Учитывает особенности сборки WASM и проверки перед запросом на включение изменений.

  1. Разберите причину сбоя и выберите самую узкую подходящую проверку.
  2. Исправляйте по одному типу ошибок; для WASM проверьте, требуется ли ограничить код работой с локальной файловой системой.
  3. Проверьте затронутые тесты и подходящую проверку Clippy, затем один раз выполните итоговое форматирование.

Условия работы

  • Инструкция предназначена для Rust-репозитория Warp, а не произвольного проекта.
  • Полная проверка ./script/presubmit выполняется только по явному требованию пользователя, задачи или согласованной спецификации.
  • WASM не поддерживает файловые операции: такой код и соответствующие тесты должны зависеть от возможности local_fs. После итогового форматирования проверки не повторяются без явного требования; при исправлении только форматирования повторяется лишь его проверка.

Пример запроса после установки

В Rust-коде Warp после изменения структуры падает сборка WASM. Разбери сообщение компилятора, исправь затронутые места и выполни подходящие проверки без полной проверки проекта.

Пример составлен по инструкции автора; результат запуска не проверялся.

Основание: инструкция закреплённой версии

Для установки

Node.js, npm и Git для команды выше. Подключения и инструменты для работы скилла настраиваются отдельно.

Совместимые агенты

Совместимость указана для инструкций. Запуск в каждом приложении не тестировался; для веб-чата способ подключения может отличаться.

Файлы скилла

GitHub
Читать инструкцию SKILL.md

Исходный текст закреплённой версии.

---
name: fix-errors
description: Fix compilation errors, linting issues, and test failures in the warp Rust codebase. Covers presubmit checks, WASM-specific errors, and running specific tests. Use when the user hits build errors, clippy or fmt failures, test failures, or needs to run or interpret presubmit before a PR.
---

# 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

Fix the reported failure with the narrowest useful command. Do not turn a targeted repair into repeated full-workspace validation.

## Full Presubmit

Run the full presubmit only when the user, task, or approved spec explicitly requires it:

```bash
./script/presubmit
```

This runs formatting checks, linting, and all tests. It is intentionally broader and more expensive than the default implementation workflow.

### Individual Checks

Run checks separately when debugging specific issues:

**Rust formatting:**
```bash
cargo fmt -- --check
```

**Clippy (full workspace):**
```bash
cargo clippy --workspace --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 uses filesystem operations
}
```

**Conditionally allow dead code for types only used when `local_fs` is enabled:**
```rust
#[cfg_attr(not(feature = "local_fs"), allow(dead_code))]
#[derive(Clone, EnumDiscriminants, Serialize)]
pub enum ExampleType {
    // Variants only used when local_fs is enabled
    Variant1,
    Variant2,
    Variant3,
}
```

WASM errors are discovered by running:

```bash
cargo clippy --target wasm32-unknown-unknown --profile release-wasm-debug_assertions --no-deps
```

## Best Practices

**Before fixing:**
- Read the full error message to understand the root cause
- Check if multiple errors are related (fixing one may resolve others)
- For trait/type errors, verify you understand the expected vs actual types
- For WASM errors, check if code needs to be gated behind `local_fs`

**When fixing:**
- Fix one error type at a time when there are multiple issues
- Run the smallest applicable `cargo check` when it helps resolve compiler errors; do not repeat broad checks without a relevant code change
- For WASM errors, run WASM clippy to verify the fix
- For complex changes, run relevant tests after fixing

**After fixing:**
- Run the relevant `cargo nextest` tests and fix the code until they pass
- Run the applicable Clippy invocation and fix its findings; return to affected tests only when a fix materially changes behavior
- Run `./script/format` once after all other code changes are complete
- Do not rerun tests or Clippy after formatting, and do not add a full presubmit run, unless explicitly required
- If you only fixed a formatting failure and made no behavioral code change, rerun only the formatter

Проверка и особенности

Автоматическая проверка источника и файлов

Автоматически проверены публичный репозиторий, лицензия, заголовок SKILL.md, состав текстового пакета и Git-хеш каждого файла. Пакеты с исполняемыми файлами и срабатываниями применённых статических правил не включены. Ручной аудит всех инструкций и функциональный запуск не проводились. Внешние инструменты и сервисы не проверялись. Проверка не гарантирует безопасность.

В публичном списке установок на 2026-10-09 у скилла было 27 708 установок. Порог отбора — 1 000 установок. Число установок показывает распространённость, а не качество или безопасность инструкции.

Проверка состава
09.10.2026
Проверенная версия
7c4eb852de8d
Файлы с кодом
Не указаны в данных проверки
Изменения на GitHub
Нужна повторная проверкаПоследняя проверка: 11.10.2026
Как мы проверяем скиллы

Репозиторий и лицензия

warpdotdev/common-skills
610 звёзд34 форков

Это показатели всего репозитория, а не установки скилла. Снимок требует обновления.

Последняя активность GitHub
09.10.2026
Лицензия
MIT
Добавлен в каталог
09.10.2026
Полный текст лицензии
MIT License

Copyright (c) 2026 Denver Technologies, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Ещё в этой категории

Все в категории

Обсуждение

Правила

Пользовались этим скиллом? Делитесь опытом без регистрации. Все комментарии проверяет модератор.

Мои комментарии