Home / All Skills / Content & Media Creation / article-sketchnote-editorial
Content & Media Creation · nexu-io/html-anything

article-sketchnote-editorial

Casts a concept into a magazine-style feature archive — real problem → failure → turning point → epiphany → naming, using 6 layout archetypes + a 4-font-family contrast system + investigative dossier details.

L1 Basic · Source registration onlyV1 Commit-PinnedDual-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
Control levels describe skill capabilities and suggested control measures; they do not represent quality or safety certifications, nor do they dictate usability. Usage decisions rest entirely with users and administrators. Different agent hosts apply varying constraints; do not assume hosts provide automatic protection. Third-party skill copyrights belong to their original authors. Use at your own risk.

1How It Works & Mechanism

The template itself contains no executable code: the loader reads frontmatter and body text from src/lib/templates/skills/<id>/SKILL.md, returning the body along with example content as LoadedSkill.

next/src/lib/templates/loader.ts
const raw = safeRead(path.join(dir, "SKILL.md"));
What is happening here: SKILL.md is the sole source of behavior — frontmatter is used for UI selector rendering (zh_name, emoji, aspect_hint, tags, example_*, etc.), and the raw body acts entirely as the prompt. The loader performs no semantic validation, dispatching whatever is written in the template.

Before dispatch, the host deterministically assembles the prompt: the template body is sandwiched between SHARED_DESIGN_DIRECTIVES and the [Input Format] / [User Content] blocks.

next/src/lib/templates/shared.ts
Wrap a per-template instruction body with the shared design directives and
What is happening here: The template defines only 'what this single deliverable looks like' (layout, rhythm, components), while shared directives enforce cross-template hard constraints — single-file HTML, prohibition of file tools, loading Tailwind and Google Fonts via CDN, factual integrity, and CJK-Latin spacing (Pangu spacing).

Shared directives frame hard constraints as explicit prohibitions for the agent and enforce content-driven quantity (numbers in the template serve only as reference minimums).

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
Later in the same file, another rule states: the number of output slides / frames / cards / sections is entirely dictated by the actual length and information structure of the [User Content]. This explains why this template class does not break when content grows: each section of content receives at least one card/section, with the template merely providing a layout pool.

Execution is handled by the coding agent CLI already installed and authenticated on the user's local machine: the host spawns a child process, passes the prompt to it, and streams HTML from stdout.

next/src/lib/agents/invoke.ts
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
What is happening here: The template skill provides only prompts; capabilities (including code generation and tool execution) originate from the existing permissions of the host CLI. The skill directory contains no script entry points, so tier grading evaluates only in-directory assets (host actions are not graded).

/api/convert is the execution path of the template: it bundles skill.body and user content into a prompt and passes it to invokeAgent.

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
Edit mode follows buildEditPrompt (minimal-diff editing, prohibiting file tools and requiring direct streaming of the complete HTML). Consequently, output artifacts maintain a stable format: single-file HTML, inline CSS/SVG, and external links restricted to fonts and charting libraries explicitly requested by specific templates.

The core implementation relies on a dual-lock system of 'narrative arc + layout archetypes': six axioms constrain the narrative (real problem first, failure required, epiphany before naming, etc.), and six layout classes govern pacing — any violation triggers a redo.

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
【六条公理 — 任一不过, 重做】
What is happening here: Deconstructing 'explaining a concept as a feature dossier' into verifiable constraints prevents the model from generating linear pop-science text. The axioms are testable (e.g., the concept name must not appear in the title, a failure milestone is mandatory, no meta-self-references), allowing verification via a self-check checklist.

Visual rhythm is strictly locked by the sequence of archetypes: .feature → .note → .archive → .cross → .hero → .closing, alternating between spacious and compact layouts, expanding at turning points, and concluding with central symmetry.

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
**节奏铁律**: 开阔(feature)→ 紧(note 错位)→ 紧(archive 横长)→ 爆(cross 200px)→ 开阔(hero)→ 静(closing 中心对称)。
Each archetype specifies concrete visual traits (e.g., the 200px Serif impact burst in .cross, the 0.5deg micro-rotated sticky note with perforated lines and red strikethrough in .note), ensuring rhythm adheres to a codified matrix rather than agent improvisation.

The mandatory simultaneous use of four font families elevates typography beyond a single monotonous typeface: Serif for titles/quotes, Sans for body text, Mono for numerals/footnotes, and Hand for handwritten marginalia.

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
【字族对比 — 必须四种同时使用】
SKILL.md explicitly lists fonts by family (Noto Serif SC / Noto Sans SC / JetBrains Mono or SF Mono / Caveat or Kaiti). These four families are core requirements rather than optional choices; omitting any triggers a redo verdict.

The color system is encoded as CSS variables restricted to ≤4 primary colors, with pure black #000 explicitly forbidden.

next/src/lib/templates/skills/article-sketchnote-editorial/SKILL.md
**禁止 `#000` 纯黑**
The same section provides a complete variable palette (--bg #FAF7EF / --paper / --ink-strong #0F0F0F / --ink / --ink-light / --red #B23A2C / --blue-deep #3D5A80 / --amber / --amber-soft), embedding the design system directly into the prompt.

The delivery contract specifies single-file HTML + inline CSS + Google Fonts CDN, no JS, a static vertical infographic, and a 1080px responsive-height container; the CDN constitutes an artifact-time reference (fetched when opened in a browser) with no outbound requests during skill execution.

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, 高度自适应。
What is happening here: Unlike the upstream ljg-card (which outputs PNG via playwright screenshots), this version directly outputs HTML. The trade-off is fetching fonts from Google Fonts (fonts.googleapis.com / fonts.gstatic.com, example.html:7-9). Under Batch 4 final criteria, this is classified as an artifact-time reference: it is not assigned a risk tier and is noted solely under reason and risks.

The tail of the skill explicitly discloses the adaptation source and version, allowing host sites to trace derivative provenance.

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)。
The section clarifies that the original produced PNG (via playwright) while the html-anything version outputs single-file HTML directly. It preserves the 6 axioms, 6 layouts, 4 font families, and visual rhythm of the original, maintaining full traceability for functional boundaries (no screenshots, no JS).

2Core Capabilities

01Six narrative axioms + 6-item self-inspection checklist (problem milestone / failure milestone / epiphany before naming / textual restraint / native Chinese expression / non-uniform rhythm)
02Six layout archetypes with corresponding visual signature specifications (feature/note/archive/cross/hero/closing)
03Typographic division of labor across four font families (Serif/Sans/Mono/Hand)
04Color system (≤4 primary colors + CSS variable specification + pure black prohibition)
05Decorative structural component library (kicker, drop-cap, byline, stamp, pull-quote, scribble, mega, epilogue, etc., including font sizes and rotation angles)
06Directly reusable HTML skeleton (magazine-head + 6 section/aside archetypes)
07Rhythm and padding reference table (whitespace scaling for padding and margin-top across sections)

4Recommended Governance & Evidence

Suggested Controls for Safe Operation
For Agent Runtime
Can be auto-loaded
For Administrators
Register source and version
Evidence & Triggers (File Paths & Excerpts)
  • SKILL.md: Pure prompt directives and rule specifications, containing no script execution or external side effects
Audit Notes: Grading is evaluated solely on the skill directory itself: article-sketchnote-editorial/ contains only SKILL.md + example.html + example.md, with no script entry points, no bundled CLI, no credential access, and no disk write operations. Execution generates zero outbound network traffic (example.html contains zero <script> tags; illustrations are entirely inline SVGs). SKILL.md:198 [Output Contract] references the Google Fonts CDN (Noto Serif SC / Noto Sans SC / Caveat / JetBrains Mono) with endpoints fonts.googleapis.com and fonts.gstatic.com (referenced in example.html:7-9). Under Batch 4 final criteria, this is classified as an **artifact-time reference**: fonts are fetched only when the generated HTML is opened in a browser; the skill executes without crawling, telemetry, asset uploading, or credentials, and therefore receives no risk tier, with endpoints documented here for transparency. Font loading failures gracefully degrade to fallback fonts (the template supplies local fallbacks including PingFang SC / Songti SC / Kaiti SC). Host wrappers (loader → assemblePrompt → local agent CLI spawn, preview iframe sandbox) are host behaviors excluded from tiering and recorded in verdict.risks.

5Second-Pass Verification

  • [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,另行记录)。

6Verdict & Scenarios

  • Transforms 'explaining a concept in one visual graphic' into a deterministic workflow: axioms (content) + archetype table (layout) + 6-item self-check + forbidden patterns list provide objective criteria across four levels, preventing model drift.
  • Visual rhythm is explicitly locked (open → tight → tight → burst → open → calm) with an accompanying padding table, avoiding the uniform gallery layout typical of AI-generated content.
  • The design system (color variables with ≤4 primary colors, four font families, decorative components with font sizes/rotation angles) is embedded directly into the prompt, ensuring reproducible outputs free of generic AI homogenization.
  • Examples serve as specifications: example.html (674 lines) implements every CSS class and provides a reusable HTML skeleton, giving the agent concrete implementation anchors rather than abstract descriptions.
  • Clear provenance: Adapted from ljg-card v2.3.0 in lijigang/ljg-skills, with explicit documentation of changes relative to upstream (PNG → HTML).
  • Best for: Ideal for turning a concept or disciplinary history into a high-tension visual longform graphic: popular science, education, lecture handouts, and editorial features; particularly well-suited for narratives where 'a concept is born out of failure' (the included example traces the naming history of 'Emergence').
    Not for: Not suitable for layout-only or short marketing copy (the template requires a complete narrative arc that short content cannot support across 6 milestones); not suitable for reports requiring interactivity or data charts (no JS, no charting libraries); not suitable for compliance copy requiring verbatim preservation of source text (the template rewrites copy to maintain narrative rhythm).
    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
    Agents automatically download and verify mirrors from this JSON guide.
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.