skills/chinese-copyright-application/SKILL.md
中国软件著作权申请材料生成工具。申请表直接输出 Markdown 提交,源程序/用户手册/设计说明书三份生成 LaTeX 并编译为 PDF。自动分析项目代码,生成四份材料(前后各30页共60页源程序、含页眉页脚的用户手册和设计说明书、Markdown 申请表),并做版本号一致性、模块覆盖双向核验、字数限制等信息一致性校验。适用于微信小程序、Web应用、移动App、桌面应用等各类软件项目。当用户提到软件著作权、软著申请、版权登记时必须使用此 Skill。当用户要为任何软件项目准备著作权材料、生成软著文档时也应使用。
npx skillsauth add okooo5km/skills4u chinese-copyright-applicationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
.md)文件提交,不参与 LaTeX 编译。.tex 文件,用 XeLaTeX 编译为 PDF。--front-lines / --back-lines 微调参数申请表是 Markdown,不需要 LaTeX 环境也能拿到。LaTeX 环境只用于编译三份 PDF(源程序、用户手册、设计说明书)。
执行 xelatex --version 检测。
如已安装:继续下一步。
如未安装:告知用户当前可以先生成全部 Markdown/LaTeX 源文件 + Markdown 申请表,待安装 LaTeX 后再编译三份 PDF;询问是否立即安装。用户同意后按以下命令执行:
brew install --cask basictex && sudo tlmgr update --self && sudo tlmgr install ctex xecjk fancyhdr lastpage fancyvrb tabularx enumitem float xcolor longtable collection-fontsrecommendedsudo apt install texlive-xetex texlive-lang-chinese texlive-latex-extra texlive-fonts-recommended这是上次(集享 V1.0 软著流水号 2026R11L0626727)被打回补正的首条意见:申请表填 V1.0,但
utils/config.js写的是version: '1.1.1',截图角标也是 V1.1.1,被审查员第一眼抓到。在收集软件参数之前必须先做这一步。
操作流程:
先问用户「这次软著要申请的版本号是多少」(首次申请通常 V1.0)。
然后扫描项目里所有版本号字符串:
# 配置文件中的 version 字段
grep -rEn '"version"\s*:\s*"[0-9]+(\.[0-9]+)+"' <项目路径> \
--include='*.js' --include='*.ts' --include='*.json' \
--exclude-dir=node_modules --exclude-dir=miniprogram_npm
# 页面 footer / 关于页里硬编码的版本号
grep -rEn 'V[0-9]+\.[0-9]+|版本.*[0-9]+\.[0-9]+' \
<项目路径>/pages <项目路径>/components <项目路径>/src 2>/dev/null
如果用户已经提供了运行截图目录,提醒用户检查截图右下角/关于页/启动页是否带版本号。
把扫描结果以表格形式列出来:所有出现位置 + 对应版本字符串。
如果发现不一致(任何位置的版本号 ≠ 用户拟申请的版本号),必须停下来,让用户裁决:「最终申请使用哪个版本号?」并明确告知用户:在提交申请前必须把所有出现位置统一(含重新截图)。
全部一致才能继续下一步。
详见 requirements.md。
分两轮收集信息。
先检查项目根目录或用户工作目录下是否存在 copyright-owner.json。
如已存在:读取文件内容,向用户展示并确认是否有变更。用户确认无误则直接使用,跳到第二轮。
如不存在:首次使用,需引导用户提供信息并保存。先问著作权人是个人还是企业,然后收集对应信息。
个人需提供:姓名、身份证号、地址、邮编、联系人、电话、邮箱。
企业需提供完整工商信息(参考 requirements.md「著作权人信息」章节):公司全称、统一社会信用代码、企业类型、法定代表人、注册资本、住所地址、登记机关、营业执照登记日期、联系人、电话、邮箱。
收集完成后将信息保存为 copyright-owner.json,格式如下:
{
"type": "企业",
"name": "星辰科技(北京)有限公司",
"credit_code": "91110108MA01EXAMPLE",
"enterprise_type": "有限责任公司",
"legal_representative": "张三",
"registered_capital": "伍佰万元整",
"address": "北京市海淀区中关村大街1号",
"registration_authority": "北京市海淀区市场监督管理局",
"license_date": "2022年6月15日",
"contact": "",
"phone": "",
"email": ""
}
此文件后续申请时直接复用,著作权人信息只需填一次。
自动分析项目后预填建议值,让用户确认:
| 参数 | 说明 | |------|------| | 软件全称 | 必须以"软件"二字结尾(如"智慧记账软件"),有辨识度,所有文档中完全一致。用户提供的名称若未以"软件"结尾,自动补上 | | 版本号 | V1.0(首次申请统一使用 V1.0) | | 开发完成日期 | 软件实际完成开发的日期 | | 首次发表日期 | 软件首次上线/发布的日期(≥ 开发完成日期) | | 源程序量 | 项目实际总代码行数(可自动统计后让用户确认) |
日期约束:开发完成日期 ≤ 首次发表日期 < 申请日期。生成时自动校验,不合规则提醒用户修改。
运行 scripts/analyze_and_generate_source.py 完成项目分析和源程序 .tex 生成:
python3 scripts/analyze_and_generate_source.py <项目路径> \
--name "软件全称" \
--version "V1.0" \
--owner "著作权人名称" \
--date "2025年4月30日" \
--output copyright-materials/
脚本自动完成:
legacy_candidates 字段project_analysis.json 供后续文档生成参考遗留代码排除规则(默认识别 + 用户裁决):
脚本会扫描以下模式作为遗留代码候选项,列出但不自动排除:
mockData*.js / mock*.js / fakeData*.js — 仅供开发期使用的假数据utils/util.js — 微信小程序默认模板的 formatTime 样板(条件:文件 < 1KB 或仅含模板函数)pages/logs/** — 微信开发者工具默认模板的日志页Claude 在拿到 legacy_candidates 后,必须列出来询问用户是否排除,确认后通过 --exclude-pattern 参数重新运行脚本。这是为了避免源代码鉴别材料里出现"文档里写不出来对应模块"的代码(上次集享被打回的第二大原因)。
排版经验值(10pt + \small Verbatim + 上下2cm左右1.5cm边距,基于实测校准):
| 参数 | 值 | 说明 |
|------|------|------|
| 标准页容量 | 50行/页 | 满页代码行数 |
| 首页容量 | 40行 | 标题区域占约10行空间 |
| 后30页首页 | 48行 | 分隔标题占约2行空间 |
| 前30页目标 | 1490行 | 40 + 29×50(可用 --front-lines 覆盖) |
| 后30页目标 | 1498行 | 48 + 29×50(可用 --back-lines 覆盖) |
| 总目标 | 2988行 | 去除空行后的代码行数 |
代码量不足2988行时,脚本使用全部代码,不强凑60页。
脚本输出的 total_lines_effective 即为申请表中的「源程序量」。
60 页硬约束(重要):源程序 PDF 编译完后必须正好 60 页(除非项目代码本就不足 60 页)。多 1 页或少 1 页都属于格式不合规。编译后用 pdfinfo <软件全称>源程序.pdf | grep Pages 核对;如不对,调整 --front-lines / --back-lines 参数(默认 1490 / 1498,每次 ±2~5 行试探)重新生成并编译。
所有文档的 LaTeX 编写规范见 references/requirements.md。每份文档的模板见 references 目录下对应的 .tex 模板文件。
输出目录:copyright-materials/
生成文档前先创建目录结构:
mkdir -p copyright-materials/images
文件命名规范为「软件全称 + 文档类型」,举例:
智慧记账软件著作权登记申请表.md(Markdown 直接提交,不编译)智慧记账软件源程序.tex / .pdf智慧记账软件用户手册.tex / .pdf智慧记账软件设计说明书.tex / .pdfbuild_all.shimages/(图片目录,用户后续在此放入截图)模板:application-form-template.md
载体:直接生成 .md 文件,不参与 LaTeX 编译。申请表本身没有格式硬要求,Markdown 表格 + 段落即可。
格式要求:
| 字段 | 内容 |)字数限制速查:
由第二步的脚本自动生成,无需手动编写。生成规则详见 requirements.md「源程序文档要求」。
模板:user-manual-template.tex
内容结构:
截图要求:
\screenshot{文件名}{标题} 宏,宽度 0.35\textwidth\screenshot 调用模板:design-doc-template.tex
内容结构:
§4 详细设计的硬规则(双向对应 + 6 段结构):
这是上次(集享 V1.0 软著)被打回补正的第二大原因。详见 requirements.md 设计说明书与源代码对应规则。
\subsection 标题应与项目实际目录或文件名对应(如 pages/index、utils/api.js、utils/marketHelper.js),不要起架空的中文名。参考 design-doc-template.tex 已内置 6 段结构示例。
分析项目代码(页面文件、弹窗组件、模态框等),生成截图清单 screenshot-list.md:
| 编号 | 文件名 | 描述 | 触发方式 | 使用位置 |
|------|--------|------|----------|----------|
| 01 | 图1-首页空状态.png | 首页空状态 | 首次进入首页 | 用户手册§3、设计说明书§4.1 |
| 02 | 图2-搜索结果列表.png | 搜索结果 | 输入关键词搜索 | 用户手册§4.1、设计说明书§4.1 |
LaTeX 文档中 \screenshot{文件名}{标题} 宏已内置 images/ 路径前缀,用户只需将截图放到 images/ 目录,文件名与清单中一致即可,编译时自动找到。
文档初版生成完毕后,暂停自动流程,向用户输出以下操作指引(将 <输出目录> 替换为实际路径):
文档初版已全部生成完毕,接下来需要你手动截取软件界面截图。
截图保存路径:<输出目录>/images/
请按照上方截图清单,逐一截取对应的软件界面截图,保存到该目录。文件名与清单中的「文件名」列保持一致(如 图1-首页.png)。
截图添加完成后回复我一声,我会重新编译所有文档生成最终 PDF。
等用户确认截图完成后,再继续执行第五步(编译)和第六步(校验)。
生成 build_all.sh,模板见 references/build-script-template.sh。
脚本要点:
编译完成后,用 pdfinfo <软件全称>源程序.pdf | grep Pages 核对源程序 PDF 是否正好 60 页。若不是 60 页,调整 --front-lines / --back-lines 参数重新生成 .tex 后再编译。
生成完所有文档后,自动校验以下内容并输出校验报告:
| 校验项 | 校验位置 |
|--------|----------|
| 版本号一致性(首项) | 项目源代码(package.json / config.js / 关于页 footer)、运行截图、申请表、各文档页眉与正文 |
| 软件全称 | 申请表、源程序页眉和首页、用户手册标题/页眉、设计说明书标题/页眉 |
| 版本号 | 所有文档的页眉和正文中 |
| 源程序量 | 申请表中的数字 = 源程序文档首页标注的数字 |
| 著作权人名称 | 每个文档首页 |
| 日期 | 各文档中引用的日期一致 |
| 主要功能字数 | 500 ≤ 字数 ≤ 1000(从申请表 Markdown 解析) |
| 其他字段字数 | 开发目的/面向领域 ≤50 字、技术特点 ≤100 字、软硬件环境字段 ≤50 字符 |
| 模块覆盖(双向) | 设计说明书 §4 各模块 ↔ 源程序前30页+后30页中出现的代码文件 |
| 源程序页数 | pdfinfo 显示正好 60 页(除非项目代码不足 60 页) |
字段从 Markdown 解析:申请表是 Markdown,校验脚本通过解析表格行(| 字段 | 内容 |)和「软件的主要功能」段落正文来取数;与旧版 LaTeX 解析逻辑不同。
校验通过则输出"✓ 一致性校验通过",否则列出不一致项。
以下规范适用于申请表、用户手册、设计说明书(源程序文档例外,有专门规范):
\documentclass[a4paper,12pt]{article}
\usepackage[UTF8,heading=true]{ctex}
\usepackage[top=2.5cm,bottom=2.5cm,left=2.5cm,right=2.5cm]{geometry}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{软件全称V1.0\quad 文档类型}
\fancyfoot[C]{第 \thepage\ 页\quad 共 \pageref{LastPage} 页}
\renewcommand{\headrulewidth}{0.5pt}
\renewcommand{\footrulewidth}{0.5pt}
\fancypagestyle{plain}{\pagestyle{fancy}}
页眉格式:软件全称V版本号 文档类型(如:智慧记账软件V1.0 用户手册)
页脚格式:第 X 页 共 XX 页
页眉页脚均有分隔线(0.5pt)
\setlength{\parindent}{2em} % 段首缩进 2 字符
\setlength{\parskip}{0.3em}
\renewcommand{\baselinestretch}{1.3} % 1.3 倍行距
\begin{itemize}[leftmargin=2em]
\begin{enumerate}[leftmargin=2em]
在文档 preamble 中设置图片搜索路径,并定义截图宏:
\graphicspath{{images/}}
\newcommand{\screenshot}[2]{%
\begin{figure}[H]
\centering
\includegraphics[width=0.35\textwidth]{#1}
\caption{#2}
\end{figure}
}
调用时只需 \screenshot{图1-首页.png}{首页},LaTeX 会自动在 images/ 目录下查找图片文件。
每份文档首页统一格式:
\begin{center}
{\LARGE\bfseries 软件全称\quad 文档类型}
\vspace{0.8em}
{\large 著作权人:公司全称}
\vspace{0.3em}
软件版本:V1.0\qquad 发布日期:YYYY年M月D日
\end{center}
环境检查与安装流程见「第零步」。
注意:申请表是 Markdown,不需要 LaTeX,可独立完成。LaTeX 仅用于源程序、用户手册、设计说明书三份 PDF 的编译。
必需宏包:ctex、xecjk、fancyhdr、lastpage、fancyvrb、tabularx、enumitem、float、xcolor、longtable、graphicx、hyperref、array、geometry
编译命令:xelatex -interaction=nonstopmode 文件名.tex(运行两遍)
tools
Use the official Chatwoot CLI to inspect and operate Chatwoot conversations, messages, contacts, inboxes, labels, teams, help center articles, webhooks, reports, and raw Application API paths. Use when Codex needs to call Chatwoot APIs, work with a self-hosted Chatwoot domain, fetch customer feedback, summarize recent conversations, send replies or private notes, assign/label/close conversations, or guide a user through installing and authenticating the Chatwoot CLI.
tools
Use the local `orchard` CLI to interact with macOS Apple apps and services from Codex: Calendar, Reminders, Clock, Mail, Contacts, Notes, Music, Weather, Messages, and Location/Maps. Use when a task asks to read or manage local calendar events, reminders, Apple Mail, contacts, notes, iMessage/SMS, Apple Music playback/library, weather, current time/timezones, geocoding, routes, or current location.
tools
macOS image compression and Zipic-app expert. Drives the local Zipic.app via its `zipic` CLI (Zipic >= 1.9.5) — structured JSON results, per-file `saved_pct`, exit codes. Falls back to the URL Scheme on older builds. Supports JPEG, PNG, WebP, HEIC, AVIF, TIFF, ICNS, PDF, GIF, JPEG-XL, SVG. Batch, format conversion, resize, presets, compression history. MUST use this skill when the user mentions: compress / optimize / shrink image, image too large, batch compress, convert to WebP/AVIF/HEIC/JXL, reduce image size, optimize SVG, minify SVG, preset, compression history. Also: "compress these" / "these images are too big" with image files (incl. SVG) attached. ALSO use for Zipic-usage Q&A: pricing, Pro features, activation, free-tier limits, troubleshooting, vs ImageOptim/TinyPNG/Squoosh, CLI install, format support, Raycast/Shortcuts integration. macOS only. Requires Zipic.app.
tools
小红书运营专家——从0到1全流程指导。覆盖账号定位、内容创作、标题优化、封面设计、SEO搜索优化、推荐算法拆解、涨粉策略、变现路径、数据分析、平台规则合规、内容发布前审核、账号健康度诊断等全维度。 当用户提到以下任何场景时必须使用此 skill:小红书运营、小红书笔记、小红书涨粉、小红书变现、小红书账号、小红书定位、小红书标题、小红书封面、小红书SEO、小红书算法、小红书限流、小红书爆款、小红书选题、小红书带货、小红书直播、小红书蒲公英、笔记转写、内容种草、买手电商、笔记审核、账号诊断、账号健康度。 即使用户只说"帮我写一篇小红书"、"我想做小红书"、"小红书怎么运营"、"帮我优化这篇笔记"、"帮我看看这篇笔记有没有问题"、"我的账号是不是有问题",也应触发。 当用户提到"种草"、"笔记"、"博主"、"达人"、"限流"、"没流量"、"违规"等关键词且语境与小红书相关时也应触发。