1实现原理 · 为什么它能做到
实现方式是把结构化 deck 数据装入固定模板 SloganTemplate.html,由一个构建脚本产出单文件 HTML;不允许在产物末尾补 CSS 或另写渲染分支。
skills/ljg-present/SKILL.md
使用 Tools/BuildDeck.ts 把数据装入 SloganTemplate.html;不在产物末尾补 CSS,不另写渲染分支。
注:这里在做什么:把「渲染」收敛为一个模板 + 数据契约,保证每次产物同源、可校验,而非一次性手写 HTML。
分两种内容契约:faithful(保真排版,保留原文字句/顺序/表格/代码/源图)与 editorial(演讲编排,可在授权范围内改写上屏文字),按用户是否授权提炼决定。
skills/ljg-present/SKILL.md
| faithful 保真排版 | 已有投影提纲;未授权改写 | 原文字句、顺序、表格、代码和源图 |
注:这里在做什么:把「能不能改作者内容」变成显式契约;仅有「做成演示」不自动授权删改。
主题按优先级解析:显式选择 > 明确的 theme_* 视觉标签 > 默认 hacker-dark;普通话题/用途标签不参与主题选择。
skills/ljg-present/SKILL.md
显式选择 > 明确的 theme_* 视觉标签 > hacker-dark。普通话题、用途标签不参与主题选择。
注:这里在做什么:固定配色决策链,避免 share/talk 之类标签触发错误主题。
版式由讲述功能(语义角色)决定,不由行数决定;两行仍可以是同一个判断,行数只参与字号与分页。
skills/ljg-present/SKILL.md
两行可以是一个判断。role 由讲述功能决定;行数只参与字号与分页。
注:这里在做什么:把「选哪一版」交给语义而非排版巧合,支撑巨句/对照/关系/证据/章节五类原型。
图表契约:源里有数据、顺序或关系才画;不补数值曲线,也不把并列/相关擅自升级成因果箭头。
skills/ljg-present/ChartSpec.md
图让关系直接可见。源中有数据、顺序或关系才画;不补数值曲线,不把并列或相关性擅自升级为因果箭头。
注:这里在做什么:规定图的准入条件与箭头语义,防止为了好看而虚构关系。
Unicode 关系图用等宽网格画连接线,中文节点独立按自然字距排版,不把中文逐字塞进固定字符格。
skills/ljg-present/SKILL.md
Unicode 连接线使用等宽网格,中文节点独立排版。不要把中文逐字塞进固定字符格。
注:这里在做什么:解决中文与等宽线条共存的对齐问题,保证回路/箭头可读。
静态校验不够:构建工具固定模板,另用浏览器探针核对实际绘制页面,截图再检视觉主次。
skills/ljg-present/SKILL.md
静态通过不等于画面成立。构建工具固定模板;浏览器探针核对实际绘制的页面,截图另检视觉主次。
注:这里在做什么:把「数据/模板合规」与「画面真的成立」分两层验收。
交付是单文件离线 HTML:字体内嵌、图表内联、零动效,并内置讲稿层与翻页笔键位。
skills/ljg-present/SKILL.md
一个 ~/Downloads/{title}.html,字体内嵌,图表内联,离线、零动效。
注:这里在做什么:定义产物形态与交互键位(方向键/Space/F/N),便于现场用翻页笔直接放映。
视觉语言由设计系统约束:暖白/墨黑承担内容,琥珀只用于一个重点或章节边界,不给所有分类同时着色。
skills/ljg-present/DesignSystem.md
默认暖白或墨黑承担内容。琥珀用于一个重点、章节边界或明确状态,不给所有分类同时着色。
注:这里在做什么:用一套明确的配色/线条纪律保证每页只有一个主角。
2核心能力
01提纲/讲稿 → 单文件离线 HTML(BuildDeck.ts + SloganTemplate.html,数据驱动)
02faithful / editorial 双内容契约与授权纪律(editingBasis、sourceIds 回源)
03五类语义版式(巨句/对照/关系/证据/章节)+ sequence/quotation
04原生图表契约(bar/line/flow/compare),数值有限、零基线、x 递增等硬规则
05Unicode 关系图(columns/rows 布局 + nodes/edges/via 路由,中文节点独立排版)
06五套主题与解析优先级(hacker-dark 默认;-b/-r/-y 等)
07讲稿层与翻页笔交互(notes 按 N 查看;方向键/Home/End/F 等)
08模板一致性静态校验(ValidateDeck.ts:只允许数据与内嵌字体不同于当前模板)
09浏览器探针 + 截图视觉复核(ProbeDeck.js 在隔离浏览器中核对实际绘制页面)
3外部依赖
| 类型 | 依赖 |
|---|---|
| cli | bun(运行 BuildDeck.ts / EmbedAssets.ts / ValidateDeck.ts;BuildDeck 内部 spawn bun 子进程) |
| cli | 隔离浏览器(加载 ProbeDeck.js 做运行时绘制核对;由宿主提供,非脚本外发) |
4风险提醒 风险提醒:蓝色 · 知晓即可
风险提醒:蓝色 · 知晓即可
- 视觉质量仍依赖模型选版式与排版 — 探针只测字号/边界/文本与交互,是否「一眼找到主角、有可辨停顿」靠截图人工判断;复杂关系图节点过多时 SKILL.md 要求拆分语义,否则易重叠。
- ProbeDeck 依赖隔离浏览器 — 运行时探针需宿主提供隔离浏览器(Interceptor);不可用时正文要求保留产物并如实报告未完成视觉复验,改用主浏览器属禁止行为,用户需接受这一步可能缺失。
- 构建链依赖 bun — BuildDeck 会 spawn 内部 bun 子进程跑 EmbedAssets/ValidateDeck;无 bun(或无 npx 兜底)时构建链断裂,只能手改 HTML,模板一致性校验同时失效。
- editorial 模式改写有越界风险 — 授权范围靠模型判断「已授权提炼/重绘」与记录 editingBasis;若把模糊请求误判为授权,可能改写作者原意,需要人工在交付前核对 sourceIds 回源。
- 校验器用 new Function 编译产物脚本 — ValidateDeck 对模板产物脚本做语法编译(本地构建期、来源为自身模板);如果模板被改写,这一步会在本机 JS 引擎执行编译,属需知情的本地行为(不判级)。
蓝色,正常使用。判级对象仅本 skill 目录:自带 BuildDeck.ts / EmbedAssets.ts / ValidateDeck.ts / ProbeDeck.js,全部本地读数据、写 HTML(Bun.write / writeFileSync),并 spawn 内部 bun 子进程完成内联与校验——属「仅本地脚本/CLI 与本地读写」。§3 的 6 条 URL 命中经逐条核实全是安全字面量:`http://www.w3.org/2000/svg` 命名空间、回归样例里的 `https://example.com`/`fetch("literal text")`、ValidateDeck 测试用的 `<svg>fetch('x')` 字面量——非真实外发;「憑證」3 条命中实为模板 token/占位符相关词,非凭证读取;「沙箱」1 条是 ValidateDeck 用 `new Function` 编译自身产物脚本做语法检查。字体内嵌在产物里、无产物期 CDN 外链,故 network_calls/credential_reads 为空,判 blue(对照 baoyu-diagram 的本地脚本类先例)。
5第二遍独立确认
- [ok] URL 命中均为安全字面量 — 6 条:w3.org SVG 命名空间 1 条、RegressionDeck.json 与 ValidateDeck.ts 测试字面量 5 条;无 fetch/curl 对真实端点,network_calls=[] 成立。
- [ok] 「凭证」命中非凭证读取 — 3 条命中均为 token/模板一致性(canonical-template、{{DECK_META_JSON}} 占位符)与 help 文案,不读 env/keychain/文件;credential_reads=[] 成立。
- [ok] 沙箱命中为构建期语法检查 — ValidateDeck.ts 用 `new Function(script)` 对自身模板产物做 JS 语法编译(捕获异常记 javascript-syntax),非对不可信外部代码的任意执行;已写入 injection_surface/reason。
- [ok] 写盘面与交付声明一致 — BuildDeck 用 mkdir + Bun.write 写输出 HTML;EmbedAssets writeFileSync 内嵌字体/图片;SKILL.md 交付声明为 ~/Downloads/{title}.html,一致。
- [ok] 无产物期 CDN 字体外链(未夸大离线) — SKILL.md 声明「字体内嵌…离线、零动效」,Fonts/ 内含 IBM Plex Mono ttf 与 OFL,EmbedAssets 负责内联;无不依赖远端字体的证据缺口。
- [ok] 授权契约与编辑依据真实存在 — SKILL.md 两种内容契约表与「仅有『做成演示』不自动授权删改」「记录 editingBasis…sourceIds 回到完整来源」为原文,editorial 约束非臆测。
6结论
适合:适合把 Org/Markdown 提纲或已授权提炼的讲稿做成 Unix 气质单文件演示:技术分享、内部评审、需要对投影距离与主次有强控制的现场放映;也适合想保留「数据驱动 + 可复现」的演示生产流程。
不适合:不适合未经授权改写作者内容,也不适合生成企业 PPT(description 的 NOT FOR);不适合要 PowerPoint 文件、要花哨动效/模板库、或无法提供隔离浏览器做视觉复验的场合。
安装 agent 直装可复制
① 本站镜像 更新 2026-10-10
方式 A · 人下载镜像包下载 ljg-present.tar.gz
sha256:
方式 B · JSON 格式安装指南,复制给 agentc5877f065fa8406a…agent 读 JSON 指南后会自动从本站下载安装,无需更多说明。
② 上游 GitHub · 原始来源
来源信息 GitHub 原始
作者 / 仓库lijigang / lijigang/ljg-skills
原始 GitHublijigang/ljg-skills ↗
本 skill commit
9e75497a95许可MIT(仓库根 LICENSE)
本站信息
收录日期2026-09-06
分类基础工具与工作流
侦查报告AI 侦查 · 2 遍 · 2026-09-06
本站镜像与 GitHub 原始是不同来源:本站锁定 commit 快照经 /r2 分发;GitHub 为实时上游,内容可能已更新。