Omoi Documentation

Omoi Documentation / 検証と公開

検証と公開

質問JSON、表示ロジック、ブラウザ操作、公式カタログの同期を別々に確認してから公開します。

質問データの自動検証

node tools/verify-question-dataset.mjs --enforce-quality-targets

検証スクリプトは4つのJSONを一つのデータセットとして読み、構造・重複・管理値・品質目標を確認します。

JSON構文、配列ルート、カードオブジェクト
ID空文字禁止、全Levelで一意
問題文NFKC・空白・疑問符を正規化した完全重複を検出
Level1〜4の整数、配置ファイルとの一致
カテゴリ12の管理された上位分類だけを許可
topic全カードで空でない文字列
detailLevel 3・4でdetail.text必須
視点Level 3・4で4つのperspectiveだけを許可
role存在する場合は空でない文字列
警告10のcontent_warning管理値、空配列・重複・未知値を禁止
出典title、HTTP(S) URL、配列構造
品質目標Level 2が80件以上、Level 4のaffected・actor・decision_makerが各20%以上

現在の検証基準

レコード643件
構造エラー0件
出典未接続警告398件。detail.textはあるがdetail.sourcesがないカード
扱い警告を質問削除の理由にせず、事実主張の確認対象として記録

エラー0件は、質問内容の完全な中立性や事実の正確さを保証しません。構文検査と編集レビューは別の作業です。

JavaScriptと静的サイト

node --check select.js
node --check question.js
node --check finish.js
node --check warning.js

Omoiはビルド工程を持たないため、構文確認後にHTMLから実際のJSONを読み込み、URLパラメータ・Level・問題数・終了画面まで確認します。

ブラウザで確認する流れ

01

Levelと問題数を選ぶ

両方を選ぶまで次へ進めないこと、Level 4では警告画面へ進むことを確認します。

02

質問を表示する

選択Level以外のカードが混ざらず、選択数だけ表示されることを確認します。

03

長文とdetailを操作する

続き表示、スクロール、detail、出典、閉じる操作を確認します。

04

飛ばす・報告する

スキップで次へ進むこと、質問ID・Level・問題文・データファイル・URLがIssue Formへ入ることを確認します。

05

終了する

選択した数を終えるとfinish.htmlへ進むことを確認します。

公式カタログへの同期

OmoiリポジトリのJSONを正本とし、公開前にVIUK-Light公式サイトのassets/omoi/dataへ同一内容を同期します。

件数Level別・合計件数が一致する
ID正本とカタログのID集合が一致する
metadatacategory、topic、perspective、role、content_warningを欠落させない
参照情報カタログに反映日、参照ブランチ、commit、件数を表示
キャッシュJSON・JavaScriptのバージョンを更新し、古いデータ表示を避ける

公開チェックリスト

  • git diff --checkが成功する
  • 質問データ検証がエラー0件になる
  • JavaScriptの構文確認が成功する
  • デスクトップとモバイルで質問フローを確認する
  • 長文スクロール、スキップ、Level 4警告、質問報告を確認する
  • 公式カタログと正本JSONを比較する
  • GitHub Pagesの状態がbuiltになる
  • 公開URLで最新の件数・commit・キャッシュ版を確認する

失敗時の扱い

検証を通すために質問を隠したり、機能を削除したりしません。原因を構造、データ、表示、公開キャッシュに分け、正本を保ったまま修正します。既存の警告や別作業の変更は、今回の変更による新規エラーと分けて記録します。