活动历时估算 + WBS工作分解 + 项目文档生成 + 经济效益分析 + 挣值管理(Activity Duration Estimation & WBS & Project Docs & Economic Analysis & EVM)—— 支持三点估算/蒙特卡洛四种方法 + WBS项目规划与分解 + 项目文档双...
---
name: activity-duration-estimation
tags: ['duration-estimation', 'pert', 'monte-carlo', 'project-management', 'semantic-analysis', 'wbs', 'work-breakdown', 'project-docs', 'html-report', 'settings', 'knowledge-base', 'economic-analysis', 'evm', 'earned-value']
version: 1.11.7
author: wUwproject
license: MIT
description: 活动历时估算 + WBS工作分解 + 项目文档生成 + 经济效益分析 + 挣值管理(Activity Duration Estimation & WBS & Project Docs & Economic Analysis & EVM)—— 支持三点估算/蒙特卡洛四种方法 + WBS项目规划与分解 + 项目文档双模式生成(手动空模版/逐节自动)+ ROI/NPV/IRR/BCR 经济效益分析 + PV/EV/AC/SPI/CPI 挣值管理。三库隔离架构:shared.db + economic.db + evm.db。输出自包含HTML评估报告、经济效益分析报告和挣值分析报告。
sensitive_access: false
critical_write: false
permission_weight: LOW
data_dir: ../.standardization/activity-duration-estimation/
external_data_dir: true
trigger: 活动历时估算/三点估算/PERT/蒙特卡洛模拟/工期估算/任务历时/概率估算/β分布/正态分布/历时分析/WBS/WBS分解/项目规划/工作分解/项目分解/分解任务/立项申请书/结项报告/相关方登记册/风险登记册/项目文档/项目模板/经济效益分析/投资回报/ROI/NPV/IRR/BCR/投资回收期/可行性分析/项目经济效益/折现分析/多折现率对比/挣值管理/EVM/PV/EV/AC/SPI/CPI/成本绩效/进度偏差/挣得值/EAC/挣值分析
trigger_negative: 只是询问概念不执行估算/纯数学公式讨论不含实际任务
faq_quality: improve_qa
meta_field_sync: true
create_permissions_md: true
---
# activity-duration-estimation — 全周期项目管理
> **WBS项目规划 → 活动历时估算 → 项目文档生成**,三环节完整闭环。
> 全流程由 `scripts/runner.py` 的 `run_full()` 自动编排,
> LLM 只需调用一个函数即可完成项目从分解到文档的全部工作。
> 详细内容拆分到 `references/*.md` 按需加载。
---
## 触发场景
**正向触发**:估算工期/三点估算/PERT/蒙特卡洛/β分布/OMP/紧前关系/FS-SS-FF-SF/CPM甘特图/重叠分析/P50-P90/生成评估报告:估算工期/三点估算/PERT/蒙特卡洛/β分布/OMP/紧前关系/FS-SS-FF-SF/CPM甘特图/重叠分析/P50-P90/生成评估报告
**不触发**:仅概念询问 / 纯数学讨论 / 明确使用其他技能
---
## 核心能力
> 📚 **渐进式加载**:本技能采用渐进式 MD 体系,`SKILL.md` 为入口(≤230行),详细内容拆分到 `references/*.md` 按需加载。
| # | 能力 | 说明 |
|---|------|------|
| 0 | **WBS工作分解** (子技能) | 基于3个参考模板+LLM自适应填充,支持4种分解方法,100%规则验证,自动衔接估算 |
| 1 | **项目文档生成** (子技能) | 双模式:手动模式输出特化空模版(token≈0)/ 自动模式逐节生成,4个预置模板(立项/结项/相关方/风险) |
| 2 | **四种估算方法** | 直接估算法 / β分布(PERT)估算法 / 正态分布估算法 / 蒙特卡洛模拟法 |
| 3 | **语义分析推荐** | 根据任务类型(建筑/制造/软件/科研/农业等)自动推荐最适估算方法组合 |
| 4 | **外部知识搜索** | 两阶段搜索流程:大模型自判→搜索补充→汇总推荐 |
| 5 | **知识库查询/写入** (新增) | 按需信息通道,与联网搜索平行。标准字段硬编码,LLM做格式翻译入库。支持历史项目查询、OMP基准检索、外部数据库/文件(SQLite/CSV/MD/DOCX/JSON)按标准导入 |
| 6 | **CPM关键路径分析** | 基于紧前关系的关键路径计算,含ES/EF/LS/LF/总时差,自动识别关键任务 |
| 7 | **多分布蒙特卡洛** | 支持PERT-Beta、三角分布、泊松近似三种分布并行模拟,提供多维度概率评估 |
| 8 | **任务重叠分析** | 自动检测任务时间重叠,输出最大重叠数和最长重叠时段 |
| 9 | **甘特图可视化** | 基于CPM结果的甘特图(SVG),关键路径高亮标注 |
| 10 | **紧前关系规划** | 手动指定/自动规划两种模式,支持FS/SS/FF/SF四种依赖关系 |
| 11 | **HTML评估报告** | 自包含HTML,含甘特图/概率分布/重叠分析图表,有图有表有数据有分析 |
| 12 | **项目文档生成** | 双模式:手动空模版/混合逐节生成;4个P0模板(立项/结项/相关方/风险) |
| 13 | **全局配置系统** | 5项可调整配置(联网搜索/知识库采集/知识库调用/文档指定/文档撰写),每项可选 auto/manual。`scripts/settings_server.py` 提供 HTML 可视化配置面板。配置通过 `state.settings` 注入流程,LLM 可读取 `_get_setting()` 决定行为。 |
| 14 | **经济效益分析** (分支子技能) | 独立于全流程,单独触发。ROI/NPV/IRR/BCR/PBP 计算引擎 + HTML 报告 + 独立 economic.db 知识库。可插入立项申请书模板。 |
| 15 | **挣值管理** (分支子技能) | 独立于全流程,单独触发。PV/EV/AC/SPI/CPI/EAC 计算引擎 + HTML 报告 + 独立 evm.db 知识库。可插入结项报告书模板。 |
---
### 渐进式文件索引
| 文件名 | 分类 | 包含内容 | 审计关联 |
|--------|------|----------|----------|
| `references/antipatterns.md` | 规范指南 | skill 编写中的常见反模式。包含:错误做法示例、正确做法示例、避坑指引。 | R-18 |
| `references/changelog.md` | 版本管理 | 版本更新日志。包含:版本号、更新类型、修复项、升级说明。 | R-24 |
| `references/economic-analysis-methodology.md` | 参考文档 | > **子技能定位**:独立于活动历时估算的核心全流程,单独触发、单独运行。 | 无 |
| `references/evm-methodology.md` | 参考文档 | > **子技能定位**:独立于活动历时估算的核心全流程,单独触发、单独运行。 | 无 |
| `references/faq.md` | 常见问题 | 常见疑问与解答。包含:问题分类、原因分析、解决方案。 | R-19, R-25 C-19 |
| `references/knowledge-interface.md` | 参考文档 | > 知识库是与「联网搜索」平行的信息获取/存储通道。 | 无 |
| `references/methods.md` | 参考文档 | > 本文件详细说明四种活动历时估算方法的公式、计算步骤和适用场景。 | 无 |
| `references/permissions.md` | 权限与测试 | 权限扫描说明与测试结论。包含:风险等级、高权限操作说明、测试概览、计时统计。 | R-15, R-16 |
| `references/project-docs-methodology.md` | 参考文档 | > 本文件说明:project-docs 子技能的双模式设计、模板结构、操作流程和使用规范。 | 无 |
| `references/report-template.md` | 参考文档 | > 本文件定义 REPORT_DATA 数据结构的完整接口,以及分析结果→格式化→填充→生成的标准化流程。 | 无 |
| `references/risk-dimensions.md` | 参考文档 | > 内置7大类风险维度,根据项目特征自动匹配适用维度。 | 无 |
| `references/search-integration.md` | 参考文档 | > 本文件说明外部知识搜索的两个阶段流程。 | 无 |
| `references/semantic-analysis.md` | 参考文档 | > 本文件说明语义分析引擎如何工作:任务参数提取、任务类型分类、推荐方法映射。 | 无 |
| `references/thinking-tools.md` | 参考文档 | > 本文件收录项目管理/文档撰写中常用的思维工具和方法论框架。 | 无 |
| `references/wbs-methodology.md` | 参考文档 | > 本文件定义 WBS(Work Breakdown Structure)在活动历时估算技能中的完整实现:分解方法、参考模板、递归算法、验证规则以及与估算流程的 | 无 |
## 工作流程
工作流程由 `scripts/runner.py` 自动编排,LLM 无需关心内部阶段顺序。
```python
# 推荐:一键全流程(WBS → 估算 → 报告 → 文档,全环节必做)
from scripts.runner import run_full, PipelineState
result = run_full("帮我规划并估算一个电商后台管理系统")
if result["status"] == "ok":
state = result["state"]
print(state.wbs_text_tree) # ① WBS文本树
print(state.estimate_summary) # ② 估算摘要
print(state.html_report_path) # ③ HTML报告路径
print(state.doc_content) # ④ 项目文档
elif result["status"] == "blocked":
# 需要LLM提供WBS数据(即使已有OMP参数,WBS也是必做的)
wbs_data = {"name": "电商后台", "children": [...]} # LLM提供
state = PipelineState("帮我规划并估算一个电商后台管理系统")
state.run_wbs(custom_data=wbs_data)
result = state.run_full() # 继续执行估算→报告→文档
else:
print(result["message"]) # 错误信息
```
**全流程阶段(代码硬编码,不可跳过,与 runner.py 中 6 个阶段一一对应):**
1. WBS分解 → `run_wbs()`(全流程模式下必做,LLM提供结构化数据)
2. WBS进入估算门控 → `_wbs_passes_estimation_gate()` 硬校验
3. 紧前关系规划 → `_prompt_llm_for_dependencies()` / 自动FS串联
4. 估算计算 → `run_estimate()`(全Python自动:CPM + MC + 重叠分析)
5. HTML评估报告 → `_generate_html_report()`(全Python自动)
6. 项目文档 → `generate_docs()`(按模板生成立项/结项/风险/相关方文档)
**单独调用模式**(不经过`run_full()`全流程,按需使用):
| 需求 | 调用方式 |
|------|---------|
| 仅有估算需求 | `run_pipeline(mode="estimate")` 或 `state.run_estimate()` |
| 仅需文档 | `run_pipeline(mode="docs")` 或 `state.generate_docs()` |
| 仅WBS分解 | `run_pipeline(mode="wbs")` 或 `state.run_wbs()` |
### LLM交互点
当流程需要LLM推理时,`runner.py` 会抛出 `LLMInteractionRequired` 异常:
| 交互点 | 触发条件 | LLM需提供 |
|--------|---------|-----------|
| `_prompt_llm_for_wbs()` | 模糊需求 | WBS结构化数据 `{name, children: [...]}` |
| `_prompt_llm_for_omp()` | 阶段缺OMP | OMP值 `{o, m, p}` |
| `_prompt_llm_for_dependencies()` | >5个阶段 | 紧前关系或确认自动规划 |
LLM看到异常后按提示提供数据,然后继续执行即可。
---
## 快速开始
```text
场景1:直接估算 — "乐观3天、最可能6天、悲观15天" → β分布7天, σ=2天 → 68%概率5~9天
场景2:多阶段CPM — "前端(5/10/20)→后端(8/15/25)→测试(10/20/35), FS" → 总工期47天 →出HTML报告
场景3:搜索辅助 — "装配式建筑施工" → 搜索同类→给出典型OMP→确认→估算
场景4:WBS→估算 — "帮我规划并估算电商后台" → 分解→确认→HTML报告
场景5:项目文档 — "生成立项申请书, 手动模式" → 空模板→"自动填充背景"→逐节生成→拼合
场景6:经济效益分析 — "初始100万, 年收益12万, 年支出5万, 5年, 终值200万, 折现率10%" → NPV=50.72, IRR=20.35%
场景7:挣值管理 — "项目到D阶段, 做挣值分析" → EV=320.27, SPI=1.01, CPI=1.07, EAC=379.73
```
## 常用操作速查
| 我想... | 一句话答案 |
|---------|-----------|
| 快速估算一个项目工期 | 调用 `from scripts.runner import run_full; result = run_full("项目描述")` — AI 自动拆解+估算+出报告 |
| 只用 WBS 不做估算 | `state.run_wbs()` — 只做工作分解,不进估算流程 |
| 指定每个任务的 OMP | 在 WBS 数据结构中填写 `{"o": 3, "m": 5, "p": 8}` 字段 |
| 用我自己的文档模板 | `load_template() → customize_sections() → save_template()` — 增删改排章节后另存 |
| 更新全局配置 | `python scripts/settings_manager.py set <key> <value>` — 纯 CLI,无需 LLM 参与 |
| HTML 报告打不开 | 报告是自包含 HTML,直接用浏览器打开 state.html_report_path |
| 调整蒙特卡洛模拟次数 | `run_full(mc_iterations=5000)` — 默认 2000,数值越高越精确但越慢 |
| 从历史项目参考数据 | 告诉 LLM「查一下同类项目的基准数据」— 会自动搜索 SQLite 知识库 |
---
## WBS子技能 — Phase -1:项目规划与工作分解
> | `scripts/wbs_engine.py`
> 全流程模式下必做,由 `run_full()` 自动触发。
---
## 项目文档生成子技能 — :project-docs
> | `scripts/project_docs_engine.py`
三种模式:`manual`(空模板,token≈0)/ `mixed`(按章节设 auto/outline/manual,推荐)/ `全自动`(所有节 auto)。
支持模板定制:增/删/改/重排章节、每节独立模式、另存为新模板。
```python
from project_docs_engine import set_section_mode
tpl = load_template("立项申请书")
tpl = set_section_mode(tpl, "项目背景", "auto") # 自动生成
tpl = set_section_mode(tpl, "预算", "manual") # 留空手动填
state.generate_docs(mode="mixed", filled_sections={"project_background": "..."})
save_template(tpl, "我的模板", overwrite=True) # 另存自定义模板
```
**内置模板**:`立项申请书`(11节) / `结项报告书`(10节) / `相关方登记册`(4节) / `风险登记册`(5节)
---
## 子模块详解
各子模块详细说明见 `references/`:
- **Phase 0**: 语义分析与方法推荐 → `references/semantic-analysis.md`
- **Phase 1**: 外部知识搜索 → `references/search-integration.md`
- **Phase 2-3**: 紧前关系规划 + 估算计算(CPM/MC/重叠分析)→ `references/methods.md`
- **Phase 4**: HTML评估报告 → `references/report-template.md`
- **WBS方法论**: → `references/wbs-methodology.md`
- **项目文档**: → `references/project-docs-methodology.md`
| 估算方法 | 公式 | 适用场景 |
|---------|------|---------|
| 三点直接 | (O+M+P)/3 | 快速估算 |
| β分布(PERT) | (O+4M+P)/6, σ=(P-O)/6 | 标准项目管理 |
| 蒙特卡洛 | 2000+次模拟, 多分布并行 | 高不确定性项目 |
---
## 限制与边界
| 维度 | 说明 |
|------|------|
| 任务数量 | 建议 ≤50 个阶段/任务,超过时蒙特卡洛模拟耗时显著增加 |
| OMP值 | 必须满足 O ≤ M ≤ P(乐观≤最可能≤悲观),不满足时会提示修正 |
| 紧前关系 | 不能形成循环依赖(A→B→C→A),系统会检测并报错 |
| 工期单位 | 统一使用同一单位(天/小时/周),混用需先归一化 |
| 网络依赖 | 首次使用需联网搜索(非典型任务),后续使用完全离线 |
| 报告生成 | 输出自包含HTML文件,需要浏览器打开查看,不支持PDF直接导出 |
---
## 版本
当前版本 **v1.11.0** —
don't have the plugin yet? install it then click "run inline in claude" again.