ホーム / 全スキル / コンテンツ制作 / article-sketchnote-editorial
コンテンツ制作 · nexu-io/html-anything

article-sketchnote-editorial

1つの概念を雑誌の特集アーカイブへと仕立て上げる——「真の問い→失敗→転換点→ひらめき→命名」の流れを、6つの layout モールド+4つのフォントファミリーの対比+捜査資料ディテールで構成。

L1 基本 · ソース登録のみV1 コミット固定Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(仓库根 LICENSE:Apache License Version 2.0, January 2004;GitHub API spdx_id=Apache-2.0)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

テンプレート本体に実行可能コードは含まれません。loader が src/lib/templates/skills/<id>/SKILL.md から frontmatter と本文を読み込み、本文(body)と example の内容を LoadedSkill として返します。

next/src/lib/templates/loader.ts
const raw = safeRead(path.join(dir, "SKILL.md"));
処理内容:SKILL.md が唯一の振る舞いの定義元です。frontmatter はセレクター描画用(zh_name、emoji、aspect_hint、tags、example_* など)であり、本文全体がプロンプトとなります。loader はセマンティック検証を行わず、テンプレートの記述をそのまま渡します。

配信前にホストがプロンプトを確定的に組み立てます。テンプレート本文は共有デザイン指示(SHARED_DESIGN_DIRECTIVES)と【入力形式】/【ユーザーコンテンツ】の間に挟み込まれます。

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
処理内容:テンプレートは「この成果物がどのような外観を持つか」(レイアウト/リズム/コンポーネント)のみを定義し、テンプレート共通のハード制約(単一ファイル HTML、ファイルツールの使用禁止、Tailwind および Google Fonts の CDN 利用、コンテンツの信憑性、中欧文間のスペース「盤古之白」)は共有指示が担います。

共有指示はハード制約をエージェントに対する明示的な禁止事項として定義し、コンテンツ駆動による数量決定を強制します(テンプレート内の数値は参考用の下限値に過ぎません)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
同一ファイルの後続記述:出力される slide / frame / card / section の数量は、【ユーザーコンテンツ】の実際の長さと情報構造によって完全に決定されます。これにより、コンテンツが増加しても破綻せず、各段落に最低1枚のカード/セクションが割り当てられ、テンプレートはレイアウトプールのみを提供する仕組みとなっています。

実際の実行はユーザーのローカル環境に導入・ログイン済みのコーディングエージェント CLI が担います。ホストが子プロセスを spawn してプロンプトを渡し、stdout から HTML をストリーミング取得します。

next/src/lib/agents/invoke.ts
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
処理内容:テンプレート skill はプロンプトを提供するのみで、能力(コード記述やツールの実行を含む)はホスト CLI の既存権限に依存します。skill ディレクトリ自体にはスクリプトのエントリポイントが存在しないため、評価はディレクトリ内のアセットのみを対象とします(ホスト側の挙動は判定対象外)。

/api/convert がテンプレートの実行パスです。skill.body とユーザーコンテンツをプロンプトに組み立てた後、invokeAgent に引き渡します。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
編集モードでは別途 buildEditPrompt を経由します(差分編集を最小化し、ファイルツールを無効化、完全な HTML の直接ストリーミング出力を要求)。これにより、生成物は単一ファイル HTML、インライン CSS/SVG、フォントおよび明示的に要求されたチャートライブラリのみの外部リンクという安定した構成を維持します。

実装原理は「ナラティブアーク + レイアウトモールド」の二重拘束です。6つの公理がコンテンツを制約し(真の問いが先、失敗の挿入が必須、命名の前にひらめきを配置など)、6つの layout class がレイアウトのリズムを制御し、いずれかを満たさない場合は再生成となります。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
【六条公理 — 任一不过, 重做】
処理内容:「1つの概念を特集として語る」プロセスを検証可能な制約に落とし込み、線形な解説文に陥るのを防ぎます。公理は検証可能であるため(タイトルに概念名を出さない、失敗マイルストーンを必須とする、メタな自己言及を禁じるなど)、セルフチェックリストによる受け入れ検証が可能です。

リズムはモールドのシーケンスによって厳密に固定されます:.feature → .note → .archive → .cross → .hero → .closing。開放と凝縮が交互に現れ、転換点では拡大し、末尾では中心対称へと回帰します。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
**节奏铁律**: 开阔(feature)→ 紧(note 错位)→ 紧(archive 横长)→ 爆(cross 200px)→ 开阔(hero)→ 静(closing 中心对称)。
各モールドには具体的な視覚的特徴が付与されており(cross の Serif 200px による強調、note の 0.5deg 傾けた付箋・ミシン目・赤ペンの打ち消し線など)、リズムはエージェントの即興ではなく規定の仕様に従って実現されます。

「4つのフォントファミリーの同時使用必須」により、単一フォントによる平坦さを排して階層性を持たせます:タイトル/引用の Serif、本文の Sans、番号/脚注の Mono、手書き注記の Hand がそれぞれの役割を担います。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
【字族对比 — 必须四种同时使用】
SKILL.md ではファミリーごとに具体的なフォント名を指定しています(Noto Serif SC / Noto Sans SC / JetBrains Mono または SF Mono / Caveat または楷書体)。これら4系統は選択式ではなく中核要素であり、欠けている場合は再生成対象と判定されます。

カラーシステムは CSS 変数として定義され、主要色は最大4色に制限され、純黒(#000)の使用は明文で禁止されています。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
**禁止 `#000` 纯黑**
同一セクションに完全な変数リスト(--bg #FAF7EF / --paper / --ink-strong #0F0F0F / --ink / --ink-light / --red #B23A2C / --blue-deep #3D5A80 / --amber / --amber-soft)が記載されており、デザインシステムをプロンプト内に直接埋め込むアプローチをとっています。

成果物仕様は、単一ファイル HTML + インライン CSS + Google Fonts CDN、JS 不使用、静的縦長グラフィック、1080px 幅コンテナ(高さ可変)です。当該 CDN は成果物利用時の参照(ブラウザ表示時の取得)であり、skill 実行時の外部通信は発生しません。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
输出**单文件 HTML**, inline CSS + Google Fonts CDN(Noto Serif SC / Noto Sans SC / Caveat / JetBrains Mono)。不写 JS, 静态长图。容器宽 1080px, 高度自适应。
処理内容:上流の ljg-card(playwright によるスクリーンショットで PNG を出力)とは異なり、本版は HTML を直接出力します。そのためブラウザ表示時に Google Fonts(fonts.googleapis.com / fonts.gstatic.com、example.html:7-9)からフォントを取得しますが、第4バッチ最終基準に基づき成果物利用時の参照と判断されるため、リスク評価の対象外とし、reason および risks への記録にとどめています。

skill の末尾には改変元とバージョンが明記されており、派生関係を追跡可能です。

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
本 skill 改编自 [lijigang/ljg-skills · ljg-card -v sketchnote](https://github.com/lijigang/ljg-skills/tree/master/skills/ljg-card)(v2.3.0)。
同セクションにて、オリジナル版が PNG 出力(playwright 利用)であるのに対し、html-anything 版は単一ファイル HTML を直接出力すること、また 6つの公理・6つの layout・4つのフォント・リズム構造は元版を継承していることが説明されており、機能境界(スクリーンショット不使用、JS 不使用)のトレーサビリティが確保されています。

2コア機能

016つのナラティブ公理 + 6項目のセルフチェックリスト(問いの提示/失敗の挿入/命名前のひらめき/テキストの節制/自然な中国語表現/非均一なリズム)
026つの layout モールドとそれぞれの視覚的特徴定義表(feature/note/archive/cross/hero/closing)
034つのフォントファミリーによるタイポグラフィ役割分担(Serif/Sans/Mono/Hand)
04カラーシステム(主要色最大4色 + CSS 変数定義表 + 純黒の禁止)
05装飾用構造コンポーネントライブラリ(kicker、drop-cap、byline、stamp、pull-quote、scribble、mega、epilogue など、フォントサイズや回転角を含む)
06そのまま再利用可能な HTML スケルトン(magazine-head + 6つの section/aside モールド)
07リズム padding 対照表(各セクションの padding / margin-top による余白スケール)

4推奨統制措置と判定根拠

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: 純粋なプロンプト指示および規則テキストのみで構成され、スクリプト実行や外部への副作用はありません
監査ノート: 評価判定は skill 自身のディレクトリのみを対象としています:article-sketchnote-editorial/ には SKILL.md + example.html + example.md のみが含まれ、スクリプトエントリポイント、同梱 CLI、認証情報読み取り、ディスク書き込みはいずれも存在しません。実行時の外部送信も皆無です(example.html には <script> タグが1つもなく、イラストはすべてインライン SVG です)。SKILL.md:198【出力仕様】において Google Fonts CDN(Noto Serif SC / Noto Sans SC / Caveat / JetBrains Mono)のエンドポイント(fonts.googleapis.com および fonts.gstatic.com、example.html:7-9 で参照)が指定されていますが、第4バッチ最終基準に基づき**成果物利用時の参照**に分類されます。生成された HTML をブラウザで開いた際にフォントが取得される仕組みであり、skill の実行フェーズでのデータ収集、外部レポート、素材転送、認証情報の利用は伴わないため、リスク評価対象外とし、エンドポイントの記録のみにとどめています。フォント読み込みに失敗した場合でも代替フォント(PingFang SC / Songti SC / Kaiti SC などのローカルフォールバックが指定済み)にフォールバックされます。ホスト環境のラッパー(loader→assemblePrompt→ローカルエージェント CLI の spawn、プレビュー用 iframe sandbox)はホスト側の挙動であるため評価には含めず、verdict.risks に記載しています。

5二重目の独立検証

  • [ok] 六模具与示例的一致性 — example.html 中 <section class="feature">、<aside class="note">、<section class="archive">、<section class="cross">、<section class="hero">、<section class="closing"> 依次出现,节奏铁律(爆点在 cross、收尾 closing 中心对称)可对照验证。
  • [ok] 「不写 JS」的声明 vs 实际 — example.html 全文无 <script> 标签、无 on* 事件属性;所有图形为内联 SVG(viewBox 0 0 280 220 等),与【输出契约】不写 JS、静态长图一致。
  • [ok] 端点性质(产物期 vs 执行期) — SKILL.md:198 逐字命中「inline CSS + Google Fonts CDN(Noto Serif SC / Noto Sans SC / Caveat / JetBrains Mono)」;example.html:7-9 有 preconnect 与 css2 链接。字体由浏览器加载产物时取用,属产物期引用(批4 终版口径不判级),故维持 green;端点已列入 security.reason 与 verdict.risks。
  • [ok] 示例文本与公理的相符性 — 示例标题「涌现的命名 · 复杂系统 1972」不在标题中直接揭示概念定义,closing 才给中文概念名与 byline(人名·年份·文献),符合「顿悟在前、命名在后」公理。
  • [ok] license / stars / commit 元数据 — GitHub API(api.github.com/repos/nexu-io/html-anything):spdx_id=Apache-2.0、stargazers_count=8827、pushed_at=2026-09-15T03:36:24Z;工作副本 git HEAD = 553ed98c283f9c0f489902d035416a972d6a9699(与任务表 pin 553ed98c283f 同源)。
  • [ok] skill.path 与目录资产面 — pin 目录内该路径存在且含 SKILL.md;目录内文件清单已用 glob 全量核对(含隐藏文件),无 scripts/、无 references/、无二进制资产(competitive-teardown 的 assets/ 为纯 HTML,另行记录)。

6結論

  • 「1つの図で1つの概念を伝える」手順を判定可能なフローに昇華:公理(内容)+ モールド表(レイアウト)+ 6項目のセルフチェック + 禁止事項リストの4層に明文化された基準があり、モデルの逸脱を防ぎます。
  • リズムが明示的に固定化されており(開放→緊密→緊密→強調→開放→静寂)、padding 対照表と連動させることで、AI 生成物にありがちな6節等間隔のギャラリー配置を回避します。
  • デザインシステム(主要色4色以下の色変数、4系統フォント、文字サイズ・回転角を含む装飾パーツ)がプロンプト内に直接組み込まれており、均質化された「AI っぽさ」を排した再現性の高い出力が得られます。
  • 実装例がそのまま仕様書として機能:example.html(674行)に全クラスの実装と再利用可能な HTML スケルトンが含まれており、エージェントは抽象的な記述ではなく具体的な実装を基準にできます。
  • 明確なトレーサビリティ:lijigang/ljg-skills の ljg-card v2.3.0 からの派生であることを明記し、上流との差異(PNG→HTML)を明確に説明しています。
  • 最適な用途: 概念や学術史を緊張感のあるビジュアルグラフィックとして仕立てる用途に最適です:科学解説、教育コンテンツ、講義資料、メディア特集など。特に「失敗の中から概念が誕生した」といったナラティブ性を持つ題材に最適です(サンプルでは「創発」の命名史を扱っています)。
    不向きな用途: 純粋なレイアウト重視の短い宣伝文(テンプレートはナラティブアークを要求するため、短いテキストでは6つのステージを構成できません)、インタラクションやデータチャートを必要とするレポート(JS 不使用、チャートライブラリ非搭載)、原文の一字一句の保持が求められる規約テキスト(リズム調整のためにテキストのリライトが行われます)には適していません。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload article-sketchnote-editorial.tar.gz
    sha256: fa995708ae5df142…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.