デザイン&モーション · nexu-io/html-anything

deck-simple

汎用 horizontal-swipe HTML deck、マガジン風(magazine)のトーンは不要

L3 ネットワーク · ドメインとキー範囲を宣言V1 コミット固定ネットワーク通信Dual-pass Audit
Author nexu-ioGitHub nexu-io/html-anything ↗Stars 8827License Apache-2.0(工作副本根目录 LICENSE 文件 = Apache License Version 2.0;GitHub API spdx_id=Apache-2.0。注意:skill 目录本身不含独立 LICENSE,许可来自仓库根;第三方来源模板在 README 另有署名说明)Commit 553ed98c28
管理レベルは Skill の能力と推奨統制措置を示すものであり、品質や安全性の認証、利用可否の判定ではありません。使用の可否はユーザーおよび管理者が決定します。Agent 環境によって制約が異なるため、自動保護を仮定しないでください。第三者製 Skill の著作権は原著作者に帰属し、利用リスクは利用者が負います。

1仕組みと動作原理

本スキルは html-anything の「テンプレートパッケージ」である:frontmatter はセレクターがメタデータを取得するために用いられ、SKILL.md 本文(frontmatter 以降の body)は loader によってそのまま読み出され、モデルへの指示として扱われる。

next/src/lib/templates/loader.ts
const { fm, body } = parseFrontmatter(raw);
本テンプレートの本文は 13 行 / 651 バイト(本バッチで最も軽量な部類の一つ)。frontmatter は parseFrontmatter により fm/body の 2 つに分割され、ディレクトリ内に実行スクリプトは一切関与しない。

実際にモデルへ送られるプロンプト = 共有デザイン指示 + 本テンプレート本文 + 【入力フォーマット】+【ユーザーコンテンツ】。共有指示には上書きルールも含まれ、テンプレート内のページ数やレイアウト数値が上限ではないことを明記している。

next/src/lib/templates/shared.ts
return `${SHARED_DESIGN_DIRECTIVES} ${opts.body.trim()}
同ファイル内の直後にある上書きルールには一字一句次のように記されている:テンプレートは「使用可能なレイアウト / スタイル / 配色 / フォント / コンポーネントライブラリ」のみを定義し、スライド / フレーム / カード / セクションの数は**定義しない**。

成果物の規律は共有指示によって厳格に制約される:エージェントによるファイルシステムツールの使用は一切禁止され、HTML は必ず stdout テキストストリームとして出力され、フロントエンド側でディスクに保存されなければならない。

next/src/lib/templates/shared.ts
- **禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。不要把 HTML 写到任何
本テンプレート自体はディスクへの保存方法を宣言しておらず、完全にこの共有制約に依存している。

横スクロール切り替えは CSS scroll-snap で実装:example.html の body は scroll-snap-type: x mandatory を使用し、サードパーティ製ライブラリには一切依存しない。

next/src/lib/templates/skills/deck-simple/example.html
scroll-snap-type: x mandatory;
同ファイルには他に .slide { flex: 0 0 100vw; … scroll-snap-align: start; } などのスタイル群が含まれ、スワイプ操作の感触は純粋に CSS で実現されている。

ページ数は自己決定:表紙(cover)+ N 枚のコンテンツページ + まとめ。短いコンテンツなら 6〜10 枚から、長いコンテンツならそれ以上となり、1 ページにつき 1 つのコア情報 + 1 枚の画像/グラフのみとする。

next/src/lib/templates/skills/deck-simple/SKILL.md
- 每页一个核心信息 + 1 张图 / 1 个图表
同セクションの「- 上部 progress bar」により、派手なナビゲーションコントロールの代わりに全体的な進捗感が提供される。

キーボードナビゲーションと hash の同期は本文で規定:← / → による切り替え + hash 同期により、特定のページを共有しやすくする。

next/src/lib/templates/skills/deck-simple/SKILL.md
- 键盘 ← / → 切换 + hash 同步
deck-open-slide-canvas の同様の要件と一致しており、リポジトリ全体の deck ファミリー共通の規約であることを示している。

ページコンテナはリポジトリ全体の deck 規約に準拠:example.html の 6 つの section はすべて slide を含む class を持つ(data-slide-id ではなく data-od-id を使用)。

next/src/lib/deck.ts
const dataId = extractAttr(openTag, "data-slide-id");
deck.ts は data-slide-id が取得できない場合、1-based の連番にフォールバックするため、このサンプルもページごとの解析やエクスポートが可能である。

2コア機能

01汎用 horizontal-swipe 構造:表紙 + N 枚のコンテンツページ + まとめ(N はコンテンツの長さに応じて決定)
021 ページにつき 1 つのコア情報 + 1 枚の画像/グラフ(情報密度の上限を強制)
03上部 progress bar による進捗感の提供
04キーボードの ← / → による切り替え + hash 同期(特定ページへのリンク共有が可能)
05成果物サンプルは純粋な CSS scroll-snap による横スクロール切り替え、リモートリソースゼロ
06明確な否定的制約:マガジン風(magazine)のトーンを避ける(エディトリアルデザインによる過剰な主張を防止)
07CLI キーワードルーティング:simple / deck / 简单 / 简洁 / 简约 → deck-simple

3外部依存関係

KindDependency / Endpoint
cli宿主本机 agent CLI(应用侧 spawn;非本 skill 指令)
package无第三方包/字体依赖(产物样例自包含)

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

安全運用のための推奨統制措置
Agent 向け
アクセス可能ドメインとキー範囲を宣言
管理者向け
最小権限のキー、リクエストログを保持
判定根拠(ファイルパスと抜粋)
  • 网络端点: 外部ネットワークアクセスの宣言:ディレクトリ内に外部エンドポイントなし:example.html に http(s) URL なし、リモート <script> なし、@import なし。インライン <script>(ナビゲーション)のみ
監査ノート: 。判定対象=skill ディレクトリ(SKILL.md + example.html):実行可能スクリプトファイルなし、認証情報読み取りなし、ディスク書き込み指示なし、かつディレクトリ内に外部エンドポイントなし(example.html に URL/リモートスクリプト/@import なし、フォントはシステムスタックを使用)。SKILL.md 本文には URL なし、CDN 要件なし。risks で唯一留意すべきは example.html にインライン <script>(スライド切り替えとプログレスバーのロジック)が含まれている点だが、これはプレビュー成果物内の静的コードであり、skill 指示ではなく、評価レベルを変更するものではない。本リポジトリの html-anything テンプレートはバッチ 4 の基準に基づき一律 🟢 緑レベル判定:判定対象=skill 自身のディレクトリ。ホストシェル(loader.ts/assemblePrompt/ローカル agent CLI/プレビュー iframe)や example.html 内のフォント・CDN 参照は成果物フェーズの動作(ブラウザによって取得され、skill 実行時には送信されない)に属するため、reason/risks に記載するのみとし、判定には影響しない。

5二重目の独立検証

  • [ok] 文件清单(2 个文件,无脚本文件) — SKILL.md(651B) + example.html(7489B);无 .sh/.py/.js/.ts。
  • [ok] 正文零端点复核 — SKILL.md 内 http/CDN/fetch/script 零命中。
  • [ok] 目录内端点自证(零命中) — example.html 全文件无 http(s)://、无 @import、无远程 <script>;仅有内联 <script> 与系统字体栈。
  • [ok] 无凭证读取 — key/secret/token/.env 零命中。
  • [ok] 无写盘指令 — SKILL.md 无 write/save 类指令;shared.ts 明令禁文件工具。
  • [ok] 产物的横向翻页为纯 CSS — example.html「scroll-snap-type: x mandatory;」与 .slide 的 scroll-snap-align 定义,无需第三方库。
  • [ok] official_desc 逐字命中 — 与第 6 行 description 引号内文本一致。
  • [ok] CLI 路由行存在 — cli/src/skills-matcher.ts 第 62 行 simple 行逐字命中。

6結論

  • 徹底した抑制:外部依存ゼロのサンプル成果物(システムフォントスタック + インライン CSS/スクリプト)であり、あらゆる環境でダブルクリックして開くことができる。
  • 否定的制約(マガジン風のトーンを避ける)によって境界を定義し、肯定的な形容詞よりも効果的にスタイルのブレを防ぐ。
  • 情報密度に厳密な基準:1 ページにつき 1 つのコア情報 + 1 枚の画像/グラフとし、長文資料の詰め込みを直接抑止。
  • 完結したナビゲーション体験:キーボード ← / → + hash 同期 + 上部 progress bar。
  • 最適な用途: 「まずはクリーンな deck を作成したい」汎用的なシナリオに最適:ピッチ、概要、学習ノート、社内報告など。テーマを選ばず、外部依存ゼロで、オフラインでの直接閲覧やエクスポートが可能。他の deck テンプレートの比較ベースラインとしても適している。
    不向きな用途: 強い視覚的アイデンティティが求められる場面には不向き(事前設定されたパレット/フォントなし)。雑誌のような長文読解には不向き(本質的に反マガジン的)。スピーカーノートが必要なプレゼンテーションには不向き(aside.notes メカニズムなし)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload deck-simple.tar.gz
    sha256: eb7207bfa03a44b8…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.