AtchayamG/ai-incident-commander
GitHub: AtchayamG/ai-incident-commander
该项目是一个基于证据链和人工审批门禁的 AI 事件响应工作流系统,旨在帮助小型工程团队安全地利用大模型进行事故诊断与补丁修复。
Stars: 0 | Forks: 0
# Incident Commander AI
面向小型工程团队的 AI 事件指挥官:基于证据的诊断、人工批准的修复、已验证的补丁。蓝图:`docs/AI_INCIDENT_COMMANDER_MASTER_BLUEPRINT_v1.md`。
与 Codex 为 OpenAI Build Week 并行开发。可选的实时调查 adapter 在显式配置时,通过 Responses API 针对 GPT-5.6 运行;可复现的评判演示保持无凭证状态,并清晰地标记为模拟。
**状态:M0-M9 已完成;最终的 Devpost 提交正在进行中。** 确定性演示通过显式模拟的 draft-PR 包、通信以及与证据关联的 postmortem 完成了双重审批工作流。无需外部凭证;剩余的提交步骤记录在 `docs/project/taskstatus.md` 中。
## 公开提交产物
- 演示视频:https://youtu.be/-8zRF8RCuc8
- Devpost 项目:https://devpost.com/software/incident-commander-ai
- 源代码仓库:https://github.com/AtchayamG/ai-incident-commander
## 目录结构
| 路径 | 内容 |
|---|---|
| `services/api` | Python 3.12 FastAPI 后端(Pydantic v2、严格的 mypy、ruff、pytest) |
| `apps/web` | Next.js 15 App Router 前端(严格的 TypeScript、Vitest) |
| `packages/contracts` | 镜像后端 Pydantic 模型的共享 TypeScript 契约类型 |
| `docs/adr` | 架构决策,包括本地演示运行时边界 |
| `docs/architecture` | 系统上下文、状态机、安全模型、演示架构 |
| `LICENSE` | 用于公开审查和复用的 MIT 许可证 |
## 快速开始
Docker(单条命令):
```
make docker-up # or: docker compose up -d --build
# web: http://localhost:3000 api: http://localhost:8000/docs
```
本地原生运行:
```
make setup # pnpm install + backend venv (Python 3.12) + dev deps
make dev-api # FastAPI on :8000
make dev-web # Next.js on :3000 (second terminal)
```
`make bootstrap` 是全新克隆设置约定的别名。`make dev` 在前台运行 Docker 开发栈。
Windows 或任何没有 GNU Make 的主机可以直接使用底层命令:
```
pnpm install --frozen-lockfile
uv sync --project services/api --extra dev
uv run --project services/api python -m uvicorn app.main:app --app-dir services/api --reload --port 8000
# 第二个 terminal
pnpm --filter @incident-commander/web dev
```
## 质量门禁
```
make lint # ruff + next lint + tsc
make typecheck # mypy --strict + tsc --noEmit
make test # backend, shared-contract, and web tests
make eval # eight deterministic safety scenarios
make secret-scan # Gitleaks over current tree and Git history
make demo-assert # five complete deterministic demo runs
make openai-smoke # optional credentialed GPT-5.6 structured-output proof
```
CI(`.github/workflows/ci.yml`)在每次向 `main` 分支进行 push/PR 时强制执行后端/前端门禁、web 构建、五个确定性演示、密钥与依赖扫描,以及发布镜像构建。
## 黄金演示(无需凭证)
```
make demo-reset # verify protected reset and RECEIVED seed state
make demo-run # one full run through RESOLUTION_DRAFTED
make demo-assert # five consecutive asserted runs
```
在没有 GNU Make 的 Windows 主机上,直接运行底层命令:
```
uv run --directory services/api python -m app.demo.runner --runs 5
```
每次运行都使用临时的 SQLite 数据库、预设的调查数据和预设的 code-agent。它运行两个公开的审批 endpoint,并断言 `RESOLUTION_DRAFTED`、模拟的 provider 来源、通信以及与证据关联的 postmortem。它绝对不会联系 OpenAI 或 GitHub。
完整演练请参阅 `docs/architecture/demo-architecture.md`。
## 架构概览
```
flowchart LR
J["Judge / incident commander"] --> W["Next.js review UI"]
W --> A["FastAPI typed workflow API"]
A --> S["SQLAlchemy + PostgreSQL default stack"]
A -. "ephemeral test/demo runner" .-> Q["Deterministic SQLite store"]
A --> F["Fixture telemetry, investigation, code-agent, and PR providers"]
A -. "optional; fail closed" .-> O["OpenAI Responses API / Codex CLI / GitHub"]
A --> G["Two recorded human approval gates"]
G --> V["Sandbox policy + six-check verifier"]
```
已验证的提交路径是本地的,并在标记为模拟的地方进行了模拟。默认的 Compose 栈使用 PostgreSQL 和 Redis;可重复性运行器使用临时 SQLite。有关剩余的托管生产环境边界,请参阅 [ADR 009](docs/adr/009-local-demo-runtime-boundary.md)。
## 已验证的基线
- 后端:Ruff 和严格的 mypy 在 56 个应用程序源文件中全部通过;185 个测试通过。
- 前端:lint、严格的 typecheck、20 个 web 测试、6 个共享契约测试以及生产构建全部通过。
- 浏览器:22 个 Chromium 场景通过,包括四视口溢出检查、内部链接验证,以及通过两次审批的真实本地 API 流程。
- 评估:所有 8 个确定性安全场景和 13 个 grader/mutation 测试均通过。
- 可选的实时集成会 fail closed(失败即关闭),且绝不会替代确定性演示模式。受限的、需凭证的 GPT-5.6 结构化输出回执单独记录,且绝不会通过测试夹具产物(fixture artifacts)来暗示。
当前的证明和剩余限制请参阅[任务状态](docs/project/taskstatus.md)、[证据清单](docs/submission/evidence-checklist.md)、[GPT-5.6 回执](docs/submission/openai-live-smoke.md)和[演示脚本](docs/submission/demo-script.md)。
## 核心原则
- 证据在持久化之前必须通过脱敏边界——原始 payload 绝对不能通过。
- 工作流状态仅通过确定性状态机更改;模型输出只是一个类型化的提议(proposal)。
- 外部影响(补丁、PR)需要已记录的人工批准。
- 模拟数据始终会被标记为模拟。
标签:AI运维, AV绕过, FastAPI, Python, 搜索引擎查询, 无后门, 模块化设计, 测试用例, 自动化修复, 请求拦截