GJB438C-DocSkill 说明文档
基于 GJB 438C 标准的军用软件文档自动填写工具集
项目简介
GJB438C-DocSkill 是一个 Claude Code 插件,用于自动生成符合 GJB 438C 标准的军用软件文档。用户只需用自然语言描述项目信息,Claude 自动完成模板匹配、内容生成和文档导出。
当前支持两类文档:
| Skill |
文档类型 |
模板 |
word-fillter-438c-srs |
[10] 软件需求规格说明书 (SRS) |
[10][SRS] 软件需求规格说明-438C-2021.docx |
word-fillter-438c-sdd |
[11] 软件设计说明书 (SDD) |
[11][SDD] 软件设计说明-438C-2021.docx |
核心特性
- 插件安装:通过
claude plugin add 一键安装
- 自然语言触发:在对话中描述需求即可自动识别对应 Skill
- 严格模式:锚点匹配失败直接报错,不做静默降级
- 格式保持:替换内容时保留 Word 段落原始样式
- JSON 驱动:所有内容通过
config.json + project.json 配置
快速开始
安装
1
| claude plugin add CMoments/GJB438C-DocSkill
|
前置要求
- Claude Code CLI 已安装并登录
- Python 3.10+(由 Skill 自动调用)
使用
安装后,在 Claude Code 对话中用自然语言触发:
| 触发关键词 |
触发 Skill |
438C 需求规格说明 SRS 软件需求 |
[10] 软件需求规格说明书 |
概要设计 SDD 设计说明 |
[11] 软件设计说明书 |
示例:
1 2
| > 帮我按照438C模板生成一份软件需求规格说明书, > 项目名称是"XXX系统",开发单位是"XX研究所"
|
Claude 会依次引导完成封面信息、章节内容的填写,最终输出合规的 .docx 文件。
项目结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| GJB438C-DocSkill/ ├── .claude-plugin/ │ ├── plugin.json # 插件清单 │ └── marketplace.json # Marketplace 注册表 ├── skills/ │ ├── word-fillter-438c-srs/ # [10] SRS │ │ ├── SKILL.md │ │ ├── documents/ # Word 模板 │ │ ├── templates/ # config.json + project.json │ │ └── scripts/ │ │ ├── main.py # CLI 入口 │ │ ├── process.py # 免参数入口 │ │ └── strict_word_filler/ │ └── word-fillter-438c-sdd/ # [11] SDD(同结构) ├── demo/ # 示例输出文档 ├── GJB438C全套模版/ # GJB 438C 标准全部 31 类模板 ├── blog/ # Hexo 文档站 └── CONTRIBUTING.md # 贡献指南
|
工作流程
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| ┌─────────────────────┐ │ 填写封面信息 │ │ config.json │ │ project + document │ └──────────┬──────────┘ ▼ ┌─────────────────────┐ │ 填写章节内容 │ │ project.json │ │ structure 部分 │ └──────────┬──────────┘ ▼ ┌─────────────────────┐ │ 构建 BuildPlan │ │ loader.build_plan() │ └──────────┬──────────┘ ▼ ┌─────────────────────┐ │ 应用到 Word 文档 │ │ docx_ops.apply_plan│ └──────────┬──────────┘ ▼ ┌─────────────────────┐ │ 输出 .docx 文件 │ │ 首次打开时刷新目录 │ └─────────────────────┘
|
配置文件说明
config.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| { "project": { "name": { "type": "original_text", "replacement_pattern": "...", "content": "编译器" }, "short_name": { ... }, "version": { ... }, "company": { ... }, "department": { ... } }, "document": { "id": { ... }, "title": { ... }, "classification": { ... }, "phase": { ... }, "date": { ... } }, "content": { "overview": { "type": "background_information", "content": "..." }, "scope": { ... }, "features": { ... } } }
|
project.json
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| { "template_info": { "name": "GJB 438C 软件需求规格说明书", "source": "[10][SRS] 软件需求规格说明-438C-2021.docx", "encoding": "gbk" }, "structure": { "1": { "placeholders": [ { "id": "1.1", "replacement_pattern": "...", "content": "..." } ] }, "2": { "tables": [{ "table_id": "...", "locator_rows": [...], "columns": [...], "rows": [...] }] }, "4": { "cscis": [{ "title": "...", "overview": "...", ... }] } } }
|
命令行用法
1 2 3 4 5
| python scripts/main.py \ --template "[10][SRS] 软件需求规格说明-438C-2021.docx" \ --config "config.json" \ --project "project.json" \ --output "output/SRS-filled.docx"
|
| 参数 |
说明 |
--template |
Word 模板文件路径 |
--config |
config.json 文件路径 |
--project |
project.json 文件路径 |
--output |
输出文件路径 |
严格模式设计原则
- 不静默跳过:锚点或表格未匹配 →
StrictTemplateError
- 内容与结构分离:只允许修改
content 和 rows,不得修改 id、replacement_pattern、locator_rows 等结构字段
- JSON 驱动:Python 引擎零硬编码业务逻辑,所有内容来自 JSON 配置
文档系列
许可证
木兰宽松许可证 第2版 (Mulan PSL v2)