コンテンツにスキップ

プロファイル

--profile <name> は、producer 固有 / 様式的な指摘をどれだけ厳しく扱うかを 選びます。既定は spec です。

profile が組み替えるのは severity だけです。spec が要求する check を抑止する ことはありません — MUST 違反はどの profile でも報告されます(lenient では info として出るだけです)。

WACZ spec + wabac.js loader 互換。この profile で exit 0 になる archive は、 ReplayWeb.page で正しく replay できることが 期待されます(wabac.js 自体のバグを除く)。

「この archive は正しいか?」を問うときはこれを使います。

spec の上に BrowserHive の より厳しい producer 慣習を重ねます。たとえば indexes/index.cdxj は plain で置く、という慣習があるため、.idx とペアでも .cdxj.gz は許しません。

BrowserHive 生成の archive だと分かっていて、その house rule も守らせたいときに 使います。他の producer の出力に当てると、その archive が従うと約束していない 慣習まで指摘することになります。

BrowserHive はバージョンによって出力が変わります。@ で添えると、その バージョンで正しいと分かっている rule だけが走ります。

ターミナルウィンドウ
wacz-validator-validate --profile browserhive@2.1.0 archive.wacz

バージョンを添えなければ、バージョンに条件を持つ rule もすべて走ります (従来どおり)。

バージョンが合わずに走らせなかった rule は、JSON の skipped に残ります —— 黙って消しません。読者が「問題なし」と「見ていない」を区別できないと、報告が嘘に 近づくからです。

"skipped": [
{
"rule": "warc/recording-complete",
"reason": "profile-version",
"range": ">=1.11.0"
}
]

producer 固有 / 様式的な指摘をすべて info に降格させ、replay を壊す hard error だけを残します。

legacy な archive をトリアージするとき、つまり「正しいか?」ではなく 「救えるか?」を問うときに使います。

Rules の表に profile 上書き列があり、どの rule が 何に組み替えられるかが正確に出ています。空欄の rule は 3 つの profile すべてで 同じ挙動です。

この列は各 rule の applicability 宣言から生成しているので、要約ではなく 一次情報です。

profile が exit code に影響するのは severity 経由だけです。何を failure と 数えるかは変わりませんが、info に降格した rule は failure に寄与しなくなります。 report から exit code への変換は @wacz-validator/protocol の exitCodeFor にあり、 CLI と TUI が共有しているので両者がずれることはありません。