Convert a book, paper, document, documentation site, or code repository into a structured, on-demand agent skill. Use when the user wants to turn a PDF, EPUB, DOCX, a URL, a docs site, or a GitHub repo into a skill they can load later — "make a skill from this book", "turn this paper into a skill", "turn these docs into a skill", "I want an agent that knows this library".
文档
Code To Skill 1.0.6 Selfcontained
试用建筑规范→AI Skill转换器。将建筑设计规范、国家标准(GB)、行业规程、法律法规转化为可查询的条文系统——按触发条件索引每一条条文,保留应/宜/可/不应/不得的法律效力措辞原文,提取数据表格为结构化JSON,绘制跨规范引用关系图。输入'把这个规范做成skill'/'查这条规范'/'建立规范知识库'即可使用。面向中国建筑设计规范(GB 50xxx系列)优化,也可适配任何地区的技术法规。内置自包含PDF提取引擎(本 skill 自带 scripts/extract.py + book_to_skill/,无需外部安装)。| Convert building codes/GB standards/regulations into structured queryable skills — indexing clauses by trigger, preserving mandatory-force wording, extracting tables as JSON. Use when user says 'code to skill' or '把规范做成skill'.
它能做什么
建筑规范→AI Skill转换器。将建筑设计规范、国家标准(GB)、行业规程、法律法规转化为可查询的条文系统——按触发条件索引每一条条文,保留应/宜/可/不应/不得的法律效力措辞原文,提取数据表格为结构化JSON,绘制跨规范引用关系图。输入'把这个规范做成skill'/'查这条规范'/'建立规范知识库'即可使用。面向中国建筑设计规范(GB 50xxx系列)优化,也可适配任何地区的技术法规。内置自包含PDF提取引擎(本 skill 自带 scripts/extract.py + book_to_skill/,无需外部安装)。| Convert building codes/GB standards/regulations into structured queryable skills — indexing clauses by trigger, preserving mandatory-force wording, extracting tables as JSON. Use when user says 'code to skill' or '把规范做成skill'.
技能文档
Code-to-Skill · 建筑规范转换器
将建筑设计规范、国家标准(GB)、行业规程、法律法规转化为结构化的、可查询的 AI Skill。
Transforms building codes and regulations into queriable rule systems — indexing every clause by its trigger conditions and preserving mandatory-force wording exactly.
何时激活 / When to Activate
当用户表达以下意图时使用本技能(匹配 description 中的触发关键词):
- 提到「把这个规范做成skill」「查这条规范」「建立规范知识库」「code to skill」「把规范做成skill」
- 手头有建筑规范 / 国家标准(GB) / 行业规程 / 法律法规的 PDF,希望转成可查询的 AI Skill
- 需要把规范条文按触发条件索引、保留「应 / 宜 / 可 / 不应 / 不得」法律效力措辞原文
- 需要把规范数据表格提取为结构化 JSON、绘制跨规范引用关系图
何时不激活 / Anti-Triggers
以下情况不要使用本技能,改用更合适的工具:
- 用户只想要书籍 / 论文的概括摘要(蒸馏式)→ 用兄弟 skill
book-to-skill - 没有提供规范 PDF 却只给了规范编号(如 "GB 50016")→ 必须先索取 PDF,不要凭记忆编造条文
- 需要法律意见或合规性判定 → 本技能是检索工具,不替代注册建筑师 / 工程师专业判断
- 纯文本小说、非规范性文档 → 不属于「规范索引」范畴
核心理念 · Philosophy
书需要提炼(Distill),但规范需要索引(Index)。
建筑规范不是叙事文本。它是一套以编号条文构成的决策规则系统:"当条件 X 满足时,应/宜/可/不应/不得执行 Y",每个条文有明确的法律效力层级。这个 Skill 的工作不是概括这些规则,而是让每一条条文都能按使用场景被检索到。
Books need distillation; codes need indexing.
A building code is not a narrative. It is a system of numbered clauses, each acting as a decision rule: "When condition X, requirement Y applies, with force Z."
三条不可违反的规则 · Three Inviolable Rules:
- 绝不改写强制性条文。 "应"就是"应",不是"建议";"不应"就是"不应",不是"不要"。每条条文的法律效力措辞必须原文保留。
- 每个编号条文都是可检索目标。 只要原规范里有"5.5.21"这条条文,Skill 就必须能通过"疏散宽度"→5.5.21 找到它。没有一条条文太小而不值得索引。
- 表格是数据,不是文字。 耐火等级表、防火间距表、疏散宽度表——这些是决策输入,不是叙事内容。必须提取为结构化数据(JSON),支持程序化查询。
与 book-to-skill 的对比:
| book-to-skill | code-to-skill | |
|---|---|---|
| 输入 · Input | 书籍、论文、文档 | 建筑规范、GB 标准、法规 |
| 核心动作 · Action | 蒸馏 → 概括 | 索引 → 映射 |
| 措辞规则 · Wording | 不复制原文 | 不改写条文 |
| 输出格式 · Output | chapters/chNN-*.md(摘要) | clauses/chNN-*.md(原文 + 元数据) |
| 数据输出 · Data | cheatsheet.md(可视化) | tables/*.json(结构化,可查询) |
| 导航方式 · Navigation | patterns.md + 词汇表 | mandatory-map.md + cross-refs.md |
运行模式 · Modes of Operation
1. 全量转换 · Full Conversion(默认)
触发: 用户提供规范 PDF 路径 动作: 执行全部步骤(Step 0–10) 产物: 完整 Skill:SKILL.md + clauses/ + tables/ + cross-refs.md + mandatory-map.md
2. 仅分析 · Analyze Only
触发: 用户说 "analyze"、"先分析" 或 "I want to review before generating" 动作: 执行 Step 0–4,生成提取报告后停止 产物: 分析报告,供用户审查后决定是否继续
3. 更新/补充 · Update / Supplement
触发: 用户已有规范 Skill,要添加地方标准补充或新版本 动作: 执行 Step 0–2,然后合并新条文/表格 产物: 更新后的已有 Skill
Step 0 — 输入验证 · Input Validation
如果没有提供参数,停止并回复:
"code-to-skill requires a regulation PDF path. Usage:
code-to-skill [regulation-slug]"
全过程:
- 识别输入的 PDF 路径和可选的规范 slug。
- 如果用户只提到规范但没有提供文件,询问:"请提供规范 PDF 文件的路径。"
- 如果用户只提供了规范编号(如 "GB 50016"),请他们也提供 PDF 文件——不要凭记忆编造内容。
- 如果最后一个参数看起来是规范 slug(如
gb-50016-2018),将其视为REGULATION_SLUG。
Step 1 — 确认规范元数据 · Identify Regulation Metadata
提取前与用户确认:
"确认以下信息:
- 规范编号:如 GB 50016-2014(2018 修订版)
- 是否包含条文说明:PDF 是否有条文说明部分?(条文说明解释了立法意图,Skill 中会单独标注为非强制性参考)
- 目标使用场景:设计阶段查阅?校审阶段核对?施工阶段参考?"
记录为:REGULATION_ID、HAS_EXPLANATORY_NOTES、USE_CASE。
Step 2 — 提取文本 · Extract Text
本步骤使用内嵌的自包含 scripts/extract.py 引擎(随本 skill 一起提供,无需外部安装)。
操作流程:
-
定位本 skill 的
scripts/extract.py(通常在/scripts/extract.py)。 -
如果用不到,也可以复用兄弟 skill
book-to-skill的版本(如 workspace 内已安装):skills/book-to-skill/scripts/extract.py(workspace 内)~/.openclaw/workspace/*/skills/book-to-skill/scripts/extract.py~/.agents/skills/book-to-skill/scripts/extract.py~/.claude/skills/book-to-skill/scripts/extract.py
-
找到后(优先用内嵌版本)用以下命令提取(规范几乎总是 text 模式):
python3 <规范PDF路径> --mode text --install-missing ask
产出 /book_skill_work/full_text.txt 和 metadata.json。读 metadata.json 查看提取结果。
Step 2.5 — 成本估算 · Pre-flight Cost Estimate
展示以下报告:
📋 规范编号:
📄 页数: ~ | 字数: ~ | 总 Token: ~K
📊 结构预估:
检测到的条文(编号条款): ~ 条
数据表格: ~ 个
引用其他规范: ~ 个
💰 Token 成本预估:
输入(读取 + 提示): ~K tokens
输出(生成文件): ~K tokens
合计: ~K tokens
📁 将生成的文件:
SKILL.md + clause-index.md + 个条文文件 + 个表格文件 +
mandatory-map.md + cross-refs.md + terminology.md
➡ 是否开始全量转换?(输入 "analyze only" 可先预览分析报告)
等待用户确认后再继续。
Step 2.6 — 大规范分段处理 · REPL-style for Large Regulations (> 50k tokens)
# 查看全文大小
wc -w "$FULL_TEXT_PATH"
# 查找条文编号模式
grep -n -E "^[0-9]+\.[0-9]+\.[0-9]+" "$FULL_TEXT_PATH" | head -60
# 按行范围提取某一段
sed -n ',p' "$FULL_TEXT_PATH"
# 确认表格是否存在
grep -c -i "表[0-9]" "$FULL_TEXT_PATH"
中国规范常用的编号格式:3.2.1、第3.2.1条。
Step 3 — 分析规范结构 · Analyze Regulation Structure
读取 full_text.txt 前 8,000 个字符,识别:
- 规范标题 和 版本
- 发布机关(如:中华人民共和国住房和城乡建设部)
- 章节层次结构(如 1 总则 / 2 术语 / 3 基本规定 / ...)
- 总章节数和条文数
- 附录数量(附录A / B / C...)
然后扫描全文:
# 提取所有条文编号
grep -oP '^\s*\d+\.\d+\.\d+' "$FULL_TEXT_PATH" | sort -uV > /tmp/clause_numbers.txt
wc -l /tmp/clause_numbers.txt
# 识别所有数据表格
grep -oP '表\d+[\.\-]\d+' "$FULL_TEXT_PATH" | sort -uV > /tmp/table_ids.txt
wc -l /tmp/table_ids.txt
# 识别对其他 GB 标准的引用
grep -oP 'GB\s*\d{4,6}' "$FULL_TEXT_PATH" | sort -u > /tmp/cross_references.txt
wc -l /tmp/cross_references.txt
如果是 "仅分析" 模式: 在此时输出分析报告并停止。
Step 4 — 确认输出范围 · Confirm Output Scope
询问用户:
"规范包含 条条文和 个数据表。要全量处理还是只做核心章节?
- 全量 — 所有条文 + 所有表格 + 条文说明
- 核心章节 — 只看你常用的几章(请指定章节号)
- 按主题筛选 — 只看某一类内容"
记录为 SCOPE。
Step 5 — 确定 Skill 名称和位置 · Determine Name and Destination
从规范编号导出 slug:{前缀}-{编号}-{年份} → 如 gb-50016-2018。
对于 OpenClaw:/skills//。
如果目标已存在,询问:更新/覆盖/重命名。
Step 6 — 创建目录结构 · Create Directory Structure
mkdir -p "$SKILLS_HOME//clauses"
mkdir -p "$SKILLS_HOME//tables"
Step 7 — 生成条文文件 ⚠️ · Generate Clause Files
⚠️ 关键:必须保留原文措辞,绝不改写。这是 code-to-skill 与 book-to-skill 最核心的区别。
对 Step 3 中识别的每个章节,读取 full_text.txt 对应段落,创建 clauses/ch-<描述>.md:
# <章节号> <章节标题>
---
## 条文 <简短主题>
### 原文
> <完整原文 — 逐字复制,不改写。
> 保留所有 应/宜/可/不应/不得。
> 如有子项 (1. 2. 3.),保留编号。>
### 强制等级
- [ ] 应 (Shall — 强制性要求)
- [ ] 宜 (Should — 推荐性要求)
- [ ] 可 (May — 允许性规定)
- [ ] 不应 (Shall Not — 禁止性要求)
- [ ] 不得 (Must Not — 绝对禁止)
### 触发条件
<条件 → 结果逻辑,用白话解释>
### 关联条文
- 本条 → <条文编号> (<关联关系>)
- 关联规范: §<章节>
### 关联数据
- 数据来源:<表号> → [查看数据](../tables/<表号>.md)
### 搜索关键词
`<关键词1>` `<关键词2>` `<关键词3>`
强制等级标注规则 · Mandatory-force Tagging Rules
| 关键词 | 标注 | 含义 |
|---|---|---|
应 | 应 (Shall) | 强制性要求,违反=不合规 |
不应 | 不应 (Shall Not) | 强制性禁止 |
不得 | 不得 (Must Not) | 绝对禁止(最强等级) |
严禁 | 不得 (Must Not) | 绝对禁止 |
必须 | 应 (Shall) | 强制性要求 |
宜 | 宜 (Should) | 推荐,但不强制 |
不宜 | 不宜 (Should Not) | 不推荐,但不禁止 |
可 | 可 (May) | 允许,可选择 |
如果一个条文包含多个子项且强制等级不同,需要对每个子项分别标注。
条文说明 · Explanatory Notes
如果 HAS_EXPLANATORY_NOTES=true,在条文后追加:
### 条文说明
> <条文说明 — 解释立法意图。⚠️ 本部分不具有法律强制力。>
Step 8 — 提取数据表和交叉引用 · Extract Data Tables + Cross-references
8.1 数据表 → tables/*.md + tables/*.json
对 Step 3 中识别的每个数据表:
Markdown 格式 (tables/<表号>.md) — 供 Agent 阅读:
# <表号>: <表格描述>
<!-- 来源: §<章节> -->
| <列1> | <列2> | ... |
|-------|-------|-----|
| ... | ... | ... |
## 使用说明
- **适用条件**:在什么设计场景下使用此表
- **引用该表的条文**:3.2.1, 3.2.5, ...
- **注意事项**:表格附注和注意事项
JSON 格式 (tables/<表号>.json) — 供程序化查询:
{
"table_id": "<表号>",
"description": "<表格描述>",
"source": " §<章节>",
"columns": ["列1", "列2"],
"rows": [{"列1": "值", "列2": "值"}],
"referenced_by": ["3.2.1", "3.2.5"],
"notes": ["附注1"],
"units": {"列1": "m", "列2": "h"}
}
8.2 交叉引用图 → cross-refs.md
# 交叉引用图 —
## 内部交叉引用
- 3.2.1 → 3.2.5(耐火等级补充规定)
- 5.5.21 → 5.5.17(疏散宽度与疏散人数联动)
...
## 外部交叉引用
| 本规范条文 | 引用规范 | 引用章节 | 关联关系 |
|----------|---------|---------|---------|
| 3.4.1 | GB 50045 | §6 | 高层建筑叠加 |
| 5.5.21 | GB 50084 | §7.1 | 喷淋联动 |
...
## 入站引用(可选)
| 外部规范 | 外部章节 | 引用了本规范哪条 |
...
Step 9 — 生成主 SKILL.md · Generate Master SKILL.md
⚠️ Token 限制:保持在 4,000 tokens 以内。
生成 $SKILLS_HOME//SKILL.md:
---
name:
description: "规范: — <标题>。按条件查询条文、查阅数据表格、检查跨规范引用关系。"
---
#
**发布机关**: <发布机关> | **版本**: <年份> | **条文**: ~ | **数据表**:
## 如何使用
- 不传参 → 加载规范总纲和强制性等级分布
- 传关键词如 "防火间距"、"疏散宽度" → 匹配条文并展示原文
- 传条文编号如 "5.5.21" → 直接加载该条 + 关联数据表
- "有哪些章节?" → 浏览完整条文索引
- "查表格" → 浏览所有数据表
Agent 每次回答会返回:
1. 条文**原文**(应/宜/可法律效力措辞完整保留)
2. 关联数据表
3. 关联的其他规范条文
---
## 条文索引
| 条文编号 | 主题 | 强制等级 | 触发关键词 |
|---------|------|:---:|---------|
| [3.1.1](clauses/ch03.md#条文-311) | 适用范围 | 应 | `适用范围` `总则` |
...
---
## 章节概览
| 章节 | 内容 | 条文数 | 数据表 |
|------|------|:---:|:---:|
| [1 总则](clauses/ch01-scope.md) | 适用范围和基本原则 | | 0 |
| [2 术语](clauses/ch02-terms.md) | 关键术语定义 | | 0 |
...
---
## 强制性等级分布
| 类型 | 数量 | 说明 |
|------|:---:|------|
| 🔴 应/必须 (Shall) | | 违反 = 不合规 |
| 🟠 不应/不得 (Shall Not) | | 违反 = 不合规 |
| 🟡 宜 (Should) | | 推荐,非强制 |
| 🟢 可 (May) | | 允许项 |
---
## 数据表索引
| 表号 | 描述 | 文件 |
|------|------|------|
| 表3.2.1 | 厂房耐火等级 | [JSON](tables/3.2.1.json) / [MD](tables/3.2.1.md) |
...
---
## 关联规范
- GB <编号> — <标题>( 处引用)
...
---
## ⚠️ 重要提示
1. **条文原文不可改写** — 本 Skill 中的条文均为原文引用,法律效力措辞(应/宜/可/不应/不得)完整保留
2. **条文说明为非强制性参考** — 标注为「条文说明」的内容解释了立法意图,但本身不具有法律强制力
3. **版本差异** — 本 Skill 基于 版本生成。如有修订版颁布,应重新生成
4. **地方标准补充** — 本 Skill 仅包含国家标准。地方标准可能有更严格要求,需另行补充
5. **不替代专业判断** — 本 Skill 是规范查阅工具,不能替代注册建筑师/工程师的专业判断
---
## 文件清单
- [clause-index.md](clause-index.md) — 完整条文编号索引
- [clauses/](clauses/) — 按章节分组的条文原文
- [tables/](tables/) — 结构化数据表(Markdown + JSON)
- [cross-refs.md](cross-refs.md) — 跨规范引用关系图
- [mandatory-map.md](mandatory-map.md) — 法律效力矩阵
- [terminology.md](terminology.md) — 规范术语定义
Step 9.5 — 安全扫描 + 强制力审计 · Security Scan + Mandatory Force Audit
A. 安全扫描(使用内嵌工具)
用本 skill 自带的 tools/scan_generated_skill.py(无需外部安装),确认路径后执行:
python3 <本skill目录>/tools/scan_generated_skill.py <生成的规范skill目录>
B. 强制力审计 · Mandatory Force Audit
逐项检查:
- 每一条条文有且仅有一个强制等级标注。
- 标注与原文一致(原文"应"→标注"应",原文"不应"→标注"不应"等)。
- 随机抽查 5 条条文,与
full_text.txt原文逐字对比。 - 所有条文引用的数据表在
tables/目录中均存在。
如发现问题,先修正。严重问题(强制等级标注错误)→ 停止并请用户审查。
Step 10 — 清理和报告 · Cleanup and Report
清理提取临时文件(通过 exec 或文件工具删除 /book_skill_work/):
rm -rf /tmp/book_skill_work
输出报告:
✅ 规范 Skill 已创建: $SKILLS_HOME//
📋 规范编号:
📄 页数: ~ | 条文: 条 | 数据表: 个
已生成文件:
SKILL.md — 主索引 + 强制性等级分布
clause-index.md — 完整条文编号索引
clauses/ — 个条文文件(原文保留)
tables/ — 个数据表(.md + .json)
cross-refs.md — 交叉引用关系图
mandatory-map.md — 法律效力矩阵
terminology.md — 规范术语定义
──────────────────────────────────────────
总 Token 量: ~ tokens(条文按需加载)
使用方法:
问 "" → 加载规范总纲
问 " 防火间距" → 查找并展示相关条文
问 " 5.5.21" → 加载指定条文 + 关联数据表
问 " 有什么数据表?" → 浏览所有数据表
更新/补充工作流 · Update / Supplement Workflow
当需要对已有规范 Skill 做补充时:
1. 读取已有 Skill
先读取 SKILL.md 和 cross-refs.md,了解现状。
2. 识别补充类型
- 地方标准补充:创建
supplements/<地方标准编号>.md,列出差异条文 - 新版本规范:建议重新做全量转换。在
version-history.md中记录版本变化 - 条文说明/实施指南:追加到对应条文的「条文说明」部分
3. 合并而不覆盖
- 地方标准:将差异以引用方式添加到相关条文
- 新版本:标记版本差异
- 重新运行 Step 9.5 审计
质量准则 · Quality Rules
- 绝不改写强制性条文 — "应"就是"应"
- 每个编号条文都是可检索目标 — 只要 "3.2.1" 存在,就一定能被找到
- 表格是数据,不是文字 — JSON 用于程序查询,Markdown 用于阅读
- 强制等级必须明确 — 每条条文有且仅有一个标注
- 交叉引用必须完整 — 只要规范里出现了 "GB 50084",就进入 cross-refs
- 条文说明必须标注为非强制 — 始终标注 "不具有法律强制力"
- 主 SKILL.md 应前载索引 — 条文索引和使用指南在前
- 条文文件按需加载 — 不预先加载全部条文到上下文
- 版本信息明确 — 每个生成的 Skill 都记录规范版本
- 不替代专业判断 — 每个 SKILL.md 中必须明确声明
自包含说明 · Self-contained Engine
本 skill 内置了 PDF 提取引擎(不再依赖外部 book-to-skill 安装):
| 资源 | 路径 | 说明 |
|---|---|---|
| 文本提取入口 | scripts/extract.py | 自包含入口,调用 book_to_skill/ 包 |
| Python 引擎 | book_to_skill/ | 内置的提取引擎(vendor 自 book-to-skill) |
| 安全扫描工具 | tools/scan_generated_skill.py | 自带的生成检查工具 |
如需提取更高质量(含表格布局),可在服务器安装 poppler-utils(pdftotext):
sudo apt install poppler-utils。缺省时自动回退到 pypdf / pdfminer,功能仍可用。
参考文件 / References
| 文件 | 说明 |
|---|---|
SKILL.md | 本技能主说明(frontmatter + 全流程 Step 0–10 指令) |
scripts/extract.py | 自包含 PDF 文本提取入口 |
book_to_skill/ | 内置提取引擎(parsers / cli / config / sanitize / dependencies / utils) |
tools/scan_generated_skill.py | 生成技能的安全扫描 + 强制力审计工具 |
skill-card.md | 技能卡片(发布元数据 / 风险评估 / 输出规范) |
_meta.json | 发布元数据(owner / slug / version) |
references/ | 参考与设计说明集 |
CHANGELOG.md | 版本与变更记录 |
README.md | 快速上手与使用说明 |
详见 references/REFERENCES.md。
相关技能
Use when you need to compile any prompt OR multi-source content (PDF/video/URL/image/doc) into a production-grade, reusable AI Skill. Triggers on: 'prompt to...
将企业沉淀的各类文档(支持 DOCX、PDF、MD、TXT 等格式)一键转化为可复用的技能包(.zip)。技能包内包含统一规范的 Markdown 正文、提取的图片资源,以及基于 JSONL 格式的结构化知识索引,可直接挂载给 AI Agent 作为专属知识源使用。
Claude Code技能测试框架。自动分析技能定义、生成测试用例、执行功能测试并生成详细的评分测试报告。当用户要求"测试技能"、"评估技能"、"检查技能是否工作"、"验证技能功能"时触发此技能。
Distills technical long-form content (engineering notes, papers, project docs) into agent-callable skills with evidence indexing and temporal tracking. Use when the user wants to convert a technical article, paper, or project documentation into reusable skills that preserve engineering detail and tr
Audit a target SKILL.md against the Agent Skills specification and generate a Chinese HTML report. Use when the user asks to check, audit, review, or optimiz...