bp-rust-wasm
Rust ベストプラクティス(Plecto WASM フィルタ向け、Edition 2024)。plecto:filter WIT コントラクトを実装する WASM Component Model フィルタの規約とツールチェーン。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Rust ベストプラクティス(Plecto WASM フィルタ向け、Edition 2024)。plecto:filter WIT コントラクトを実装する WASM Component Model フィルタの規約とツールチェーン。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Grilling session that challenges your plan against moka-1's documented design decisions (tenets, ADRs) and domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when the user wants to stress-test a plan against the project's language and documented decisions, or says 「設計を詰めて」「用語を固めて」「ドキュメントと突き合わせて」.
クリーンアーキテクチャの依存ルールを moka-1 のミニマリズム制約下で適用する指針。レイヤ分割・interface 設計・依存方向の判断基準と、過剰抽象化を避けるガードレールを提供する。
Web調査の方法論。一次ソース(RFC・公式仕様・公式ドキュメント・原論文・ソースコード)を最優先し、検索クエリの多角化・横断的検証(lateral reading)・独立ソースでの三角測量を経て、出典付きで報告する手順。
moka-1 スタックの Docker Compose 操作と compose.yaml の書き方。ワンキック起動・開発ループ・ヘルスチェック・開発機(iGPU/Vulkan)固有設定・トラブルシュート。
Go ベストプラクティス(moka-core 向け、Go 1.26+)。常駐エージェントループ・LLM クライアント・フィード取得を含む moka-core の実装規約。
Python ベストプラクティス(eval/ 専用、Python 3.14 + uv + Pyrefly + Ruff)。モデル A/B・プロンプト評価スクリプトの規約と再現性の作法。
| name | bp-rust-wasm |
| description | Rust ベストプラクティス(Plecto WASM フィルタ向け、Edition 2024)。plecto:filter WIT コントラクトを実装する WASM Component Model フィルタの規約とツールチェーン。 |
moka-1 の Rust はサーバーではなく WASM Component Model フィルタ(plecto:filter@0.3.0 WIT コントラクト実装 — 契約バージョンは Plecto 本体と独立採番)。
Alt の tokio サーバー規約とは別物。ここでの失敗・不便はドッグフーディングの成果物 — 回避策で黙って進めず Plecto に issue/ADR を起票する(tenets §3.5)。
wasm32-unknown-unknown + wasm-tools component new の2段構え(Plecto docs/writing-a-filter.md の公式手順。wasip2 ではない — Tier A フィルタは zero-WASI で、wasi:* import が1つでもあるとロード拒否される)。cargo-component も使わない:
rustup target add wasm32-unknown-unknown
cargo build --target wasm32-unknown-unknown --release
wasm-tools component new target/wasm32-unknown-unknown/release/<name>.wasm -o <name>.component.wasm
wasm-tools component wit <name>.component.wasm # import が plecto:filter/* のみか確認
moka-1 では plecto/build/filters-build.sh(one-shot ジョブ)がこの手順の単一ソース。wit-bindgen(0.59系)の generate! マクロ: WIT は wkg get plecto:filter@0.3.0(ghcr.io / prefix kaikei-e/wit/)で取得し plecto/filters/wit/ に vendor(リリースノートの digest と照合してから使う):
wit_bindgen::generate!({ world: "filter", path: "wit" });
edition = "2024", crate-type = ["cdylib"], 自前 [workspace] 宣言(親 workspace に吸収させない)。リリースプロファイルはサイズ最適化:
[profile.release]
opt-level = "s"
lto = true
strip = true
continue / modified(edit) / short-circuit(synthetic-response)。暗黙のフォールスルーを書かないlet Some(key) = headers.get("x-api-key") else {
return Decision::ShortCircuit(unauthorized());
};
host-log / host-clock / host-kv / host-counter / host-ratelimit)以外を前提にしない。新 capability が必要になったら、まずそれが「per-request ポリシー」か「グローバル横断関心事」かを問う — 後者なら Plecto ネイティブ側の仕事(ADR 29 の role-driven placement)static mut・OnceLock でのリクエスト跨ぎ状態は禁止。trust-branched 実行(pooled か fresh-per-request か)は運用側の決定であり、フィルタはどちらでも正しく動く必要がある。共有状態は host-kv / host-counter へinit() で構築して resource に保持#[derive(Debug, Error)] でフィルタ内エラーを定義し、最終的に WIT の decision に写像する。anyhow は使わない(境界が WIT なので型を保つ).clone() を安易に使わない。&str > String、&[u8] > Vec<u8>。ヘッダ処理はゼロコピーを意識_ ワイルドカードより明示的なバリアント列挙。WIT 側の追加をコンパイルエラーで検出するpub(crate) デフォルト: 公開は wit-bindgen が要求するエクスポートのみhost-log capability のみ。時刻は host-clock(SystemTime::now() はサンドボックスで lend されない前提で書く)unwrap() は初期化時と不変条件の明示(コメント付き)のみ&HeaderMap -> Verdict 的シグネチャ)に切り出し、cargo test(ホスト native)で回す。host API はトレイトで抽象化してフェイクを注入e2e/hurl/edge/)。wasmtime を使った自前ハーネスは作らない(Plecto のカンフォーマンステストに寄せる)cargo fmt --check && cargo clippy --all-targets -- -D warnings && cargo clippy --target wasm32-unknown-unknown --release -- -D warnings && cargo test && cargo build --target wasm32-unknown-unknown --release.wasm をロードしない — 署名済み OCI image-layout + digest pin + [trust] 公開鍵が必須(fail-closed)。moka-1 では one-shot ジョブ2本(plecto-filters-build → plecto-manifest-render)がビルド〜署名〜manifest レンダリングを担い、反映は docker compose run --rm で両ジョブ再実行 → docker compose kill -s HUP plecto。GHCR への OCI 配布は Phase 4(tenets §3.5)docs/tenets/moka-tenets.md — 本スキルの「tenets §N」参照はこの文書の節番号