rust-router
Rustに関するエラー解決、設計、コーディング全般の質問に対応し、ベストプラクティスや非同期処理の比較、所有権・ライフタイムなどの概念理解を深める手助けをするSkill。
📜 元の英語説明(参考)
CRITICAL: Use for ALL Rust questions including errors, design, and coding. HIGHEST PRIORITY for: 比较, 对比, compare, vs, versus, 区别, difference, 最佳实践, best practice, tokio vs, async-std vs, 比较 tokio, 比较 async, Triggers on: Rust, cargo, rustc, crate, Cargo.toml, 意图分析, 问题分析, 语义分析, analyze intent, question analysis, compile error, borrow error, lifetime error, ownership error, type error, trait error, value moved, cannot borrow, does not live long enough, mismatched types, not satisfied, E0382, E0597, E0277, E0308, E0499, E0502, E0596, async, await, Send, Sync, tokio, concurrency, error handling, 编译错误, compile error, 所有权, ownership, 借用, borrow, 生命周期, lifetime, 类型错误, type error, 异步, async, 并发, concurrency, 错误处理, error handling, 问题, problem, question, 怎么用, how to use, 如何, how to, 为什么, why, 什么是, what is, 帮我写, help me write, 实现, implement, 解释, explain
🇯🇵 日本人クリエイター向け解説
Rustに関するエラー解決、設計、コーディング全般の質問に対応し、ベストプラクティスや非同期処理の比較、所有権・ライフタイムなどの概念理解を深める手助けをするSkill。
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o rust-router.zip https://jpskill.com/download/9281.zip && unzip -o rust-router.zip && rm rust-router.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/9281.zip -OutFile "$d\rust-router.zip"; Expand-Archive "$d\rust-router.zip" -DestinationPath $d -Force; ri "$d\rust-router.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
rust-router.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
rust-routerフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-18
- 取得日時
- 2026-05-18
- 同梱ファイル
- 1
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
Rust 質問ルーター
バージョン: 2.0.0 | 最終更新日: 2025-01-22
v2.0: コンテキスト最適化 - 詳細な例はサブファイルに移動
メタ認知フレームワーク
コア原則
直接答えずに、まず認知レイヤーを辿ってください。
Layer 3: ドメイン制約 (WHY)
├── ビジネスルール、規制要件
├── domain-fintech, domain-web, domain-cli, etc.
└── 「なぜこのように設計されているのか?」
Layer 2: 設計上の選択 (WHAT)
├── アーキテクチャパターン、DDD の概念
├── m09-m15 スキル
└── 「どのようなパターンを使用すべきか?」
Layer 1: 言語の仕組み (HOW)
├── 所有権、借用、ライフタイム、トレイト
├── m01-m07 スキル
└── 「これを Rust でどのように実装するのか?」
エントリーポイントによるルーティング
| ユーザーシグナル | エントリーレイヤー | 方向 | 最初のスキル |
|---|---|---|---|
| E0xxx エラー | Layer 1 | 上へ ↑ | m01-m07 |
| コンパイルエラー | Layer 1 | 上へ ↑ | 下記のエラーテーブル |
| 「~を設計する方法」 | Layer 2 | L3 を確認し、下へ ↓ | m09-domain |
| 「[domain] アプリの構築」 | Layer 3 | 下へ ↓ | domain-* |
| 「ベストプラクティス...」 | Layer 2 | 両方向 | m09-m15 |
| パフォーマンスの問題 | Layer 1 → 2 | 上へ、その後下へ | m10-performance |
重要: デュアルスキルローディング
ドメインキーワードが存在する場合、両方のスキルをロードする必要があります。
| ドメインキーワード | L1 スキル | L3 スキル |
|---|---|---|
| Web API, HTTP, axum, handler | m07-concurrency | domain-web |
| 交易, 支付, trading, payment | m01-ownership | domain-fintech |
| CLI, terminal, clap | m07-concurrency | domain-cli |
| kubernetes, grpc, microservice | m07-concurrency | domain-cloud-native |
| embedded, no_std, MCU | m02-resource | domain-embedded |
CLAUDE への指示
重要: ネゴシエーションプロトコルのトリガー
回答する前に、ネゴシエーションが必要かどうかを確認してください。
| クエリに含まれるもの | アクション |
|---|---|
| "比较", "对比", "compare", "vs", "versus" | ネゴシエーションを必ず使用する |
| "最佳实践", "best practice" | ネゴシエーションを必ず使用する |
| ドメイン + エラー (例: "交易系统 E0382") | ネゴシエーションを必ず使用する |
| スコープが曖昧 (例: "tokio 性能") | ネゴシエーションを使用すべき |
ネゴシエーションが必要な場合は、以下を含めてください。
## Negotiation Analysis
**Query Type:** [Comparative | Cross-domain | Synthesis | Ambiguous]
**Negotiation:** Enabled
### Source: [Agent/Skill Name]
**Confidence:** HIGH | MEDIUM | LOW | UNCERTAIN
**Gaps:** [What's missing]
## Synthesized Answer
[Answer]
**Overall Confidence:** [Level]
**Disclosed Gaps:** [Gaps user should know]
詳細なプロトコル:
patterns/negotiation.md
デフォルトのプロジェクト設定
新しい Rust プロジェクトまたは Cargo.toml ファイルを作成する場合は、常に以下を使用してください。
[package]
edition = "2024" # 常に最新の安定版エディションを使用する
rust-version = "1.85"
[lints.rust]
unsafe_code = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
Layer 1 スキル (言語の仕組み)
| パターン | ルート先 |
|---|---|
| move, borrow, lifetime, E0382, E0597 | m01-ownership |
| Box, Rc, Arc, RefCell, Cell | m02-resource |
| mut, interior mutability, E0499, E0502, E0596 | m03-mutability |
| generic, trait, inline, monomorphization | m04-zero-cost |
| type state, phantom, newtype | m05-type-driven |
| Result, Error, panic, ?, anyhow, thiserror | m06-error-handling |
| Send, Sync, thread, async, channel | m07-concurrency |
| unsafe, FFI, extern, raw pointer, transmute | unsafe-checker |
Layer 2 スキル (設計上の選択)
| パターン | ルート先 |
|---|---|
| domain model, business logic | m09-domain |
| performance, optimization, benchmark | m10-performance |
| integration, interop, bindings | m11-ecosystem |
| resource lifecycle, RAII, Drop | m12-lifecycle |
| domain error, recovery strategy | m13-domain-error |
| mental model, how to think | m14-mental-model |
| anti-pattern, common mistake, pitfall | m15-anti-pattern |
Layer 3 スキル (ドメイン制約)
| ドメインキーワード | ルート先 |
|---|---|
| fintech, trading, decimal, currency | domain-fintech |
| ml, tensor, model, inference | domain-ml |
| kubernetes, docker, grpc, microservice | domain-cloud-native |
| embedded, sensor, mqtt, iot | domain-iot |
| web server, HTTP, REST, axum, actix | domain-web |
| CLI, command line, clap, terminal | domain-cli |
| no_std, microcontroller, firmware | domain-embedded |
エラーコードルーティング
| エラーコード | ルート先 | 一般的な原因 |
|---|---|---|
| E0382 | m01-ownership | move された値の使用 |
| E0597 | m01-ownership | ライフタイムが短すぎる |
| E0506 | m01-ownership | 借用されたものへの代入不可 |
| E0507 | m01-ownership | 借用されたものからの move 不可 |
| E0515 | m01-ownership | ローカル参照の返却 |
| E0716 | m01-ownership | 一時的な値がドロップされた |
| E0106 | m01-ownership | ライフタイム指定子の欠落 |
| E0596 | m03-mutability | 可変として借用できない |
| E0499 | m03-mutability | 複数の可変借用 |
| E0502 | m03-mutability | 借用コンフリクト |
| E0277 | m04/m07 | トレイト境界が満たされていない |
| E0308 | m04-zero-cost | 型の不一致 |
| E0599 | m04-zero-cost | メソッドが見つからない |
| E0038 | m04-zero-cost | トレイトがオブジェクトセーフではない |
| E0433 | m11-ecosystem | クレート/モジュールが見つからない |
機能ルーティングテーブル
| パターン | ルート先 | アクション |
|---|---|---|
| latest version, what's new | rust-learner | エージェントを使用 |
| API, docs, documentation | docs-researcher | エージェントを使用 |
| code style, naming, clippy | coding-guidelines | スキルを読む |
| unsafe code, FFI | unsafe-checker | スキルを読む |
| code review | os-checker | integrations/os-checker.md を参照 |
優先順位
- 認知レイヤーを特定する (L1/L2/L3)
- エントリースキルをロードする (m0x/m1x/domain)
- レイヤーを辿る (上へまたは下へ)
- "Trace" セクションに示されているように スキルを相互参照する
- 推論チェーンとともに回答する
キーワードの競合解決
| キーワード | 解決策 | |--------
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
Rust Question Router
Version: 2.0.0 | Last Updated: 2025-01-22
v2.0: Context optimized - detailed examples moved to sub-files
Meta-Cognition Framework
Core Principle
Don't answer directly. Trace through the cognitive layers first.
Layer 3: Domain Constraints (WHY)
├── Business rules, regulatory requirements
├── domain-fintech, domain-web, domain-cli, etc.
└── "Why is it designed this way?"
Layer 2: Design Choices (WHAT)
├── Architecture patterns, DDD concepts
├── m09-m15 skills
└── "What pattern should I use?"
Layer 1: Language Mechanics (HOW)
├── Ownership, borrowing, lifetimes, traits
├── m01-m07 skills
└── "How do I implement this in Rust?"
Routing by Entry Point
| User Signal | Entry Layer | Direction | First Skill |
|---|---|---|---|
| E0xxx error | Layer 1 | Trace UP ↑ | m01-m07 |
| Compile error | Layer 1 | Trace UP ↑ | Error table below |
| "How to design..." | Layer 2 | Check L3, then DOWN ↓ | m09-domain |
| "Building [domain] app" | Layer 3 | Trace DOWN ↓ | domain-* |
| "Best practice..." | Layer 2 | Both directions | m09-m15 |
| Performance issue | Layer 1 → 2 | UP then DOWN | m10-performance |
CRITICAL: Dual-Skill Loading
When domain keywords are present, you MUST load BOTH skills:
| Domain Keywords | L1 Skill | L3 Skill |
|---|---|---|
| Web API, HTTP, axum, handler | m07-concurrency | domain-web |
| 交易, 支付, trading, payment | m01-ownership | domain-fintech |
| CLI, terminal, clap | m07-concurrency | domain-cli |
| kubernetes, grpc, microservice | m07-concurrency | domain-cloud-native |
| embedded, no_std, MCU | m02-resource | domain-embedded |
INSTRUCTIONS FOR CLAUDE
CRITICAL: Negotiation Protocol Trigger
BEFORE answering, check if negotiation is required:
| Query Contains | Action |
|---|---|
| "比较", "对比", "compare", "vs", "versus" | MUST use negotiation |
| "最佳实践", "best practice" | MUST use negotiation |
| Domain + error (e.g., "交易系统 E0382") | MUST use negotiation |
| Ambiguous scope (e.g., "tokio 性能") | SHOULD use negotiation |
When negotiation is required, include:
## Negotiation Analysis
**Query Type:** [Comparative | Cross-domain | Synthesis | Ambiguous]
**Negotiation:** Enabled
### Source: [Agent/Skill Name]
**Confidence:** HIGH | MEDIUM | LOW | UNCERTAIN
**Gaps:** [What's missing]
## Synthesized Answer
[Answer]
**Overall Confidence:** [Level]
**Disclosed Gaps:** [Gaps user should know]
详细协议见:
patterns/negotiation.md
Default Project Settings
When creating new Rust projects or Cargo.toml files, ALWAYS use:
[package]
edition = "2024" # ALWAYS use latest stable edition
rust-version = "1.85"
[lints.rust]
unsafe_code = "warn"
[lints.clippy]
all = "warn"
pedantic = "warn"
Layer 1 Skills (Language Mechanics)
| Pattern | Route To |
|---|---|
| move, borrow, lifetime, E0382, E0597 | m01-ownership |
| Box, Rc, Arc, RefCell, Cell | m02-resource |
| mut, interior mutability, E0499, E0502, E0596 | m03-mutability |
| generic, trait, inline, monomorphization | m04-zero-cost |
| type state, phantom, newtype | m05-type-driven |
| Result, Error, panic, ?, anyhow, thiserror | m06-error-handling |
| Send, Sync, thread, async, channel | m07-concurrency |
| unsafe, FFI, extern, raw pointer, transmute | unsafe-checker |
Layer 2 Skills (Design Choices)
| Pattern | Route To |
|---|---|
| domain model, business logic | m09-domain |
| performance, optimization, benchmark | m10-performance |
| integration, interop, bindings | m11-ecosystem |
| resource lifecycle, RAII, Drop | m12-lifecycle |
| domain error, recovery strategy | m13-domain-error |
| mental model, how to think | m14-mental-model |
| anti-pattern, common mistake, pitfall | m15-anti-pattern |
Layer 3 Skills (Domain Constraints)
| Domain Keywords | Route To |
|---|---|
| fintech, trading, decimal, currency | domain-fintech |
| ml, tensor, model, inference | domain-ml |
| kubernetes, docker, grpc, microservice | domain-cloud-native |
| embedded, sensor, mqtt, iot | domain-iot |
| web server, HTTP, REST, axum, actix | domain-web |
| CLI, command line, clap, terminal | domain-cli |
| no_std, microcontroller, firmware | domain-embedded |
Error Code Routing
| Error Code | Route To | Common Cause |
|---|---|---|
| E0382 | m01-ownership | Use of moved value |
| E0597 | m01-ownership | Lifetime too short |
| E0506 | m01-ownership | Cannot assign to borrowed |
| E0507 | m01-ownership | Cannot move out of borrowed |
| E0515 | m01-ownership | Return local reference |
| E0716 | m01-ownership | Temporary value dropped |
| E0106 | m01-ownership | Missing lifetime specifier |
| E0596 | m03-mutability | Cannot borrow as mutable |
| E0499 | m03-mutability | Multiple mutable borrows |
| E0502 | m03-mutability | Borrow conflict |
| E0277 | m04/m07 | Trait bound not satisfied |
| E0308 | m04-zero-cost | Type mismatch |
| E0599 | m04-zero-cost | No method found |
| E0038 | m04-zero-cost | Trait not object-safe |
| E0433 | m11-ecosystem | Cannot find crate/module |
Functional Routing Table
| Pattern | Route To | Action |
|---|---|---|
| latest version, what's new | rust-learner | Use agents |
| API, docs, documentation | docs-researcher | Use agent |
| code style, naming, clippy | coding-guidelines | Read skill |
| unsafe code, FFI | unsafe-checker | Read skill |
| code review | os-checker | See integrations/os-checker.md |
Priority Order
- Identify cognitive layer (L1/L2/L3)
- Load entry skill (m0x/m1x/domain)
- Trace through layers (UP or DOWN)
- Cross-reference skills as indicated in "Trace" sections
- Answer with reasoning chain
Keyword Conflict Resolution
| Keyword | Resolution |
|---|---|
unsafe |
unsafe-checker (more specific than m11) |
error |
m06 for general, m13 for domain-specific |
RAII |
m12 for design, m01 for implementation |
crate |
rust-learner for version, m11 for integration |
tokio |
**tokio-* for API, m07** for concepts |
Priority Hierarchy:
1. Error codes (E0xxx) → Direct lookup, highest priority
2. Negotiation triggers (compare, vs, best practice) → Enable negotiation
3. Domain keywords + error → Load BOTH domain + error skills
4. Specific crate keywords → Route to crate-specific skill if exists
5. General concept keywords → Route to meta-question skill
Sub-Files Reference
| File | Content |
|---|---|
patterns/negotiation.md |
Negotiation protocol details |
examples/workflow.md |
Workflow examples |
integrations/os-checker.md |
OS-Checker integration |