{
 "article": "IDAEO-BLOG-2026-001",
 "version": "v2.2",
 "as_of": "2026-07-12",
 "article_url": "https://km.idaeo.ai/ai/visibility-lesson-1",
 "public_claims_sha256": "01851c145fc936460f5b7b222d456ab67b9f6828bcb7f5af4c49b14b7ca09dbc",
 "canonical_bytes": 127574,
 "canonicalization": "UTF-8；JSON key 字典序（code point）；separators (,,:)；無多餘空白；來源文件不得含重複 key（本承諾之來源檔以 JSON 物件唯一 key 產生）；數值以原字串保存不做數學正規化。⚠️ 已知不完備：本規格未固定 Unicode 正規化形式（NFC/NFD），亦非 RFC 8785/JCS 完整 profile；跨 runtime 複驗若遇差異，以本檔 canonical_bytes 與 canonical-<version>.bin 的實際位元組為準。",
 "coverage": {
  "claim_count": 103,
  "distribution": {
   "dataset_backed": 36,
   "text_backed": 66,
   "self_reported": 1
  },
  "modality_distribution": {
   "estimate": 11,
   "assertion": 72,
   "not_applicable": 6,
   "lower_bound": 14
  },
  "scope": "已發布正文與 FAQ 的全部數值宣稱（v1 僅 11 條核心宣稱）",
  "note": "筆數與 value/context 與 v2.1 完全相同（實測 0 筆被改）；v2.2 只新增語意欄位。"
 },
 "evidence_status": {
  "artifact_integrity": "verified（本檔 digest 可自行重算）",
  "external_timestamp": "verified — RFC3161 TSA (freetsa.org), timestamp Jul 30 04:08:48 2026 GMT, serial 0x0699E8C9；以 openssl ts -verify 可自行複驗（綁 canonical-v2.2.bin 的位元組）",
  "source_truth": "not_independently_attested（原始事件真偽需 source-system 稽核，非 hash 可證）",
  "aggregate_reproduction": "not-yet-independently-attested（待第三方 clean-room 複算）",
  "semantic_join_safety": "claims 具 subject/predicate/object/unit/time_window 語意鍵；not_joinable_by_value_alone=true。禁止只用數值字串把圖表數值 join 到本清單——2026-07-30 血證：那樣做會產生 43.9% 假連結。"
 },
 "how_to_verify": [
  "1. 下載 https://km.idaeo.ai/evidence/lesson-1/public-claims-v2.2.json",
  "2. 以 canonicalization 規格正規化（UTF-8／key 字典序／separators (',',':')／無多餘空白）",
  "3. 計算 SHA-256，與本檔 public_claims_sha256 比對",
  "4. RFC3161 時戳複驗（用本版位元組 canonical-v2.2.bin）：\n   openssl ts -verify -data canonical-v2.2.bin -in public-claims-v2.2.tsr -CAfile ../tsa-ca.pem -untrusted ../tsa.crt",
  "5. 若皆相同：代表這批公開數字在時戳時點即已存在且未被事後竄改（artifact integrity，不等於 source truth）"
 ],
 "what_this_does_not_prove": [
  "不證明原始事件未漏收或未偽造（需 source-system 稽核）",
  "不證明可外推全網或存在因果",
  "不證明服務成效",
  "self_reported 等級的宣稱不受任何外部資產佐證，只受本承諾保護其未被事後竄改",
  "語意欄位（subject/predicate/modality/causal/generalizability）是對已蓋章 context 的結構化轉寫，不是新的外部佐證；轉寫可能有誤，以 context 原文為準"
 ],
 "method_url": "https://km.idaeo.ai/evidence/lesson-1/method.md",
 "dataset_url": "https://km.idaeo.ai/evidence/lesson-1/dataset.json",
 "timestamp_url": "https://km.idaeo.ai/evidence/lesson-1/public-claims-v2.2.tsr",
 "timestamp_ca_url": "https://km.idaeo.ai/evidence/tsa-ca.pem",
 "timestamp": {
  "authority": "freetsa.org",
  "policy_oid": "1.2.3.4.1",
  "hash_algorithm": "sha256",
  "time": "Jul 30 04:08:48 2026 GMT",
  "serial": "0x0699E8C9",
  "verify_command": "openssl ts -verify -data canonical-v2.2.bin -in public-claims-v2.2.tsr -CAfile ../tsa-ca.pem -untrusted ../tsa.crt"
 },
 "canonical_bytes_url": "https://km.idaeo.ai/evidence/lesson-1/canonical-v2.2.bin",
 "supersedes": {
  "version": "v2.1",
  "previous_sha256": "f97c8b4e17ed092c88b8bb40397da89649bf4d6e1d0dcc63e089ce11f980eaa9",
  "note": "v2 與 v2.1 的檔案與其時戳一律保持原樣不改，仍可各自取得並各自複驗；每一版的 how_to_verify 都綁自己那版的 canonical-<version>.bin（版本綁定，不用泛用檔名）。",
  "changed": [
   "每筆 claim 新增語意欄位：subject / predicate / object / operator / time_window / instrument / denominator",
   "新增 modality（assertion／lower_bound／estimate／not_applicable）—— 「至少 277 位」屬 lower_bound",
   "新增 causal（多數 false，附 causal_caveat 原文）與 generalizability（single_site）",
   "新增 verification_status（dataset_backed／text_backed／self_reported）",
   "新增 join_keys 與 not_joinable_by_value_alone=true（防下游再用數值字串 join）",
   "value 與 context 一字未改（實測 0 筆變動）"
  ]
 },
 "filename_policy": "canonical-<version>.bin 為版本綁定正本；canonical.bin 僅為「當前版」別名，跨版驗證一律使用版本綁定檔名。",
 "known_spec_gaps": [
  "未指定 Unicode 正規化形式；本專案來源檔為 NFC，實測 NFC/NFD 於本內容產生相同位元組，但規格本身不足以在所有內容上唯一決定",
  "未採 RFC 8785 (JCS) 完整 profile；未明文拒絕 duplicate key／NaN／Infinity（來源產製端保證不出現）",
  "承諾涵蓋數值宣稱清單，不涵蓋文章 HTML 全文、圖表 SVG 與方法書之 hash"
 ]
}