| 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 无需关心内部阶段顺序。
from scripts.runner import run_full, PipelineState
result = run_full("帮我规划并估算一个电商后台管理系统")
if result["status"] == "ok":
state = result["state"]
print(state.wbs_text_tree)
print(state.estimate_summary)
print(state.html_report_path)
print(state.doc_content)
elif result["status"] == "blocked":
wbs_data = {"name": "电商后台", "children": [...]}
state = PipelineState("帮我规划并估算一个电商后台管理系统")
state.run_wbs(custom_data=wbs_data)
result = state.run_full()
else:
print(result["message"])
全流程阶段(代码硬编码,不可跳过,与 runner.py 中 6 个阶段一一对应):
- WBS分解 →
run_wbs()(全流程模式下必做,LLM提供结构化数据)
- WBS进入估算门控 →
_wbs_passes_estimation_gate() 硬校验
- 紧前关系规划 →
_prompt_llm_for_dependencies() / 自动FS串联
- 估算计算 →
run_estimate()(全Python自动:CPM + MC + 重叠分析)
- HTML评估报告 →
_generate_html_report()(全Python自动)
- 项目文档 →
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看到异常后按提示提供数据,然后继续执行即可。
快速开始
场景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)。
支持模板定制:增/删/改/重排章节、每节独立模式、另存为新模板。
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 —