コンテンツにスキップ

バリデータ

AIMOバリデータは、Evidence Packおよび関連アーティファクトがAIMO Standardスキーマと要件に準拠していることを確認します。

関連:人による監督プロトコル — 機械チェックと人の判断の責任境界。

バリデータが検証する対象(必須ファイルセット)

バリデータは Evidence Bundle の構造と関連アーティファクトを検証します。最小限の提出には以下が必要です。

アーティファクト 目的 正規の場所(リリースごと)
Evidence Pack マニフェスト ルートマニフェスト(root.json 等) スキーマ: evidence_pack_manifest.schema.json;リリース ZIP: schemas/jsonschema/
Dictionary マニフェストで使用する taxonomy コード Evidence Bundle 構造;Dictionary 仕様
Minimum Evidence Requirements 監査人・実装者向けチェックリスト Minimum Evidence Requirements

バリデータは法的・規制上の適合を保証しません。構造がスキーマとコード体系に準拠しているかを検証します。含める証跡のチェックリストは Minimum Evidence Requirements を参照してください。

特定バージョンの正規 URL:準拠するバージョン(例:v0.0.3)の GitHub Release からスキーマとバリデータを取得してください。リリース ZIP(aimo-standard-artifacts.zip)には schemas/jsonschema/、テンプレート、バリデータルールが含まれます。

実運用でのValidator

30秒クイックスタート(インストール、実行、出力の解釈)は Validator ハブ を参照。

バリデータMVP要件

最小限のバリデータは以下のチェックを実行する必要があります:

1. 必須フィールドバリデーション

すべての必須フィールドが存在することを確認:

アーティファクト 必須フィールド
Evidence Packマニフェスト pack_id, pack_version, taxonomy_version, created_date, last_updated, codes, evidence_files
Codesオブジェクト FS, UC, DT, CH, IM, RS, EV(OBは任意)
Evidence Fileエントリ file_id(EP-01..EP-07), filename, title(ev_type / ev_codes は任意)

2. 次元コードバリデーション

各必須次元に少なくとも1つのコードがあることを確認:

次元 要件
FS(機能スコープ) 正確に1つのコード
UC(ユースケース分類) 少なくとも1つのコード
DT(データ種別) 少なくとも1つのコード
CH(チャネル) 少なくとも1つのコード
IM(統合形態) 正確に1つのコード
RS(リスク面) 少なくとも1つのコード
OB(成果) 任意(0個以上)
LG(ログ/記録種別) 少なくとも1つのコード

3. 辞書存在チェック

すべてのコードがタクソノミー辞書に存在することを検証:

  • 指定されたtaxonomy_versionのタクソノミー辞書をロード
  • マニフェスト内の各コードが辞書に存在することを確認
  • 無効なコードを次元と値と共に報告

4. コードフォーマットバリデーション

すべてのコードが期待されるフォーマットに一致することを確認:

^(FS|UC|DT|CH|IM|RS|OB|LG)-\d{3}$

5. スキーマバリデーション

JSON Schemaに対してバリデーション:

スキーマ 目的
evidence_pack_manifest.schema.json Evidence Packマニフェスト
taxonomy_pack.schema.json タクソノミーパック定義
changelog.schema.json 変更履歴エントリ

バリデーションルール

ルール:必須次元

rule_id: required_dimensions
description: すべての必須次元に少なくとも1つのコードが必要
severity: error
check: |
  - FS: 正確に1つ
  - UC: 少なくとも1つ
  - DT: 少なくとも1つ
  - CH: 少なくとも1つ
  - IM: 正確に1つ
  - RS: 少なくとも1つ
  - LG: 少なくとも1つ

ルール:有効なコード

rule_id: valid_codes
description: すべてのコードがタクソノミー辞書に存在する必要がある
severity: error
check: |
  manifest.codes内の各コードについて:
    - 指定されたtaxonomy_versionの辞書にコードが存在する
    - コードステータスが'active'('deprecated'の場合は警告)

ルール:コードフォーマット

rule_id: code_format
description: すべてのコードが標準フォーマットに一致する必要がある
severity: error
pattern: "^(FS|UC|DT|CH|IM|RS|OB|LG)-\\d{3}$"

ルール:バージョンフォーマット

rule_id: version_format
description: バージョンは有効なSemVerである必要がある
severity: error
pattern: "^\\d+\\.\\d+\\.\\d+$"
fields:
  - pack_version
  - taxonomy_version

エラー出力フォーマット

バリデーションエラーは以下のフォーマットで報告されます:

<path>: <severity>: <message>

例:

codes.FS: error: 必須次元'FS'にコードがありません
codes.UC[0]: error: コード'UC-999'は辞書v0.1.0に存在しません
pack_version: error: 無効なバージョンフォーマット'v1.0'(SemVer形式が必要)
codes.RS[1]: warning: コード'RS-002'はv0.2.0で非推奨です

バリデータがチェックしないこと

バリデータは構造的な適合性に焦点を当て、コンテンツ品質はチェックしません:

側面 理由
コンテンツの正確性 バリデータは構造をチェックし、意味はチェックしない
証跡の完全性 テンプレートはガイドであり、強制フォーマットではない
相互参照の解決 ファイル存在は検証されない
タイムスタンプの有効性 ISO-8601は厳密にバリデーションされない
IDの一意性 現在は強制されていない
完全性ハッシュ 採用者の責任

リファレンス実装

Pythonでのリファレンス実装が提供されています:

validator/src/validate.py

使用方法

python validator/src/validate.py <manifest.json>

出力例

Validating: evidence_pack_manifest.json
Taxonomy version: 0.1.0

Checking required dimensions...
  FS: OK (1 code)
  UC: OK (3 codes)
  DT: OK (1 code)
  CH: OK (1 code)
  IM: OK (1 code)
  RS: OK (3 codes)
  OB: OK (2 codes)
  LG: OK (7 codes)

Checking code validity...
  All codes valid.

Validation: PASSED

バージョニングポリシー

バリデータルールはSemVerに従います:

  • MAJOR: 破壊的なルール変更(既存の有効なパックを失敗させる新しい必須チェック)
  • MINOR: 新しい任意チェック、警告、または情報メッセージ
  • PATCH: バリデーション結果を変更しないバグ修正

スキーマ参照

スキーマ 場所
Evidence Packマニフェスト source_pack/04_evidence_pack/schemas/evidence_pack_manifest.schema.json
タクソノミーパック source_pack/03_taxonomy/schemas/taxonomy_pack.schema.json
変更履歴 source_pack/03_taxonomy/schemas/changelog.schema.json

参照