内容
# TruePPM
[](https://gitlab.com/trueppm/trueppm/-/releases)
[](https://pypi.org/project/trueppm-scheduler/)
[](https://pypi.org/project/trueppm-scheduler/)
[](https://gitlab.com/trueppm/trueppm/-/pipelines)
[](https://gitlab.com/trueppm/trueppm/-/pipelines)
[](https://opensource.org/licenses/Apache-2.0)
> **官方源码:[gitlab.com/trueppm/trueppm](https://gitlab.com/trueppm/trueppm)** — 问题和合并请求在那里处理。GitHub 仓库是一个只读镜像,用于发现;它不接受问题或拉取请求。
**瀑布、敏捷和混合项目 — 一个平台,一种数据模型。**
大多数工具都要求你选择一方。Jira 讲敏捷语言,当有人想要时间表时,它就变得一团糟。MS Project 讲瀑布语言,忽略团队在两周冲刺中实际的工作方式。因此,项目经理保留一个时间表,团队保留一个看板,某人每周一早上都要手动协调这两个。
TruePPM 消除了这种协调。Scrum Master 和项目经理查看 **相同的基础数据**,每个人都看到适合他们工作的视图。团队结束一个冲刺;Scrum Master 自动重新预测时间表。无需复制粘贴,无需状态会议,无需第二个工具。
它是开源的、自我托管的,并且是建立在调度第一的架构上的:关键路径法(CPM)— 能够计算哪些任务实际上驱动你的截止日期的数学 — 是引擎,而敏捷看板和冲刺则位于其上,而不是作为一个并行的系统安装在侧面。
而且因为该时间表是 *计算* 的 — 一个引擎在一个数据模型上,而不是第二个系统需要协调 — 所以它是可回答的。这是一个原则,**计算,而不是猜测**:AI 客户端可以从引擎 **计算** 答案,而不是猜测它,**引用** 其背后的推导,**拒绝** 当更改会破坏计划时,并且 **复制** 任何答案稍后。只读 AI 查询服务器(MCP)登陆在 0.4 测试版中是其第一个表面 — 针对您的实时时间表提出实际问题,答案由引擎支持,而不是模型的猜测,并且没有任何内容离开您的盒子。
> ### 状态:0.3-alpha — 预发布,尚未准备好生产
> 引擎和 API 很稳定;UI 正在开发中但仍在成熟中。0.3 作为 `0.3.0-alpha.3` 预发布版发布,**0.4 将是第一个测试版**。在此之前,请期待 API 发生重大变化。**如果您正在运行实际团队,请等待第一个测试版** — 我们仍在学习早期反馈需要更改的内容,我们不想在更改之前锁定您。试用、自我托管试用或使用调度器库?立即开始。
## 五分钟试用
```bash
git clone https://gitlab.com/trueppm/trueppm.git
cd trueppm
docker compose up -d
```
迁移和管理员启动在首次启动时自动运行(~20 秒)。然后用六个角色登录演示:
```bash
docker compose exec api python manage.py seed_demo_project --with-personas
```
命令在完成后打印共享的角色密码 — 在默认的本地开发栈(Django `DEBUG` 开启)中,这是 `demo`。要选择自己的密码,请在播种前设置 `TRUEPPM_DEMO_PASSWORD`;在非调试实例(例如生产)上,种子生成一个随机密码并仅打印一次。
在 **http://localhost:5173** 处以您要探索的角色登录:
| 用户名 | 角色 | 首先打开此页面 |
|---|---|---|
| `maya` | Scrum Master | 冲刺工作区 — 烧毁、容量、回顾 |
| `raj` | 项目经理 | 时间表视图 — 关键路径亮起 |
| `diana` | PMO 总监 | 跨项目冲刺镜头 |
| `sarah` | 资源经理 | 容量预检,分配过多成员 |
| `carlos` | 高管 | 概览,预测置信区间 |
| `tom` | 团队成员 | 看板,带有 WIP 过载芯片和他的卡片 |
需要管理员账户(用户名 `admin`)吗?其密码在启动时生成,并写入文件 — 使用 `docker compose exec api cat /tmp/trueppm_admin_password` 读取。
| 服务 | URL |
|---|---|
| Web UI | http://localhost:5173 |
| API | http://localhost:8000 |
| Swagger UI | http://localhost:8000/api/schema/swagger-ui/ |
您更喜欢在点击之前阅读吗?从 [故事](https://docs.trueppm.com/the-story/) 开始 — 以纯叙事方式呈现端到端混合工作流。 0.4 测试版附带一个托管的公共演示(无需安装)。
## 这适合您吗?
TruePPM 围绕八个角色构建。 在下面找到自己 — 每个角色都链接到以您的语言编写的指南,并附有简短的“亲自尝试”演练。
| 如果你是… | TruePPM 给你… | 指南 |
|---|---|---|
| **项目经理** | 真正的关键路径调度,更新的临界路径,概率完成日期(蒙特卡罗),你可以向客户证明 | [项目经理](https://docs.trueppm.com/guides/project-managers/) |
| **Scrum Master** | 一流的冲刺(目标、燃烧图、速度)— 不是带有日期列的看板 — 以及您从不打开的时间线 | [Scrum Masters](https://docs.trueppm.com/guides/scrum-masters/) |
| **产品负责人** | 具有史诗和故事层次结构的优先级积压(大项目分解为可交付的故事)和基于实际速度的发布预测,而不是期望日期 | [产品负责人](https://docs.trueppm.com/guides/product-owners/) |
| **团队成员** | 简单的“我的工作”列表和看板 — 移动卡片,其他所有内容都会自行更新。无项目管理开销 | [团队成员](https://docs.trueppm.com/guides/team-members/) |
| **资源经理** | 按项目分配,带有部分分配(例如,某人以 50% 的比例参与某个项目)和超负荷警告(跨项目登陆 0.5) | [资源经理](https://docs.trueppm.com/guides/resource-managers/) |
| **敏捷教练** | 团队自愿采用的工具:冲刺保持团队所有,回顾流入积压,无监控 | [敏捷教练](https://docs.trueppm.com/guides/agile-coaches/) |
| **PMO 总监** | 程序级汇总,基于角色的权限和操作审计日志;企业版中提供投资组合治理 | [PMO 总监](https://docs.trueppm.com/guides/pmo-directors/) |
| **高管** | 具有置信度加权的预测 — 您有 50%、80% 或 95% 的机会达到的截止日期(P50/P80/P95)— 而不是单一的乐观截止日期 | [高管](https://docs.trueppm.com/guides/executives/) |
不确定是否合适? [评估指南](https://docs.trueppm.com/getting-started/evaluation-guide/) 演练每个功能 — 哪个演示,哪个登录,哪个屏幕,预期结果 — 大约 30 分钟。
## 为什么选择 TruePPM?
**真正的调度,而不仅仅是任务列表。** TruePPM 在每次更改时运行关键路径法 — 开始和结束日期正向移动,每个任务可以延迟的最晚日期,以及每个任务的松弛(浮动)。您始终知道哪些任务驱动您的截止日期以及在哪里有调整的余地。
**内置概率预测。** 将三点估计(乐观/最可能/悲观)添加到任何任务并运行蒙特卡罗模拟。您会得到 P50、P80 和 P95 日期 — 您有 50%、80% 和 95% 的机会达到的截止日期 — 而不是一个乐观的数字。P80 是您向利益相关者承诺的截止日期。
**原生敏捷,时间表感知。** 完整的冲刺生命周期(计划 → 激活 → 关闭),带有工作进展限制(WIP),速度,燃烧图和回顾到积压。Scrum Master 获得原生敏捷界面,从不打开时间线 — 并且冲刺速度悄悄地在下面重新预测时间表。
**混合桥是重点。** 相同的任务既是主时间表的一行,也是冲刺看板上的一个故事。团队成员标记一个故事完成,时间表立即重新计算,项目经理的时间线实时更新。无需状态会议,无需协调电子表格。
**计算,而不是猜测 — AI 合同。** 每个日期、浮动值和预测都由调度引擎计算,并附有推导证明 — 这是面向 AI 的一切规则,分为四个部分。 AI 客户端可以从引擎 **计算** 答案(永远不是模型的猜测),**引用** 服务器端推导,提供 **拒绝** 当提议的更改会破坏计划的规则时(与人类拒绝相同),并 **复制** 以后任何答案。 只读 AI 查询服务器作为第一个表面在 0.4 测试版中提供;写入路径及其防护措施在 0.6 中跟进。参见 [计算,而不是猜测](https://docs.trueppm.com/overview/computed-not-guessed/)。
**开源,自我托管,无锁定。** 社区版为 Apache 2.0。 在您自己的基础设施上运行;您的数据属于您。甚至通过您自己的身份提供者进行单点登录也是开源的 — 它在 0.4 中提供,而不是在付费墙后面。并且调度引擎作为独立的 Python 包提供,如果您只需要数学运算。
**API-first.** 每个功能都是 REST 或实时(WebSocket)端点。 Web UI 是 API 消费者,没有特权访问,与您构建的任何集成相同。 OpenAPI 架构是合同。
## 当前版本(0.3)中有什么?
| 组件 | 状态 | 备注 |
|---|--------|-------|
| **调度引擎** | ✅ 稳定 | 关键路径法(所有 4 种依赖类型,基于日历的滞后,循环检测)加蒙特卡罗预测。 作为独立的 PyPI 包提供。 |
| **REST API** | ✅ 稳定 | 项目、任务、依赖、资源、日历、成员、冲刺的完整创建/读取/更新/删除。后台自动调度。 OpenAPI 3.0 架构。 |
| **权限(RBAC)** | ✅ 稳定 | 5 种角色,每个端点、实时通道和 UI 界面的基于项目的访问控制。成员管理界面。 |
| **实时** | ✅ 稳定 | 每个更改的实时更新(WebSocket),延迟到数据库事务提交。 |
| **离线同步** | ✅ 稳定 | 基于增量的协议,在重新连接时协调离线编辑 — 包括删除 — (与 WatermelonDB 兼容)。 |
| **时间表(时间线/Gantt)** | ✅ 进行中 | 分窗视图,6 种柱状图类型,4 种依赖关系类型,缩放级别,键盘优先的任务输入。 |
| **看板(Kanban)** | ✅ 进行中 | 阶段网格加轨迹/抽屉/队列布局,镇静的工具栏,拖动以促销,WIP 限制。 |
| **冲刺** | ✅ 进行中 | 计划/激活/关闭工作流,燃烧图,速度,容量预检,多团队镜头,回顾。 |
| **预测 UI** | ✅ 进行中 | P50/P80/P95 分布,实时重新运行,新鲜度指示器,燃烧和燃烧图表。 |
| **Helm 图表** | ✅ 进行中 | Kubernetes 部署,带有捆绑的第三方 PostgreSQL 和 Valkey 子图表(官方镜像;Valkey 是 BSD 许可的 Redis 分叉)。今天从图表源安装;计划发布到公共 OCI(GHCR)。 |
**0.3 中的新增功能** (敏捷团队版本):一流的冲刺容器 — 目标、容量、燃烧和状态感知规划,而不仅仅是一个带有日期列的看板;自动计算的速度和预测 *范围*;冲刺主权(中期范围更改是深思熟虑的,并且经过审计,速度保持团队指标,而不是管理指标);桥梁演示(将冲刺承诺提升到时间表里程碑,并观察速度重新预测关键路径完成);具有新的产品负责人角色的史诗和故事层次结构;以及 v2 界面刷新 — 统一的应用壳栏,带有 ⌘K 命令调色板,根据方法论的自适应视图选项卡和基于角色的登陆页面。
**接下来 - 0.4,第一个测试版。** 头条新闻是一个 **只读 AI 查询服务器** ,基于模型上下文协议(MCP):指向 Claude Desktop、Cursor 或任何 MCP 客户端到您自己的实例并询问实时时间表实际问题 — 关键路径,“延迟此任务 3 天,我们何时交付?”,冲刺状态 — 引擎计算的每个答案永远不会被模型猜测,永远不会离开您的盒子。 因为测试版在其前五分钟内被评判,所以 0.4 也是 TruePPM 变得微不足道地可评估的地方:一个托管的只读演示,一键试用路径,以及只读共享链接,您可以交给利益相关者 — 评估故事取代了移动应用,直到可安装的 PWA 和原生 Android 在 0.5 中落地。 测试版还将带来通过您自己的身份提供者进行单点登录,客户端准备的 PDF 导出,共存优先的单向 Jira 同步(运行 TruePPM *旁边* Jira — 不需要做出切换决定),OpenTelemetry 可观察性和发布的速率限制和 API 稳定性合同。 可安装的 PWA,第一运行的引导和电子表格(CSV/Excel)和一次性 Jira 迁移导入将在 0.5 中落地。 查看 [路线图](https://docs.trueppm.com/overview/roadmap/) 以获取完整计划。
## 其他运行方式
### 生产(单服务器)
```bash
cp .env.example .env # 填写 DOMAIN, SECRET_KEY, DB_PASSWORD, REDIS_PASSWORD
chmod +x init-prod.sh
./init-prod.sh # 获取 TLS 证书,启动生产堆栈
```
### Helm / Kubernetes
从图表源安装今天(公共 OCI 发布到 GHCR 正在计划 — #939):
```bash
git clone https://gitlab.com/trueppm/trueppm.git && cd trueppm
helm dependency update packages/helm
helm install trueppm packages/helm \
--namespace trueppm --create-namespace \
-f my-values.yaml
```
一旦图表发布到公共 OCI 注册表,相同的安装将适用于
`helm install trueppm oci://ghcr.io/trueppm/charts/trueppm --version <version>`。
查看 [完整安装指南](https://docs.trueppm.com/getting-started/installation/) 以获取先决条件和值配置。
### 仅调度引擎
如果您只需要数学运算,关键路径和蒙特卡罗引擎作为独立的 Apache 2.0 包提供 — 无 API,无数据库:
```bash
pip install trueppm-scheduler
```
```python
from datetime import date, timedelta
from trueppm_scheduler import schedule, Calendar, Project, Task, Dependency, DependencyType
calendar = Calendar() # Mon–Fri, no holidays (whole-day scheduling)
task_a = Task(id="t-1", name="Design", duration=timedelta(days=5))
task_b = Task(id="t-2", name="Build", duration=timedelta(days=10))
dep = Dependency(predecessor_id="t-1", successor_id="t-2", dep_type=DependencyType.FS)
project = Project(
id="p-1",
name="My Project",
start_date=date(2026, 1, 5),
tasks=[task_a, task_b],
dependencies=[dep],
calendar=calendar,
)
result = schedule(project)
build = next(t for t in result.tasks if t.id == "t-2")
print(build.early_finish) # 2026-01-23(15 个工作日从 2026-01-05 开始,跨越两个周末)
```
## 文档
完整的文档在 **[docs.trueppm.com](https://docs.trueppm.com)** (每个发布标签上的 GitLab Pages 发布)。
- **[安装](https://docs.trueppm.com/getting-started/installation/)** — Docker Compose,Helm/Kubernetes,单服务器,或调度器库
- **[快速入门](https://docs.trueppm.com/getting-started/quickstart/)** — 从克隆到填充的工作空间,耗时五分钟
- **[评估指南](https://docs.trueppm.com/getting-started/evaluation-guide/)** — 验证每个功能 ~30 分钟:哪个演示,哪个登录,哪个屏幕,预期结果
- **[示例项目](https://docs.trueppm.com/getting-started/sample-projects/)** — 加载填充的演示程序,单击一下,或导入/导出任何程序为 JSON
- **[角色指南](https://docs.trueppm.com/guides/project-managers/)** — 适用于项目经理、Scrum Master、产品负责人、团队成员、资源经理、敏捷教练、PMO 主管和高管的指南
- **[管理](https://docs.trueppm.com/administration/deployment/)** — 部署、配置、权限、安全
- **[功能](https://docs.trueppm.com/features/scheduler/)** — 深入了解关键路径调度、时间线(Gantt)、冲刺、实时、离线同步等
- **[API 参考](https://docs.trueppm.com/api/reference/)** — 完整的端点列表,带有示例
## 路线图
公开的里程碑:[gitlab.com/trueppm/trueppm/-/milestones](https://gitlab.com/trueppm/trueppm/-/milestones)。目标,而不是承诺。完整的发布理由记录在 [路线图文档](https://docs.trueppm.com/overview/roadmap/) 中。
从 0.3 版本开始,每个版本都会 **引入一个主要角色**,同时在混合敏捷/瀑布桥下深化。以下所有内容都是开源的;投资组合治理保留给 1.0 版本后的企业版。
- **0.3 — 敏捷团队** *(已发布)*:真正的冲刺容器,速度范围,冲刺主权(审核范围变更,团队拥有的速度),冲刺到调度重新预测,git PR→卡自动移动,v2 接口
- **0.4 — 自托管项目经理的测试版**:只读 AI 查询服务器(MCP — 由引擎计算的答案,绝不猜测),托管只读演示 + 一键试用,只读分享链接,通过您自己的身份提供商进行单点登录,客户端准备好的 PDF,共存优先的单向 Jira 同步,OpenTelemetry 可观察性,已发布的速率限制和 API 稳定性合同
- **0.5 — 计划与人员**:部分资源分配,预提交超额分配警告,时间表,基线,可安装的 PWA 和原生 Android 应用,首次运行引导,CSV/Excel 和一次性 Jira 迁移导入
- **0.6 — 开放与可移植**:从前 10 名项目管理工具导入,带有调度引擎作为裁判的 AI 编写界面(MCP),公共 API 深度,可分享的路线图视图
- **0.7 — 产品负责人**:可编辑的产品路线图界面,带有发布目标车道,发布规划,待办事项与调度协调
- **0.8 — 呈现与关联**:自动叙事(“为什么日期变动” — 由引擎回答),报告套件(PDF,假设,基线差异),程序网页视图,成本报告,团队凝聚力技术预览
- **0.9 — GA 候选版**:引导优化,直观性检查,GA 硬化(冻结的 v1 API,WCAG 2.1 AA 无障碍,性能和规模),扩展 SDK
- **1.0** — 首个稳定的 GA:团队凝聚力 — 布鲁克斯定律摩擦因子(在项目后期添加人员会使项目更加滞后的想法)— 作为一流的调度输入,iPhone/iPad 功能对齐,工作流引擎成熟度
## 开源核心模型
TruePPM 遵循 *开源核心* 模型:一个免费、完整的 Apache 2.0 核心,适用于需要它们的组织的可选专有插件。
**社区版**(此仓库)是 Apache 2.0 — 调度引擎(关键路径 + 蒙特卡罗预测,独立于 PyPI),调度(时间线 / 甘特图),看板(Kanban),冲刺(完整生命周期 + 速度,燃尽图,回顾),计划,MS Project 导入/导出,离线同步,实时协作,5 角色访问控制,REST 和实时 API,以及 Helm 图表。一个项目经理或计划团队需要的一切。基本单点登录 — 通过 OIDC/OAuth 标准使用您自己的身份提供商登录 — 也是开源核心的一部分,并将在 0.4 版本中实现。
**企业版**(独立仓库,专有)为需要跨多个计划治理投资组合的 *组织* 添加了功能:投资组合分析,组织范围的身份治理(目录同步和通过 SAML、SCIM 和 LDAP 标准强制执行公司范围的登录),不可篡改的审计轨迹,跨计划资源平衡,AI 辅助调度,以及 Jira/GitLab/ServiceNow 连接器。
社区版本身功能齐全 — 它绝不会从企业版仓库导入。依赖关系是严格单向的。
## 贡献
TruePPM 欢迎贡献。
1. 从 `main` 分支:`git checkout -b feat/<short-description>`
2. 遵循 [Conventional Commits](https://www.conventionalcommits.org/)(`feat:`、`fix:`、`docs:`、`test:`、`chore:`等)
3. 在 `changelog.d/` 中添加变更日志片段(例如 `my-change.added.md`)— CI 检查此项
4. 所有合并请求在合并前都需要绿色管道
有关完整的流程、测试层期望和开发者证书来源(DCO)签名要求的详细信息,请参见 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 仓库布局
```
trueppm-suite/
├── packages/
│ ├── scheduler/ # CPM + Monte Carlo 引擎(pip:trueppm-scheduler)
│ ├── wasm-scheduler/ # Rust + petgraph CPM 引擎编译为 WASM
│ ├── api/ # Django 5.2 REST + Channels 后端
│ ├── web/ # React 19 + TypeScript 前端
│ ├── helm/ # Kubernetes 部署的 Helm 3 图表
│ └── website/ # Astro Starlight 文档站点
├── docs/ # 架构决策记录(源记录)
├── docker-compose.yml # 开发栈
└── docker-compose.prod.yml # 生产栈(发布镜像 + TLS)
```
## 开发
```bash
make setup # 通过 pre-commit 安装 git 钩子
make doctor # 验证先决条件
make up # 启动开发栈
make test # 运行所有测试(pytest + vitest)
make lint # ruff + eslint
make pre-push # 完整的 CI 门控(lint、类型检查、迁移、模式)
```
有关编码约定、双仓库规则和完整的开发者指南,请参见 `CLAUDE.md`。
## 已发布制品
发布标签会将 Docker 镜像发布到 **GitLab 容器注册表**。GHCR 镜像(`ghcr.io/trueppm/{api,web,charts}`)计划作为 0.4 测试版供应链工作的一部分(#939);发布管道仅在配置了可选的 `GHCR_USER` / `GHCR_TOKEN` 凭证时才会推送到 GHCR。在此之前,请从 GitLab 注册表拉取或从源代码构建 Helm 图表。
| 制品 | 发布位置 |
|----------|--------------------------|
| `trueppm-scheduler` | [PyPI](https://pypi.org/project/trueppm-scheduler/) |
| API 镜像 | `registry.gitlab.com/trueppm/trueppm/api` (GitLab 容器注册表) |
| Web 镜像 | `registry.gitlab.com/trueppm/trueppm/web` (GitLab 容器注册表) |
| Helm 图表 | 从源代码安装(`packages/helm`)— 计划使用 GHCR (#939) 公开 OCI (`oci://ghcr.io/trueppm/charts/trueppm`) |
## 维护者
**Kelly Hair** — [GitLab](https://gitlab.com/kellyhair) · [LinkedIn](https://www.linkedin.com/in/kellyhair) · [kelly@trueppm.com](mailto:kelly@trueppm.com)
## 安全
通过 [SECURITY.md](SECURITY.md) 私密报告漏洞 — 请勿为安全漏洞开启公共问题。
## 许可证
Apache 2.0 — 请参见 [LICENSE](LICENSE)。
MCP 配置
以下是此 MCP Server 的配置信息,可直接复制到 Cursor 或其他 MCP 客户端中使用。
mcp.json
连接信息
猜你喜欢
暂无推荐服务器