内容
<p align="center">
<img src="extension/media/icon.png" alt="Hermes SDLC" width="120" />
</p>
<h1 align="center">Hermes SDLC</h1>
<p align="center">
<strong>AI 驱动的软件开发生命周期管理</strong><br/>
MCP 服务器 + IDE 扩展,用于自主、多代理开发工作流
</p>
<p align="center">
<a href="#功能">功能</a> •
<a href="#架构">架构</a> •
<a href="#快速开始">快速开始</a> •
<a href="#使用">使用</a> •
<a href="#代理">代理</a> •
<a href="#引擎">引擎</a> •
<a href="#配置">配置</a> •
<a href="#许可证">许可证</a>
</p>
---
## 概述
Hermes SDLC 是一个**零点击流水线编排器**,通过 AI 代理驱动整个软件开发生命周期。定义一个 Epic,点击播放,然后观看专用代理自主执行每个阶段 — 从产品规划到部署。
<p align="center">
<img src="docs/screenshots/dashboard.png" alt="Hermes 仪表盘" width="800" />
<br/>
<em>仪表盘视图 — 流水线进度一目了然,带有内联批准/拒绝控制</em>
</p>
它与**多个 AI 编码代理**同时工作:
| 代理 | 调度方法 |
|-------|----------------|
| **Antigravity** | `sendPromptToAgentPanel` — 直接代理注入 |
| **Claude Code** | `terminal.sendSequence` — 原始终端按键调度 |
| **Codex** | 通过剪贴板使用 CLI 命令 |
## 功能
- **🚀 一键执行** — 点击侧边栏中的 ▶️ 以调度到您首选的 AI 代理
- **📋 9 阶段流水线** — 计划 → 设计 → 测试计划 → 实现 → 审查 → 执行测试 → 发布 → 监控 → 文档同步
- **🤖 5 代理角色** — 产品负责人、技术负责人、QA 工程师、开发人员、发布经理
- **✅ 质量门控** — 内联批准/拒绝按钮,带有人工审查门控
- **🔍 自动预审** — Nyx 影子审查员在人工审查前验证工件
- **📊 规格偏移检测** — Argos 监控 PRD、设计和实现之间的对齐
- **🧠 上下文优化** — Proteus 压缩阶段上下文以适应令牌预算
- **🏗️ 模型选择** — Athena 为每个角色和阶段分配最佳 AI 模型
- **💰 令牌跟踪** — Cronus 监控整个流水线的 API 使用情况
- **🔗 集成** — GitLab、Jira、YouTrack 问题跟踪器连接器
## 架构
```
hermes-sdlc/
├── pipeline/ # MCP 服务器 — 大脑
│ ├── mcp.ts # 模型上下文协议服务器 (Olympus)
│ ├── orchestrator.ts # 阶段生命周期管理
│ ├── nyx.ts # 影子预审者
│ ├── argos.ts # 规格偏移检测器
│ ├── proteus.ts # 上下文优化器
│ ├── athena.ts # 模型选择器
│ ├── cronus.ts # 令牌跟踪器
│ └── runner.ts # 自主 Gemini API 运行器
│
├── extension/ # VS Code / Antigravity 扩展
│ ├── extension.ts # 命令注册 + 调度
│ ├── providers/ # 侧边栏树视图
│ ├── panels/ # 仪表盘网页视图
│ └── integrations/ # GitLab、Jira、YouTrack
│
├── shared/ # 共享 TypeScript 类型
├── agents/ # 代理角色定义 (markdown)
└── config/ # 模型注册表 + 审查矩阵
```
### 工作原理
```
┌─────────────┐ ┌──────────────┐ ┌────────────────┐
│ IDE 侧边栏 │───▶│ 代理选择器 │───▶│ AI 代理 │
│ 点击 ▶️ │ │ (QuickPick) │ │ (Antigravity/ │
│ │ │ │ │ Claude Code) │
└─────────────┘ └──────────────┘ └───────┬────────┘
│
┌────────────────────▼──────────────────┐
│ MCP 服务器 (Olympus) │
│ │
│ start_phase → phase_context → │
│ get_agent → [agent creates artifacts] │
│ → set_phase_status │
└───────────────────────────────────────┘
│
┌────────────────────▼──────────────────┐
│ 文件系统 (docs/sdlc/) │
│ │
│ epics/WEB-042/ │
│ ├── epic.json # Epic 元数据 │
│ ├── PRD.md # 计划工件 │
│ ├── TECH-DESIGN.md # 设计工件 │
│ └── phases/ # 状态跟踪 │
└───────────────────────────────────────┘
```
## 快速开始
### 要求
- **Node.js** ≥ 18
- **pnpm** ≥ 8
- **VS Code**,**Antigravity**,或兼容的编辑器
- 以下之一:Antigravity、Claude Code 或 Codex 用于 AI 代理执行
### 安装
```bash
# 克隆仓库
git clone https://github.com/dustin9893/hermes-sdlc.git
cd hermes-sdlc
# 安装依赖
pnpm install
# 构建所有包
pnpm build
# 安装 VS Code 扩展
cd extension
pnpm exec vsce package --no-dependencies --allow-missing-repository
code --install-extension hermes-sdlc-0.1.0.vsix
```
### MCP 服务器设置
在项目的 `.mcp.json` 中注册 MCP 服务器:
```json
{
"mcpServers": {
"hermes": {
"command": "node",
"args": ["/path/to/hermes-sdlc/pipeline/dist/index.js"],
"env": {}
}
}
}
```
对于 Claude Code,请添加到 `~/.mcp.json`(全局)或 `.mcp.json`(项目级)。
## 使用
### 1. 初始化 Epic
```
hermes.init_epic(
workspace="/your/project",
epic_id="WEB-042",
project="my-app",
brief="Build a responsive landing page with dark mode"
)
```
### 2. 通过侧边栏运行阶段
打开 **Hermes SDLC: 流水线** 侧边栏面板。每个阶段显示:
| 图标 | 状态 | 操作 |
|------|--------|--------|
| ⚪ | 待处理 | — |
| ▶️ | 已就绪 | 点击运行 |
| 🔄 | 进行中 | 运行中 |
| 🔍 | 审查中 | ✅ 批准 / ❌ 拒绝 |
| ✅ | 已通过 | 已完成 |
| 🔴 | 已拒绝 | 点击 💬 获取反馈 |
### 3. 批准 / 拒绝
当阶段达到 **审查中** 时,会出现内联按钮:
- **✅ 检查** — 批准阶段,推进流水线
- **❌ X** — 提示拒绝原因,发送回重做
### 4. 直接通过 MCP 工具运行
所有操作都可作为 MCP 工具使用:
```
start_phase — 开始阶段运行
phase_context — 获取阶段上下文有效载荷
get_agent — 加载代理角色指令
set_phase_status — 转换阶段状态
epic_status — 完整状态报告
shadow_review — 自动预审筛查 (Nyx)
detect_drift — 规格偏移分析 (Argos)
optimize_context — 令牌预算优化 (Proteus)
select_model — 角色模型选择 (Athena)
token_report — 使用情况跟踪 (Cronus)
```
## 流水线阶段
| # | 阶段 | 工作者 | 工件 | 描述 |
|---|-------|--------|----------|-------------|
| 1 | **计划** | 产品负责人 | `PRD.md` | 需求,用户故事,验收标准 |
| 2 | **设计** | 技术负责人 | `TECH-DESIGN.md` | 架构,组件,数据流,API 契约 |
| 3 | **测试计划** | QA 工程师 | `TEST-PLAN.md` | 测试用例,覆盖率矩阵,追溯性 |
| 4 | **实现** | 开发人员 | 源代码 | 功能分支,带有实现 |
| 5 | **审查** | 技术负责人 | `APPROVAL.md` | 代码审查,架构验证 |
| 6 | **执行测试** | QA 工程师 | `TEST-SCRIPT.md` | 测试执行结果 |
| 7 | **发布** | 发布经理 | `RELEASE-NOTES.md` | 更新日志,部署检查清单 |
| 8 | **监控** | SRE | 仪表盘 | 生产健康监控 |
| 9 | **文档同步** | 存档员 | 文档 | 最终文档更新 |
## 代理
代理角色定义在 `agents/*.md` 中,并动态加载:
### 产品负责人 (`po.md`)
创建带有用户故事,验收标准和范围定义的 PRD。确保业务一致性和利益相关者需求得到满足。
### 技术负责人 (`tech-lead.md`)
生成涵盖架构,组件规格,API 契约,性能预算和风险缓解的技术设计文档。
### QA 工程师 (`qa.md`)
编写带有完全追溯到 PRD 验收标准的测试计划。创建覆盖率矩阵,确保无需求缺口。
### 开发人员 (`developer.md`)
实现遵循技术设计的特性。创建带有适当提交卫生的功能分支,引用 Epic 键。
### 发布经理 (`release-manager.md`)
管理发布说明,部署检查清单和生产发布的 go/no-go 标准。
## 引擎
流水线服务器包含基于希腊神话的专用子系统:
| 引擎 | 角色 | 描述 |
|--------|------|-------------|
| **Olympus** | MCP 主机 | 通过模型上下文协议公开所有流水线工具的主要服务器 |
| **Nyx** | 影子审查员 | 针对质量检查清单的自动预审查筛查 |
| **Argos** | 偏移检测器 | 监控 PRD,设计和实现之间的对齐 |
| **Proteus** | 上下文优化器 | 压缩阶段有效载荷以适应模型令牌预算 |
| **Athena** | 模型选择器 | 根据角色为每个角色分配最佳 AI 模型 |
| **Cronus** | 令牌跟踪器 | 记录和报告流水线运行的 API 令牌使用情况 |
## 配置
### 模型注册表 (`config/model-registry.json`)
为每个提供商配置可用的 AI 模型:
```json
{
"anthropic": [
{ "id": "claude-sonnet-4-20250514", "roles": ["developer", "qa"], "contextWindow": 200000 }
],
"google": [
{ "id": "gemini-2.5-pro", "roles": ["po", "tech-lead"], "contextWindow": 1000000 }
]
}
```
### 审查矩阵 (`config/review-matrix.json`)
配置哪些阶段需要人工门控,自动审查和质量检查清单:
```json
{
"phases": {
"plan": { "worker": "po", "humanGate": true, "autoReview": true },
"design": { "worker": "tech-lead", "humanGate": true },
"implement": { "worker": "developer", "humanGate": true }
}
}
```
### 扩展设置
| 设置 | 描述 | 默认值 |
|---------|-------------|---------|
| `hermes.geminiApiKey` | 自主运行器的 API 密钥 | — |
| `hermes.epicDir` | Epic 存储目录 | `docs/sdlc/epics` |
## 文件系统约定
Hermes 使用文件系统作为其状态存储 — 无需数据库:
```
your-project/
└── docs/sdlc/epics/
└── WEB-042/
├── epic.json # Epic 元数据
├── WEB-042.md # Epic 描述
├── PRD.md # 计划阶段工件
├── TECH-DESIGN.md # 设计阶段工件
├── TEST-PLAN.md # 测试计划工件
└── phases/
├── plan/
│ └── status.json
├── design/
│ └── status.json
└── implement/
└── status.json
```
每个 `status.json` 跟踪:
```json
{
"status": "passed",
"revision": 2,
"startedAt": "2026-05-02T04:00:00Z",
"completedAt": "2026-05-02T04:30:00Z",
"lastReview": {
"decision": "pass",
"reviewer": "human",
"reason": "Approved via sidebar"
}
}
```
## 开发
```bash
# 安装依赖
pnpm install
# 构建所有包
pnpm build
# 在监听模式下构建(扩展)
cd extension && pnpm exec esbuild src/extension.ts --bundle --outfile=dist/extension.js --platform=node --external:vscode --watch
# 打包扩展
cd extension && pnpm exec vsce package --no-dependencies --allow-missing-repository
```
### monorepo 结构
| 包 | 描述 | 构建 |
|---------|-------------|-------|
| `shared/` | TypeScript 类型 | `tsc` |
| `pipeline/` | MCP 服务器 | `esbuild` |
| `extension/` | VS Code 扩展 | `esbuild` |
## 贡献
1. 复刻仓库
2. 创建功能分支 (`git checkout -b feature/amazing-feature`)
3. 提交更改 (`git commit -m 'Add amazing feature'`)
4. 推送到分支 (`git push origin feature/amazing-feature`)
5. 打开拉取请求
## 许可证
MIT © [Dustin Le](https://github.com/dustin9893)