Communityライティング&編集github.com

Devolutions/IronRDP

契約(CONTRACT*.md)と公開情報のみから、実装を見たことのない作者が適合性テストスイートを作成・拡張するためのスキル。暗号、コーデック、ワイヤプロトコルなど、複数の実装が存在する契約や、誤った期待値が実装者に気づかれにくい場合に使用します。

IronRDP とは?

このスキルは、契約書(CONTRACT*.md)と公開されている情報のみを基に、実装を一切見ることなくテストスイートを作成・拡張するためのものです。テストスイートは契約に基づく独立した証拠であり、合格・不合格の判定は契約の正しさではなく、実装またはテストの正当性を示します。暗号、コーデック、ワイヤプロトコルのように、単一の実装では誤った期待値が発見されにくい分野や、複数の実装が存在する契約に特に有効です。テスト作成者は契約ファイル、インターフェース、公開された仕様やベクターのみを参照し、実装や過去の実装、関連するプルリクエストは決して見ません。期待値は公開されたソース、契約が定める特性、または契約や標準が固定する方法による導出値のみを使用し、実装に依存する計算は避けます。レビューではテストレビュアーが契約とカバレッジ記録の相互確認を行い、実装が一つ緑色で通過した時点でマージされます。実装中はテストスイートと契約は読み取り専用となり、問題は新たな盲検テスト作成者によって修正されます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Devolutions/IronRDP/tree/HEAD/.agents/skills/blind-testsuite

Installed? Explore more ライティング&編集 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

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

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

ドキュメント

ブラインドテストスイート

このスイートは、契約から導かれた独立した証拠であり、適合性の定義ではありません。したがって、テストが不合格であれば、実装またはテストが間違っているのであって、契約が間違っているわけではありません。 test-writerが各テストの形状を決定し、test-oracle-reviewerが独立した値とみなすものを決定します。このスキルはそれらを隔離するためのものです。

作成者が見るもの

契約ファイル、それが記述されているインターフェース(契約のクレートまたはモジュール、その型とドキュメント)、および公開ソース(仕様、ベンダリングされたベクター、キャプチャ)。 実装、以前の実装、または契約を生み出したプルリクエストは見ません。これらは契約の解釈を内包しており、スイートがテストするのではなく確認することになるからです。 実装が存在する場合、作成者はそのコミットを含まないワークツリーの新しいコンテキストです。「読んではいけないリスト」はそれを補完するものであり、置き換えるものではありません。なぜなら、実装を見たコンテキストはそれを見なかったことにできないからです。

期待値

テストで引用された公開ソース、契約が述べる特性、または契約または引用された標準が方法を固定する導出値から得られ、ベクターとともに記録され、レビューアーが再現できるようにします。契約の実装のみが実行できる計算から得られる値は決して使用しません。そのような値をチェックすることは、契約を再実装することを意味するからです。 導出ベクターは、変更が触れるすべての結合フィールド(長さ、チェックサム、署名)を考慮するか、その結果は導出が主張するものではありません。 公開された回答が存在しない場合、実装間の出力を比較します。差分チェックは単独では決して成立しません。なぜなら、両方に存在するバグはそれを通過させるからです。 手書きの負の入力は、対象とする次元においてのみ独立して有効な制御と異なるため、テストはその名前の理由でのみ失敗できます。拒否された入力を指定するルールは、そのような入力を受け取ります。なぜなら、受け入れによってのみテストされるルールは、すべてを受け入れることによって満たされるからです。 ベンダリングされたソースは、元のソース、バージョン、チェックサムを記録し、全体または独自のセクション境界で切り取られ、編集されることはありません。編集またはスライスされたベクターは、それをオラクルにする出所を失うからです。 スイートの横にカバレッジ記録を保持します。各テストがどの条項をチェックするか、どの条項がレビューのみで検証されるか、および意図的にチェックされない境界を記録し、沈黙がカバレッジと誤解されないようにします。

レビューとマージ

レビューアーはtest-reviewerを実行し、契約とカバレッジ記録を相互にチェックします。すべての条項にテストまたは記録されたギャップがあり、すべてのテストがその条項を引用しています。 実装の前にスイートを作成します。1つの実装がグリーンで実行されたらマージします。これにより、適合しない実装が通過できないテストが、後のすべての実装を拘束する前に発見されます。

実装中の読み取り専用

実装のプルリクエストは、スイートまたは契約を決して編集しません。 間違っているように見えるテスト、またはテストのない条項は、ベクターまたは条項、期待値と観測値、および引用されたソースとともにエスカレーションされます。 修正はスイートを所有するプルリクエスト(開かれているものはそのリーダーを通じて、マージされた後は新しいもの)に、同じ入力を与えられた新しい作成者によって行われ、その作成者は実装の出力ではなく決定を受け取るため、スイートはブラインドのまま維持されます。

Individual skills in this repo

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

関連スキル