mcpField
H
hegel

hegel

github.com/hegeldevテスト・品質8563 回インストール2 週間前に更新
リポジトリ

hegel について

hegel は複数のプログラミング言語でプロパティベーステストを行うスキルです。証拠に基づくテスト設計、失敗の調査、独立レビューをコーディングエージェントに案内します。

主な機能

  1. 01ランダム入力の生成と縮小
  2. 02複数言語のテストライブラリ
  3. 03証拠に基づくプロパティ設計
  4. 04網羅性と敵対的レビューのガイド

活用シーン

  1. 01最小反例の発見
  2. 02公開 API と境界条件のテスト
  3. 03完了前のテスト網羅性確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/hegeldev/hegel-skill --skill hegel

インストール後、Claude Code で/hegelを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

techniques/
adversarial-review.md
directions.md
generators.md
running.md
scale.md
surfaces.md
triage.md

詳細

Hegel:プロパティベーステスト

Hegel はコードへのランダムな入力を生成し、失敗したケースを最小の反例へと縮小します。Rust(hegeltest)、Go、C++、TypeScript、Java、OCaml 向けのライブラリがあり、いずれも標準のテストランナーと統合されます。

API は次の順に確認してください。このリポジトリにある既存の hegel テスト、ライブラリのドキュメント、お使いの環境で利用できる hegel ライブラリのソース(ベンダー同梱版またはレジストリのコピー)です。使用するものの正確な名前とシグネチャを確認してください。構文を推測してはいけません。

すべてのプロパティを根拠に基づいて作成してください。根拠として使えるのは、ドキュメントに記載された契約、名前とシグネチャ、コード自体が表明する不変条件、既存のテストです。文書化されていない一般的な期待(往復変換、同等の2つの表記が同じ結果になること、スケール変更された入力が同じ答えになることなど)も根拠になります。その期待に名前を付け、そのようなテストが失敗した場合は、何かが約束されていたかどうかではなく、その挙動に擁護できる理由があるかどうかで判断してください。既存のテストファイルに、テストごとに1つのプロパティを記述してください。

技法

このスキルの techniques/ ディレクトリには、短く具体的なガイドがあります。該当する段階に進んだとき、行き詰まったとき、または予想外の結果が出たときに、必要なガイドを参照してください。

  • techniques/surfaces.md — テスト対象の選定:公開 API 全体、関連するエントリーポイント、各インスタンス化
  • techniques/directions.md — 受理方向と拒否方向のプロパティ、妥当性だけでなく値を確定するオラクル
  • techniques/generators.md — ジェネレーター:ドメイン全体、敵対的な入力、対象を絞ったサブセット
  • techniques/scale.md — 再帰と複雑性のバグを調べるスケールプローブ
  • techniques/running.md — ケース数と実行設定
  • techniques/triage.md — 失敗の調査と誠実な報告
  • techniques/adversarial-review.md — 完了前に、サブエージェントが見落としているプロパティをレビューする

完了前に

必須の手順が3つあります。どれかを省略すると作業は未完了です。

  1. 対象範囲の網羅性。 techniques/surfaces.md の対象範囲リストをライブラリの公開 API インデックスと照合し直してください。公開モジュールはすべて、またテストした対象の関連するエントリーポイントとインスタンス化もすべて、テストするか、テストしない理由を明記してください。次に、テストした各対象を上記の技法一覧と照合してください。未確認の項目には、その理由を明記してください。

  2. サブエージェントによる敵対的レビュー — 必須です。省略できません。 見落としたプロパティを見つけるため、別のサブエージェントを起動してください(Task ツール、またはお使いのハーネスで同等の機能を使用します)。実装と満たすべき契約(ドキュメントのコメント、README、シグネチャ)を渡しますが、自分のテストは渡さないでください。自分のテストを見たレビュアーは見落としを引き継いでしまいます。それこそが、新しいエージェントを使う理由です。反証されるまではコードに誤りがあると仮定し、契約が示唆するプロパティ(往復変換、不変条件、同等の経路間の一致、名前付きの値の文書化された意味)と、それらを壊しやすい入力クラス(空、退化、境界、最大、不正形式)を返すよう指示してください。返された内容を hegel テストとして記述し、実行して、検出された問題を修正してください。このレビューが実施され、その結果に対応するまでは完了ではありません。詳しい依頼内容は techniques/adversarial-review.md を参照してください。

  3. チェックリスト。 作成した内容を hegel-review チェックリストに照らして確認してください。

コメント