スキルリファレンス
Formal Agent Contractsプラグイン全15スキルの完全リファレンス。フォワードパイプライン(定義→検証→証明→生成→テスト+インポート/エクスポート)に加え、リバースパイプライン(既存コードから仕様をあぶり出す)も利用可能。
概要
| スキル | 目的 | バージョン | 必須 |
|---|---|---|---|
define-contract | 自然言語 → VDM-SL仕様 | v2.0.0 | — |
verify-spec | 構文/型チェック + PO生成 | v2.0.0 | VDMJ |
smt-verify | PO → SMT-LIB → Z3証明 | v0.2.0 | Z3 |
generate-code | VDM-SL → TypeScript/Python | v0.4.0 | — |
generate-tests | VDM-SL + 設計文書 → 契約テスト | v2.1.0 | Node.js + Vitest/Jest |
generate-db-schema | VDM-SLの型・不変条件 → DBスキーマ(DDL) | v2.1.0 | sqlite3 / PostgreSQL(任意) |
route-models | 契約の複雑度 → モジュール別モデル層 | v1.0.0 | — |
integrated-workflow | 完全パイプラインの統合実行 | v2.1.0 | VDMJ(Z3はオプション) |
formal-methods-guide | VDM-SLリファレンス知識 | v0.1.0 | — |
import-natural-spec | Markdown仕様 → VDM-SL(対話的) | v1.0.0 | — |
export-human-spec | VDM-SL → 人間が読めるMarkdown | v1.0.0 | — |
define-contract
v2.0.0自然言語の要件を、ガイド付き対話を通じてVDM-SL形式仕様とPhase 2設計文書(PROTOCOL.md、API-SIGNATURES.md)に変換します。
トリガーフレーズ:
ワークフロー:
- エージェント情報の収集 — 名前、役割、入力、出力、関係性
- 型定義の生成 — 自然言語をVDM-SL型に変換
- 操作と契約の定義 — 質問を通じてpre/post/invを獲得
- VDM-SL仕様の生成 — 全定義を含む完全なモジュール
- レビューと反復 — ユーザー確認のため仕様を提示
出力:
.vdmsl 仕様ファイル + 設計文書(PROTOCOL.md、API-SIGNATURES.md)組み込みテンプレート:
- 変換エージェント — ステートレスな入出力変換
- CRUDエージェント — 状態を持つ作成・読取・更新・削除
- パイプラインエージェント — 逐次的なデータ処理ステージ
- メディエーターエージェント — 複数サブエージェントの統合
- バリデーションエージェント — 入力検証とサニタイズ
- 設計文書テンプレート(v2.0.0) — Phase 2プロトコル・API設計文書
- ハイブリッド判定エージェント(v2.0.0) — スコアベースの複合判定
verify-spec
v2.0.0VDM-SLファイルに対してVDMJの構文チェック、型チェック、証明責務(PO)生成を実行し、結果を平易な言語で説明します。設計文書(PROTOCOL.md、API-SIGNATURES.md)の完全性と仕様との一貫性チェックも実行します。
トリガーフレーズ:
ワークフロー:
- VDM-SLファイルの探索 — ワークスペース内の.vdmslファイルを検索
- 構文・型チェック — VDMJによるエラー報告
- 証明責務の生成 — VDMJ -pフラグで実行
- 解釈と説明 — 各POを平易な言語に翻訳
- POの分類 — 緊急度別にランク付け(重大/標準/情報)
- 次のステップを提案 — SMT検証への進行を提示
出力:
PO一覧(自然言語説明付き、緊急度別分類)smt-verify
v0.2.0証明責務をSMT-LIB形式に変換し、Z3ソルバーで証明します。結果は証明済み・反例あり・不明のいずれかで報告されます。
トリガーフレーズ:
ワークフロー:
- POの受け付け — verify-specの出力または直接入力から
- 型宣言の生成 — VDM-SL型をSMT-LIBソートに変換
- 補助定義の生成 — 不変条件、pre/postをdefine-funとして定義
- PO式の変換 — VDM-SLの論理式をSMT-LIBに変換
- 否定してcheck-sat — assert(not PO)で反射的検証
- Z3の実行 — 各.smt2ファイルにソルバーを実行
- 結果の解釈 — unsat=証明済み, sat=反例あり, unknown=タイムアウト
出力:
.smt2ファイルとPO別検証レポートgenerate-code
v0.4.0VDM-SL仕様からTypeScriptまたはPythonの実装スキャフォールドを生成します。事前条件・事後条件・不変条件のランタイム契約チェック付き。
トリガーフレーズ:
ワークフロー:
- VDM-SLファイルの読み込み — 仕様をパース
- 対象言語の確認 — TypeScript、Python、または両方
- 型の変換 — VDM-SL型を対象言語の型に変換
- 型定義の生成 — 不変条件付きのinterface/dataclass
- 契約コードの生成 — pre/post/invのバリデーション関数
- 操作スタブの生成 — 契約ラッパー付きの関数スキャフォールド
- ファイル出力 — generated/ディレクトリに保存
出力:
TypeScript (.ts) または Python (.py) ファイル(ランタイム契約付き)generate-tests
v2.1.0VDM-SL仕様と設計文書(PROTOCOL.md、API-SIGNATURES.md)からJest/Vitest互換の契約テストを自動生成します。型不変式・事前/事後条件・状態遷移・境界値をカバー。
トリガーフレーズ:
ワークフロー:
- VDM-SL仕様と設計文書の読み込み — 不変式、契約、プロトコル規則をカタログ化
- 型不変式テストの生成
- 事前/事後条件テストの生成
- 設計文書からプロトコルテストを生成: メッセージ型・ペイロード整合性と状態遷移(PROTOCOL.md)、APIシグネチャ(API-SIGNATURES.md)
- 境界値テストの生成
- テストファイルの出力 — Jest/Vitest互換
出力:
Jest/Vitest契約テストファイルgenerate-db-schema
v2.1.0VDM-SLの型・不変条件から、番号付きの写像規則(R1〜R18)でDBスキーマ(DDL)を導出します。自由作文ではなく規則の適用。忠実に写せない箇所は DEVIATIONS(retrenchment表、例:nat→BIGINT、遷移規則)に記録し、各不変条件の担保箇所を TRACEABILITY 対照表に写します。
トリガーフレーズ:
ワークフロー:
- 仕様の解析 — 永続化対象を特定:record型、quote型、state定義、不変条件、atomic操作
- 対象DBMS(PostgreSQL/MySQL/SQLite)と命名規約の確認
- 写像規則 R1〜R18 の適用:record→テーブル、map state→キー付きテーブル、quote型→ENUM/CHECK、不変条件→CHECK/UNIQUE/FK/トリガー、atomic→トランザクション境界
- DEVIATIONS.md(retrenchment表)の生成 — 各乖離に具体的な補償手段(トリガー / アプリ層契約チェック / 契約テスト)を割り当て
- TRACEABILITY.md の生成 — 全不変条件・操作契約を担保箇所に対応付け。担保箇所なしは許容しない
- DDLの検証(SQLite/psql/Dockerでの実行確認)と網羅性チェック
出力:
schema.sql(DDL)+ DEVIATIONS.md + TRACEABILITY.mdroute-models
v1.0.0VDM-SL契約の客観的な複雑度シグナル(陰仕様・不変条件・限量子・再帰・モジュール間依存・PO件数)からモジュールごとにスコアを算出し、最適なモデル層(light / standard / heavy)を割り振る。機械可読な model-routing.json と根拠つきの MODEL-ROUTING.md を生成し、generate-code / generate-tests がモジュール単位のサブエージェント実行で参照する。検証に2回失敗したモジュールは自動で1層エスカレーションし、品質は検証ゲートが保証する。
トリガーフレーズ:
ワークフロー:
- 仕様を読み込み、module 単位に分割
- モジュールごとに複雑度シグナルを収集(verify-spec の PO レポートがあれば併用)
- スコアリング規則で層を割り当て(型定義のみ→light、陰仕様あり→light 禁止のファストパス付き)
- 提案テーブルをユーザーに提示し、行単位の上書きを受け付け
- model-routing.json(仕様の隣)と MODEL-ROUTING.md を出力
出力:
model-routing.json(層→モデル対応つき・機械可読) + MODEL-ROUTING.md(根拠・削減見込み)integrated-workflow
v2.1.0完全なパイプライン(定義→検証→証明→生成→テスト)を単一のガイド付きセッションで実行します。エラー回復とセッションレポート付き。
トリガーフレーズ:
ワークフロー:
- セッション設定 — エージェント名、開始点、対象言語、SMTの有無
- Phase 1: 定義 — define-contractでVDM-SL生成
- Phase 2: 検証 — verify-specで構文/型/POチェック
- Phase 3: 証明(オプション) — smt-verifyでZ3証明
- Phase 4: 生成 — generate-codeでTS/Pythonスキャフォールド
- Phase 5: テスト — generate-testsで契約テストを生成・実行
- セッションレポート — 全フェーズの包括的サマリー
出力:
完全なエージェント: .vdmsl + 生成コード + テスト + セッションレポートformal-methods-guide
v0.1.0VDM-SLの構文、型システム、全38種類の証明責務に関するリファレンス知識を提供します。他のスキルの背景知識として機能します。
トリガーフレーズ:
ワークフロー:
- 概念の特定 — ユーザーの質問をリファレンス資料に照合
- 説明の提供 — VDM-SLの例付きで平易な言語で解説
- 文脈へのリンク — ユーザーの現在の仕様と関連付け
出力:
コード例付きの平易な説明import-natural-spec
v1.0.0Markdown要件文書を読み込み、対話的にVDM-SLに変換します。曖昧性(曖昧な数量詞、欠落したエラーケース、暗黙の制約、境界条件)を検出し、構造化された対話で解消します。
トリガーフレーズ:
ワークフロー:
- MD文書の読み込みとパース — 構造、見出し、リスト、テーブルを識別
- 要件の分類 — 各項目を型、制約、操作、ルールに分類
- 曖昧性の検出 — 曖昧な数量詞、未定義の用語、欠落したエラーケース、境界条件
- 対話的解消 — 優先度順に曖昧性を提示し、対話で解決
- VDM-SLの生成 — [REQ-nnn]トレーサビリティ付きタグ付き仕様を生成
- ギャップ分析 — 前方/後方/完全性チェック
- パイプラインへの接続 — 次のステップとしてverify-specまたはrefine-specを推奨
出力:
要件トレーサビリティ付き .vdmsl 仕様ファイルexport-human-spec
v1.0.0VDM-SLから構造化された自然言語仕様書(Markdown)を生成します。型は「何が存在するか」に、事前条件は「前提条件」に、事後条件は「保証」に変換されます。ドメインエキスパートや非技術者向けに設計されています。
トリガーフレーズ:
ワークフロー:
- VDM-SL仕様の読み込み — 型、状態、操作、不変条件をカタログ化
- 出力設定の確認 — 対象読者、言語、形式、詳細度
- 各構造の翻訳 — 型→定義、pre→前提条件、post→保証
- 文書の構造化 — 概要、用語集、データモデル、操作、ビジネスルール
- 品質チェック — 完全性、忠実性、可読性、一貫性
- 保存と提示 — Markdownとして出力、次のステップを提案
出力:
構造化されたMarkdown仕様書リバースパイプライン
NEW既存コードベースから仕様をあぶり出す逆方向のパイプライン。reverse-workflowスキルが統合実行:
既存コード → 仮仕様抽出 → 対話的磨き上げ → コード照合・修正 → (フォワードパイプラインに接続可能)| スキル | バージョン | 目的 |
|---|---|---|
extract-spec | v1.1.0 | 既存コードから仮のVDM-SL仕様を抽出。[PROVISIONAL]タグ付きで、対話の叩き台として提示 |
refine-spec | v1.2.0 | 仮仕様を叩き台にユーザーと対話し、真の仕様をあぶり出す。差異を「発見事項(Finding)」として記録 |
reconcile-code | v1.3.0 | 確定仕様と既存コードを項目ごとに照合。差分レポート・コード修正案・テスト自動生成 |
reverse-workflow | v1.4.0 | 抽出→磨き上げ→照合の全パイプラインを統合実行。フォワードパイプラインとの接続も可能 |
スキルパイプライン
スキルは独立して使用可能ですが、一緒にチェーンするよう設計。integrated-workflowスキルがこのパイプラインを自動化: v2.0.0新機能: Phase 2設計文書(PROTOCOL.md / API-SIGNATURES.md)の生成と、generate-testsによる契約テスト自動生成。