render-html について
render-html は、ARIS のレポートや研究資料を人が読みやすい単一ファイルの HTML に変換します。学術向けとダッシュボードのテンプレートを備え、Markdown を正本として保持します。
主な機能
- 01Markdown を単一ファイルの HTML に変換
- 02学術向けとダッシュボードのテンプレート
- 03目次、表、数式に対応
- 04ソースパスと SHA256 を埋め込み
- 05危険な HTML と URL をサニタイズ
活用シーン
- 01研究レポートを読みやすいページにする
- 02学術テンプレートでレビューの進捗を表示
- 03研究 wiki の概要をダッシュボード化
- 04CDN に依存せずオフラインでページを生成
MCP 対応
HTML 変換スクリプト自体は MCP を呼び出しません。レビューが必要な場合、スキルが MCP 経由で生成結果をレビュアーに渡します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wanshuiyin/ auto-claude-code-research-in-sleep --skill render-htmlインストール後、Claude Code で/render-htmlを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
scripts/render_html.pyscripts/templates/academic.htmldashboard.html詳細
/render-html: Markdown → 人が読むための単一ファイル HTML
各レビュアー枠の前に必ず、選択可能なレビュアーに従ってください: 呼び出し元 →
.aris/reviewer.json→ Claude Code のデフォルト(Codex MCP)の順に解決し、 正規ヘルパーリゾルバーを介してreviewer_route.pyを使用します。この枠のティア、 新しいコンテキスト、ソース/画像入力、決定論的なゲートを維持してください。 以下の Codex の例/固定指定はbackend=codexの場合にのみ適用されます。それ以外のルートでは、 それぞれ独自の初回呼び出し/返信の契約を使用します。ルートと実際に返された ID を保存してください; 利用できない選択肢はREVIEW_UNAVAILABLEとします。実際のファミリー/完了状況/対象範囲から 受け入れ可否を分類してください。呼び出し元によるレビュアー/モデル/エフォートの上書き指定は、 レビュアーを使う子プロセスに引き継いでください。生成ワーカーに変更はありません。
Markdown は書き手のためのものです。HTML は読み手のためのものです。 ARIS ワークフローのノードは Markdown(正規形式で、監査証跡に適し、機械解析可能)を書き出します。
/render-htmlは、選択された成果物を、人が実際に読むための洗練された単一ファイル HTML ビューに変換します。Markdown は引き続き信頼できる唯一の情報源です。
このスキルを使用する場面
次のような実際に人が読む ARIS 成果物には、/render-html を使用してください:
| 成果物 | HTML が役立つ理由 | テンプレート |
|---|---|---|
idea-stage/IDEA_REPORT.md | アイデアの順位付け、パイロットの兆候、スコアが、平坦なリストではなく意思決定ダッシュボードとして読みやすくなります | academic |
review-stage/AUTO_REVIEW.md(および REVIEW_STATE.json) | ラウンドごとのスコア推移と弱点の状況を表示できます。JSON を埋め込むには --state を渡します | academic |
paper/KILL_ARGUMENT.md(および KILL_ARGUMENT.json) | <details> の Q&A カードと赤/黄/緑のコールアウトで、論点ごとの攻撃/防御を表示できます | academic |
research-wiki/SUMMARY.md(または research-wiki/index.md) | 論文/アイデア/実験/主張を一覧できる、エンティティ横断のコックピットです | dashboard |
PAPER_PLAN.md(任意) | 主張と根拠のマトリクスは、生の MD よりも洗練された表のほうが読みやすくなります | academic |
RESUBMIT_REPORT.{md,json}(任意) | 7 状態の失敗モード台帳です | academic または dashboard |
次のものには使用しないでください:
- LaTeX の論文出力 — 読者向けの最終成果物は HTML ではなく PDF です。
SKILL.mdファイル — 内部向けの LLM プロトコルです。.aris/traces/*のレビュートレース — 人に見せるためのものではなく、フォレンジックデバッグ用です。- プロジェクト内のすべての Markdown ファイル — 固定表示の目次、コールアウト、数式、スコア推移が役立つ成果物だけに使用してください。
中核となる不変条件
- MD / JSON が正本であり、HTML は生成されたビューです。 ソースを編集してから再レンダリングしてください。HTML を直接編集しないでください。
- 成果物の境界でモデル横断レビューを行います(ARIS 不変条件)。人が実際に読む成果物(IDEA_REPORT、AUTO_REVIEW、KILL_ARGUMENT、PAPER_PLAN)に使用されるアカデミックテンプレートの HTML は、新しいコンテキストで選択したレビュアーがレビューします。完成したビューとして扱う前に、実際の識別情報からそのファミリーを判定してください。ダッシュボードテンプレートの HTML(コックピット/デバッグビュー)は、デフォルトではレビューを省略しますが、
--reviewで強制できます。下記の § HTML レビューゲート を参照してください。 - ドリフトを検出します。 レンダリングされた HTML にはすべて、ソースパス、SHA256、生成タイムスタンプが
<meta>タグとページ上部の表示ヘッダーの両方に埋め込まれます。HTML とソースが食い違う場合、メタデータから、その HTML の生成元となったソースのバージョンを確認できます。 - 出力は単一ファイルです。 ビルドシステムも、個別の CSS も、
node_modulesもありません。.htmlファイルが 1 つだけです。 - デフォルトは CDN 対応、
--offlineでフォールバックします。 MathJax 3 と highlight.js はデフォルトでcdn.jsdelivr.netから読み込まれます。--offlineを渡すと、どちらも読み込みません。数式は生の$x$として表示され、コードブロックには構文ハイライトが適用されませんが、すべての内容を読み取ることはできます。 - 標準ライブラリのみを使うヘルパーです。
render_html.pyが使用するのはre、html、hashlib、json、datetime、pathlib、argparse、sysのみです。pip によるインストールは不要です。 - 多層防御による XSS サニタイズを行います。 このヘルパーは、
<script>/<style>/<iframe>/<object>/<embed>/<form>/<input>/<button>/<link>/<meta>/<base>タグ、すべてのon*イベントハンドラー属性(onclick、onloadなど)を除去し、javascript:/vbscript:/data:の href/src/action スキームを#blocked-unsafe-url:に書き換えます。ARIS ワークフローの成果物にこれらが含まれているべきではありませんが、LLM が誤って生成した場合に備え、サニタイザーが安全策となります。Markdown のテキスト内容は別途 HTML エスケープされ、サニタイザーに渡されることはありません。
ツールの場所
Arch C は自己完結型です。正規の実装は skills/render-html/scripts/render_html.py(この SKILL 自身の scripts/ サブディレクトリ)にあり、テンプレートは skills/render-html/scripts/templates/{academic,dashboard}.html にあります。このヘルパーは新しく作成されたもので、レガシーな tools/ シムはありません。
ハイブリッドチェーンを使って $RENDER_HTML を解決してください(Layer 0 では、それを所有する SKILL の自己完結型の場所を優先します。Layers 1-3 は shared-references/integration-contract.md §2 に記載されている共有ランタイムチェーンで、Policy A — skill-local gate に従います)。
# Layer 0: self-contained (CC 1.0+ exposes $CLAUDE_SKILL_DIR).
RENDER_HTML=""
if [ -n "${CLAUDE_SKILL_DIR:-}" ] && [ -f "$CLAUDE_SKILL_DIR/scripts/render_html.py" ]; then
RENDER_HTML="$CLAUDE_SKILL_DIR/scripts/render_html.py"
fi
# Layers 1-3: shared-runtime chain (non-CC hosts + manual installs).
if [ -z "$RENDER_HTML" ]; then
cd "$(git rev-parse --show-toplevel 2>/dev/null || pwd)" || exit 1
if [ -z "${ARIS_REPO:-}" ] && [ -f .aris/installed-skills.txt ]; then
ARIS_REPO=$(awk -F'\t' '$1=="repo_root"{print $2; exit}' .aris/installed-skills.txt 2>/dev/null) || true
fi
RENDER_HTML=".aris/skills/render-html/scripts/render_html.py"
[ -f "$RENDER_HTML" ] || RENDER_HTML="skills/render-html/scripts/render_html.py"
[ -f "$RENDER_HTML" ] || { [ -n "${ARIS_REPO:-}" ] && RENDER_HTML="$ARIS_REPO/skills/render-html/scripts/render_html.py"; }
[ -f "$RENDER_HTML" ] || RENDER_HTML=""
fi
[ -z "$RENDER_HTML" ] && {
echo "ERROR: render_html.py not resolved (layer 0: \$CLAUDE_SKILL_DIR/scripts/; layers 1-3: .aris/skills/render-html/scripts/, skills/render-html/scripts/, \$ARIS_REPO/skills/render-html/scripts/)." >&2
echo " /render-html cannot produce HTML output. Fix: rerun bash tools/install_aris.sh, or copy from \$ARIS_REPO/skills/render-html/scripts/." >&2
exit 1
}
呼び出し
# Default: academic template, output to <input>.html alongside source
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md
# Dashboard template for cockpit-style views
python3 "$RENDER_HTML" research-wiki/SUMMARY.md --template dashboard
# Custom output path + title + eyebrow
python3 "$RENDER_HTML" review-stage/AUTO_REVIEW.md \
--out review-stage/AUTO_REVIEW.html \
--title "Auto Review — overnight run" \
--eyebrow "Workflow 2"
# Embed sidecar state JSON (rendered as a folded <details> JSON block at end)
python3 "$RENDER_HTML" review-stage/AUTO_REVIEW.md \
--state review-stage/REVIEW_STATE.json
# Embed sidecar JSON (e.g., for KILL_ARGUMENT.md + KILL_ARGUMENT.json)
python3 "$RENDER_HTML" paper/KILL_ARGUMENT.md \
--json paper/KILL_ARGUMENT.json \
--title "Kill Argument — adversarial review"
# Offline (no CDN; math + code render as plain text)
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md --offline
# JSON-only input (wrapped in a <pre><code class="language-json"> block)
python3 "$RENDER_HTML" review-stage/REVIEW_STATE.json --template dashboard
# Language attr (default zh-CN; set for English-primary artifacts)
python3 "$RENDER_HTML" docs/SKILLS_CATALOG.md --lang en
# Skip review (academic template otherwise reviews by default)
python3 "$RENDER_HTML" idea-stage/IDEA_REPORT.md
# … then the skill skips the mcp__codex__codex review step if --no-review
# was on the command line. Pass --review to a dashboard render to force it.
--review/--no-review フラグは render_html.py ではなく、SKILL オーケストレーター(Claude Code)が解析します。ヘルパー自体は標準ライブラリのみを使い、MCP を呼び出すことはありません。正確な解決方法とプロンプトについては、下記の § HTML レビューゲート を参照してください。
ワークフロー
ステップ 1:成果物を特定する
$ARGUMENTS から、レンダリングする内容を判断します。よくあるパターンは次のとおりです。
- 「IDEA_REPORT をレンダリング」→
idea-stage/IDEA_REPORT.md、アカデミックテンプレート - 「AUTO_REVIEW を読みやすくする」→
review-stage/AUTO_REVIEW.md+--state review-stage/REVIEW_STATE.json - 「キルアーギュメントを HTML で表示」→
paper/KILL_ARGUMENT.md+--json paper/KILL_ARGUMENT.json - 「research-wiki ダッシュボード」→
research-wiki/SUMMARY.mdを探すか、エンティティの生カウントから生成します(フェーズ 2 の作業です。フェーズ 1 では、SUMMARY.mdがあればそれをレンダリングし、なければ Wiki のトップレベル構造の一覧にフォールバックします)
ステップ 2:テンプレートを選択する
academic(デフォルト):長文を順に表示します。固定表示の目次サイドバー+セリフ体の本文+コールアウト+表+数式+Q&A<details>を備えています。IDEA_REPORT、AUTO_REVIEW、KILL_ARGUMENT、PAPER_PLAN に使用します。dashboard:グリッドレイアウト、小さめのフォント、情報量の多いメトリクスカードを備え、目次サイドバーはありません。research-wiki のコックピット、RESUBMIT_REPORT、複数プロジェクトの概要に使用します。
ステップ 3:ヘルパーを実行する
上記のリゾルバーを使って $RENDER_HTML を取得し、実行します。スクリプトはデフォルトでソースと同じ場所に HTML を書き込み(または --out で指定された場所に書き込み)、ソースの SHA256 プレフィックスを含む確認メッセージを 1 行で出力します。
ステップ 4:HTML レビューゲート(モデル間)
レビューを実行するか決定します。 ARIS の不変条件「実行者は自身の出力を評価してはならない」に従い、学術テンプレートの HTML は、選択したレビュアーが新しいコンテキストでレビューします。成果物として提示する前に、実際の ID に基づいてファミリーを分類します。解決方法:
should_review = explicit --review present
or (template == "academic" and --no-review NOT present)
つまり:
--template academic(デフォルト)→ デフォルトでレビューします。--no-reviewでスキップします。--template dashboard→ デフォルトではレビューしません。--reviewで強制します。- フェーズ 2 のワークフロー自動生成(2026-05 に有効化)では、以下に記載された RENDER_HTML フックに従ってスキルごとに選択されます。中間ビューはデフォルトで
--no-review、最終成果物/監査クラスの成果物はデフォルトで完全なゲートを適用します。
should_review が true の場合、新しい mcp__codex__codex スレッドを開始します(codex-reply は絶対に使用しません。../shared-references/reviewer-routing.md に従い、model: gpt-6-astra と config: {"model_reasoning_effort": "xhigh"} を固定します)。以下のプロンプトを使用してください。レビュアーはソースの MD と生成された HTML を直接読み込み、このスキルの中間状態は参照しません。
レビューの範囲(意図的に限定)。 HTML レビュアーが監査するのは、レンダリングの忠実性/安全性/構造のみであり、主張の正確性ではありません。主張の監査は上流工程(/paper-claim-audit、/research-review、/result-to-claim)が担当します。具体的には、レビュアーは以下を確認します。
- 情報の忠実性 — すべてのセクション、主張、表、コードブロック、リスト、数式の断片、サイドカーペイロードが HTML に含まれていること(気づかれないまま欠落していないこと)
- 構造の完全性 — 見出しの階層/入れ子リスト/表のセル/コードフェンス/
<details>ブロック/数式の区切り文字がパース後も保持されていること - コールアウトの振り分け —
> 🚨 …が.callout-badに、> 💡 …が.callout-infoなどに変換されていること - 安全性/エスケープ — 生の
<script>/onclick=/javascript:/未置換のプレースホルダー/テンプレートの漏出が残っていないこと - 想定される差異の許容 — frontmatter の削除、生成されたヘッダー/フッター/メタデータ、目次の挿入、安全でない HTML のサニタイズはすべて想定内であり、問題として指摘されないこと
Codex プロンプト(必須形式)。 新しいスレッド(mcp__codex__codex、codex-reply ではありません)として、以下を送信します。
You are an independent ARIS HTML render auditor. This is a fresh review thread.
Read these files directly:
- Source artifact: <ABS path to source.md or source.json>
- Generated HTML: <ABS path to out.html>
- Optional sidecars: <state.json>, <kill_argument.json> (if any)
Task: Audit whether the generated HTML is a faithful, safe, structurally
usable view of the source artifact. Do NOT judge whether the research
claims are true. Judge only rendering fidelity.
Checks:
1. Information fidelity — sections / claims / tables / code blocks /
lists / math / sidecars not silently dropped or materially altered.
2. Structural integrity — heading hierarchy, tables, nested lists,
code fences, details/summary, math delimiters preserved.
3. Callout routing — warning/critical/good/info blockquotes map to
appropriate CSS classes when present.
4. Safety/escaping — no unexpected raw script/style/iframe/form/
event-handler/javascript/data URL survives from source.
5. Placeholder/template leakage — no unreplaced {{PLACEHOLDER}} or
parser private placeholder character appears.
6. Expected differences — frontmatter strip, generated header/footer/
meta, TOC insertion, sanitized unsafe HTML are EXPECTED and not a
defect.
Return STRICT JSON first, then a short prose note:
{
"verdict": "PASS|WARN|FAIL|ERROR",
"checks": {
"source_hash_match": "pass|warn|fail|unknown",
"information_fidelity": "pass|warn|fail",
"structure": "pass|warn|fail",
"math_code_tables": "pass|warn|fail",
"callouts": "pass|warn|fail|not_applicable",
"safety_escaping": "pass|warn|fail",
"placeholder_leak": "pass|warn|fail"
},
"blocking_issues": [
{"severity": "fail",
"source_location": "L<n>...",
"html_location": "<selector or near-text>",
"issue": "...",
"suggested_fix": "..."}
],
"warnings": [
{"severity": "warn", "issue": "...", "suggested_fix": "..."}
],
"summary": "one paragraph"
}
Verdict rules:
- PASS: no material fidelity/safety issue.
- WARN: readable output with minor unsupported-Markdown or cosmetic
degradation only.
- FAIL: missing/altered meaningful content, broken tables/math/code/
callouts that change interpretation, unsafe executable HTML, source
hash mismatch, or placeholder leakage.
- ERROR: files could not be read or audit could not complete.
出力を保存します。
- JSON の判定結果を
<out_path>.review.json(HTML と同じ場所)に書き込みます。 shared-references/review-tracing.mdに従い、生の Codex トレースを.aris/traces/render-html/<YYYY-MM-DD>_run<NN>/review.{txt,json}に保存します。- ユーザーに
verdict, N blocking, N warnings, trace: <path>という形式の概要を 1 行で出力します。
verdict == FAIL の場合:HTML はレビュー合格済みの成果物として提供できません。ブロッキングの問題をユーザーに伝え、ソースを修正するよう案内します(HTML ではなく MD またはテンプレートを修正します)。その後、再レンダリングします。黙って上書きしたり、完了済みとして扱ったりしないでください。
verdict == WARN の場合:HTML は提供しますが、警告の一覧も伝えます。修正するか受け入れるかはユーザーが判断します。
選択したレビュールートが利用できない場合:サイドカーに verdict: REVIEW_UNAVAILABLE を出力し、PASS を捏造しないでください。HTML は生成されたものの、独立したレビューは受けていないことをユーザーに伝えます。ユーザーはソース MD に対して /research-review を手動で実行するか、選択したレビュアーが利用可能になってから再実行できます。
ステップ 5:(任意)ブラウザーで確認する
macOS では open <out.html>、Linux では xdg-open、Windows では start を実行します。数式とコードのハイライト表示にはインターネット接続が必要です(CDN)。オフラインの場合も、読みやすいテキストとして表示されます。
ヘルパーがサポートする機能
Markdown のサブセット(ARIS のワークフローで実際に出力される内容に合わせて選定):
- 見出し
#/##/###/####。目次用の ID を自動生成します - 段落、太字
**x**、斜体*x*/_x_、インラインコード`x`、取り消し線~~x~~、リンク[t](url)、画像 - 2 スペースのネストしたインデントに対応した箇条書き/番号付きリスト
- 言語指定は任意のコードブロック(
```python) — highlight.js 用に<pre><code class="language-python">を生成します - ASCII アートのコードブロック(ボックス描画文字が多いことを基準に判定) → 背景色をクリームイエローにした
<pre class="diagram">を生成します :---/:---:/---:による配置指定に対応した表- 引用
> ...— 絵文字プレフィックスを検出し、種類に応じたコールアウトに振り分けます:⚠️→.callout-warn(警告)💡/📝→.callout-info(ヒント/注記)✅/🔒→.callout-good(OK/保証)❌/🚨→.callout-bad(ブロック/重大)
<details>、<summary>、<div>、<figure>、<table>、<section>などの HTML をそのまま通します(ブロックレベル)。KILL_ARGUMENT.mdにある既存の Round-1/2/3 の修正詳細で使用されます- LaTeX 数式:インライン
$x$とディスプレイ形式$$x$$はそのまま MathJax に渡します
ヘルパーがサポートしない機能(意図的に簡略化しています):
- 脚注(
[^1]) - 定義リスト
- 参照形式のリンク
[label][ref] - Setext 形式の見出し(
===/---の下線形式 — ARIS では出力されません)
ファイルの最上部にあるフロントマター(--- ... ---)は、レンダリング前に削除されます(SKILL.md のフロントマター形式)。その後に続く本文が変換されます。
2 段階の統合計画(Phase 1 はこのスキル、Phase 2 はワークフローフック、2026-05 に有効化)
Phase 1(当初リリース): オプトインのみです。ワークフローの完了後、ユーザーが /render-html <artifact.md> を明示的に呼び出していました。
Phase 2(2026-05 に有効化): 8 つの主要スキルが、ワークフロー終了時に HTML を自動出力するようになりました。各スキルは RENDER_HTML = true 定数で制御され、ユーザーはスキルごとに無効化できます(または呼び出し時に — render html: false を渡せます)。
コスト階層別レビューゲート(アーティファクトの種類ごと):
| スキル | アーティファクト | レビューレベル | 理由 |
|---|---|---|---|
/idea-discovery | idea-stage/IDEA_REPORT.md | --no-review | 中間成果物です。ソースはすでに新規性レビューとクロスモデルレビューを通過しています |
/auto-review-loop | review-stage/AUTO_REVIEW.md | --no-review | ラウンドごとのログです。ループ自体がクロスモデルレビューです |
/research-pipeline | NARRATIVE_REPORT.md | --no-review | /paper-writing への内部 Stage 5 引き継ぎ用で、レビュアー向けではありません。上流の Stage 4 の auto-review-loop ですでに主張が審査されています |
/kill-argument | <paper-dir>/KILL_ARGUMENT.md | フルゲート | 監査クラスのアーティファクトです。スキル独自のクロスモデル不変条件に準拠しています |
/paper-claim-audit | paper/PAPER_CLAIM_AUDIT.md | フルゲート | 監査クラスのアーティファクトです |
/citation-audit | paper/CITATION_AUDIT.md | フルゲート | 監査クラスのアーティファクトです |
/proof-checker | PROOF_AUDIT.md | フルゲート | 監査クラスのアーティファクトです |
/rebuttal | REBUTTAL_DRAFT_rich.md | フルゲート | 提出前の成果物です |
/paper-writing | (HTML 自動出力なし) | 該当なし | 最終的な読者向け成果物は PDF です |
/research-wiki | research-wiki/index.html ダッシュボード | 今後対応 | Phase 2.1 — ダッシュボードテンプレートの作業であり、今回の対象外です |
中間レポートに --no-review を指定するのは意図的です。ソースの MD はすでに、作成元スキル独自のクロスモデルゲートでレビュー済みであり、HTML レンダリングは構造を変換するだけで、新たな主張を追加しません。各チェックポイントでフルレビューを行うと、パイプラインあたりの Codex 呼び出し回数が 4~6 倍に増えてしまいます。
特定のスキルで HTML 出力を無効にするには、スキルの定数ブロックで RENDER_HTML = false に設定するか、— render html: false を渡してください。全体で無効にするには、環境変数 ARIS_RENDER_HTML=0 を設定してスキップします(実装予定で、まだ利用できません。それまではスキルごとにフラグを設定してください)。
テンプレートのカスタマイズ
2つのテンプレートは skills/render-html/scripts/templates/{academic,dashboard}.html にあります。それぞれ {{PLACEHOLDER}} の置換を使用する、CSS をインラインで記述した自己完結型の HTML ファイルです。カスタマイズするには、次の手順に従います。
- テンプレートのいずれかを
my_brand.htmlなどの新しい名前でコピーします。 :root { ... }内の CSS 変数を編集して、色、フォントスタック、レイアウトの寸法を変更します。render_html.pyのargparseにある--templateの選択肢に、テンプレート名を追加します。/render-html <input> --template my_brandを再実行します。
デフォルトのテンプレートは、ユーザー独自の academic-newspaper チュートリアルスタイル(Source Serif Pro + Songti SC、3色の配色、固定 TOC、控えめな表現)をベースにしています。ビジュアル言語を変える具体的な理由がない限り、ARIS の成果物ではこの様式に沿ってください。
外部の代替手段(より豊かな表現向け)
デッキ/ポスター/小紅書カード/ツイートカード/データレポート形式の出力では、html-anything(Apache-2.0、執筆時点で 3000⭐)をユーザーに案内してください。9種類の表現形式に対応する75個の SKILL.md テンプレートを同梱し、8種類のコーディングエージェント CLI(Claude Code、Codex、Copilot など)を検出します。ARIS は html-anything に依存していません。/render-html は ARIS 標準の成果物を対象とし、より豊かな公開形式には html-anything を推奨します。
主なルール
- すべての Markdown ファイルを自動でレンダリングしないでください。 上記のホワイトリストにある成果物のみを対象にします。ファイルの増殖が主なアンチパターンです。
- 生成された HTML を手作業で編集しないでください。 ソースを編集してから、再レンダリングします。HTML のメタデータに埋め込まれた SHA256 で、レンダリング後にソースが変更されたかどうかを確認できます。
- academic-template HTML は、デフォルトでレビュー済みの成果物であり、生の出力ではありません。 学術系の成果物は、別モデルによる Codex レビュー(新規スレッド)が承認条件となります。これは
/proof-checker、/paper-claim-audit、/citation-audit、/kill-argumentがそれぞれの成果物の承認条件となるのと同じです。ソース MD が上流の別モデルによる承認をすでに通過している場合、--no-reviewは 中間段階の自動出力(例:idea-stage/IDEA_REPORT.html、ラウンドごとのreview-stage/AUTO_REVIEW.html)に適しています。この場合、HTML のレンダリングは新たな主張の監査ではなく、構造を変換する処理です。出荷用/レビュアー向け/監査対象クラスの出力では、すべての承認工程を維持してください。 - レビュアーが監査するのはレンダリングであり、研究ではありません。 主張の真偽は、上流の
/paper-claim-audit、/result-to-claim、/research-reviewが担います。HTML レビュアーが確認するのは「レンダラーがこのソースを忠実かつ安全に変換したか」であり、それ以上ではありません。 - CDN 依存はオプトインではなく、オプトアウトです。 ほとんどのユーザーはインターネットを利用でき、
--offlineはネットワークに接続できない環境での実行やアーカイブ向けです。 - デフォルトのスタイルは academic-newspaper であり、マーケティング向けの派手なスタイルではありません。 既存の ARIS のトーンに合わせてください。デッキ/ポスター/ソーシャルカードが必要な場合は、html-anything を案内してください。
- 純粋な標準ライブラリのみを使用してください。
render_html.pyにpip installの依存関係を追加するには、明示的な判断が必要です。現在、このヘルパーに依存関係はありません。MCP の呼び出しはスキルオーケストレーター内に置き、ヘルパースクリプトには置かないでください。