量表文档转作答网页工具

SKILL开发

原名 scale-new

开发 未标注权限 许可证不明确
安装这个技能

提交量表原始文档后,抽取题目与选项并回读确认,生成可填写的作答页面,支持条件跳题与自定义判定规则,后台计分但不显示结果。

一句话选型结论

按资料字段整理

量表文档转作答网页工具是开发类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类开发 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_6b6e1800/scale-new
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

开发
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_6b6e1800仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验2026-11-06上游最后核验时间 · 数据更新 2026-11-06
正文体量54.6 KBSKILL.md 原文大小,越大说明说明书写得越细

能做什么

0 项能力
上游给出的能力概览与适用场景
量表文档转网页校对题目与选项设置条件跳题规则

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
写代码与改 bug

按需求补代码、定位并修掉报错。

读仓库与生成改动

让模型读懂项目结构,再给出可落地的改动。

跑测试与排查故障

按现象排查问题,补测试用例并复跑。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在开发场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
量表文档转作答网页工具当前 未标注权限 未标注 未标注 未标注 有
技能审查员 浏览器控制 ClawHub 市场 877.9 万 OpenClaw 有
Vercel React 最佳实践 浏览器控制 GitHub 仓库 849.1 万 Codex、Claude、Cursor 有
GitHub 代码协作 联网访问 ClawHub 市场 763.3 万 OpenClaw 有
网页设计指南 联网访问 GitHub 仓库 668.6 万 Codex、Claude、Cursor 有
本体论 只读 ClawHub 市场 663.7 万 OpenClaw 有

SKILL.md 全文

54.6 KB
模型实际读到的说明书原文,来自技能仓库

scale-new · 量表文档 → 量表页面 + 报告提示词

> 一句话:用户给一份量表原始文档,你产出能填、能算、但不展示结果的量表页面 + 驱动 AI 写报告草稿的提示词
> (文档给了推送时间节点时,再多一份推送 SOP)。
> 一个 Excel 有几个有内容的 sheet,就是几个量表 —— 数量先确认,再逐个生成。
> 文档逻辑不严谨时:先体检、先给方案 —— 不迁就,也不不问自改(见 §二·1)。


一、这个 skill 做什么 / 不做什么

做什么 ① 如实抽取用户文档里的量表结构;② 回读确认(含逻辑体检与结构建议);③ 生成 <短名>.html(单一自包含文件:只作答的三态页 —— 作答 → 提交后只显示「答题结束」+ 一句 endNote → 未锁定可「查看 / 修改」重回可编辑态、?locked=1 后只读查看;计分与判定在后台执行并静默留存);④ 生成同短名 <短名>.md(报告生成提示词);⑤ 文档给了推送时间节点时,额外生成 1 份 推送时间节点SOP.md。产出就这些,别无其他
不做什么 ✗ 不生成服务包里的其它页面;✗ 页面上不展示任何评估结果(总分 / 分级 / 风险提示 / 分组小计一律不上页面);✗ 页面上不写任何系统说明与免责话术(含锁定后的「不可修改」提示);✗ 不接入后端、不假装联网提交;✗ 不替用户编造缺失的题目/选项/计分规则/分级标准;✗ 文档没给推送节点就不生成 SOP(也不许编时间轴);✗ 不读取、不修改、不依赖任何其它 skill
多量表 ★ 一个 Excel 里有 N 个有内容的 sheet ⇒ N 个独立的量表生成需求。每个 sheet 当成一份单独的量表文档,逐个走完整路径,各自出一对 html + md;数量必须先在闸门 ② 与用户确认,之后按既定路径逐个执行
与用户的分工 题目与分值以文档为准、一个字不动;结构 / 顺序 / 逻辑路径 / 呈现方式由你主动判断并给建议(先体检 → 先检索 → 先方案),用户一票否决。不迁就混乱逻辑,也不不问自改 —— 见 §二·1

独立性是硬要求:本 skill 与任何既有 skill(含各类服务包生成器)零耦合。产物自包含,拿到 html + md(+可选 SOP)即可独立使用。


二、四道强制闸门(不过则不得继续)

闸门 ① 输出目录

必须先问:本次产物放在哪个目录?(默认建议:用户当前工作目录下新建一个以量表短名命名的目录)

不得自行选一个目录就开始产出。

闸门 ② 量表数量确认(多 sheet 时必过)

> ★ 一个 Excel 里有 N 个有内容的 sheet ⇒ N 个独立的量表生成需求。
> 每个 sheet 视为一份单独的量表文档,逐个走完整的「回读 → 生成」路径 ——
> 不得合并成一个、不得只做第一个、不得擅自跳过。

抽取脚本已在 JSON 里给出清点结果(inventory / scaleUnits),照它原样回读:

回读项 要求
sheet 总数 / 有内容数 / 空表数 原样列出
每个有内容 sheet:序号 + 名称 + 非空行数 +「像量表 / 疑似说明页 / 有内容但无线索」 逐个列出,不得省略、不得只写个数
量表生成需求数 明确写出一个数字(默认 = 有内容 sheet 数)

并明确问:「共 N 个 sheet 有内容 ⇒ 需生成 N 个量表,是否确认?其中若有说明页 / 目录页要排除,请指出。」

前提是「能清晰识别」。出现下列任一情形,不得自行认定数量,必须把原文片段一并给出交用户裁决:

  • sheet 名无意义(Sheet1 / Sheet2)且内容无线索;
  • 读不出题目与选项(整段叙述、图形对象、合并单元格错乱、公式无缓存值);
  • 表头缺失 / 列错位 / 疑为多张量表挤在同一 sheet(此时按 1 个还是拆开,须问);
  • 只有标题行或极少量内容;
  • 同一 sheet 内出现前后两套编号(疑似两套题拼在一起)。

确认数量后:以确认值为准,逐个量表按 §三 既定路径执行(每个量表各自回读、各自生成一对文件)。
数量未确认前,不得生成任何文件。

闸门 ③ 解析回读确认(本 skill 最核心的一道)

解析完成后,把结构化结果原样列成表格给用户:

  • 量表全称 / 缩写 / 出处文件(多量表时注明来源 sheet 名)
  • 题目总数、分组划分(哪几题计入总分、哪几题不纳入)
  • 逐题:题号 / 题干 / 选项(文字+分值)
  • 计分方式(求和 / 不计分)、总分上限
  • 分值区间与分级解读(文档没给就明确写「文档未提供」)
  • 风险条目(哪一题、触发条件)
  • ★ 条件逻辑专项:跳题 / 判定 / 分级三类约束逐条列表(含落点),无则明确写「文档未给出」
    —— 见下方 §二·2,这一节必须单列回读,不得塞在别处一笔带过
  • ★ 推送时间节点专项:文档中与「推送 / 随访 / 复评 / 评估时点」相关的说明逐条照录,无则写「文档未给出」

并明确问:「以上解析是否正确?」

⚠️ 拿到用户明确回复「正确」之前,不得生成任何文件。 这一条不可省略、不可用「我先做一版你看看」替代。

⚠️ 多量表时:每个量表各自回读确认。量表数 ≤ 3 时可合并为一次回读(按量表分节),
数 > 3 时分批回读(每批 2–3 个),避免一次抛出过长内容。

闸门 ④ 缺项与逻辑体检(不得补位;但必须带方案,不得一味追问)

逐项核对,缺哪项问哪项,不得自行填默认值。

⚠️ 但"问"必须带方案:凡属结构 / 顺序 / 路径 / 呈现层面的问题,一律先给建议方案再让用户裁决
(见 §二·1 与 references/规范-结构体检与优化.md)—— 不允许把一堆问题原样抛回去让用户填空。

缺项 处理
选项数与题干不匹配 必须问:是排版错位还是漏选项?以哪个为准?
无计分规则 必须问:是纯记录型(不计分)吗?若有计分,各选项分值多少?
存在反向计分题 必须问:哪几题反向?分值如何折算?
多选题无上限 必须问:最多可选几项?
李克特量表无锚点 必须问:几级?每级文案与分值?
分值区间无解读 必须问:各分值段对应什么结论与建议?(用户未提供就留空,不许编)
分组划分不清 必须问:题目如何分组?还是单组?
逻辑路径不严谨、结构混乱、题序与路径冲突、呈现方式可优化 先体检 → 先给方案 → 用户三选一(见 §二·1),不是逐条追问

多量表时:缺项按量表分别列出,不得互相套用(A 量表的计分口径不能默认适用于 B 量表)。


二·1 文档逻辑体检与结构优化:不迁就、不擅自、底线不动

> 用户文档的逻辑常常不严谨甚至混乱。不能一味迁就,也不能不问自改。
> 完整方法见 references/规范-结构体检与优化.md;本节只列必须记住的骨架。

(1) 三条前提(不可动摇)

# 前提
P1 不增题、不删题、不改题干、不改选项文案、不改分值 —— 题目集合与分值是文档事实
P2 不把检索来的分级标准 / 常模 / 参考区间写进产物 —— 检索只用于判断结构(与 T3 同级红线)
P3 任何调整先建议、后执行;用户一票否决;用户坚持原文 → 按原文执行 + 交付说明标注隐患

(2) 判定口诀

动"怎么问"可以商量;动"问什么 / 值多少分"一律不行。

可商量:填写顺序(仅当与路径冲突)、分组划分、跳转实现方式、必答与进度口径、选项呈现方式、条件表达等价改写。
不可动:题干、题量、选项文案与顺序、分值、计分方式、分级标准、风险条目依据。

(3) 流程(顺序固定,不允许跳步)

① 体检:按四类信号逐条记入清单(逻辑 / 结构 / 计分 / 呈现)
② 联网检索:该量表/主题的**通行结构**(只校准结构,不取临床标准)
③ 出方案:1 个推荐方案 +(分歧大时)1 个保守方案(保守 = 原文逻辑,只修硬伤)
④ 出「与原文差异对照表」:原文怎么走 → 建议怎么走 → 为什么
⑤ 一次性交用户裁决:采纳建议 / 坚持原文 / 逐条勾选
⑥ 按裁决执行;交付说明含「已采纳调整」+「未采纳隐患」两栏

⚠️ ②③④ 是本节的灵魂:不允许体检完直接把问题抛回去逐条问 ——
必须带着方案去,让用户做选择题,不是做填空题。

(4) 硬伤处理(即使最小改动也要先问)

下列情形属"逻辑硬伤",会直接导致页面无法落地或逻辑失效 —— 必须写进体检清单并给建议:

指向不存在的题号 / 后向引用(循环依赖)/ 条件引用的选项不存在 /
多条件连接方式未说明 / 边界值含否不明 / 跳转语义混用 /
结构性冗余(每行都写"继续第 N 题")与真跳转混在一起 / 闸门题排在被它管控的题之后。

(5) 手段优先级

优先用不改题序的手段:分组拆分 → showIf / skipTo / endIf → 必答口径;
调整 items[] 数组顺序是最后手段(题号 no 不重排,页面题号会不连续,须向用户说明)。


二·2 条件逻辑:有则逐条严格落实,无则一律不加

> 用户文档里凡涉及「题目之间」或「作答与结论之间」的约束性条件,都属本节范围。
> 有 → 1:1 落地,一条不许少、不许改;无 → 一律不加,一个字都不编。

(1) 三类落点(落错地方就是错)

文档里的逻辑形态 落到哪 落错的典型后果
「若第 X 题选 A,则第 Y 题出现/不出现/跳过」 items[].showIf 写成 rules[] → 页面该题根本不会隐藏
「若第 X 题 ≥ A(或某组合成立),则判定为…/提示…」 rules[] 写成 ranges → 变成按总分判级,逐题条件丢失
「按总分落在哪个区间,评为哪一档」 scoring.ranges 写成 rules[] → 两套分级口径打架

(2) 识别信号(扫原文,命中即视为存在条件逻辑)

如果 / 若 / 当 / 一旦 / 则 / 跳转 / 转跳 / 跳到 / 跳过 / 显示 / 不显示 / 隐藏 /
仅当 / 除非 / 否则 / 结束作答 / 终止 / ≥ ≤ > < = / 及以上 / 超过 /
满足以下任一 / 满足以下全部 / 同时满足 / 且 / 或 / 判定为 / 评为 / 结论

(3) 有则必须做到的六件事

  1. 逐条落地:文档 N 条 → 产出 N 条,条数对账,交付时能一条条指回原文;
  2. 逐条给 id:rules[].id + 回读表编号,便于对照追溯;
  3. 不改逻辑:不得合并多条、不得简化条件、不得放宽或收紧阈值、不得调整优先级;
  4. 阈值逐字:引用的题号 / 选项 / 分值 / 边界值必须与题干、选项表逐字一致;
  5. 回读逐条确认:每条逻辑连同它的落点(showIf / rules / ranges)列成表回读;
  6. rules 照实现:⚠️ 页面不展示判定结果,但 rules[] 必须照实现并写入记录 ——
    报告提示词靠它取值,不得因为「页面上看不见」就省略。

(4) 语义必须问清的五类歧义(不得自行择一)

歧义 必须问清
「跳转」到底是哪种 ① 后续题隐藏;② 跳到指定题继续(中间的题全部隐藏);③ 整卷终止(提前结束作答)
「以上 / 超过」的边界 ≥ N 还是 > N(含不含本数)
多条件的连接方式 「同时满足」= AND;「满足任一」= OR —— 原文没写清就必须问
引用方向 只能引用排在前面的题;原文若写成后向引用,回头与用户确认,不得自行改向
反向计分题被引用 条件里的分值按折算后还是原始分值?必须问

(5) 引擎能力(已支持的要敢用;真不支持的必须点明)

已实现 —— 文档里怎么写就怎么落,不要再手工等效:

能力 语法
单条件 / AND {no,op,v} | [c1,c2] | { all:[…] }
OR(满足任一) { any:[…] }
任意层嵌套 { any:[ { all:[…] }, c ] }
条件显示 items[].showIf
跳到指定题 items[].skipTo(数字 或 { to, when })
整卷终止 items[].endIf + 可选 SCALE_DEF.endAutoSubmit
判定表 / 总分分级 / 引用总分 rules[].when(条件组)| scoring.ranges | {ref:'total'}(仅 rules)
隐藏题自动清答案 引擎内置

仍未实现(遇到必须回读单列点明,与用户确认替代方案):

  • 后向引用 / 循环依赖 —— 刻意不支持;
  • 跨题联动计算(拿第 X 题的作答去和第 Y 题比较、算术表达式、函数式条件);
  • ref 写进 showIf / skipTo / endIf —— 总分依赖可见性会成环,规范明令禁止,
    遇到按「跨题联动」处理并回读确认。

⚠️ 遇到以上情形:不得自己改写成别的逻辑、不得假装已实现、不得悄悄略过 —— 一律回读时讲清楚。

(6) 无则一律不加(同样重要)

文档没有跳题逻辑 → showIf 全部省略(所有题始终可见);没有判定表 → rules: [];
没有分级区间 → ranges: [] + rangesNote 写如实说明。

⚠️ 不得因为「该量表在文献里通常带跳题/分级」「某道题看起来该设风险提示」就自行添加 ——
本红线与「不得用先验知识补分级」同级。


三、执行流程

Step 0 · 启动版本自检(每次触发本 skill 的第一件事)

python3 scripts/check_update.py

读返回的 JSON:

返回 动作
has_update: false(或 ok: false / cached) 什么都不说,直接进 Step 1
has_update: true 在开始任务前问用户一句:「检测到 scale-new 有新版本 remote(当前 local),是否现在更新?」

用户同意 → 执行更新(脚本自带:备份 → 下载 → 校验 → 替换,任一步失败都不动原目录):

python3 scripts/check_update.py --apply

用户拒绝或未回应 → 不更新,继续正常流程,本次不再提。

⚠️ 硬约束:
- 绝不在用户确认前执行 --apply —— 本 skill 不允许自动改写本地文件;
- 更新成功后如提示「请重新触发本 skill 以加载新版」;
- 检测失败 / 超时 / 线上未发布,一律静默跳过,不得因此打断任务;
- 结果缓存 6 小时(--force 强制刷新);设 SCALE_NEW_NO_UPDATE=1 可完全关闭检测。

网络说明(SkillHub 审核要求,如实声明):本步骤只访问以下官方域名,
请求只含技能标识 scale-new,不上传任何本地文件、不发送任何用户数据:

域名 用途 触发时机
https://api.skillhub.cn/api/v1/search 查询 scale-new 的最新版本号 每次自检
https://api.skillhub.cn/api/v1/download 下载技能包(302 跳转至腾讯云 COS 加速域名 *.myqcloud.com) 仅用户确认更新后

脚本内置域名白名单:初始请求与重定向均只放行上述域名,其余一律拒绝;
解压前校验路径穿越 / 绝对路径 / 解压体积上限 / 必须含 SKILL.md。

Step 1 · 接收与识别

确认用户文档的绝对路径与格式:

格式 处理方式
xlsx / csv / tsv / txt / md 跑 scripts/scale_doc_extract.py(纯标准库,零依赖)
docx 同上(脚本内置 zip+XML 解析)
pdf 脚本不处理 —— 由模型逐页阅读(Read 支持 PDF 逐页解析)。扫描件 / 双栏 / 混排表格尤须逐页核对,不得凭版式猜题数
# 只作为中间件读入内存用于结构化,**不落盘到交付目录**
python3 scripts/scale_doc_extract.py <文档路径> --out "<临时目录>/量表解析-<原文件名>.json"

⚠️ 不在交付目录里放任何中间件 —— 交付目录里只允许量表产物文件(见 §五 命名规则)。
来源可追溯性由 SCALE_DEF.source(原文件名+工作表名)+交付说明承载,不靠 _src/ 存档。

抽取后立刻看清点:脚本会打印「工作表清点」表并写入 JSON 的 inventory / scaleUnits:

工作表清点(★ 每个「有内容」的 sheet = 一个量表生成需求,数量须与用户确认)
  * #1  用药依从    非空行 10  像题目 5  像选项 5  ✅ 像量表
  * #2  生活方式    非空行 8   像题目 4  像选项 4  ✅ 像量表
  * #3  推送说明    非空行 6   像题目 4  像选项 0  ⚠ 疑似说明页 / 目录页
  → 有内容的 sheet 3 个:其中「像量表」2 个、疑似说明页 1 个;空表 0 个

→ 别急着结构化:xlsx 且 scaleUnits.count > 1 时,先进闸门 ②(数量确认)。
→ 只有一个量表(或非 xlsx 文档)时,也用一句话回读「本次 1 个量表」,确认后继续。

Step 2 · 确认输出目录与量表数量(闸门 ① + 闸门 ②)

两件事一起问,一次拿到确认:

  1. 输出目录(闸门 ①):本次产物放哪个目录?
  2. 量表数量(闸门 ②):把清点表原样回读,问「共 N 个 sheet 有内容 ⇒ 需生成 N 个量表,是否确认?」

多量表时同时给出短名方案(按 §五 规则,每个量表一个 kebab-case 语义短名),
一次列出「序号 → sheet 名 → 拟用短名 → 文件名」,交用户一并确认/改名 —— 避免逐个来回问。

用户确认后即锁定:数量 + 短名 + 目录,进入逐个量表的既定路径。

Step 3 · 结构化(逐量表各自进行)

通读抽取结果 → 先做逻辑体检(§二·1) → 再按 references/规范-量表数据契约.md 的 SCALE_DEF 契约结构化,
条件逻辑(跳题 / 判定 / 分级)按 §二·2 的三类落点归类落地。
结构问题(逻辑路径 / 题序 / 分组 / 呈现)按 §二·1 先体检、先给方案。

⚠️ 逐条照原文档:题干、选项文字、选项顺序、分组名、计分规则一律以文档为准,不做同义改写、不做「优化」、不做合并。

⚠️ 多量表时逐 sheet 独立结构化:用 hintsBySheet 里对应那一份线索,
禁止把别的 sheet 的题目/选项/结论串进来。SCALE_DEF.source 写成
原文件名.xlsx · 工作表名(多量表溯源必需);id 用该量表的短名。

Step 4 · 回读确认(闸门 ③ + 闸门 ④)

回读表必须包含 §二·2 的条件逻辑专项一节:有则逐条列全(含落点与 id),无则明确写「文档未给出」。
回读表必须包含推送时间节点专项:文档里凡与「推送 / 随访 / 复评 / 评估时点 / 第 N 天 / 每月」相关的说明逐条照录
(这是 SOP 的唯一原料);无则明确写「文档未给出」 —— 不得把「建议随访」之类泛泛表述当成时间节点。
回读同时必须包含 §二·1 的「逻辑体检清单 + 结构方案 + 差异对照表」 —— 带着方案交用户裁决,
不得把体检发现的问题原样抛回去逐条问。

Step 5 · 生成量表页面(每个量表各出一份)

以 assets/templates/scale-page-template.html 为基线:

  1. 复制模板为 <输出目录>/<短名>.html;
  2. 整体替换其中的 SCALE_DEF(其余不必动);
  3. 按契约填写 groups / options / items / scoring / rules;
  4. 页面文案只调「标题 + 作答引导语」 —— 除此之外不得添加任何文字(见铁律 T5);
  5. ⚠️ 逐条过一遍页面展示红线:提交后只显示「答题结束」;说明卡不含题数 / 总分上限 / 分组名 / 题目来源;选项无分值角标;分组标题仅多分组时出现且不带尾注;
  6. ⚠️ 逐条过一遍三态与锁定:结束态隐藏说明卡(量表名 / 缩写 / 引导语)、头部标题改「答题结束」;未锁定底部 = 「查看 / 修改」+「重新作答」,?locked=1(且已有记录)时只给「查看作答」且不加任何提示文字;
  7. ⚠️ 拟定结束卡鼓励语 endNote(一句、通用、客观、与作答结果无关;句式库见数据契约文末),随回读一并交用户确认;拟不出合规句就省略 —— 结束卡只剩「答题结束」,不得硬凑。

> 规则引擎(计分 / 分级 / 条件跳题 / 自定义判定表)已在模板里实现,见 references/规范-规则引擎.md。
> 多量表时:对每个已确认的量表重复 Step 3→7,各自出 短名.html,不得漏、不得合并。

Step 6 · 生成报告提示词 +(条件)推送时间节点 SOP

6a|报告提示词(每个量表各一份)

以 assets/templates/report-prompt-template.md 为基线:

  1. 复制模板为 <输出目录>/<短名>.md(与该量表的 html 同短名);
  2. 标准条款逐字保留(§0 / §1 / §3 / §5 / §6 / §7 / §8 / §9 及 R1–R8 必含句、五个段标题);
  3. 只替换随量表变化的三处:§2 量表事实底稿、§4.1 风险条目、附·本量表注意事项;
  4. 骨架与红线见 references/规范-报告提示词.md。

6b|推送时间节点 SOP(条件生成 —— 有才做,没有就不做)

> ⚠️ 只在文档里确实给出了推送 / 随访 / 复评时间节点时才生成。
> 没写 → 不生成这个文件,也不得用通行做法、指南推荐、「一般建议」来补一套时间轴。

  • 文件名:推送时间节点SOP.md(单文件,放在同一输出目录);同名冲突时加来源短名,如 <原文件短名>-推送时间节点SOP.md
  • 覆盖范围:汇总本次全部量表的节点(多量表时就是一个总 SOP,不拆成多份)
  • 骨架与红线:见 references/规范-推送时间节点SOP.md
  • 原料:Step 4 回读里那份「推送时间节点专项」逐条照录的内容 —— 一字不加、一字不减
  • 若只有部分量表给出了节点 → 仍然生成,但在 SOP 里如实标注哪些量表「文档未给出推送时间节点」

Step 7 · 自包含(无外部资源,不需要分发任何文件)

页面已经是单一自包含文件:图标为内联 SVG,样式与逻辑全部内联,不引用任何外部文件。
→ 不需要复制字体库、CSS、JS 或任何资源;不得在交付目录里生成 assets/ 等文件夹。

Step 8 · 校验与复核(两步都必跑,缺一即未完成)

8a · 机器校验

# ① 配对校验 + md 骨架/红线 + SCALE_DEF 配置体检(C1–C23)
python3 scripts/check_scale_docs.py "<输出目录>" --scale-dir .

# ② 页面自检:JS 语法、零外部资源(无 http / 无 <link> / 无 src= / 无字体)—— 见 §六 清单

# ③ 布局实测(**只在改动过 CSS 布局时才必须跑**):进度条吸顶 / 吸附位置 / 遮挡 / 横向铺满
#    桩 DOM 测不了布局 —— sticky、padding、z-index 这类问题只有真实浏览器能暴露
NODE_PATH=<node_modules> node scripts/check_scale_layout.js "<输出目录>/<短名>.html"

退出码 0 = 全过;2 = 有 FAIL,必须修复后重跑。
布局脚本在缺 puppeteer-core 或本机浏览器的环境里会打印 SKIP 并退出 0(不阻断交付),
此时须在交付说明里如实写明「布局未做真实浏览器实测」。

⚠️ 多量表时:校验命令对整个输出目录跑一次即可(它会逐对校验每一个 html↔md),
但必须确认判据条数覆盖全部量表 —— 出现 孤儿提示词 / 孤儿作答页 就是漏文件或短名不一致。

8b · 原文复核(★ 生成完 html 后立刻做,逐量表对照用户原文档)

> 8a 只能查结构(配对、零外链、配置自洽、跳转落点是否存在);
> 「页面里的东西到底是不是文档里的」只有对照原文才知道 —— 这一遍必须由你逐条做,不得跳过、不得省略。

# 复核项 怎么查 结论必须写清
① 量表题目数量 页面题数 vs 文档题数(多量表时逐 sheet 分别对) 「文档 N 题 → 页面 N 题」;不一致就停下修
② 有无凭空生成的非文档内容 逐条回看:题干 / 选项文案 / 选项顺序 / 分组名 / 引导语 / 结束语 endNote / note 备注 —— 每一项能不能在文档里找到出处 逐项给出处;凡是我拟的(量表名、缩写、分组名、引导语、结束语)必须明确标注「文档未给,由我拟定」
③ 跳转逻辑是否正确 文档里的每一条跳题 / 终止条件 → 页面里的 showIf / skipTo / endIf 逐条对照(条件、阈值、方向、落点) 条数对账:文档 N 条 → 产出 N 条;逐条给出「文档原文 → 落点写法」

同时必须一并核(这三项是"凭空内容"的高发区):

  • 选项分值:每个选项的分值与文档一致;文档没给分值 → 必须是不计分(不得自己补分值)
  • 计分范围:哪些题计入总分、上限多少 —— 与文档/用户确认一致
  • 分级区间:文档没给 → 必须留空,页面与报告都不得出现任何分级名称或分数线

复核记录(不可省,必须写进交付说明) —— 照这个格式:

① 题量:量表A 文档 12 题 → 页面 12 题 ✅ | 量表B 文档 8 题 → 页面 8 题 ✅
② 凭空内容:0 处。拟定的仅 2 项 —— 量表名「高血压用药依从量表」、分组名「用药与随访」(文档均未给)
③ 跳转:文档 2 条 → 产出 2 条
   · L1 第 1 题「选"否"跳转至第7题」 → items[1].skipTo{ to:7, when:{no:1, eq:1} } ✅
   · L2 第 7 题「选"否"跳转至第9题」 → items[7].skipTo{ to:9, when:{no:7, eq:1} } ✅

任一处不一致 → 立即修正并重跑 8a + 8b,不得带着问题交付。
⚠️ 不许用「大概对」「应该没问题」代替逐条对照 —— 复核的价值就在「逐条」。

Step 9 · 交付

原地交付(给出文件路径即可)。一次交付只包含下表这些文件 —— 不打 zip、不建子目录、不留中间件。

本次情形 交付文件 数量
1 个量表,文档未给推送节点 <短名>.html + <短名>.md 2
1 个量表,文档给了推送节点 上两项 + 推送时间节点SOP.md 3
N 个量表,文档未给推送节点 每个量表各一对(全部平铺在同一目录) 2N
N 个量表,文档给了推送节点 上项 + 推送时间节点SOP.md(一个总 SOP) 2N + 1

除上表之外任何文件都不得出现(无 assets/、无 _src/、无备份、无 index.html 目录页)。

交付说明必须包含两块(缺一即未完成):

  1. 「量表 → 来源 sheet」对照表 —— 便于溯源;
  2. ★ Step 8b 的复核记录(题量对照 / 凭空内容 0 处或列明自拟项 / 跳转逐条对账)——
    没有复核记录的交付视为未完成。

> 📦 注意区分两种「打包」:产物永不打包;skill 自身的发布包由作者按 §九 流程单独制作(发到 SkillHub 用),与本步骤无关。


四、铁律

# 铁律
T1 禁止臆造:题目、选项、分值、分组、计分规则一律以文档为准;缺项问用户,不补位
T2 回读确认前不生成:拿到用户「正确」回复前,不得产出任何文件
T3 不得用先验知识补分级:文档没给分值区间 → ranges 留空 + 写明「未提供,请交由医护解读」。即使该量表在文献中有通行分界值也不得使用
T4 零外部资源 · 文件数恒定:图标一律内联 SVG(.ico + <svg class="ico">),样式与逻辑全部内联;页面不得含 http:// / https://、不得有 <link> / <script src> / <img> / @font-face / 任何外部文件引用。文件数必须恰好符合 Step 9 那张表 —— 每个量表一对(<短名>.html + <短名>.md)、有推送节点时再加 1 个 推送时间节点SOP.md,全部平铺在同一目录;不得生成 assets/、_src/、子目录、备份或任何多余文件
T5 页面不展示结果、不写说明性文字:提交后只显示「答题结束」;页面不得出现总分 / 分级 / 分组小计 / 命中规则,也不得出现「保存在本机(localStorage)」「不会自动上传」「医生端可见需接入院内系统」「不构成诊断」「须经医生审核」等系统说明与免责话术。⚠️ 唯一例外:结束卡可加一句健康管理鼓励语(SCALE_DEF.endNote),但必须一句、通用、客观、与作答结果无关(同一量表任何作答都显示同一句),且必须回读确认;拟不出合规句就省略。⚠️ 这只是不渲染 —— 计分与静默留存照常执行(记录是报告提示词的数据源,砍掉即断链)
T6 零耦合:不读取、不修改、不依赖任何其它 skill;references 里不得出现指向其它 skill 文档的说法
T7 版本与发布:当前定版 1.0.2 并发布到 SkillHub(slug: scale-new)。任何内容改动都必须同步升 version(SemVer:修 bug 升 patch、加功能升 minor、不兼容改动升 major)并重新发布 —— 否则用户端永远收不到更新。不得在未获用户指示时擅自改版本号或对外发布
T7b 更新必须用户确认:启动自检只检测 + 提示(scripts/check_update.py),绝不在未确认时执行 --apply;--apply 自带备份与校验,失败不动原目录。检测失败一律静默跳过,不得因此打断任务
T8 不读取也不写入任何记忆(项目记忆 / 用户档案 / 历史对话)
T9 提交后隐藏量表信息;锁定由 URL 控制:结束态与只读查看态都不出现量表名 / 缩写 / 引导语,头部标题只在「答题结束」/「查看作答」之间切换;未锁定给「查看 / 修改」(点一下直接回可编辑态)+「重新作答」,?locked=1 且已有记录时只给只读查看、且不加任何提示文字。锁定不写入 SCALE_DEF、不写入记录
T10 条件逻辑:有则逐条严格落实,无则一律不加 —— 文档里的跳题 / 判定 / 分级约束必须 1:1 落成 showIf / skipTo / endIf / rules[] / scoring.ranges,逐条带 id、条数对账、可指回原文,不得遗漏、合并、简化、放宽或自行改逻辑;落点不得错位(逐题条件 ≠ 总分分级)。文档没有的一律不加(不因量表名气或先验知识补)。引擎已支持 OR({any:[…]})/ 跳到指定题 / 整卷终止 —— 要敢用;仍未支持的(后向引用 / 跨题联动计算 / ref 写进 showIf)必须回读单列点明并与用户确认,不得静默降级、不得假装已实现
T11 逻辑体检与结构建议:不迁就、不擅自、底线不动 —— 文档逻辑不严谨/混乱时,必须先体检四类信号、先联网检索通行结构、先给方案(1 个推荐 + 必要时 1 个保守),并出「与原文差异对照表」,一次性交用户裁决;不允许把问题原样抛回去让用户逐条填空。底线:不增题 / 不删题 / 不改题干 / 不改选项文案与顺序 / 不改分值;不把检索来的分级标准、常模、参考区间写进产物。用户坚持原文 → 完全按原文执行,并在交付说明「未采纳隐患」栏如实标注影响
T12 多 sheet = 多量表:数量先确认,再逐个生成 —— xlsx 里每个有内容的 sheet 就是一个独立的量表生成需求,逐个走完整「回读 → 生成」路径;数量必须在生成前与用户确认(闸门 ②),疑似说明页 / 目录页一并列出交用户裁决。不得合并、不得只做第一个、不得自行删减或臆增数量。读不清时不许猜数量,就实说读不清并附原文片段
T13 推送时间节点 SOP:有则生成、无则不做、绝不编造 —— 仅当文档确实给出推送 / 随访 / 复评时间节点时才生成 推送时间节点SOP.md;没有就一个文件都不生成,不得用指南推荐、「常规做法」「一般建议 N 天」补时间轴。SOP 内容只来自文档原文(逐条照录,含未给出时间节点的量表须如实标注),多量表时只出一个总 SOP
T14 ★ 生成后必须走原文复核(Step 8b),三项逐条对:① 题目数量(多量表逐 sheet 对)② 有无凭空生成的非文档内容(题干/选项/顺序/分组名/引导语/结束语/备注逐项找出处,自己拟的一律标注「文档未给,由我拟定」)③ 跳转逻辑(文档 N 条 → 产出 N 条,逐条给出「文档原文 → 落点写法」)。复核记录必须写进交付说明;发现不一致立即修正并重跑,不得带着问题交付,不得用「大概对」「应该没问题」代替逐条核对

五、命名与目录

项 规定
产出短名 kebab-case,按量表内容拟语义短名(如 hbp-med、hbp-followup、phq-9、gad-7);每个量表一个,互不重复
多量表短名 优先「来源文件短名 + 语义后缀」(hbp-med / hbp-lifestyle);不得只用序号(x-1、x-2 —— 发布与引用时看不出是哪个量表);sheet 名有意义时可参考其语义
产出文件 每个量表:<短名>.html + <短名>.md(同短名、只差扩展名,硬要求)
SOP 文件 推送时间节点SOP.md(条件生成:文档给了推送节点才有);同名冲突时 <原文件短名>-推送时间节点SOP.md
交付目录内容 只允许「每个量表一对 + 可选 1 个 SOP」,全部平铺 —— 不得有任何子目录(无 assets/、无 _src/)、不得有备份、不得有中间件、不得有 index.html 目录页
资源 无 —— 图标内联 SVG,页面自包含;不再分发字体库
中间件 不放进交付目录:解析结果只作内存中间件;来源追溯靠 SCALE_DEF.source(原文件名 + 工作表名)+ 交付说明
一份文档多张量表 每个 sheet 各出一对 html + md,一个都不许漏、不许合并;共用一个 SOP 文件

多量表交付目录示例(3 个量表 + 有推送节点):

<输出目录>/
├── hbp-med.html              ← 量表①「用药依从」
├── hbp-med.md
├── hbp-lifestyle.html        ← 量表②「生活方式」
├── hbp-lifestyle.md
├── hbp-followup.html         ← 量表③「随访」
├── hbp-followup.md
└── 推送时间节点SOP.md         ← 汇总全部量表的推送节点

六、交付前自检清单(逐条勾,缺一即未完成)

  • [ ] 文件数与原表一致:2 × 量表数(+有推送节点时 1)—— 无 assets/、无 _src/、无备份、无中间件、无子目录、无 index.html
  • [ ] 多量表:每个 sheet 都产出了自己的一对文件,短名互不重复;没有漏掉任何一个已确认的量表
  • [ ] 多量表:数量已与用户确认过(回读清点表 + 拿到明确回复);疑似说明页的 sheet 已交用户裁决
  • [ ] 多量表:没有串味 —— 每个量表的题目 / 选项 / 计分 / 逻辑全部来自它自己那个 sheet
  • [ ] SOP 条件正确:文档无推送时间节点 → 没有生成 SOP 文件;有 → 生成且内容逐条来自原文(未给节点的量表已如实标注)
  • [ ] 零外部资源:无 http:// / https://、无 <link>、无 <script src>、无 <img>、无 @font-face、无 assets/ 运行时引用
  • [ ] 逻辑体检已做:四类信号(逻辑 / 结构 / 计分 / 呈现)逐条过,发现的问题带方案交用户(不是逐条追问)
  • [ ] 联网检索仅用于结构判断;产物里没有任何来自检索的分级标准 / 常模 / 参考区间
  • [ ] 未增题、未删题、未改题干 / 选项文案 / 选项顺序 / 分值(逐条对回原文)
  • [ ] 交付说明含「已采纳的调整」+「未采纳的隐患」两栏(无则写「无」,两栏都不得省略)
  • [ ] 若调整过填写顺序:items[].no 未重排,且已在交付说明里写明"页面题号不连续"
  • [ ] 题目 / 选项 / 分值 / 分组 / 计分与用户文档逐条一致(拿解析 JSON 对照,不靠记忆)
  • [ ] 缺项已核实:事实类(分值 / 选项 / 计分 / 分级)逐项追问并补齐;结构类(顺序 / 路径 / 呈现)带方案交用户裁决;无自行补位的题目或选项
  • [ ] 结构调整已获用户裁决(采纳 / 坚持原文 / 逐条勾选),且已按裁决执行;用户坚持原文时未夹带任何优化
  • [ ] 结构化结果已原样回读,用户明确回复「正确」
  • [ ] <短名>.html / <短名>.md 同短名;命名 kebab-case
  • [ ] 无 eval;JS 语法通过(node --check)
  • [ ] 图标全部内联 SVG:页面内 fa-* 类名计数为 0;每个 <svg class="ico"> 的 viewBox 为 0 0 24 24
  • [ ] 进度条下滑吸顶:.fill-prog 为 position:sticky; top:0,吸附时贴合内容区顶部无缝隙、横向铺满、不透明背景且不被题目遮挡;.content 的 padding-top 为 0
  • [ ] 四型渲染按 type 分派正确;multi 上限、likert 档位与文档一致
  • [ ] 条件逻辑条数对账:文档 N 条跳题 → N 处 showIf/skipTo/endIf;文档 M 条判定 → M 条 rules[];
    文档 K 段分级 → ranges 覆盖 K 段,一条不少
  • [ ] 落点未错位:逐题条件落在 showIf/skipTo/endIf/rules,总分分级落在 ranges,两者不混
  • [ ] OR 用了 {any:[…]}(不是被悄悄改成 AND);嵌套结构与原文一致;空 any(恒假) / 空 all(恒真) 未混同
  • [ ] skipTo:to 大于本题题号;(本题, to) 之间的题全部隐藏且答案已清;多条命中取并集
  • [ ] endIf:其后题全部隐藏 + 题目区末尾有终止提示卡;默认不自动提交;改回触发题可解除终止
  • [ ] 条件里的题号 / 选项值 / 边界值(≥ 还是 >)与题干、选项表逐字一致;showIf 只前向引用(skipTo.when/endIf 可引用本题自身)
  • [ ] 已隐藏的题不触发它自己的 skipTo / endIf(无幽灵跳转)
  • [ ] 文档无跳题 / 判定 / 分级 → showIf/skipTo/endIf 全省略、rules: []、ranges: [],未自行添加
  • [ ] 仍未支持的约束(后向引用 / 跨题联动 / ref 写进 showIf)已在回读中单列点明并取得用户处置口径
  • [ ] 必答校验可用:未答项定位 + 高亮 + 提示,且校验不过无法提交
  • [ ] 计分只对「计入总分」分组求和;不计分分组的答案不并入总分(记录里 scored:false 单列)
  • [ ] 页面零结果:可见文案里搜不到 总分 / 得分 / 分级 / 风险提示 / 不纳入总分 / 总分上限
  • [ ] 页面零说明性文字:可见文案里搜不到 本机 / 不会自动上传 / 院内系统 / 不构成诊断 / 须经医生审核(代码里的 localStorage API 名不算)
  • [ ] endNote(若填):一句、建议 ≤ 34 字、通用客观、与作答结果无关(换任何一份作答都不变)、已回读确认;页面再无其他附加文案
  • [ ] 结束态只含「答题结束」+(可选)endNote —— 无总分 / 分级 / 风险 / 提交时间 / 系统说明
  • [ ] 元信息不上页面:说明卡只有 量表名 + 缩写 + 引导语 —— 无题数、无总分上限、无分组名、无题目来源
  • [ ] 选项无分值角标;分组标题仅多分组时出现,且无「第 X-Y 题 · 计入总分」尾注
  • [ ] 条件跳题可用:前置条件不满足时该题隐藏,且其答案被清除(不留幽灵答案)
  • [ ] 自定义判定表按 when 逐条求值;命中项写进记录并按 danger → warn → info 排序(不上页面)
  • [ ] 提交链路:静默写入 localStorage → 不弹层、不提示、不展示结果 → 切「结束态」→ 刷新后仍是该态
  • [ ] 结束态不含量表信息:说明卡已隐藏,头部标题为「答题结束」(只读查看态为「查看作答」)
  • [ ] 未锁定时结束态有「查看 / 修改」(点一下直接回可编辑态、原答案带出)+「重新作答」
  • [ ] ?locked=1 + 已有记录 → 只读:无「查看 / 修改」、无「重新作答」、无任何提示文字、底部为空
  • [ ] 锁定后「查看作答」只列「题干 + 所选文案」—— 无分值 / 无分级 / 无风险 note / 无量表名
  • [ ] 锁定但无记录时仍可正常作答(锁定不生效);重新提交 = 覆盖原记录,记录字段不变(无 locked、无历史字段)
  • [ ] 重新作答可清空本机记录并回到作答态(锁定后该入口不存在)
  • [ ] 报告 md:12 节骨架齐全 + 8 个变量占位符齐全 + R1–R8 逐字在 + 五段标题按序 + 两附在末
  • [ ] 报告 md:示例区带隔离三件套;§3–§8 条款区无内嵌数值示例
  • [ ] 报告 md:未被外层代码块整体包裹;无指向其它 skill / 流程文档的说法(自包含)
  • [ ] check_scale_docs.py "<输出目录>" --scale-dir . → 退出码 0
  • [ ] ★ 原文复核已做(Step 8b):逐量表对照原文档核过 ① 题量 ② 凭空内容 ③ 跳转逻辑
  • [ ] ★ 复核记录已写进交付说明(题量对照 / 凭空内容 0 处或列明自拟项 / 跳转逐条对账)
  • [ ] ★ 复核发现的任何不一致都已修正并重跑校验(无「先交付后修」)
  • [ ] 若本次改动涉及 CSS 布局 → check_scale_layout.js 已跑(或如实标注 SKIP 原因)
  • [ ] ★ 修改本 skill 自身时:version 已按 SemVer 升号;frontmatter 含 slug / version / displayName;description 无尖括号;已按 §九 重新打包(zip 内第一层是 scale-new/)

七、参考资料

文件 内容
references/规范-量表数据契约.md SCALE_DEF 全字段契约与硬约束(生成页面必读)
references/规范-规则引擎.md ★ ⓪ 落实原则(有则逐条严格照做 / 无则一律不加 / 三类落点 / 语义歧义 / 能力清单) + 条件组语法(AND / {any} OR / 嵌套) + skipTo 跳到指定题 + endIf 整卷终止 + 计分 / 分级 / rules[] 的完整语法与边界
references/规范-报告提示词.md 报告 md 的 12 节骨架、8 变量、R1–R8 必含句、红线与反例
references/坑清单.md 已知缺陷与防复发(含来源标注)
references/规范-结构体检与优化.md ★ 文档逻辑体检(逻辑/结构/计分/呈现四类信号) + 能改与不能改 + 处理流程六步 + 联网检索边界 + 手段与代价 + 用户三种裁决 + 交付说明两栏
references/规范-推送时间节点SOP.md ★ 推送时间节点 SOP:触发条件(有则做/无则不做)+ 原料唯一来源 + 文档骨架 + 红线 S1–S6 + 反例
assets/templates/scale-page-template.html 量表页模板(含完整规则引擎实现)
assets/templates/report-prompt-template.md 报告提示词模板(12 节齐全、可直接改)
scripts/scale_doc_extract.py 文档抽取(xlsx / docx / csv / tsv / txt / md → JSON;PDF 由模型读)
scripts/check_scale_docs.py 配对与骨架校验 + SCALE_DEF 配置体检(判据 C1–C23:配对/骨架/红线/零外部资源/选项值类型/题号/条件引用/跳转落点/likert 档位)
scripts/check_scale_layout.js 布局实测(可选):进度条吸顶 / 吸附位置 / 遮挡 / 横向铺满 / 结束态无残留 —— 需 puppeteer-core + 本机 Chrome,缺则 SKIP
scripts/check_update.py 版本自检 / 更新:查 SkillHub 上 scale-new 的最新版本;--apply 才下载覆盖(备份 → 校验 → 替换)。默认只检测不下载

> ⚠️ 原 assets/font-awesome/ 图标字体库已于 2026-10-12 删除(改用内联 SVG 后不再需要;
> 备份留存于 ~/.workbuddy/skills_backup_*/font-awesome/)。不得再引入任何图标字体(C14 会判 FAIL)。


八、页面风格口径(与全病程服务包模板保持同源)

产出页面必须沿用下列口径,不得另起一套:

  • :root 变量逐字相同(--primary:#0072E5 / --deep:#004F8A / --text:#1F2733 / --green:#0E9E56 / --red:#D0021B / --amber-bg:#FFF4E5 …)
  • 机型外壳 .phone 375×812、border-radius:32px、position:relative
  • .status-bar 44px + .header 深蓝渐变(145deg,#004F8A,#0072E5)+ .btn-back 34×34 圆形
  • 二级页标题栏只有「返回 + 标题」,无副标题、无计数
  • 卡片圆角 12–16px、边框 #eaf0f6、阴影 0 1px 6px rgba(0,0,0,.03)
  • 正文 ≥ 11px / 说明 ≥ 10px;可点热区 ≥ 32×32px
  • 只有内容区滚动,底部操作栏固定
  • 答题进度条 .fill-prog 下滑时吸附在内容区顶部(position:sticky; top:0)—— 作答全程始终可见。
    ⚠️ .content 的 padding-top 必须为 0(顶部留白由各态首元素自己给:说明卡 margin-top:12px/#qArea padding-top:12px),
    否则进度条吸附时会在顶部留出一条缝,题目会从那道缝里露出来
  • 图标一律内联 SVG(线描风格:fill:none + stroke:currentColor,尺寸 1em 随 font-size 缩放)——
    不使用任何图标字体;fa-* 类名必须为 0
  • 结束卡 .end-card(绿色圆形对勾 + 「答题结束」)是提交后唯一展示的内容,不承载任何数值
  • 只读查看态复用 .q-item + .q-ans(题干 + 所选文案);底部多按钮用 .fill-row(横向并排,各占一半宽)
  • 结束卡 .end-msg 承载 endNote 一句(副色、11.5px、居中);未填 endNote 时不渲染该节点
  • 页面不出现结果卡 / 结果弹层 / 题目只读回显 —— .res-*、.rule-box、.mask、.sheet、.fill-tip 已从模板移除,不得加回

九、发布与版本管理(SkillHub)

> 本节只在修改本 skill 自身时用;日常使用不涉及。

唯一版本号来源:SKILL.md frontmatter 的 version(当前 1.0.2)。
改完任何内容 → 必须升版本号并重新发布,否则用户端的启动自检发现不了更新。

改动性质 版本号
修 bug / 改文案 / 调样式 patch +1(1.0.1)
加能力 / 加字段 / 加流程 minor +1(1.1.0、1.2.0 …)
不兼容改动(改契约、改产物结构) major +1(2.0.0)

frontmatter 必填(SkillHub 校验硬要求)

字段 当前值 要求
slug scale-new kebab-case,发布后不可更改(改了等于新技能)
version 1.0.2 合法 SemVer
displayName 量表转网页 展示名
summary / tags / license 见 frontmatter 上架信息
description 见 frontmatter 不得含 < >(会卡校验)

打包(顶层必须是技能目录本身)

# 在 skills 父目录执行,确保 zip 内第一层是 scale-new/
cd ~/.workbuddy/skills && zip -r /tmp/scale-new.zip scale-new \
  -x "*.DS_Store" -x "*__pycache__*" -x "*.pyc" -x "*.git/*"

必须排除:.git / .idea / .vscode / node_modules / __pycache__ 目录,
*.pyc / .DS_Store / Thumbs.db;软链接;以及任何临时产物(如 ~/.workbuddy/.scale-new-update.json 属缓存在 skill 目录外,不受影响)。

体积上限:上传接口 10MB,解压后 ≤ 50MB。

上传

到 SkillHub 网页端上传该 zip(不用 CLI),填写版本号与更新说明。
若报 409 slug 冲突 → 说明 scale-new 已被占用,需改 slug(SKILL.md 与
scripts/check_update.py 的 SLUG 常量要一起改)。

常见问题

5 问
答案由本站依据条目字段整理
量表文档转作答网页工具怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_6b6e1800/scale-new。安装方式为未标注。装完刷新技能列表或重开客户端。

量表文档转作答网页工具支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

量表文档转作答网页工具权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

量表文档转作答网页工具收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

量表文档转作答网页工具用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 2026-11-06。