Communitygithub.com

zehuichan/vibe-harness

エラー処理の原則を設計やレビューに適用し、障害、リカバリ、リトライ、バックグラウンドタスク、およびユーザー向けエラーレポートを扱います。

vibe-harness とは?

このスキルは、ソフトウェアシステムにおけるエラー処理設計を体系的にガイドします。開発者は、期待される障害に対して型付きで構造化された失敗型を定義し、メッセージ解析ではなく型によるルーティングを行うことで、堅牢なエラー処理を実現できます。各障害には、処理と報告の責任者、安全な継続のための保証(不変条件、副作用の有無)、およびクリーンアップの責任を明確に割り当てる必要があります。リトライは安全な繰り返しとキャンセル、明示的な所有者を必要とし、バックグラウンドタスクも同様の責務を負います。最終的なエラーレポートは、影響を受けた操作、読みやすい要約、安全な次のアクションを含み、受信アプリケーションのロケール機構を通じてローカライズされるべきです。機密内部詳細はユーザー向けテキストから除外し、信頼できない状態や未知の結果はUIまたはデフォルトで有効なログを通じて可視化します。主要なプラットフォーム(Claude Code, Cursor, Codexなど)で利用可能であり、Meyerの契約プログラミング、Sutterの例外安全性保証、Armstrongの隔離と監督といった基礎理論に基づいています。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/zehuichan/vibe-harness/tree/HEAD/skills/error-handling

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

エラー処理

障害、その所有者、および障害後も安全な状態を定義します。これはチェックリストではなくガイダンスです。

型付きの構造化された障害

予期される障害には、宣言された型、安定した判別子、および処理に関連する詳細が必要です。プロジェクトのエラー規則を再利用し、原因を保持し、機械的な識別子と表示テキストを分離します。メッセージを解析してルーティングしてはいけません。網羅性チェックの失敗など、予期しない欠陥は単純なエラーのままでも構いませんが、封じ込めによって決して成功に変えてはいけません。

キャッチ、リカバリ、または停止

各障害について、処理と報告の所有者、封じ込め、および保証を所有APIドキュメントに定義します:どの不変条件が有効か、副作用がないか、部分的か、コミット済みか、不明か、およびクリーンアップの責任者は誰か。バックグラウンド処理もこれらの義務を負います。

キャッチは例外の伝播を制限するものであり、変更を制限するものではありません。影響を受けた状態の所有者だけが安全な継続を確立できます。それ以外の場合は、依存する作業を停止し、無効な状態やインスタンスを破棄するか、エスカレーションします。ログ記録だけではリカバリにはなりません。リトライには、安全な繰り返し、キャンセル、および明示的な所有者が必要です。有限な操作には予算が必要であり、継続的な監督にはライフサイクルの所有権と観測可能な劣化が必要です。

ローカライズされ、実用的で、可視化されたレポート

すべての最終レポートには、読みやすい要約、影響を受けた操作、および安全な次のアクションが必要です。受信アプリケーションのロケールメカニズムが存在する場合はそれを通じてローカライズします。その他の診断は既存の出力言語を使用します。機密内部詳細はユーザー向けテキストに含めないでください。

信頼できない状態や未知の結果は、UIまたはデフォルトで有効なログを通じて可視化する必要があります:影響、不確実性、システムの対応、および安全な次のステップを報告します。持続的に無効な状態には持続的な可視性が必要です。裏付けとなる保証なしに、成功、ロールバック、または安全なリトライを決して主張してはいけません。障害報告には独立したフォールバックが必要です。

結果の状態と可視化された結果を検証し、例外がキャッチされたことだけを確認しないでください。

基礎

Meyer, Object-Oriented Software Construction (1997): 契約と不変条件。Sutter, Exceptional C++ (1999): 例外安全性保証。Armstrong, Making reliable distributed systems in the presence of software errors (2003): 隔離と監督。

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

関連スキル