READMESource: main@365dc4b5
@deepwhale-cn/dsh-copyright-kit
软著工坊:把一个代码仓库 + 软件名,变成软件著作权登记要用的材料草稿 —— 源程序文档、说明书骨架、界面截图、申请表字段草稿,全部在本机生成。
关键词:软件著作权 · 软著登记 · 源程序 60 页 · 每页 50 行 · 说明书 · 申请表 · DeepSeek Harness 插件
定位:辅助起草 + 排版 + 核对,不是代办、不是法律意见,也不保证登记通过。最终提交前必须由申请人核对内容真实性与权属。
它生成什么
| 材料 | 产物 | 做法 |
|---|---|---|
| 源程序文档 | 源程序.docx |
递归收集源码(跳过 node_modules/.venv/dist/二进制/锁文件/隐藏文件/工程清单),每页 固定 50 行、显式分页、页眉「软件名 + 版本号」、右上角页码;源码超过 60 页时取前 30 页 + 后 30 页 |
| 说明书骨架 | 说明书.docx |
6 章结构(概述 / 主要功能 / 运行环境 / 操作说明 / 技术特点 / 版本说明);用户没给的信息写 【待补充:…】,不编造 |
| 界面截图 | 截图/*.png |
本机 Chrome / Chromium 无头模式,截 http(s) 地址或本地 HTML 文件(默认 1440×900) |
| 申请表字段草稿 | 申请表字段草稿.json / .md |
软件名、版本号、开发完成日期、首次发表日期、代码行数、编程语言占比;逐项标注推导依据与置信度,不确定的留空 |
生成源程序后会自动读回 docx,核对页数、每页行数、页眉与页码域,并把结果一起返回 —— 不用自己一页页翻。
面板:先看计划,再执行
侧栏「软著工坊」面板的流程刻意分成两步:
- ① 生成计划 —— 先告诉你:会收哪些文件、跳过多少、总行数、原始页数与实际采用页数、语言占比、每项材料的前置条件(python-docx / Chrome 是否可用)。
- ② 开始生成 —— 计划确认无误后再落盘;结果显示每个产物的路径与核对结果。
输入变化会让旧计划失效,避免「用旧计划跑新参数」。
安装
dsh plugin --profile web add @deepwhale-cn/dsh-copyright-kit
装好后侧栏多一个「软著工坊」图标。
前置(缺了会明确报错,不会静默失败)
- python3 + python-docx(生成 docx):
可用python3 -m pip install python-docxDSH_COPYRIGHT_PYTHON指定解释器。 - Google Chrome / Chromium(只截图时需要):默认查
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome等常见路径;也可用DSH_COPYRIGHT_CHROME=/path/to/chrome指定。
其它环境变量:
| 变量 | 作用 |
|---|---|
DSH_COPYRIGHT_OUT |
默认输出根目录(默认 ~/软著材料) |
DSH_COPYRIGHT_REPOS_DIR |
面板候选仓库扫描根(默认 ~/dsh-guard) |
四个服务端工具
| 工具 | 主要参数 | 说明 |
|---|---|---|
copyright_source_doc |
repo、software_name、version、output |
生成源程序 .docx 并读回核对 |
copyright_manual |
software_name、version、functions[]、overview、environment、output |
生成说明书骨架;缺的信息留占位 |
copyright_screenshots |
targets[]、output_dir、width、height |
本机 Chrome 无头截图 |
copyright_form |
repo、software_name、version、output |
推导申请表字段草稿 |
也可以在对话里直接说:「用软著工坊把这个仓库生成源程序和申请表」。
源程序口径(可核对)
- 每页 50 行:不足补空行,页与页之间是显式分页符(不是靠内容自然溢出)。
- 60 页规则:
原始页数 ≤ 60按实际页数出;> 60取前 30 页 + 后 30 页(中间页不收录,计划里会写明)。 - 页眉:左侧「软件名 版本号」,右侧
PAGE域页码。 - 版式:A4、上下边距 2.0cm、左右 2.5cm、正文 Consolas/宋体 9pt、固定行距 13.6pt(一页最多可放 53 行,50 行不会溢出)。
- 跳过:依赖/构建/缓存目录、锁文件、二进制/媒体、隐藏文件与符号链接、超过 1MB 或疑似压缩生成的文件、
package.json等工程清单。
输出结构
~/软著材料/<软件名>-<版本>/
├── 源程序.docx
├── 说明书.docx
├── 截图/
│ ├── 01-首页.png
│ └── ...
├── 申请表字段草稿.json
└── 申请表字段草稿.md
自检
node --check lib/index.js
node scripts/preflight-client.mjs . # 客户端 bundle 预检(防整页白屏)
node scripts/selftest.mjs # 端到端:造样例仓库 → 生成 → python-docx 读回核对
selftest 只写系统临时目录,不联网;覆盖 80 页裁剪、每页 50 行、页眉/PAGE 域、物理容量、说明书占位、申请表留空字段、本地 HTML 截图,以及 HTTP 面板接口。
边界(重要)
- 辅助起草,不构成法律意见:材料格式与内容仍需申请人(或代理机构)按登记要求核对;是否构成作品、权属归谁,由申请人负责。
- 不编造:说明书只按你给的信息排版,缺的写
【待补充】;首次发表日期无法从代码推导,一律留空。 - 代码行数是统计口径:按文件行数累加(跳过规则见上),不等于登记系统的“有效代码行”口径,请自行复核。
- 不联网:插件自身不发起网络请求;截图是本机 Chrome 打开你指定的地址/文件(该地址是否联网由你决定)。
- 不改官方表格:申请表字段只是草稿,最终以版权保护中心系统里的表单为准。
- 只读源码:除输出目录外不写任何文件。
本插件是一个工具。使用者必须遵守所在地区法律法规,对使用本项目造成的任何后果自行承担责任。
No comments yet. Be the first to write one.