内容
# 事前检查
<p align="center">
<a href="https://github.com/JustineDevs/premortem/releases"><img src="https://img.shields.io/badge/version-v0.1.0-111111?style=for-the-badge" alt="版本"></a>
<a href="https://github.com/JustineDevs/premortem"><img src="https://img.shields.io/badge/apps-web%20%7C%20api%20%7C%20orchestrator-111111?style=for-the-badge" alt="软件包"></a>
<a href="https://github.com/JustineDevs/premortem"><img src="https://img.shields.io/badge/stack-next.js%20%7C%20supabase%20%7C%20vercel%20%7C%20alibaba%20cloud-111111?style=for-the-badge" alt="技术栈"></a>
<a href="https://premortem.jstn.site"><img src="https://img.shields.io/badge/website-premortem.jstn.site-111111?style=for-the-badge" alt="网站"></a>
<a href="https://github.com/sponsors/JustineDevs"><img src="https://img.shields.io/badge/sponsor-JustineDevs-ea4aaa?style=for-the-badge&logo=githubsponsors&logoColor=white" alt="赞助商"></a>
</p>
<p align="center">
<img src="./apps/web/public/logo/svg/premortem_header(white).svg" alt="Premortem 标志" width="120">
</p>
<p align="center">
<strong>首个审查员优先、图感知预测审计系统。</strong><br />
Premortem 摄入有界的仓库上下文,运行固定的专家群,合成可追溯的问题候选,并要求人工审批后才能将任何内容提交到 GitLab。
</p>
<p align="center">
<a href="https://github.com/JustineDevs/premortem/releases">版本发布</a> ·
<a href="./docs/releases/releases-notes-v0.1.0.md">版本说明</a> ·
<a href="./docs/architecture/adr-0001-canonical-product-and-system-design.md">架构 ADR</a> ·
<a href="./apps/web/app/docs">文档中心</a> ·
<a href="./SECURITY.md">安全</a>
</p>
## Premortem 存在的原因
现代交付团队拥有扫描器、仪表板和 AI 摘要,但仍然难以回答一个更难的问题:
> 这个仓库可能会出现什么问题,为什么,在交付前应该审查什么?
大多数工作流积累了孤立的警报、脆弱的所有权假设和通用 AI 文本,这些文本难以信任或发布。
Premortem 提出了一个不同的契约:
- 每个审计只有一个有界的摄入路径
- 专家代理共享一个真相基板
- 一个审查员队列,具有版本控制的编辑
- 从提示到发布问题的可追溯性链
- 没有自动发布到 GitLab 的静默路径
结果是受控的仓库智能:结构化的发现、可检查的证据和负责的发布决策。
> [!TIP]
> Premortem 设计用于需要预测和审查治理的团队,而不是另一个将非结构化文本转储到问题跟踪器的聊天机器人。
## 产品故事
大多数团队只在事后分析中发现真正的问题模式,在事故发生后、错过 SLA 或痛苦的客户错误之后。Premortem 在合并或发布之前对仓库本身运行 **事前检查**:一种多镜头审计,具有员工工程师审查整个系统的纪律,而不是一个标记隔离行的 linter。
对于每个 GitLab 项目,Premortem 都会将结构化分析问题作为 **这里可能会出现什么问题?** 的问题:
- **摄入**:有界的仓库树、CI 历史、依赖项和配置上下文。
- **专家群**:在共享的运行时基板上固定镜头(结构、安全、发布、集成等)。
- **合成**:聚类和重复数据删除为审查就绪的问题候选,包含问题、预期行为、建议的修复、成功标准和重要性原因。
- **人工门控**:维护者检查推理、编辑、合并或拆分,并在发布到 GitLab 之前批准。
审查员控制台在 `/app` 处公开可追溯性:哪个镜头浮现出发现、支持证据、代理运行以及审计管道和仓库图的工作流画布视图。连续审计模式可以在空闲时旋转扫描;停止所有操作返回手动扫描的控制权。
**技术栈(实现后):** Next.js BFF 和审查员 UI 在 Vercel 上,Alibaba Cloud ECS 用于后端运行时,`@premortem/orchestrator` 群执行与 Gemini 和 Qwen 兼容的模型路由,GitLab OAuth 加 REST 摄取和问题发布,Supabase Postgres 通过 Prisma,以及用于审计上下文和工作流跟踪的 Neo4j 图快照。
**路线图上:** 跨仓库边界分析、性能和 SLO 镜头、组织策略包、CLI 和 GitLab 管道门控用于发布阻塞。
## Premortem 是什么
Premortem 是一个审查员优先、GitLab 优先、群编排的预测审计平台。
```text
premortem/
├── apps/web/ Next.js 营销、身份验证、审查员控制台(/app)、BFF 路由
├── apps/api/ 运行时 API 工作线程和本地 Node 服务器
├── services/orchestrator/ 审计管道、专家、发布/协调
├── packages/domain/ 跨层词汇和不变式
├── packages/db/ Prisma 模式、权限、审计生命周期
└── docs/ 公共架构、运行手册和发布元数据
```
在产品层面,Premortem 交付四个职责:
| 职责 | 目的 |
| --- | --- |
| 摄入 | 有界的仓库树、CI、依赖项和配置上下文 |
| 专家群 | 固定领域代理共享运行时基板 |
| 合成 | 发现、聚类和结构化问题候选 |
| 审查和发布 | 人工审批/编辑、GitLab 发布、协调可见性 |
在系统层面,这些职责映射到合作层:
| 层 | 角色 |
| --- | --- |
| Web Shell | 公共登陆、Supabase 身份验证、`/app` 审查员控制台 |
| BFF | Next.js 路由处理程序,将演员上下文转发到运行时 API |
| API 运行时 | 会话验证、工作区变异、审计排队/读取 |
| 编排器 | 队列支持的执行、检查点、发布/协调 |
| 数据 | Supabase Postgres(Prisma)、存储、图服务(可选) |
---
## 功能
* **有界异步审计**:队列支持的运行,具有幂等性、租赁和协作暂停/恢复检查点。
* **专家群**:固定代理阵容,具有结构化输出,而不是通用摘要。
* **审查员控制台**:仪表板、项目、审计、工作流画布、沙盒和 `/app` 中的设置,具有角色感知设置部分。
* **连续审计模式**:空闲时可选自动轮换;停止所有操作停止运行时并返回手动扫描控制权。
* **可追溯性链**:提示版本、代理运行、发现、聚类、问题候选、审查操作、发布问题、协调事件。
* **商业门控**:Stripe 计划状态,具有服务器端权限(`PLAN_LIMITS`)用于仓库、审计和发布能力。
* **可观察性钩子**:Sentry 和 PostHog 接线,用于运行时错误和产品分析。
* **代理评估门控**:promptfoo 支持的提示评估,用于规范的 Premortem 提示表面,具有 Langfuse 支持的提示管理钩子。
## 常见问题 / 安全防御性
- **Premortem 是否存储仓库代码?** 系统设计用于通过后台工作线程处理仓库上下文,并保留诸如发现、聚类、审计快照和审查历史等结构化工件。审查员控制台是持久的操作界面,而不是第二个代码镜像。
- **Premortem 如何减少警报疲劳?** 并行工作线程不会直接发布。发现通过共识验证、聚类和审查员门控流动,因此单线程噪声不会成为公共问题候选。
- **今天哪些集成是活跃的?** GitLab 仓库连接、发布和协调已发货。使用 Supabase Auth 进行登录,支持电子邮件/密码、魔术链接和 GitLab OAuth。GitHub 仓库集成、Bitbucket、Azure DevOps 和 Gitea 仍然是路线图表面。
- **如何强制执行租户边界?** 组织范围的查询、Supabase RLS 和服务器端会话上下文将工作区数据分开。Webhook 在触发审计工作之前会进行验证。
- **数据保留和 AI 隐私怎么样?** Premortem 可以配置为使用提供商合同,明确提供零数据保留或无训练保证。这些保证来自所选提供商合同,而不仅仅是 UI。
- **这能否被企业安全团队审查?** 是的。该项目现在有一个公共企业就绪文档、范围提供商矩阵、共识验证工作输出和审计轨迹故事,与审查和合规工作流对齐。
公共文档:
- [安全性和信任边界](https://premortem.jstn.site/docs/concepts/security)
- [企业就绪性](https://premortem.jstn.site/docs/architecture/enterprise-readiness)
---
<details open>
<summary><strong>快速入门</strong></summary>
### 尝试托管应用(推荐用于评委和新用户)
1. 打开 **[premortem.jstn.site/signup](https://premortem.jstn.site/signup)** 并使用 GitLab 登录。
2. 在 **设置 → 集成** 中,授予仓库访问权限(`read_repository`)。
3. 在 **项目** 中启用仓库或添加公共 GitLab 仓库,然后从 **审计** 运行扫描。
源码:[github.com/JustineDevs/premortem](https://github.com/JustineDevs/premortem)
### 本地运行(开发者)
- Node.js 20+
- pnpm 9.12+
- 带有 Postgres 的 Supabase 项目(pooler + 直接 URL)
- 用于提供者流程的 GitLab OAuth 或令牌(可选用于带有夹具的本地烟雾测试)
复制环境模板并在本地填写密钥:
```bash
cp .env.example .env.local
```
> [!NOTE]
> 本地开发通过 `scripts/load-local-env.ts` 加载仓库根目录 `.env.local`。永远不要提交凭证、服务角色密钥或提供者令牌。
### 2. 安装并运行
```bash
pnpm install
pnpm run docker:up # Neo4j 图存储(和本地 Postgres,如果 `DATABASE_URL` 指向 localhost)
pnpm run dev
```
运行规范提示评估配置 LLM 凭证:
```bash
pnpm run eval:prompts
```
`pnpm run dev` 运行 `scripts/dev/run-local-stack.ts`:
- 确保 Docker 服务启动(默认情况下为 Neo4j;如果使用本地 `DATABASE_URL`,则为 Postgres)
- 将 Prisma 同步到配置的数据库
- 启动本地 API 运行时(默认 `:18787`)
- 启动 Next.js Web 应用(默认 `:13000`)
- 当 `.env.local` 具有数据库、GitLab、LLM 和 Supabase 密钥时:**真实身份验证**(Supabase Auth 加 GitLab OAuth),真实 GitLab 摄取和个人工作区开通
- 当缺少凭证时:夹具模式,`PREMORTEM_AUTH_DISABLED=1` 和 `LOCAL_DEV_FIXTURE` 仅用于烟雾脚本
打开:
- 营销登陆页面:`http://127.0.0.1:13000/`
- 审查员控制台:`http://127.0.0.1:13000/app`
- API 健康状况:`http://127.0.0.1:18787/health`
### 3. 验证循环
```bash
pnpm run smoke:local
pnpm run smoke:audit-flow
node scripts/canonical/verify-stack.mjs
```
> [!WARNING]
> 一些软件包可能仍然存在围绕编排器快照类型的预先存在的类型检查间隙。将烟雾脚本和运行时验证视为主要的本地证明路径,直到 CI 完全绿色。
</details>
---
<details>
<summary><strong>架构概览</strong></summary>
Premortem 使用分层架构,具有明确的信任边界(参见 [ADR 0001](./docs/architecture/adr-0001-canonical-product-and-system-design.md)):
1. **`apps/web`**
公共营销、身份验证路由、审查员控制台(`PremortemOsApp`)和审计、 workspace、计费、集成和协调的 BFF 代理。
2. **`apps/api`**
具有 Supabase JWT 验证、CORS 和组织范围变异的运行时 API。烟雾测试/CI 可以使用 `PREMORTEM_AUTH_DISABLED=1` 和夹具标头;生产和配置的本地开发需要真实会话。
3. **`services/orchestrator`**
审计作业执行、专家协调、检查点暂停/恢复、GitLab 发布和协调。
4. **`packages/domain` + `packages/db`**
规范词汇、Prisma 模型、权限和审计生命周期助手在 Web、API 和工作线程之间共享。
<details>
<summary><strong>显示规范审查表面</strong></summary>
| 表面 | 路由/入口 | 目的 |
| --- | --- | --- |
| 监控仪表板 | `/app`(仪表板选项卡) | 合规性概览、连续审计切换、运行时控制台 |
| 项目库存 | `/app`(项目选项卡) | 注册仓库、触发扫描 |
| 审计和跟踪 | `/app`(审计选项卡) | 发现、群集、运行时监控 |
| 工作流画布 | `/app`(画布选项卡) | 视觉管道和图上下文 |
| 设置 | `/app`(设置选项卡) | 集成、LLM、策略、计费 |
旧版 `/reviews` 重定向到 `/app`。
</details>
</details>
## 规范技术栈
| 关注点 | 选择 |
| --- | --- |
| 应用壳 | Next.js(`apps/web`) |
| 身份验证 | Supabase Auth(单个主要身份验证权限) |
| 数据库 | Supabase Postgres 通过 Prisma(或用于离线开发的 Docker Postgres) |
| 工件 | Supabase 存储(启用时) |
| 图存储 | Neo4j(`docker compose` + `NEO4J_URI`) |
| 异步执行 | Alibaba Cloud ECS 运行时 / 本地编排路径 |
| 客户端状态 | 审查员钩子中的 TanStack Query |
| 可观察性 | Sentry、PostHog |
| 计费 | Stripe(仅商业状态;不是应用身份) |
| 提供者(v0.1.0) | GitLab-first 连接、摄取、发布、协调 |
> [!IMPORTANT]
> 不要为计费或提供者流程引入第二个身份验证系统。Stripe 拥有商业权限输入;Supabase Auth 拥有审查员会话真相。
---
## v0.1.0 交付合同
`v0.1.0` 必须证明一个连贯的 GitLab-first 循环:
- [x] Supabase 身份验证审查员 shell 和 BFF 路由
- [x] GitLab 项目注册和有界审计排队
- [x] 队列支持的编排器执行,具有运行时控制台可见性
- [x] `/app` 中的发现、集群和问题候选
- [x] 版本审查操作和发布/协调启动器
- [x] 配置 Supabase + 运行时凭证时的真实用户身份验证和工作区开通
- [x] 完整的陌生人自助开通,无需操作员环境验证(验证:`pnpm run smoke:production-readiness` → `"ok": true`,`strangerSelfServe`: true)
`v0.1.0` 范围外:GitHub 对齐、企业 SSO 推广、多提供商扩展和完整的实时 Stripe Checkout,无需仪表板帐户设置。
<details>
<summary><strong>在推送或发布之前</strong></summary>
在发布审查或远程推送之前运行此门控。所有命令都假设存储库根目录 `.env.local` 已填写。
```bash
pnpm run verify:env # 凭证 + 已连接的集成
node scripts/canonical/verify-stack.mjs # ADR §7 堆栈检查清单
pnpm run smoke:hackathon # GitLab、Gemini、Phoenix、代理构建器
pnpm --filter @premortem/web build # 生产 Next.js 构建
pnpm --filter @premortem/web typecheck
pnpm --filter @premortem/api typecheck
pnpm run db:reset-billing # 可选:重置层级以验证升级
```
验证路径:
1. `pnpm run dev`(配置模式:无 `PREMORTEM_AUTH_DISABLED`)
2. 在 `/login` 处登录(Supabase Auth 电子邮件/密码、魔术链接和 GitLab OAuth)
3. 连接 GitLab 并在 `/app` → 设置/项目中注册仓库
4. 从项目或仪表板运行审计
5. 审查发现并在设置中练习计费升级(Stripe 测试模式应用层级)
生产部署检查清单(远程环境中永远不会启用):
- `PREMORTEM_AUTH_DISABLED` 未设置
- `PREMORTEM_PRODUCTION_MODE=1` 适用时
- Supabase 服务角色和提供者令牌仅限服务器端
- Stripe Webhooks 已验证;Sentry 和 PostHog 密钥已设置
- 参见 [SECURITY.md](./SECURITY.md) 和 `.internal/PRODUCTION-READINESS.md`
</details>
<details>
<summary><strong>私有和生成的文件策略</strong></summary>
| 路径 | 目的 |
| --- | --- |
| `/internal`, `/.internal`, `/docs/internal` | 私人设计、就绪性和提交上下文(gitignored) |
| `/artifacts` | 生成的截图、导出、提交包(gitignored) |
| `/secrets` | 本地机密材料(gitignored) |
| `/dependencies/vendor`, `/dependencies/private` | 私有供应商下降(gitignored) |
浏览器客户端永远不应接收原始提供者机密、Supabase 服务角色密钥或工作线程签名材料。
</details>
---
## 仓库文档
公开跟踪文档:
- [ADR 0001:规范产品和系统设计](./docs/architecture/adr-0001-canonical-product-and-system-design.md)
- [企业就绪性](https://premortem.jstn.site/docs/architecture/enterprise-readiness.md)
- [规范行为规则](.agents/rules/README.md) (任务、预测策略、工作流、保留、故障处理)
- [产品流程](https://docs/product/flows.md)
- [会话设计](https://docs/security/session-design.md)
- [版本说明 v0.1.0](https://premortem.jstn.site/docs/releases/releases-notes-v0.1.0.md)
- [生产部署指南](https://premortem.jstn.site/docs/releases/DEPLOY-PRODUCTION.md)
- [变更日志](https://CHANGELOG.md)
私有或内部上下文(gitignored 路径,例如 `/internal`, `/.internal`, `/docs/internal`):
- 生产就绪检查门控、TA 深入分析和 UI 布局参考以及冲刺结束笔记
- `.cursor/obsidian-vault/` 中的光标 Obsidian 保险库桥,用于工作项目上下文
Diátaxis 文档中心(在应用内):`/docs` 包含教程、指南、参考、概念和故障排除。
---
## 社区和安全
- 安全策略: [SECURITY.md](./SECURITY.md)
- 行为准则: [CODE_OF_CONDUCT.md](./CODE_OF_CONDUCT.md)
- 私有报告漏洞(参见 SECURITY.md)。不要为疑似安全缺陷打开公共问题。
## 维护者
| 字段 | 值 |
| --- | --- |
| 作者 | `@Justinedevs` |
| 邮箱 | `justinedevs@jstn.site` |
| 域名 | `premortem.jstn.site` |
| 仓库 | [github.com/JustineDevs/premortem](https://github.com/JustineDevs/premortem) |
---
<details>
<summary><strong>致谢</strong></summary>
Premortem 建立在开源、托管服务和社区项目之上。我们感谢以下团队和维护者的贡献。
#### 应用和运行时
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| <a href="https://nextjs.org/"><img src="https://cdn.simpleicons.org/nextdotjs/000000" alt="Next.js" width="28" height="28" align="middle" /></a> Next.js | Web 应用壳、营销、身份验证路由、BFF 路由处理程序 |
| <a href="https://react.dev/"><img src="https://cdn.simpleicons.org/react/61DAFB" alt="React" width="28" height="28" align="middle" /></a> React | 审查控制台 UI |
| <a href="https://www.typescriptlang.org/"><img src="https://cdn.simpleicons.org/typescript/3178C6" alt="TypeScript" width="28" height="28" align="middle" /></a> TypeScript | 整个 monorepo 的共享类型 |
| <a href="https://pnpm.io/"><img src="https://cdn.simpleicons.org/pnpm/F69220" alt="pnpm" width="28" height="28" align="middle" /></a> pnpm + <a href="https://turbo.build/"><img src="https://cdn.simpleicons.org/turborepo/EF4444" alt="Turbo" width="28" height="28" align="middle" /></a> Turbo | 工作区包管理和构建编排 |
| <a href="https://vercel.com/"><img src="https://cdn.simpleicons.org/vercel/000000" alt="Vercel" width="28" height="28" align="middle" /></a> Vercel | 前端托管和 BFF 交付路径 |
| <a href="https://www.alibabacloud.com/"><img src="https://cdn.simpleicons.org/alibabacloud/FF6A00" alt="Alibaba Cloud" width="28" height="28" align="middle" /></a> 阿里云 | ECS 后端部署和运行时托管 |
| <a href="https://nodejs.org/"><img src="https://cdn.simpleicons.org/nodedotjs/339933" alt="Node.js" width="28" height="28" align="middle" /></a> Node.js | 本地 API 服务器和工具 |
#### 身份、数据和图
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| <a href="https://supabase.com/"><img src="https://cdn.simpleicons.org/supabase/3FCF8E" alt="Supabase" width="28" height="28" align="middle" /></a> Supabase | 身份验证、Postgres 和存储 |
| <a href="https://www.prisma.io/"><img src="https://cdn.simpleicons.org/prisma/2D3748" alt="Prisma" width="28" height="28" align="middle" /></a> Prisma | 模式、迁移和数据库客户端 |
| <a href="https://neo4j.com/"><img src="https://cdn.simpleicons.org/neo4j/018BFF" alt="Neo4j" width="28" height="28" align="middle" /></a> Neo4j | 仓库图存储(本地 Docker + bolt URI) |
| <a href="https://www.docker.com/"><img src="https://cdn.simpleicons.org/docker/2496ED" alt="Docker" width="28" height="28" align="middle" /></a> Docker | 通过 `docker compose` 实现本地 Neo4j 和可选 Postgres |
#### 集成和商业
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| <a href="https://about.gitlab.com/"><img src="https://cdn.simpleicons.org/gitlab/FC6D26" alt="GitLab" width="28" height="28" align="middle" /></a> GitLab | OAuth、仓库导入、问题发布、协调 |
| <a href="https://stripe.com/"><img src="https://cdn.simpleicons.org/stripe/635BFF" alt="Stripe" width="28" height="28" align="middle" /></a> Stripe | 订阅结账、Webhook 和计划权益 |
#### AI、代理和评估
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| Qwen Cloud | 兼容的模型路由和提供商备用覆盖 |
| Devin AI | 辅助工作流自动化和实施审查 |
| <a href="https://ai.google.dev/"><img src="./public/logo/brand/gemini-color.png" alt="Google Gemini API" width="28" height="28" align="middle" /></a> Google Gemini API | 专家群的主要 LLM 执行器 |
| <a href="./services/orchestrator/"><img src="./public/logo/svg/premortem-mark.svg" alt="Premortem orchestrator" width="28" height="28" align="middle" /></a> @premortem/orchestrator | 队列支持的审计管道、专家群、集群和发布路径(主要运行时) |
| [可选 `services/agent-builder`](./services/agent-builder/) | 协调器使用的任务跟踪引导钩子;不是唯一的生产运行时 |
| <a href="https://zod.dev/"><img src="https://cdn.simpleicons.org/zod/3E67B1" alt="Zod" width="28" height="28" align="middle" /></a> Zod | 结构化 LLM 和 API 输出验证 |
| <a href="https://www.promptfoo.dev/"><img src="https://www.promptfoo.dev/favicon.ico" alt="promptfoo" width="28" height="28" align="middle" /></a> promptfoo | 规范提示评估门控(`pnpm run eval:prompts`) |
#### 可观察性和产品分析
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| <a href="https://sentry.io/"><img src="https://cdn.simpleicons.org/sentry/362D59" alt="Sentry" width="28" height="28" align="middle" /></a> Sentry | 错误跟踪(Web + API) |
| <a href="https://posthog.com/"><img src="https://cdn.simpleicons.org/posthog/000000" alt="PostHog" width="28" height="28" align="middle" /></a> PostHog | 产品分析和漏斗事件 |
| <a href="https://langfuse.com/"><img src="https://langfuse.com/favicon.ico" alt="Langfuse" width="28" height="28" align="middle" /></a> Langfuse | LLM 跟踪和提示可观察性钩子 |
| <a href="https://phoenix.arize.com/"><img src="https://phoenix.arize.com/favicon.ico" alt="Arize Phoenix" width="28" height="28" align="middle" /></a> Arize Phoenix + [OpenInference](https://github.com/Arize-ai/openinference) | 跟踪、评估、运行时 MCP 反射([指南](./docs/guides/phoenix-arize-track.md)) |
#### 审查控制台 UI
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| <a href="https://tanstack.com/query"><img src="https://cdn.simpleicons.org/reactquery/FF4154" alt="TanStack Query" width="28" height="28" align="middle" /></a> TanStack Query | 控制台数据获取和缓存 |
| <a href="https://www.radix-ui.com/"><img src="https://cdn.simpleicons.org/radixui/161618" alt="Radix UI" width="28" height="28" align="middle" /></a> Radix UI | 可访问基元(shadcn 样式组件) |
| <a href="https://tailwindcss.com/"><img src="https://cdn.simpleicons.org/tailwindcss/06B6D4" alt="Tailwind CSS" width="28" height="28" align="middle" /></a> Tailwind CSS | 操作系统控制台和实用程序样式 |
| <a href="https://lucide.dev/"><img src="https://cdn.simpleicons.org/lucide/F56565" alt="Lucide" width="28" height="28" align="middle" /></a> Lucide | 图标集 |
| <a href="https://vercel.com/font"><img src="https://cdn.simpleicons.org/vercel/000000" alt="Geist" width="28" height="28" align="middle" /></a> Geist | 排版 |
| <a href="https://recharts.org/"><img src="https://cdn.simpleicons.org/chartdotjs/FF6384" alt="Recharts" width="28" height="28" align="middle" /></a> Recharts | 仪表板分析图表 |
| <a href="https://reactflow.dev/"><img src="https://cdn.simpleicons.org/xyflow/FF0072" alt="XYFlow" width="28" height="28" align="middle" /></a> @xyflow/react | 工作流画布 |
| <a href="https://eclipse.dev/elk/"><img src="https://cdn.simpleicons.org/eclipseide/2C2255" alt="ELK" width="28" height="28" align="middle" /></a> ELK 通过 [elkjs](https://github.com/kieler/elkjs) | 管道步骤自动布局 |
| <a href="https://github.com/d3/d3-force"><img src="https://cdn.simpleicons.org/d3/000000" alt="d3-force" width="28" height="28" align="middle" /></a> d3-force | 仓库图力导向布局 |
<details>
<summary><strong>开发工具</strong></summary>
Cursor MCP 插件和文档服务器(用于开发和运维的 Sentry、PostHog、Stripe、Prisma、GitLab MCP、Postgres 工具箱)在存储库根目录中描述为 `mcp.local.json`,并通过 `node scripts/mcp/verify-all.ts` 验证。
#### 仓库卫生
| 项目 | 在 Premortem 中的角色 |
| --- | --- |
| [Knip](https://knip.dev/) | 死代码、未使用的依赖项和导出卫生检查(`pnpm run lint:deadcode`) |
| [TruffleHog](https://trufflesecurity.com/trufflehog) | 工作树和 Git 历史记录的机密扫描(`pnpm run scan:secrets`) |
如果我们遗漏了您依赖的某个依赖项,请打开问题或 PR 以扩展此列表。
</details>
</details>
## 许可证
[LICENSE](./LICENSE)
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器