dsh-launch-card:从本地仓库产物生成发布卡片,并 lint 无法证实的说法

前言

在 DSH(DeepSeek Harness)里做插件或工具仓库时,发布环节往往要手工整理 hero 图、特性列表和双语文案。README 里容易混入星标、性能倍数、「企业级」等无法在仓库内核实的表述,一旦写进对外素材,后续很难追溯哪句来自哪一行。

下面介绍的 dsh-launch-card(维护者 dingchenhui0618-arch)把输入限定为本地的 README.md、package.json 与可选截图,生成 SVG、HTML 与中英文案;写出前用规则表删掉无法从本仓库产物证实的断言。它同时提供 CLI 与 DSH 插件形态:Web GUI 对话视图里多一个「发布卡片」面板,可在会话里重新生成并查看判定。分类为工作流;社区目录见 SkillHub 插件页(与 DeepSeek / 幻方无官方从属关系,仅为社区收录站点)。

这是什么

dsh-launch-card 是一个发布卡片生成器:从指定本地仓库目录读取真实产物,渲染 hero 图、特性网格与双语发布文案,并在输出前对断言做 lint。核心约束是事实优先——项目名、版本、license、简介、特性、安装片段均来自 README.md 与 package.json;缺失字段不渲染、不补占位。图像产物为 SVG 与自包含 HTML,不合成 PNG;package.json 的 dependencies 为空,仅使用 Node 内置模块。当前版本 0.1.0,许可证 MIT,要求 Node >= 20。

核心功能

生成产物

一次运行可得到下表所列文件(支持 --theme dark,light):

文件 内容
hero.dark.svg / hero.light.svg 项目名、版本、一句话简介、license
features.dark.svg / features.light.svg 特性网格,逐条带来源行号
copy.zh.md / copy.en.md 卖点、特性、安装片段、行动号召与来源标注
card.html 自包含预览:hero、特性网格、事实表、安装片段、截图引用、来源表、双语文案
lint-report.json 命中规则的条目及被删内容,含 why
manifest.json 输入与输出文件的 sha256、生成时间、工具版本
summary.json 结构化事实与统计,供脚本消费

可追溯与双语

summary.json 中每条特性为 {text, source:{file,line}};文案里跟「来源: README.md#L42」形式标注;card.html 含来源表。没有来源的句子不会被渲染——渲染器只消费带来源的结构化模型。

copy.zh.md 与 copy.en.md 由同一份模型渲染,条目数一致;骨架文案(小节标题、表头等)中英各写一份,事实文本从仓库原样引用,不做机翻。英文文件中的正文仍保持仓库原文语言(中文仓库则正文仍为中文),仅框架为英文——这是 README 中写明的产出边界。

断言 lint

规则实现在 src/lint.js。无法从本仓库产物证实的说法在写出前被拦下,命中整行不写入产物,理由写入 lint-report.json,措辞统一为「无法从本仓库产物证实」。规则摘要如下:

rule 拦什么
stars 星标 / 收藏量
popularity 用户量、下载量、MAU 等
sla SLA、uptime、可用性百分比(除非存在 SLA.md 等约定文件)
performance-claim / performance-numbers / latency-claim 性能对比、带数字的耗时、吞吐 / RPS(须有本仓库 benchmark 产物)
ranking #1、leading、第一 等排名表述
endorsement 奖项、媒体报道等背书
business-claim 融资、营收、定价承诺
readiness-claim production-ready、battle-tested、企业级(须满足 CI+测试目录或 Docker/Makefile 等条件才放行)

MIT、版本号、dependencies 为空、测试目录里可数的用例数等能在仓库内找到依据的内容不会被拦。README 注明两处固定放宽:标题行若点名某条规则则整行跳过;以及元语句标记后的行跳过——正常要写进产物的文案不走这两条路径。

可复现输出

manifest.json 记录每个输入与输出的 sha256。使用 --now <ISO> 或环境变量 SOURCE_DATE_EPOCH 可使整次输出字节一致。

DSH 插件形态

  • host 半区:挂载 /dsh-launch-card 路由。
  • client 半区:在对话视图注册「发布卡片」Tab,便于在 GUI 里重新生成并查看判定。

插件骨架参考本地 dsh-warden 的布局与构建方式;本插件无 LLM、无 tools/pre-execute 钩子,实质为纯函数生成器加 lint 规则表。

安装与启用

CLI 未发布到 npm,可在克隆仓库后直接运行(资料原文如此说明)。

仅 CLI:

node scripts/launch-card.mjs . --out examples

作为 DSH 插件加入 profile:

dsh plugin --profile <你的 profile> add <本仓库路径或 github:dingchenhui0618-arch/dsh-launch-card>

安装前请自行阅读仓库源码与 LICENSE,确认符合你的合规要求。插件在 当前 dsh 进程权限 下运行,添加路径或远程引用等同于信任该代码。

典型用法

命令行接口:

node scripts/launch-card.mjs <仓库目录> --out <输出目录> [--lang zh,en] [--theme dark,light] [--now <ISO>]

对本插件仓库自身生成示例产物(开发文档中的可复现命令):

node scripts/build.mjs
node --test
node scripts/launch-card.mjs . --out examples --now 2026-01-01T00:00:00.000Z

examples/ 为对上述仓库跑一次 CLI 的真实输出,非手写静态页。

适用场景与注意

适合: 需要为 Git 仓库快速产出可 diff、可复现的发布素材(SVG + Markdown + HTML),且希望对外文案与 README / package.json 对齐、并自动剔除无法在仓库内证实的营销句式的团队或个人。

不适合或需知悉的边界(均来自 README「它不做什么」):

  • 不合成 PNG;截图仅从 README 或 screenshots.json 引用进 card.html。
  • SVG 换行依赖字符宽度估算,未承诺跨浏览器字体效果。
  • 不替你核实仓库外的真实世界事实,只保证产物内不出现「本仓库无法证实」的断言。
  • 不保证英文正文地道;若要英文事实译文,需在仓库 docs/ 等位置由人提供(当前工具未实现该流程)。

链接与许可

经过上面的步骤,你可以在 DSH 工作流里把「发布卡片」和本地仓库事实绑在一起:生成、预览、lint 报告同目录落盘,减少手工攒素材时混入无法追溯断言的风险。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye