Agent Skills by ALSEL
汎用ソフトウェア開発⭐ リポ 53品質スコア 87/100

qedgen

テストで見落とすバグを発見できます。Solanaプログラムが保証すべき内容を.qedspecで定義すると、QEDGenが検証を実行し、テストとプルーフを生成し、エージェント補完可能なRustコードをスカフォーリングします。ユーザーが「qedgen」「qedspec」「コード検証」「正確性の証明」「形式検証」「プロパティテスト」「生成されたKani/proptest/Leanアーティファクト」またはSolanaプログラムの正確性について質問した場合にトリガーされます。

description の原文を見る

Find the bugs your tests miss. Define what your Solana program must guarantee in a .qedspec; QEDGen validates it, generates tests and proofs, and scaffolds agent-fill Rust code. Trigger when the user asks for "qedgen", "qedspec", "verify my code", "prove correctness", formal verification, property testing, generated Kani/proptest/Lean artifacts, or Solana program correctness.

SKILL.md 本文

QEDGen

トリガーとミッション

ユーザーが Solana プログラムの動作を検証したい、.qedspec を作成・レビューしたい、検証成果物を生成したい、既存の Anchor プログラムをオンボードしたい、または生成成果物を同期させたいときにこのスキルを使用します。

ミッション:

  • スペックを書く前にソースコードを読みます。
  • .qedspec を唯一の情報源として扱います。
  • qedgen check を使用してスペックを検証します。
  • qedgen codegen を使用して生成成果物をスカッフォルドします。
  • 生成された Rust ハンドラー TODOs をエージェントタスクとして記入し、その後ビルドとテストを実行します。
  • qedgen verify と drift gates を使用して証明とコードの同期を保ちます。

生成された Rust を完全なビジネスロジックとして提示しないでください。Anchor と Quasar の出力は実装スカッフォルドです。ハンドラーファイルは、エージェントが記入するまで、転送、イベント、CPI ワイヤリング、および非機械的な効果に対して意図的に todo!() を含むことができます。

QEDGen の実行方法

利用可能な場合はインストール済みのスキルラッパーを優先してください:

QEDGEN="$HOME/.agents/skills/qedgen/tools/qedgen"

リポジトリチェックアウトから、ローカルバイナリも機能します:

cargo run -p qedgen-solana-skills -- <command>

すべての書き込みパスは git リポジトリを想定しています。リポジトリ外でコマンドがエラーになった場合は、git init を実行するか、プロジェクトルートに移動してください。

一般的なコマンド:

$QEDGEN check --spec program.qedspec
$QEDGEN codegen --spec program.qedspec --all
$QEDGEN verify --spec program.qedspec
$QEDGEN reconcile --spec program.qedspec --code programs/ --proofs formal_verification/

リリースとリポジトリメンテナンスゲート:

bash scripts/check-version-consistency.sh
bash scripts/check-readme-drift.sh
$QEDGEN check --regen-drift

完全な CLI サーフェスとフラグについては references/cli.md を参照してください。

フロー: 検証 → スカッフォルド → 記入 → 検証

ステップ 1. プログラムを理解します。

Rust ソース、テスト、アカウントモデル、権限、PDA、トークンフロー、計算、およびライフサイクルを読みます。QEDGen プロジェクトの返却の場合は、次にコードの隣にある .qedspec を読みます。Spec.lean をソースとして扱わないでください。これは生成されます。

ステップ 2. スペックを検証します。

$QEDGEN check --spec program.qedspec --coverage
$QEDGEN check --spec program.qedspec --json

codegen または証明作業を開始する前に、.qedspec 内の lint、カバレッジ、インポート、ライフサイクル、計算、および CPI 形状の検出結果を修正します。スペックは、codegen または証明作業が始まる前に意図された動作を記述する必要があります。

ステップ 3. 生成成果物をスカッフォルドします。

$QEDGEN codegen --spec program.qedspec --target anchor --all

Quasar の場合は --target quasar を使用します。Pinocchio は予約済みで、完全なものとして約束すべきではありません。

ステップ 4. 生成された Rust を記入します。

todo!() を含む生成されたハンドラーファイルを開きます。ガード呼び出し、状態構造体、およびスペック効果を契約として使用してビジネスロジックを記入します。その後、フレームワークビルドとテストを実行して、コンパイルクリーンになるまで:

cargo check --manifest-path programs/Cargo.toml
cargo test --manifest-path programs/Cargo.toml

ステップ 5. 生成されたバックエンドを検証します。

$QEDGEN verify --spec program.qedspec --proptest
$QEDGEN verify --spec program.qedspec --kani
$QEDGEN verify --spec program.qedspec --lean

プロジェクト内に存在する成果物に関連するバックエンドのみを実行してください。このリポジトリ内の生成例については、以下も実行してください:

$QEDGEN check --regen-drift

ブラウンフィールドのオンボーディング

既存の Anchor プログラムの場合:

$QEDGEN adapt --program programs/my_program --out program.qedspec

その後、.qedspec の TODO を記入し、それを検証して、ライブプログラムと相互チェックします:

$QEDGEN check --spec program.qedspec --anchor-project programs/my_program

スペックが各ハンドラーをカバーした後、ソース drift 属性にスタンプを押します:

$QEDGEN adapt --program programs/my_program --spec program.qedspec

発行された #[qed(verified, ...)] 属性を対応するハンドラー関数の上に貼り付けます。今後のハンドラーボディ、accounts-constraint、またはスペック編集は、属性が意図的にリフレッシュされるまでビルドに失敗します。

ハンドラーディスパッチが非標準の場合は、明示的なオーバーライドを使用します:

$QEDGEN adapt --program programs/my_program --handler deposit=processor::deposit

IDL のみのオンボーディングの場合:

$QEDGEN spec --idl target/idl/my_program.json

IDL スカッフォルドは形状のみです。セマンティック保証を表現できるようにするには、ソースレビューが必要です。

Codegen の所有権

生成され、常に再生成するのは安全です:

パス所有者注釈
Cargo.tomlQEDGenフレームワーク依存関係とマクロ依存関係
src/state.rsQEDGenアカウント/状態構造体とライフサイクルステータス
src/events.rsQEDGenイベント構造体
src/errors.rsQEDGenエラー列挙型と運用バリアント
src/guards.rsQEDGen要求、中止、ライフサイクル、PDA、およびトークン権限チェック
src/math.rsQEDGenヘルパー計算が必要な場合にのみ発行
src/instructions/mod.rsQEDGenモジュール宣言と Quasar 再エクスポート
tests/kani.rsQEDGenKani ハーネス
tests/proptest.rsQEDGenプロパティテストハーネス
src/tests.rsQEDGen要求時のユニットテスト
src/integration_tests.rsQEDGen要求時の統合テストスカッフォルド
formal_verification/Spec.leanQEDGen.qedspec から生成された Lean モデル

最初のスカッフォルド後のユーザー所有:

パス所有者注釈
src/lib.rsユーザーまたはエージェントクレート外壳はカスタムインポート/モジュールを取得できます
src/instructions/<handler>.rsユーザーまたはエージェントビジネスロジックと生成された TODO がここにあります
formal_verification/Proofs.leanユーザーまたはエージェント耐久性のある Lean 証明
既存プロジェクトテストユーザーまたはエージェント生成されたテストで置き換えないでください

生成されたサポートコードは、意図的なハンドラー TODO の周りでコンパイルする必要があります。サポートコードがコンパイルに失敗した場合は、ジェネレータまたは生成されたサポートを修正します。ハンドラービジネスロジックが欠落している場合は、ハンドラーを記入します。

証明のハンドオフ

テストとバウンド付きモデルチェックが不十分な場合のみ、証明エンジニアリングを使用します。

proptest を使用する場合:

  • スペック反復中の高速な反例。
  • ランダム化された状態遷移。
  • 安い回帰チェック。

Kani を使用する場合:

  • アクセス制御。
  • 計算安全性。
  • 保存と分離の不変式。
  • バウンド付き状態機械の特性。

Lean を使用する場合:

  • バウンド検索を超えたシンボリック推論が必要な DeFi 数学。
  • 広い計算支払能力引数。
  • 誘導的 sBPF バイトコード証明。
  • Kani/proptest が十分な信頼を与えられない証明義務。

日常的な sorry 記入には Leanstral を、より難しい長時間実行される証明検索には Aristotle を使用します。証明修復の前に references/proof-patterns.md を読み、sBPF については references/sbpf.md を参照してください。

Lean を編集した後は常に lake build を実行し、証明がコンパイルされた後は qedgen check を実行して、孤立した or 欠落した義務が報告されるようにしてください。

リファレンス

必要に応じてリファレンスを読み込みます。すべてのファイルを一括読み込みしないでください。

リファレンス使用場面
references/cli.md完全なコマンドとフラグの詳細
references/qedspec-dsl.mdDSL 構文とモデリングパターン
references/qedspec-imports.mdimportqed.tomlqed.lock--frozen、アップストリームチェック
references/qedspec-anchor.mdAnchor アダプターとブラウンフィールドカバレッジチェック
references/adversarial-probes.mdエージェント走査型の攻撃面チェックリスト
references/proof-patterns.mdLean 証明タクティクスと修復パターン
references/support-library.mdLean サポートライブラリの型と補題
references/sbpf.mdsBPF アセンブリ検証
references/kani-examples.mdスキルから移動された長い Kani ハーネス例
references/brownfield-testing.mdブラウンフィールドプロジェクトの既存テスト戦略
references/skill-operations.mdGit 衛生、学習キャプチャ、環境、およびエラー処理
references/release-history.mdスキルから移動されたバージョン機能履歴

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
QEDGen
リポジトリ
QEDGen/solana-skills
ライセンス
MIT
最終更新
2026/5/9

Source: https://github.com/QEDGen/solana-skills / ライセンス: MIT

本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: QEDGen · QEDGen/solana-skills · ライセンス: MIT