📖 前提知識(共通)
SPECA は「仕様書 → 形式的なセキュリティプロパティ → 実装コードの監査」を自動化するパイプライン。フェーズは 01a(仕様収集) → 01b(サブグラフ抽出) → 01e(プロパティ生成) → 02c(コード位置解決) → 03(証明ベース監査) → 04(誤検知フィルタ)。エントリポイントは scripts/run_phase.py。
M2 の全体像(#86)= 3トラック × 4フェーズ。トラックは「どの Lean を起点に 01e を作るか」で分ける:
各トラック共通のフェーズ: ①Lean形式化 → ②01e作成 → ③全クライアント監査 → ④Kurtosis再現 → 統合レポート(2-C)。
関係リポジトリ:
セットアップ(NyxFoundation/speca): uv sync / npm i -g @anthropic-ai/claude-code / bash scripts/setup_mcp.sh。詳細は CLAUDE.md。
🎯 Goal
gasper(コンセンサス層)の proved Lean 定理を背骨に、実装即応で汎用な gasper 01e チェックリストを作り、品質評価をパスさせて凍結する。これがトラック a の監査(a-3 #148)への入力になる。
📍 このタスクの位置づけ
トラック a / フェーズ②。①(gasper-lean4 の Lean 形式化)は完了済み。ここでその定理群を「監査者がコードにそのまま当てられるチェックリスト」に落とす。eval は recall(既知バグの再現率)ではなく、LLM-as-judge による品質評価であることに注意(内容一致ではなく "同等品質" を測る)。
🛠 作業場所
📋 手順
- 現状の第1ドラフト CHK-15 を起点にする(既に judge バー到達: CHK-15=4.04 / solodit=2.50)。
- 別系統モデル(例: GPT 系)で judge を再実行し、CHK-15 と solodit の相対順位が保たれるか確認する(自己選好バイアスの検証。現状は Claude が Claude 生成物を採点しているため)。
- improve ループを実 LLM で1回完走させる。現状 sonnet/opus とも improve プロンプトが cyber safeguard に refuse される → self-hosted dispatch 経由、または refuse されないプロンプト設計に組み直す。
- バー到達が別系統でも確認できたら、gasper 01e を確定版として凍結する。
📦 成果物
- 何を: 品質バーを(別系統込みで)超えた gasper 01e チェックリスト
- どこに:
emit-01e --property-provider lean で NyxFoundation/speca の outputs/01e_PARTIAL_*.json として再現可能に emit。CHK-* は theorem_map.json が正本
- 形式: 01e スキーマ準拠の properties(
lean_status, assertion, text 等)
✅ 完了条件
⚙️ 制約
🔗 参考
📖 前提知識(共通)
SPECA は「仕様書 → 形式的なセキュリティプロパティ → 実装コードの監査」を自動化するパイプライン。フェーズは
01a(仕様収集) → 01b(サブグラフ抽出) → 01e(プロパティ生成) → 02c(コード位置解決) → 03(証明ベース監査) → 04(誤検知フィルタ)。エントリポイントはscripts/run_phase.py。M2 の全体像(#86)= 3トラック × 4フェーズ。トラックは「どの Lean を起点に 01e を作るか」で分ける:
NyxFoundation/ethereum-vuln-datasetの critical/high 実バグ起点)各トラック共通のフェーズ: ①Lean形式化 → ②01e作成 → ③全クライアント監査 → ④Kurtosis再現 → 統合レポート(2-C)。
関係リポジトリ:
NyxFoundation/specauv。worker は Claude Code CLINyxFoundation/speca-lean4-pluginNyxFoundation/ethereum-vuln-datasetNyxFoundation/kurtosis-harnessセットアップ(
NyxFoundation/speca):uv sync/npm i -g @anthropic-ai/claude-code/bash scripts/setup_mcp.sh。詳細はCLAUDE.md。🎯 Goal
gasper(コンセンサス層)の proved Lean 定理を背骨に、実装即応で汎用な gasper 01e チェックリストを作り、品質評価をパスさせて凍結する。これがトラック a の監査(a-3 #148)への入力になる。
📍 このタスクの位置づけ
トラック a / フェーズ②。①(gasper-lean4 の Lean 形式化)は完了済み。ここでその定理群を「監査者がコードにそのまま当てられるチェックリスト」に落とす。eval は recall(既知バグの再現率)ではなく、LLM-as-judge による品質評価であることに注意(内容一致ではなく "同等品質" を測る)。
🛠 作業場所
NyxFoundation/speca-lean4-pluginsrc/speca_lean4/judge.py(判定/改善ハーネス)、theorem_map.json(CHK-* エントリ)、data/solodit_checklist.csv(参照バー)、data/ethereum_vulns.csv(improve 教材)NyxFoundation/speca側):uv run python3 scripts/run_phase.py --phase 01e --property-provider lean📋 手順
📦 成果物
emit-01e --property-provider leanでNyxFoundation/specaのoutputs/01e_PARTIAL_*.jsonとして再現可能に emit。CHK-* はtheorem_map.jsonが正本lean_status,assertion,text等)✅ 完了条件
⚙️ 制約
🔗 参考
CLAUDE.md