con un clic
bug-fix-protocol
バグ修正時のリグレッションテスト作成義務と、グローバル状態共有の禁止ルール。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
バグ修正時のリグレッションテスト作成義務と、グローバル状態共有の禁止ルール。
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
CSW のユーザー向け UI・コピーの正典。ユーザー向け語彙(「環境」)、共有モードの3語(共有/分離/コピー)、選択行の見せ方(塗りのみ)、メニューバーを主機構にしない、コピーの一次ソースは LP、Claude 本体の現行用語への追従、並列 UI の分量・文体、禁止記号(em-dash/※/絵文字)を定める。アプリ UI・LP・docs のラベル/モード名/説明文/マイクロコピーを作る/変える前に読む。
用語・概念・UI・コピーを1箇所変えたら、全サーフェス(アプリ UI・トレイ・docs ja/en・README ja/en・LP ja/en・スクリーンショット・OG 画像)へ同時反映し、旧表現を全リポ grep で残存ゼロ確認する。スクショ等の非テキスト派生物は grep に映らないので明示列挙して再生成する。UI・用語・コピーを変えたら発動。
PR をマージする際のレビュー・マージ実行チェックリスト (Rust + Tauri v2 / CSW)。スコープ外変更・安全装置の格下げ・テスト負債・高リスクインフラファイル改変を検出し、CI green を確認したうえで自律的に squash merge する手順を定義する。
CI (GitHub Actions の Test / Build / Security job) が想定時間を大幅に超過した場合のハング検出と cancel / rerun フロー。macos-latest runner の混雑や cargo の依存取得・コンパイル stall 等、transient な GHA 側障害の典型対処。CI が想定より長く `in_progress` のまま動かない時に発動。
日本語の見出し・本文の折り返し / タイポグラフィ品質ゲート。日本語 UI・LP・ドキュメントのコピーやフォントサイズ、改行、行間に触れる前に必ず読む。英語の折り返しルールをそのまま日本語に当てると崩れる(禁則・文節・字面密度が違う)ため、JP 専用の規則・モダン CSS・モジュラースケール・実機検証手順を正典化する。design-taste-frontend を補完する JP 特化スキル。
LP(website/) と人間向けドキュメント(docs/・README) と実装(crates/) が「同じ一つの事実」を語っているかを横断監査する。用語・アーキテクチャ・CLI 表面・機能主張・ja/en 整合・禁止表現を点検し、不整合を file:line と修正案つきで報告する。リリース前やドキュメント/LP/実装を変えた後に実行する read-only 監査。
| name | bug_fix_protocol |
| description | バグ修正時のリグレッションテスト作成義務と、グローバル状態共有の禁止ルール。 |
[!CAUTION] テストの Source of Truth は「現在のコード」ではなく「仕様(
docs/SPECIFICATION.md)」である。
バグ修正は必ずこの順序で行う:
cargo test --workspace で既存テストへの影響を確認[!CAUTION] 「修正してからテストを書く」は禁止。 テストがバグを検出できるか保証できなくなる。
AIが「現在のコードの挙動」を正解としてテストを書くと、バグを保護するテストが生まれる。
docs/SPECIFICATION.md / README.md の仕様から導出するdocs/SPECIFICATION.md に仕様を追記してから実装CSW はプロファイルごとにデータ(ディレクトリ・Keychain)を完全に分離するアプリであり、共有されたグローバル状態はプロファイル間の漏洩バグの温床になる。テストでもプロセスグローバルな可変状態を共有しない(並列テストで競合・偽合格を生む)。
// ❌ プロセスグローバルで全テストが状態を共有 → 並列実行で競合
static MOCK_STORE: Lazy<Mutex<HashMap<String, String>>> = Lazy::new(|| Mutex::new(HashMap::new()));
// ✅ スレッドローカルでテストごとに独立(MockKeychainProvider が採用している方式)
thread_local! {
static MOCK_STORE: RefCell<HashMap<String, String>> = RefCell::new(HashMap::new());
}
実コードでも、あるプロファイルの操作が別プロファイルの Keychain / データに波及しないことを常に保証する。
| 観点 | テスト内容 |
|---|---|
| データ分離 | プロファイル A への操作がプロファイル B に影響しない |
| 初期状態 | 新規プロファイルは空データ(または明示した共有元)で開始 |
| 永続化整合性 | 退避したデータが復元で正しく戻る |
| 並列安全性 | テストを並列実行しても Keychain モック等の共有状態が競合しない |
| default の特別扱い | default プロファイルが実ユーザーディレクトリを指す分岐が正しく動く |