MeindertN/RoboClerk
GitHub: MeindertN/RoboClerk
一个基于代码即文档理念的自动化系统,专为医疗设备软件和SaMD的ISO62304合规开发生成文档。
Stars: 14 | Forks: 2
 [](https://coveralls.io/github/MeindertN/RoboClerk?branch=main&kill_cache=1)  
# 欢迎使用 RoboClerk
## 什么是 RoboClerk?
RoboClerk 是一个强大的软件包,专门设计用于满足从事医疗设备软件和 SaMD(软件即医疗设备)的小型团队的需求。使用 RoboClerk 的一个主要优势是,它允许团队按照他们通常的方式工作,无需担心生成大量文档来证明符合 ISO62304 标准。
## 文档即代码
RoboClerk 遵循“文档即代码”的理念,这意味着文档被视为一种代码工件,并以与代码相同的方式进行管理。该软件还设计为可作为 CI/CD 流水线的一部分运行,这进一步简化了开发流程,并确保在每个阶段都满足合规性要求。RoboClerk 获取团队正常开发过程中生成的工件,并用它们自动生成必要的文档。这不仅节省时间并减少错误风险,还确保合规性要求得到满足,而无需从开发活动中抽出时间。
## 基于模板
RoboClerk 使用模板来生成文档。这些模板采用 Asciidoc 格式,以确保生成的文档一致并遵循标准化格式。这些模板可以轻松定制,以满足每个项目的特定需求,并且由于它们是 ASCII 文件,因此可以与源代码一起存储在版本控制中,确保对文档进行精确的配置管理。这意味着团队可以轻松跟踪文档的更改,并在必要时回滚到早期版本,就像他们对待代码一样。
## 高度灵活
RoboClerk 使用 Asciidoc 格式,使用户能够访问其丰富的功能。这使得图表(例如,通过 [Kroki](https://kroki.io/) 使用的 PlantUML)、图像、表格、代码片段、交叉引用等能够无缝集成到生成的文档中,从而提高文档的整体质量和可读性。
## 利用 LLM 增强文档生成
现代人工智能(特别是大型语言模型 LLMs)的出现,极大地改变了我们撰写和管理文本内容的方式。将 LLMs 集成到 RoboClerk 的框架中增强了其能力。目前,RoboClerk 通过像处理文本模板一样解释 AI 提示来利用人工智能的力量。这种方法为用户提供了无与伦比的灵活性,使他们能够向提示中注入大量信息。因此,LLMs 可以帮助全面分析和塑造文档。随着 RoboClerk 的不断发展,未来的版本将通过允许通过 LLMs 直接生成文档来进一步增强其能力。
## 快速入门
1. 拉取您想要使用的 RoboClerk 版本对应的 Docker 容器:
```
docker pull ghcr.io/meindertn/roboclerk:latest
```
2. 在命令提示符下,在您想要创建 RoboClerk 文档脚手架的目录中,使用 `scaffold demo` 命令生成一组包含模板和首次运行 RoboClerk 所需一切内容的演示目录。具体使用的命令取决于您使用的命令行:
Linux Shell:
```
docker run -v $(pwd):/mnt --rm ghcr.io/meindertn/roboclerk:latest scaffold demo
```
Windows PowerShell:
```
docker run -v ${PWD}:/mnt --rm ghcr.io/meindertn/roboclerk:latest scaffold demo
```
Windows 命令行:
```
docker run -v %cd%:/mnt --rm ghcr.io/meindertn/roboclerk:latest scaffold demo
```
3. RoboClerk 将为您创建两个目录:`RoboClerk_input` 和 `RoboClerk_output`。在 `RoboClerk_input` 中,您将找到一组模板和各种其他文件。`RoboClerk_output` 将包含最终的文档。
4. 现在,通过运行以下命令来生成文档:
Linux Shell:
```
docker run -v $(pwd):/mnt --rm ghcr.io/meindertn/roboclerk:latest generate
```
Windows PowerShell:
```
docker run -v ${PWD}:/mnt --rm ghcr.io/meindertn/roboclerk:latest generate
```
Windows 命令行:
```
docker run -v %cd%:/mnt --rm ghcr.io/meindertn/roboclerk:latest generate
```
5. `RoboClerk_output` 目录现在包含所有输出和中间文件。演示流水线设置为生成 Microsoft Word 文档。中间文件是 Asciidoc (`*.adoc`) 和 Docbook 5 (`*.xml`)。
6. 试试看:
* 在正常运行时,RoboClerk 会连接到像 Redmine 或 AzureDevOps 这样的软件生命周期管理系统(SLMS),但在演示中,它使用一个包含所有项目的 JSON 文件。您可以打开该 JSON 文件,对某些项目进行更改,然后重新生成文档以查看效果。
* 在 `RoboClerk_input` 目录中,有定义文档的模板。用您喜欢的文本编辑器打开模板,进行一些更改,重新生成文档并查看效果。
7. 当您使用 JSON 文件作为输入完成后,可以将 RoboClerk 连接到演示 SLMS。首先,使用以下命令获取演示 Redmine 容器:
```
docker pull ghcr.io/meindertn/redmine-demo:latest
```
8. 从这里开始,我假设您使用的是 Linux,请参阅前面的示例了解如何在其他命令行中运行这些命令。使用以下命令构建一个非演示实例的 RoboClerk 目录结构:
```
docker run -v $(pwd):/mnt --rm ghcr.io/meindertn/roboclerk:latest scaffold
```
9. 在文本编辑器中打开 `./RoboClerk_input/RoboClerkConfig/RoboClerk.toml`,并删除除 `RedmineSLMSPlugin` 之外的所有插件:
```
DataSourcePlugin = [ "RedmineSLMSPlugin" ]
```
10. 启动 Redmine 的演示实例:
```
docker run -p 3001:3000 -d ghcr.io/meindertn/redmine-demo:latest
```
11. 试试看:
* 使用用户名 `admin` 和密码 `password123` 登录 `http://localhost:3001/` 的演示实例。在 Redmine 的演示实例中对项目进行更改或创建新项目,然后使用以下命令重新生成文档(注意添加了 `--network="host"`,这只是因为我们需要从容器连接到 localhost):
```
docker run -v $(pwd):/mnt --rm --network="host" ghcr.io/meindertn/roboclerk:latest generate
```
* 查看 `RoboClerk_input/PluginConfig/RedmineSLMSPlugin.toml` 中的 Redmine 配置文件,了解有哪些可用的配置选项。
要了解更多关于 RoboClerk 的详细信息,请查阅 [Wiki](https://github.com/MeindertN/RoboClerk/wiki) 中的文档。
标签:Asciidoc, C2, ISO62304, SaMD, 人工智能安全, 医疗设备, 医疗设备软件, 合规性, 合规文档, 安全可观测性, 开发流程, 开发过程, 文档即代码, 文档自动化, 模板生成, 版本控制, 自动化文档生成, 请求拦截, 质量管理, 软件开发