ドキュメント&知識ベース · nexu-io/html-anything

dashboard

固定サイドバー + トップバー + KPIグリッド + 1〜2個のグラフ

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、外部参照はフォントと一部のテンプレートで明示的に要求されるグラフライブラリのみに限定されます。

テンプレートは管理画面の単一ページを、固定左サイドバー + トップバー + KPIグリッド + 1〜2個の主グラフ + recent activityの5つのセクションに分割し、標準的なadmin/analytics単一ページであることを宣言します。

next/src/lib/templates/skills/dashboard/SKILL.md
【意图】标准 admin/analytics 仪表板单页。
ここでの処理内容:まず意図セクションで成果物の性格を定義し(単一ページ、標準管理画面)、5つのレイアウト項目で構造を固定することで、モデルが独自に情報アーキテクチャを決定する必要をなくしています。

サイドバーとトップバーの構成要素は固定されています:サイドバー = ロゴ + ナビゲーション + ユーザーフッター、トップバー = 検索 + 通知 + アバター。

next/src/lib/templates/skills/dashboard/SKILL.md
- Fixed left sidebar (logo + 导航 + 用户 footer)
このような要素チェックリスト形式の指示は実現性が非常に高いです:サンプルサイドバーにはbrand + nav(Overview/Funnels/Cohorts/… + Workspaceグループ化)とユーザー枠があり、トップバーには検索、通知、アバターの3点が定義されています。

メインエリアは、KPIカードグリッド(3〜5個)+ 1〜2個の主グラフ(折れ線/棒/エリア)+ 下部のrecent activityリストとして定量化されています。

next/src/lib/templates/skills/dashboard/SKILL.md
- Main: KPI cards 网格 (3-5 个)
サンプルは上限を採用しています:4つのKPI(MRR / Active accounts / Churn / P95 latency)にそれぞれup/downの変化マークが付与されており、3〜5個という指定および一般的なKPIカードの形態に合致しています。

サンプルは純粋なインラインCSS + システムフォント + インラインSVGで実装されており(Tailwindなし、フォントCDNなし、URLゼロ、<script>ゼロ)、グラフはライブラリを使わずSVG polylineの手描きで描画されています。

next/src/lib/templates/skills/dashboard/example.html
<svg viewBox="0 0 600 240" preserveAspectRatio="none">
ここでの処理内容:1〜2個の主グラフをインラインSVG折れ線にダウングレードすることで、オフライン利用可能・スクリプトなし・依存関係ゼロを実現しています。トレードオフとしてインタラクティブなツールチップはなく、対話型ダッシュボードではなく静的レポートに位置付けられます。

サンプルは1画面アプリケーションシェルの実装手法を採用しています:固定幅aside.sidebar + mainコンテンツエリア、KPIはgrid repeat(4,1fr)を使用し、900pxのブレークポイントで2列にフォールバックします。

next/src/lib/templates/skills/dashboard/example.html
.kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 28px; }
同一CSS内で@media (max-width: 900px)により2列へフォールバックさせており、デスクトップ1440をターゲットとしつつも狭小画面での使いやすさを維持していることを示しています。

サンプルでは各セクションのアンカーをdata-od-id(sidebar/topbar/kpis/…/recent-events)でマークしており、そのまま利用可能な構造化タグ規約となっています。

next/src/lib/templates/skills/dashboard/example.html
<div class="topbar" data-od-id="topbar">
ここでの処理内容:各セクションに不変のIDを付与することで、後続の編集(ホストの最小差分編集モードはDOMで位置特定)や手動での位置特定を容易にしています。この規約はdating-webなどの他のテンプレートにも共通して見られます。

2コア機能

01固定左サイドバー(ロゴ + グループ化ナビゲーション + ユーザーフッター)
02トップバー(検索 + 通知 + アバター)
03KPIカードグリッド(3〜5個、サンプルでは増減表記付き4個)
041〜2個のメイングラフ(折れ線/棒/エリア、サンプルではインラインSVG polylineによる折れ線を採用)
05下部recent activityリスト(サンプルではRecent eventsと新規アカウントの2つのテーブル)
06スクリプトなし/外部リンクなしのオフライン実装アプローチ(インラインCSS + システムフォント + インラインSVG)

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

安全運用のための推奨統制措置
Agent 向け
自動ロード可能
管理者向け
ソースとバージョンの記録
判定根拠(ファイルパスと抜粋)
  • SKILL.md: プロンプト指示とルールテキストのみで構成され、スクリプト実行や外部への影響はなし
監査ノート: 判定はskill自身のディレクトリ(SKILL.md + example.htmlの2ファイルのみ、scripts/なし、内蔵CLIなし、認証情報読み取りなし、ディスク書き込みなし)のみに基づきます:スクリプトエントリ、内蔵CLI、認証情報の読み取り、ディスク書き込み指示はいずれも存在しません。SKILL.md本文はランタイムでの外部エンドポイント導入を一切要求していません(レイアウトと要素リストのみを規定)。実行時に外部通信は発生しません。ディレクトリ内に実際に現れるエンドポイントは、example.html内のURLゼロ、<script>ゼロ(インラインCSS + システムフォント + インラインSVG)に限定され、ディレクトリ内にネットワークエンドポイントは存在しません。バッチ4最終基準に基づき、これらは**生成物期参照**(生成されたHTMLがブラウザで開かれた際にCDN/フォントを取得する形式であり、skill実行時にはスクレイピング、送信、素材転送を行わない)に該当するため評価対象外とし、ここではエンドポイントの列挙のみにとどめます。ホスト環境の挙動(loader→assemblePrompt→ローカルagent CLIのspawn、プレビューiframe sandbox)はホスト側の動作に属するため、verdict.risksに記録されます。

5二重目の独立検証

  • [ok] 「零外链」判定 — dashboard/ 目录内 http(s) 命中数为 0,<script> 命中数为 0;字体为 -apple-system/system-ui/mono,执行期与产物期均无外发(对比 data-report 的 jsdelivr 图表库为产物期引用)。
  • [ok] 布局条目覆盖度 — 侧栏/顶栏/KPI 网格/主图表/活动列表五条全部实现:KPI 取 4 个(区间 3-5 内),图表 1 张(区间 1-2 内),底部另有 New accounts 与 Recent events 两张表。
  • [ok] 图表实现方式 — SKILL.md 只要求 1-2 张主图表(折线/柱/区域),示例以 <svg viewBox="0 0 600 240" preserveAspectRatio="none"> + polyline 折线实现,属合规实现且无需脚本。
  • [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結論

  • 極めてシンプルかつ完全:20行のテンプレートで5つのレイアウトを提示し、成果物の境界(単一ページ管理画面)と要素リストを明確に定義して迅速な実装を実現。
  • オフライン対応の出力:サンプルはURL・スクリプトともにゼロで、インラインCSS + インラインSVGを採用。ダブルクリックですぐに開け、内部向けツールやオフラインデモに最適。
  • KPIカードには増減セマンティクス(.delta.up / .delta.downにgood/badカラーを適用)が含まれ、単なる数値の羅列にとどまらない。
  • 各ブロックにdata-od-idアンカーが付与されており、後続の最小差分編集(ホストのeditモード)での位置特定が安定。
  • 最適な用途: 内部管理用や運用ダッシュボード用の静的単一ページ(KPI概要、成長トレンド、最近のイベント一覧)を迅速に作成する場合に適しています。特に、オフラインでの起動や依存関係ゼロでの納品が求められるシナリオ(サンプルの構成ルート)に最適です。
    不向きな用途: インタラクティブなフィルタリングやドリルダウンが必要なBIダッシュボードには不向き(スクリプトなし、データバインディングなし)。データレポート形式の成果物には不向き(グラフライブラリと実データ厳守の規律を持つdata-reportを推奨)。モバイルファーストのシナリオには不向き(aspect_hintはデスクトップ1440向け)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload dashboard.tar.gz
    sha256: 41d2f22d7bf54bf4…
    Option B · Copy Guide for Agent
    install.json
    Agent はこの JSON ガイドから自動的にダウンロードして検証します。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.