fix-errors

作成者: warpdotdev

Warp Rustコードベースのコンパイルエラー、リンティング問題、テスト失敗を修正します。presubmitチェック、WASM固有のエラー、特定のテストの実行をカバーします。ユーザーがビルドエラー、clippyやfmtの失敗、テスト失敗に遭遇した場合、またはPR前にpresubmitを実行・解釈する必要がある場合に使用します。

npx skills add https://github.com/warpdotdev/common-skills --skill 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:

./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:

cargo fmt -- --check

Clippy (full workspace):

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:

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

Objective-C/C/C++ formatting:

./script/run-clang-format.py -r --extensions 'c,h,cpp,m' ./crates/warpui/src/ ./app/src/

All tests:

cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2
cargo nextest run -p warp_completer --features v2

Doc tests:

cargo test --doc

Running Specific Tests

Single package:

cargo nextest run -p <package_name>

Filter by test name:

cargo nextest run -E 'test(<substring>)'

Specific package with filter:

cargo nextest run -p <package_name> -E 'test(<substring>)'

With output (no capture):

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:

#[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:

#[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:

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 cargo check frequently to verify fixes
  • For WASM errors, run WASM clippy to verify the fix
  • For complex changes, run relevant tests after fixing

After fixing:

  • Always run cargo fmt and cargo clippy before pushing
  • Run the full presubmit script before opening or updating a PR. Use the create-pr skill for more detailed instructions
  • Verify tests pass in the areas you modified

warpdotdevのその他のスキル

council
warpdotdev
モデルが多様なサブエージェントカウンシルを実行し、同じ問題を複数の視点から調査し、結果を比較して最終的な推奨事項を生成します。ユーザーがカウンシル、セカンドオピニオン、一つの質問を評価するための複数のエージェント/モデル、並行調査、レッドチーム/ブルーチームの比較、または競合する技術的アプローチの選択の支援を求めた場合に、このスキルを使用してください。
researchcommunicationproject-management
spec-driven-implementation
warpdotdev
実装前にPRODUCT.mdを作成し、必要に応じてTECH.mdを作成し、実装の進行に合わせて両方の仕様を更新することで、大規模な機能に対して仕様駆動のワークフローを推進します。重要な機能の開始時、エージェント駆動の実装計画時、またはユーザーが製品仕様と技術仕様をソース管理にチェックインしたい場合に使用します。
developmentdocumentproject-management
review-pr
warpdotdev
プルリクエストの差分をレビューし、ワークフローが公開するための構造化されたフィードバックをreview.jsonに書き込みます。ローカルアーティファクト(pr_diff.txtやpr_description.txtなど)からチェックアウトしたPRをレビューし、GitHubに直接投稿する代わりに機械可読なレビュー出力を生成する場合に使用します。
code-reviewdevelopment
create-pr
warpdotdev
現在のブランチに対してwarpリポジトリにプルリクエストを作成します。ユーザーがPRを開く、プルリクエストを作成する、レビューのために変更を提出する、またはマージのためにコードを準備することを言及した場合に使用します。
developmentcode-review
implement-specs
warpdotdev
承認されたPRODUCT.mdとTECH.mdの機能を実装し、実装の進化に合わせて仕様とコードを同じPR内で整合させます。プロダクトと技術仕様が承認され、次のステップが機能の構築である場合に使用します。
developmentcode-reviewapi
cross-critique
warpdotdev
争点のある質問について、各サブエージェントの独立した提案を他の作成者に回覧し、構造化された賛否を求めてから統合する、第二ラウンドを実行します。このスキルは、複数の独立した提案や意見がある場合——アーキテクチャのトレードオフ、コードレビューの意見の相違、設計上の選択、競合する根本原因の理論など——に、単独で統合するよりも鋭い分析を得たいときに使用します。councilスキルやresearchスキルと自然に組み合わせられます。...
resolve-merge-conflicts
warpdotdev
Resolve Git merge conflicts by extracting only unresolved paths, conflict hunks, and compact diffs instead of loading whole files into context. Use when a merge, rebase, cherry-pick, or stash pop stops on conflicts, when `git status` shows unmerged paths, or when files contain conflict markers.
developmentcode-review
brandalf
warpdotdev
WarpまたはOzブランドのアセットの作成、改訂、レビューをガイドします。ランディングページ、ドキュメント、HTML/CSSコンポーネント、UIモックアップ、プロンプト、ソーシャルアセット、コピー、プレゼンテーション、その他WarpまたはOzと明確にわかるブランド成果物に使用します。
designcreativemarketing