软著登记材料生成

SkillDocs & knowledge

Generates the full set of application materials for Chinese software copyright registration (ruanzhu), program identification material PDFs with fixed page counts, documentation identification material (manual) PDFs, and a field-by-field copy-paste checklist for the online form. Use when the user m

Available today. Use it from your connected AI after setup.

Add ahel to your AI once: Claude, ChatGPT, Cursor, Claude Code or Codex. Then ask it to use this.

Then ask your AI: use the 软著登记材料生成 skill

What this skill tells your AI

The instructions your AI receives, as published by catcatuncle/ruanzhu-kit in SKILL.md and read by ahel’s review.

把一个软件项目加工成中国版权保护中心要求的全套登记材料,并算出在线表单每一项该填什么。

材料由 ruanzhu-kit 生成,不要手搓 HTML 和分页脚本——页数算错整份材料要重做。

三条命令

npx github:CatCatUncle/ruanzhu-kit init        # 生成 ruanzhu.config.json 和说明书骨架
npx github:CatCatUncle/ruanzhu-kit count       # 看清点到哪些文件、多少行、排版几页
npx github:CatCatUncle/ruanzhu-kit all --doc   # 出两份 PDF + 表单清单 + 留存 .doc,并回读核验页数

技能目录里已经有这个仓库的话(~/.claude/skills/ruanzhu-kit/),直接 node ~/.claude/skills/ruanzhu-kit/bin/ruanzhu.mjs …,不用联网。 需要 Node 18+ 和 Chrome/Chromium/Edge 任一(CHROME_PATH 可指定)。 下文的 ruanzhu 指上面任一种调用方式。

硬约束(错了整份重做)

约束要求
源程序页码超过 60 页的,交前连续 30 页 + 后连续 30 页,中间略;不足 60 页全交
文档页码同理;但说明书不足 30 页也可以全本提交,不必凑页数
每页行数不少于 50 行,页数在生成前算死,不许交给排版引擎漂
页眉页码每页页眉标软件名称和版本号(与申请表一致),右上角标页码;工具自动出,核验会查
文件格式在线系统只收 PDF,Word 只用于改字和留存
著作权人与营业执照/身份证一字不差,含行政区划和「有限公司」后缀
源程序量表单、说明页、代码统计三处同一个数

步骤

1. 清点源码(最容易翻车的一步)

只收用户自己写的代码。依赖、构建产物、运行期数据、AI 生成的中间产物一律排掉—— 行数虚高审查员一翻就露馅。ruanzhu count 会列出收进来的文件和行数最多的文件, 对着看一遍,不该在里面的加进 ruanzhu.config.json 的 exclude / excludeFiles。

order 决定拼接顺序,按「入口 → 核心模块 → 能力层 → 配置」排,让审查员看到的是 一份连贯的工程,不是按字母表打乱的文件堆。

2. 出程序鉴别材料

ruanzhu source --doc

命令跑完会回读 PDF 核验页数:超 60 页的项目应该是 62 页(封面 1 + 前 30 + 说明页 1 + 后 30)。 核验没全绿就别交。

页面太空可以 --lines-per-page 60 排密一点,上限 66 行(A4 + 2cm 边距 + 9pt)。

3. 写说明书,出文档鉴别材料

init 生成的 ruanzhu/说明书.md 是固定 11 章骨架:总体功能描述、运行环境、编译环境、 安装、启动、主要功能说明、软件架构、文件清单、配置文件、规范文件、常见问题。

按项目实际内容补完(模板里的 …… 全部换掉),然后:

ruanzhu manual --doc

第六章「主要功能说明」要和表单里的「软件的主要功能」互相对得上,别一个写五条一个写八条。

4. 出表单填写清单

把 ruanzhu.config.json 的 form 各字段填好,跑:

ruanzhu form

产出 表单填写清单.md,每个字段带字数和是否超限,可以直接往在线系统里粘。 字段怎么措辞见 docs/form-fields.md。

两个最常填反的字段:

  • 开发该软件的操作系统 = 写代码用的系统;该软件的运行平台 = 软件能跑的系统。
  • 开发环境配置要不低于运行环境,反过来逻辑上说不通。

软件的主要功能必须 500–1300 字,低于 500 会被驳回。分 6–9 条,每条「小标题 + 2–4 句」, 覆盖:核心能力、扩展机制、容错、数据存储、跨平台。

交付前自检

  • 程序鉴别材料 PDF 页数核验通过(超 60 页的是 62 页)
  • 说明书 PDF 页数真实,不是空壳
  • 源程序量三处一致
  • 著作权人与营业执照/身份证一字不差
  • 「软件的主要功能」字数落在 500–1300,50 字字段都没超
  • 材料里没有依赖、构建产物、运行期数据、AI 中间产物

常见坑

坑后果解法
用 Word 排版导 PDF页数随版本漂,50 行/页能渲成 71 页用本工具,分页点在生成前钉死
按行数硬切分页超长行折行撑破页面按折行后的高度分页(本工具默认行为)
把源码「对半分再各凑 30 页」代码量大时每页几百行,PDF 远不止 62 页取整份源程序的前 30 页和最后 30 页
统计行数时混入 node_modules、workspace行数虚高,驳回ruanzhu count 核对文件清单
著作权人写简称驳回与证照逐字对照
文件名与上传栏位对不上传错位置用工具生成的 ①… ②… 文件名
公司申请缺权属证明驳回备《职务开发声明》或《软件著作权转让合同》
转让合同没写「可对外再许可」公司对外授权效力存疑合同须含再许可条款

法人 vs 个人

法人(公司)个人
办理身份法人或其他组织自然人
著作权人营业执照全称身份证姓名
其他证明文件必须传营业执照 + 权属证明一般不需要
适用投标、申政策、商业授权个人开发者

个人开发、公司申请的,要准备《软件著作权转让合同》,写明转让全部财产权利 且含对外再许可的权利,否则公司后续对外授权存在效力瑕疵。 在 ruanzhu.config.json 里把 applicantType 设成 company,表单清单会带上这段提示。

交付物

①程序鉴别材料_源程序前30页后30页_<软件名>.pdf   ← 传「程序鉴别材料」
②文档鉴别材料_说明书_<软件名>.pdf              ← 传「文档鉴别材料」
表单填写清单.md                                ← 逐字段可复制
<软件名>源程序.doc / <软件名>说明书.doc          ← --doc 产出,可编辑留存

其他证明文件(营业执照、权属证明)由用户自己准备,命名成 ③其他相关证明文件_….pdf。

没有 Node 环境时

核心只有一个算法:按折行后的高度分页,而不是按行数。一行 300 字符在 A4 上 (2cm 边距、9pt Courier New)会折成 4 行,每行 89 字符,每页最多 66 行。先算出每一行 占几个行高单位,累加到 50 就换页,用 <div style="page-break-after:always"> 钉死分页点, 再用 chrome --headless=new --no-pdf-header-footer --print-to-pdf=out.pdf in.html 渲染。 实现见 lib/paginate.mjs。

Signals

GitHub stars
22
Forks
11
Last commit
Sep 2026
Advanced
Item type
skill
Key
ruanzhu-kit
Source
github.com/catcatuncle/ruanzhu-kit