📓说明文档

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 输出文件路径

严格模式设计原则

  1. 不静默跳过:锚点或表格未匹配 → StrictTemplateError
  2. 内容与结构分离:只允许修改 contentrows,不得修改 idreplacement_patternlocator_rows 等结构字段
  3. JSON 驱动:Python 引擎零硬编码业务逻辑,所有内容来自 JSON 配置

文档系列

文档 说明
README 项目简介
📓系统架构 系统架构设计文档
📓用户指南 用户使用指南
📓开发指南 开发者指南
📓接口参考 API 参考文档
📓模板规范 模板规范说明

许可证

木兰宽松许可证 第2版 (Mulan PSL v2)