02. Signed Prompt Governance Spec
1. Purpose
署名済みプロンプトのみを実行可能にする Fail-Closed 統治契約を定義する。 本スペックは、ガバナンス判断の決定論性を担保し、AI による自己承認(幻覚承認)を構造的に防止することを目的とする。
2. Scope
IPromptRepositoryIPromptVerifierIPromptSignatureProviderISignatureTrustStoreIPromptValidator
3. Normative Requirements
3.1 Deterministic PDP Requirement(決定論的 PDP 要件)
SGS-PDP-001Policy Decision Point(PDP)は決定論的なコード(アルゴリズム)のみで実装しなければならない(MUST)。SGS-PDP-002ガバナンス判断(Allow / Deny / Indeterminate)に LLM 推論を直接的・間接的に関与させてはならない(MUST NOT)。SGS-PDP-003LLM による承認文生成や承認理由の補完を判定根拠として用いてはならない(MUST NOT)。
3.2 一般要件
SGS-001署名欠落アーティファクトは拒否しなければならない(MUST)。SGS-002IPromptVerifierはハッシュ整合性を検証しなければならない(MUST)。SGS-003ISignatureTrustStoreは署名者信頼/失効を判定しなければならない(MUST)。SGS-004IPromptValidatorは有効期限とスコープを検証しなければならない(MUST)。SGS-005署名対象の正規化(Canonical Signing Payload): ROM のentity.id、version、policy、本文(Prompt Body)を正規化した意味的スナップショットに対して署名しなければならない(MUST)。SGS-006信頼連鎖の検証(Validation of Trust Chain):ISignatureTrustStoreは署名鍵が正当 issuer により承認され、実行時点で失効していないことを証明しなければならない(MUST)。SGS-007実行スコープの動的束縛(Dynamic Scope Binding):IPromptValidatorはallowed_tools、max_token_budget、scopesが実行直前コンテキスト(権限/予算)内にあることを検証しなければならない(MUST)。
4. Fail-Closed
SGS-F000Non-Deterministic Governance Rejection: PDP 判定経路に非決定論的要素(LLM 呼び出し等)が含まれる場合は、即時Denyとしなければならない(MUST)。SGS-F001判定不能(Indeterminate)はDenyとする。SGS-F002検証基盤障害時は実行停止する。SGS-F003フォールバック実行モードを禁止する。SGS-F004Temporal Integrity Violation:created_atが未来時刻、またはexpires_at超過時は即時ロード拒否する。SGS-F005Trusted Anchor Unreachability:ISignatureTrustStore到達不能(タイムアウト/通信障害)時はIndeterminate(実質Deny)として実行遮断する。
5. Anti-Pattern: Hallucinated Approval(幻覚承認)
定義: LLM が生成した文面や推論ステップを、システムが正当な承認判定として誤って採用すること。
扱い: 禁止アンチパターン。
処置: PDP 実装において推論の介在を検出した場合、監査イベント GovernanceViolation.HallucinatedApproval を発行し、実行を強制遮断しなければならない。
6. Acceptance Criteria
- AC1: 未署名で実行不可。
- AC2: ガバナンスロジックに LLM を組み込んだ実装は、テストフェーズで拒否される。
- AC3: 正常署名+正当スコープでのみ実行可能。
- AC4: TrustStore 到達不能時は常に
Denyとなる安全側に倒れる設計であること。
7. Artifact Anatomy(ROM/YAML 構造)
署名済みプロンプトは以下形式で IPromptRepository に保存される。
---\n# Identity & Logic\nid: "logic.analyser.core"\nversion: "2.1.0"\ntype: "kernel.signed_prompt"\n\n# Policy & Constraints\npolicy:\n trust_level_required: 0.9\n allowed_providers: ["[[provider.secure_llm]]"]\n scopes: ["read:financial_data", "write:audit_log"]\n\n# Governance & Signature\ngovernance:\n issuer: "ai-kernel@tkysoftware.xsrv.jp"\n signer_id: "gov-officer-01"\n hash_alg: "SHA256"\n hash: "sha256:7f8e9a1b..."\n signature: "MEYCIQ... (ECDSA/RSA Signature)"\n---\n# Prompt Body (ROM Format)\n## Task: Analyze Financial Statements\n* [constraint]: Do not disclose PII.\n* [reference]: [[material.latest_report]]
8. Governance Workflow(統治シーケンス)
IPromptVerifier は次の手順で正当性を判定する。
- Format Validation
- Integrity Check
- Signature Authentication
- Trust Resolution
- Policy Authorization
- Unfreezing
YAML 必須項目(id, hash, signature)の存在を確認する。
ROM 本文を正準化(Canonicalization)し、ハッシュ整合性を検証する。
IPromptSignatureProvider で署名が正当秘密鍵由来か検証する。
ISignatureTrustStore で signer_id 信頼状態と鍵失効状態を確認する。
決定論的 PDP により、policy が現行実行制約(予算等)内か検証する。
すべて通過時のみ Orchestration バッファへ展開し実行許可する。
変更履歴
- v0.0.0 / v0.0.0.0: 初期ドラフト
- v0.0.1 (2026-05-06): ドキュメント規約に基づくバージョン更新
Source:
specs/02.SIGNED_PROMPT_GOVERNANCE_SPEC-jp.md