بنقرة واحدة
md-render
報告書 MD から決定論 HTML を生成・検証する際に発火する。md2html.cjs(同梱)で render / verify / lint / selftest / check を実行する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
報告書 MD から決定論 HTML を生成・検証する際に発火する。md2html.cjs(同梱)で render / verify / lint / selftest / check を実行する
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Fires when deciding whether a report or explanatory document needs figures, when designing a figure, or when writing the figures declaration in frontmatter. Designs cognitive-load-reducing figures via the trigger table, quantitative limits, and templates
Fires when generating or verifying deterministic HTML from report MDs. Runs render / verify / lint / selftest / check via the bundled md2html.cjs
Fires when producing a report or completion notice. Generates a report that includes the interlock verification section.
Discipline for preventing the stop bug (malformed tool call -> self-priming). Fires when the stopbug-observe hook emits a trip-wire (migration advice) or the time-based timer (calibration prompt), or as a minimal focus-check right before heavy processing.
報告書・説明文書で図を使うか判断する際、図を設計する際、frontmatter の figures 宣言を書く際に発火する。図トリガー表・定量上限・雛形で「認知負荷を減らす図」を設計する
報告書・完了報告を出力する際に発火する。インターロック検証欄を含む報告書を生成する
| name | md-render |
| description | 報告書 MD から決定論 HTML を生成・検証する際に発火する。md2html.cjs(同梱)で render / verify / lint / selftest / check を実行する |
正本は MD、HTML は派生(HTML ⊆ MD)。レンダラは壁時計・乱数・環境を入力にせず、同一 MD から byte 一致の HTML を生成する(決定論)。
--verify / --lint / --check を実行する時(report skill のレンダラ手順から参照される)R=~/.claude/skills/md-render/md2html.cjs
node "$R" <報告書.md> <報告書.html> # 生成(固定 7 ブロック・ダークテーマ)
node "$R" --verify <報告書.md> # 双方向検証: HTML⊆MD(捏造ゼロ)+ MD⊆HTML(欠落ゼロ)
node "$R" --lint <報告書.md> # figures 宣言-実体一致(双方向)+ 必須マーカー検査。exit 1 = block
node "$R" --selftest # 内蔵 golden ケースの sha256 照合(破損検出)
node "$R" --check <in.md> <out.html> # HTML 埋込 sha256 と現 MD の鮮度照合(_index 用)
--lint は改定後の新規報告書にのみ実行する(grandfather 移行措置 — report skill 参照)./vendor/mermaid.min.js ②pinned CDN ③原文表示 の三段フォールバックvendor/ を HTML と同じディレクトリへコピーする(ローダは HTML 基準の相対パスで探す)報告書 frontmatter に tabs: by-h2 を宣言すると、本文のトップレベル H2 セクション群をタブ UI で描画する(決定論レンダラ拡張・新 MD 構文ゼロ)。タブラベルは H2 見出しテキスト(MD 由来)。読者と目的 / 要判断一覧 / TOC / Pending パネルと lead はタブの外に残る。
html.js を付与し、JS 実行時のみタブ表示へ切替。タブローダは data-* のみ読み classList / aria-selected を操作(innerHTML 不使用・MD 由来文字列を DOM 注入しない)— 決定論と HTML⊆MD を維持(非表示パネルも静的 HTML に残り --verify が被覆)。--lint が警告)。未知の tabs 値は無視し lint 警告。tabs: by-h2 報告書にのみ注入。非タブ報告書は byte 不変。見出し id は sec-<sha1(正規化見出し)[:8]>(位置非依存・見出し依存)。再レンダリングしても見出しが同じなら id 不変 → アンカー付きコメントが迷子にならない。TOC・要判断リンクは同じ id 由来で自動整合。同一テキストの H2 は id を共有(--lint が警告)→ コメント合流を避けるため見出しは一意にする。
報告書(isReport 判定: frontmatter doc_id/report_id/audience/status か「読者と目的」セクション)で安定 id(report_id か doc_id)がある場合、各本文 H2 直下にトピック別コメント Composer と返信プロンプト生成を付与する。comments: off で抑止。
ccpit-cmt:<reportId>:<sectionId>)。コメントは HTML 本体に焼き込まない → 決定論(同一MD→byte一致)と HTML⊆MD/MD⊆HTML を維持(Composer は空コンテナ + CSS/aria ラベル + 空 textarea =静的テキストノードゼロ。on/off の extractTextNodes 一致テストで検証)。report_id/doc_id)。ファイル名 fallback なし(ファイル名は MD 外で byte 一致を壊す)。id 不在ならコメント無効。navigator.clipboard.writeText ワンクリックコピー(file:// 等の非 secure context は execCommand('copy')+select にフォールバック)。返信本文生成(レビュー担当 / CC)は本レンダラの責務外(層分離)。レンダラが出力するのは固定インライン script(mermaid ローダ・タブ apply-before-paint・タブローダ・コメントローダ・返信生成)のみ、SVG は data: 画像のみ。整合するポリシー:
default-src 'none'; img-src data:; style-src 'unsafe-inline'; script-src 'sha256-<各インライン script のハッシュ>'
sha256-… は出力された各インライン script からビルド/公開時に生成する(ローダ変更で値が変わる)。レンダラ自身は CSP meta を出力しない(ハッシュ誤りでページが壊れるため)— CSP は配信層で適用する。
| ファイル | 説明 |
|---|---|
md2html.cjs | レンダラ本体(依存ゼロ・単一ファイル) |
vendor/mermaid.min.js | mermaid v10.9.1(MIT License) |
vendor/LICENSE-mermaid.txt | mermaid のライセンス表記(sha256 記録込み) |
md2html.cjs を編集した場合は必ず --selftest を実行し、意図した変更なら内蔵 GOLDEN sha を再計算して更新する(selftest FAIL の放置は破損とみなす)。