/ruanzhu
当用户执行 /ruanzhu 命令或请求生成软著源代码文档时触发。提供软著源代码 DOCX 生成规范。
$ npx -y skills add doccker/cc-use-exp --skill ruanzhu --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/ruanzhu
Context preview
The summary Claude sees to decide when to auto-load this skill.
当用户执行 /ruanzhu 命令或请求生成软著源代码文档时触发。提供软著源代码 DOCX 生成规范。
SKILL.md
ruanzhu.SKILL.mdname: ruanzhu
description: 当用户执行 /ruanzhu 命令或请求生成软著源代码文档时触发。提供软著源代码 DOCX 生成规范。
version: v1.3
ruanzhu 技能 - 软著源代码DOCX生成
⚠️ 强制执行规则
**必须执行以下命令,禁止任何其他操作:**
cp ~/.claude/templates/ruanzhu/generate_docx.py ./generate_docx.py && python3 generate_docx.py $ARGUMENTS && rm generate_docx.py
禁止事项
- ❌ 自行编写生成脚本
- ❌ 在项目中创建任何 `.py` 文件
- ❌ 检测 python-docx 是否安装
- ❌ 创建 venv 或手动安装依赖
- ❌ 搜索项目中的文件
- ❌ 执行项目中已有的任何脚本
唯一允许的操作
✅ 执行上面的 bash 命令(一条命令,用 && 连接)
执行后状态
- ✅ 生成 `docs/ruanzhu/{软件名称}{版本}-源代码.docx`
- ✅ 使用 `--different` 时,生成 `{软件名称}{版本}-源代码-2.docx`(编号递增)
- ✅ 项目中**不应有任何新增的 .py 文件**
- ✅ 临时脚本 `./generate_docx.py` 已被删除
---
参考信息(仅供了解,不要自行实现)
以下内容已由 `generate_docx.py` 脚本实现,**不需要手动处理**:
项目信息检测
按优先级读取项目名称和版本:
# 优先级 1: CLAUDE.md
# 查找 "# {项目名}" 或 "## 项目概述" 下的内容
# 版本:查找 "版本:" 或 "version:"
# 优先级 2: package.json
{
"name": "project-name",
"version": "1.0.0"
}
# 优先级 3: pom.xml
<artifactId>project-name</artifactId>
<version>1.0.0</version>
# 优先级 4: 用户输入2. 检测项目语言
根据文件存在性判断:
| 检测文件 | 语言 | |---------|------| | `pom.xml` 或 `build.gradle` | Java | | `package.json` | JavaScript/TypeScript | | `Cargo.toml` | Rust | | `Gemfile` | Ruby | | `go.mod` | Go | | `*.cpp` 或 `CMakeLists.txt` | C++ | | `requirements.txt` 或 `pyproject.toml` | Python |
3. 源代码扫描规则
Java
优先目录:
- src/main/java/**/controller/
- src/main/java/**/service/
- src/main/java/**/entity/
- src/main/java/**/repository/
- src/main/java/**/config/
- src/main/java/**/security/
- src/main/java/**/dto/
- src/main/java/**/
排除:
- *Test.java
- *IT.java
- *Tests.java
- target/
TypeScript/Vue/React
优先目录:
- src/api/
- src/stores/
- src/pages/
- src/views/
- src/components/
- src/hooks/
- src/utils/
- src/layouts/
- frontend/src/
排除:
- *.spec.ts
- *.test.ts
- *.test.tsx
- *.d.ts
- node_modules/
- dist/
C++
优先目录:
- src/
- include/
- lib/
排除:
- *_test.cpp
- *_test.cc
- test/
- tests/
- build/
Ruby
优先目录:
- app/controllers/
- app/models/
- app/services/
- lib/
排除:
- *_spec.rb
- *_test.rb
- spec/
- test/
Rust
优先目录:
- src/
排除:
- tests/
- *_test.rs
- target/
Go
优先目录:
- cmd/
- internal/
- pkg/
- ./
排除:
- *_test.go
- vendor/
Python
优先目录:
- src/
- app/
- lib/
- ./
排除:
- test_*.py
- *_test.py
- tests/
- __pycache__/
- .venv/
4. 页数控制
固定页数模式(默认60页)
- 每页约57行渲染行(考虑长行换行)
- 按优先级扫描,达到目标行数后停止
- 不足则输出全部
自动模式(auto)
- 总页数 ≤ 60:输出全部
- 总页数 > 60:输出前30页 + 后30页,中间标注省略
5. 渲染行数计算
def estimate_rendered_lines(text, usable_width_cm=15.5):
"""估算一行文本在Word中渲染需要的行数"""
if len(text) == 0:
return 1
width = 0
for ch in text:
if ord(ch) > 127: # 中文字符
width += 0.35
else: # 英文/符号
width += 0.18
return max(1, int(width / usable_width_cm) + (1 if width % usable_width_cm > 0.1 else 0))6. DOCX格式规范
页面:A4 (21cm x 29.7cm)
边距:上2.5cm, 下2.5cm, 左3.0cm, 右2.5cm
字体:宋体 + Courier New, 10pt
行距:单倍行距
页眉:
- 左侧:{软件名称} {版本}(加粗)
- 居中:第 X 页共 Y 页
- 底部:下划线
页脚:
- 居中:第 X 页7. 输出
- 目录:`docs/ruanzhu/`(不存在则创建)
- 文件名:`{软件名称}{版本}-源代码.docx`
- 示例:`贸易订单管理系统V1.0-源代码.docx`
错误处理
| 错误 | 处理 | |------|------| | 无法检测项目信息 | 提示用户输入 | | 未检测到源代码 | 报错并列出支持的语言 | | python-docx 未安装 | 自动 pip install 安装 | | 代码量不足 | 警告并输出全部 |
Read more
name: ruanzhu description: 当用户执行 /ruanzhu 命令或请求生成软著源代码文档时触发。提供软著源代码 DOCX 生成规范。 version: v1.3
ruanzhu 技能 - 软著源代码DOCX生成
⚠️ 强制执行规则
**必须执行以下命令,禁止任何其他操作:**
cp ~/.claude/templates/ruanzhu/generate_docx.py ./generate_docx.py && python3 generate_docx.py $ARGUMENTS && rm generate_docx.py
禁止事项
- ❌ 自行编写生成脚本
- ❌ 在项目中创建任何 `.py` 文件
- ❌ 检测 python-docx 是否安装
- ❌ 创建 venv 或手动安装依赖
- ❌ 搜索项目中的文件
- ❌ 执行项目中已有的任何脚本
唯一允许的操作
✅ 执行上面的 bash 命令(一条命令,用 && 连接)
执行后状态
- ✅ 生成 `docs/ruanzhu/{软件名称}{版本}-源代码.docx`
- ✅ 使用 `--different` 时,生成 `{软件名称}{版本}-源代码-2.docx`(编号递增)
- ✅ 项目中**不应有任何新增的 .py 文件**
- ✅ 临时脚本 `./generate_docx.py` 已被删除
---
参考信息(仅供了解,不要自行实现)
以下内容已由 `generate_docx.py` 脚本实现,**不需要手动处理**:
项目信息检测
按优先级读取项目名称和版本:
# 优先级 1: CLAUDE.md
# 查找 "# {项目名}" 或 "## 项目概述" 下的内容
# 版本:查找 "版本:" 或 "version:"
# 优先级 2: package.json
{
"name": "project-name",
"version": "1.0.0"
}
# 优先级 3: pom.xml
<artifactId>project-name</artifactId>
<version>1.0.0</version>
# 优先级 4: 用户输入2. 检测项目语言
根据文件存在性判断:
| 检测文件 | 语言 | |---------|------| | `pom.xml` 或 `build.gradle` | Java | | `package.json` | JavaScript/TypeScript | | `Cargo.toml` | Rust | | `Gemfile` | Ruby | | `go.mod` | Go | | `*.cpp` 或 `CMakeLists.txt` | C++ | | `requirements.txt` 或 `pyproject.toml` | Python |
3. 源代码扫描规则
Java
优先目录: - src/main/java/**/controller/ - src/main/java/**/service/ - src/main/java/**/entity/ - src/main/java/**/repository/ - src/main/java/**/config/ - src/main/java/**/security/ - src/main/java/**/dto/ - src/main/java/**/ 排除: - *Test.java - *IT.java - *Tests.java - target/
TypeScript/Vue/React
优先目录: - src/api/ - src/stores/ - src/pages/ - src/views/ - src/components/ - src/hooks/ - src/utils/ - src/layouts/ - frontend/src/ 排除: - *.spec.ts - *.test.ts - *.test.tsx - *.d.ts - node_modules/ - dist/
C++
优先目录: - src/ - include/ - lib/ 排除: - *_test.cpp - *_test.cc - test/ - tests/ - build/
Ruby
优先目录: - app/controllers/ - app/models/ - app/services/ - lib/ 排除: - *_spec.rb - *_test.rb - spec/ - test/
Rust
优先目录: - src/ 排除: - tests/ - *_test.rs - target/
Go
优先目录: - cmd/ - internal/ - pkg/ - ./ 排除: - *_test.go - vendor/
Python
优先目录: - src/ - app/ - lib/ - ./ 排除: - test_*.py - *_test.py - tests/ - __pycache__/ - .venv/
4. 页数控制
固定页数模式(默认60页)
- 每页约57行渲染行(考虑长行换行)
- 按优先级扫描,达到目标行数后停止
- 不足则输出全部
自动模式(auto)
- 总页数 ≤ 60:输出全部
- 总页数 > 60:输出前30页 + 后30页,中间标注省略
5. 渲染行数计算
def estimate_rendered_lines(text, usable_width_cm=15.5):
"""估算一行文本在Word中渲染需要的行数"""
if len(text) == 0:
return 1
width = 0
for ch in text:
if ord(ch) > 127: # 中文字符
width += 0.35
else: # 英文/符号
width += 0.18
return max(1, int(width / usable_width_cm) + (1 if width % usable_width_cm > 0.1 else 0))6. DOCX格式规范
页面:A4 (21cm x 29.7cm)
边距:上2.5cm, 下2.5cm, 左3.0cm, 右2.5cm
字体:宋体 + Courier New, 10pt
行距:单倍行距
页眉:
- 左侧:{软件名称} {版本}(加粗)
- 居中:第 X 页共 Y 页
- 底部:下划线
页脚:
- 居中:第 X 页7. 输出
- 目录:`docs/ruanzhu/`(不存在则创建)
- 文件名:`{软件名称}{版本}-源代码.docx`
- 示例:`贸易订单管理系统V1.0-源代码.docx`
错误处理
| 错误 | 处理 | |------|------| | 无法检测项目信息 | 提示用户输入 | | 未检测到源代码 | 报错并列出支持的语言 | | python-docx 未安装 | 自动 pip install 安装 | | 代码量不足 | 警告并输出全部 |
保留你熟悉的 CLI/IDE,让 Claude Code、Gemini CLI、Codex、Cursor、GitHub Copilot 开箱即用 按费力度从低到高,用最少操作获得最大帮助 不是提示词集合,而是一套可维护的 AI 协作配置系统。
Repo: doccker/cc-use-exp
Other skills on cc-use-exp.
- /api-design-safety
当设计或修改 REST API 响应结构、处理 API 返回值,或生成 Excel/CSV/PDF/对账文件等下游产物时触发。防止 API 设计缺陷导致的字段错位、类型歧义,以及生成产物时关键字段缺失但静默成功的问题。
Open skill - /api-proxy-safety
网关/代理/WAF/CDN 中间件的安全关键词匹配实现规范,防止纯子串匹配误判正常响应内容中的技术术语(如 Cloudflare、502、error)
Open skill - /async-task-pattern
当 API/任务可能执行超过 10 秒(批量数据处理、远程 API 批量调用、全表扫描、跨租户聚合)时触发。防止同步接口被网关 30s 超时切断、用户重复点击触发并发、状态缓存内存泄漏等问题。提供异步任务状态机标准模板。
Open skill - /bash-style
当用户操作 .sh、Dockerfile、Makefile、.yml、.yaml 文件,或在 Markdown 中编写 bash 代码块时触发。提供 Bash 编写规范。
Open skill - /code-quality-principles
当编写新模块、设计接口、重构代码或代码审查时触发。提供经典模块化六原则检查清单(大小适中/调用深度/扇入扇出/边界清晰/作用域内聚/可预测性),适用于 PR/Review/新模块设计场景。
Open skill - /external-system-debugging
涉及浏览器、编辑器、CDN/WAF、IM 平台、操作系统剪贴板、第三方 SaaS 等"外部黑盒系统"的代码编写或 bug 调试时触发。强制先抓真实环境数据再推理,避免连续 2 轮"凭代码推理"的修复 no-op。关键词:粘贴/复制异常、跨平台显示不一致、第三方 API 怪结果、CDN/WAF 拦截、本地复现失败、HTML→MD 转换丢属性。
Open skill

