文档与知识 · nexu-io/html-anything

dating-web

消费感配对仪表板: 信号 ticker + KPI + 30 天柱状 + 趋势

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 不做语义校验,模板写什么就下发什么。

下发前宿主固定拼装 prompt:模板正文夹在共享设计指令 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、内容真实性、中文盘古之白。

共享指令把硬约束写成对 agent 的显式禁令,并强制内容驱动数量(模板里的数字只作参考下限)。

next/src/lib/templates/shared.ts
**禁止使用 Write / Edit / MultiEdit / Bash / Create / 任何文件系统工具**。
同文件下文还有一条:输出的 slide / frame / card / section 数量完全由【用户内容】的实际长度和信息结构决定——这解释了为什么本类模板不因内容变长而失效:每段内容至少一张卡/一节,模板只提供版面池。

真正执行的是用户本机已安装并登录的编码 agent CLI:宿主 spawn 子进程,把 prompt 交给它,HTML 从 stdout 流式捕获。

next/src/lib/agents/invoke.ts
import { spawn, type ChildProcessWithoutNullStreams } from "node:child_process";
这里在做什么:模板 skill 只提供提示词,能力(含写代码、跑工具)来自宿主 CLI 的既有权限;skill 目录自身没有任何脚本入口,因此判级只看目录内资产(宿主行为不计档)。

/api/convert 是模板的执行路径:它把 skill.body 与用户内容组装成 prompt 后交给 invokeAgent。

next/src/app/api/convert/route.ts
prompt = assemblePrompt({ body: skill.body, content, format });
编辑模式另走 buildEditPrompt(最小化差异编辑,禁用文件工具、要求直接流式输出完整 HTML),因此本类模板的产物形态稳定:单文件 HTML、内联 CSS/SVG,外链仅字体与个别模板显式要求的图表库。

模板定位为消费产品感的数据墙,靠 editorial typography(衬线展示体 + 等宽数字)与克制高亮色同常规后台区分。

next/src/lib/templates/skills/dating-web/SKILL.md
【意图】消费产品感的数据墙, editorial typography + 克制的高亮色。
示例用 DM Serif Display / DM Serif Text + IBM Plex Mono 三字族实现该观感:品牌名用 800 斜体衬线、数字用等宽,页面底色为暖纸色 #f4ede0。

布局五段:Left rail 导航 → Ticker bar 实时信号 → Headline KPIs → 30-day mutual-matches 柱状图 → Match-rate 趋势 block。

next/src/lib/templates/skills/dating-web/SKILL.md
- Ticker bar 实时信号
这里在做什么:把消费感落成具体零件——一个信号条(示例为静态文本条 + NEXT TIER 门槛提示),让页面像产品而非报表。

头部 KPI 区实际做成 3×3 九宫格统计墙(Mutuals on file / Replies in 24h / Communities / Match rate / 2nd dates / Exes…),每格带一句口语化注解。

next/src/lib/templates/skills/dating-web/example.html
<div class="label">Match rate</div>
SKILL.md 只说 Headline KPIs,示例自由扩展到 9 格并以 .good/.bad 着色、.note 附一句带态度的解释(如 too fast. wait 4–6h. they notice.),是命名 + 文案共同营造消费感的做法。

30 天柱状图以纯内联 SVG 手工绘制(多根 rect,最后一根用高亮色 #c14a2b 强调),无图表库、无脚本。

next/src/lib/templates/skills/dating-web/example.html
<rect x="630" y="60" width="14" height="160" fill="#c14a2b"></rect>
这里在做什么:无 JS 即可呈现 30 天互配的柱状节奏;高亮最后一根既指当前值也承担视觉焦点,无需交互。

示例在窄屏把左栏折叠为顶部条(aside.rail 在媒体查询里改为无右边框、加下边框),说明虽定位桌面也做了一档降级。

next/src/lib/templates/skills/dating-web/example.html
aside.rail { border-right: none; border-bottom: 1px solid var(--ink); }
同段媒体查询外还保留 rail 的 brand(mutuals. + 头像位)与导航列表(mutuals & communities 等),布局语义在降级后不丢。

页面保留版本号位(mutuals.v0.6.1)与「NEXT TIER AT 2,080 MUTUALS」等产品化细节,属消费产品的仿真元素。

next/src/lib/templates/skills/dating-web/example.html
<div style="opacity:0.7;margin-top:2px;">mutuals.v0.6.1</div>
这里在做什么:版本号、等级门槛这类产品壳细节让数据墙读起来像真实 app 的界面,而非报表截图——这是本模板与 dashboard 的根本差别。

2核心能力

01左侧 rail 导航(品牌 + 头像位 + 导航列表)
02Ticker bar 信号条(示例含 NEXT TIER 门槛提示)
03Headline KPIs(示例扩展为 3×3 九宫格,带 good/bad 语义色与口语注解)
0430 天互配柱状图(内联 SVG 手绘,含高亮当前值)
05Match-rate 趋势块
06编辑式字体系统(衬线展示体 + 等宽数字)营造消费感
07窄屏降级(rail 折叠为顶部条)

4管控建议与判定依据

建议配套管控措施
面向 Agent
可自动加载
面向管理者
登记来源与版本
判定依据(文件路径与关键语句摘要)
  • SKILL.md: 纯提示词指令与规则文本,无脚本执行与外部影响
审计说明: 。判级只依据 skill 自身目录(仅 SKILL.md + example.html 两个文件,无 scripts/、无自带 CLI、无凭证读取、无写盘):无脚本入口、无自带 CLI、无凭证读取、无写盘指令;SKILL.md 正文未要求运行时引入任何外部端点(只写布局段与观感要求;字体族名本身不是端点)。执行期不发生任何外发。目录内实际出现的端点仅存在于 fonts.googleapis.com 与 fonts.gstatic.com(example.html:7-9 的 DM Serif Display / DM Serif Text / IBM Plex Mono),按批4 终版口径属**产物期引用**(生成的 HTML 由浏览器打开时拉取 CDN/字体,skill 执行时不抓取、不上报、不传素材),故不判级,仅在此列出端点;宿主壳(loader→assemblePrompt→本地 agent CLI spawn、预览 iframe sandbox)同属宿主行为,记入 verdict.risks。

5第二遍独立确认

  • [discrepancy] KPI 数量与 SKILL.md 的关系 — SKILL.md 仅写 Headline KPIs 未给数量;示例实现为 3×3 共 9 格(含 Exes in your circle / Shared blocks / Logged-off hrs 等生活化指标)。属示例扩展而非模板要求,详情页不应把 9 格当作固定规格。
  • [ok] 「无脚本」判定 — dating-web/ 内 <script> 计数为 0;30 天柱状图以 <rect> 手工排布(含高亮柱 fill="#c14a2b"),无图表库、无 Canvas。
  • [ok] 端点与判级 — 目录内 http(s) 仅 fonts.googleapis.com(css2 样式表)与 fonts.gstatic.com(preconnect),均为产物期引用;SKILL.md 只写字族风格要求、未点名端点,执行期零外发,维持 green。
  • [ok] 窄屏降级是否存在 — 媒体查询内 aside.rail 改为 border-right:none + border-bottom,左栏折叠为顶部条,与桌面 1440 定位不冲突,属可用的移动端降级。
  • [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结论

  • 把消费感落成可执行零件(ticker 条、口语化 KPI 注解、版本号、等级门槛),数据墙因此像产品界面而非报表。
  • 零脚本完成全部图表(手工 SVG rect + 高亮当前值),离线可读,字体之外零外链。
  • 编辑式字体系统(DM Serif Display/Text + IBM Plex Mono)与暖纸底色构成鲜明气质,与 dashboard 类模板不会撞脸。
  • KPI 带语义色与态度文案(.good/.bad + note),比纯数字罗列更贴近消费产品表达。
  • 适合: 适合做有品牌气质的消费产品数据墙:社区/社交/配对类产品的运营看板、增长复盘、年度总结页;也适合作为数据页的气质备选(当 dashboard 的系统字族路线太像内部工具时)。
    不适合: 不适合严肃企业报表(语气与配色偏消费/杂志化,指标注解带主观评论);不适合需要严谨口径与来源标注的报告(应选 data-report);不适合需要交互筛选的数据探索场景(无脚本、无数据绑定)。
    Install Agent-Ready
    ① Verified Mirror 2026-09-15
    Option A · Direct DownloadDownload dating-web.tar.gz
    sha256: e3773d07ae610754…
    Option B · Copy Guide for Agent
    install.json
    agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
    ② Upstream GitHub
    GitHub Repo ↗
    Pinned to commit 553ed98c28.