项目任务分解
有一个大目标或项目,AI 帮助拆解为可执行的小任务,估算时间和资源,制定执行计划。
适用场景
- 新项目启动规划
- 大目标拆解执行
- 工作量估算
- 项目进度管理
前置准备
必需插件
| 插件 | 用途 | 安装方式 |
|---|---|---|
| Text Generator | AI 任务分解 | 社区插件市场 |
| Tasks | 任务管理 | 社区插件市场 |
推荐插件
| 插件 | 用途 |
|---|---|
| Kanban | 可视化看板 |
| Dataview | 进度统计 |
分解模板
markdown
---
project: {{project_name}}
deadline: {{deadline}}
status: planning
---
# 项目:{{project_name}}
## 🎯 项目目标
<!-- 项目要达成什么 -->
## 📋 AI 任务分解
<!-- AI 生成的任务列表 -->
## 📊 进度追踪
<!-- 手动更新进度 -->
## 📝 项目笔记
<!-- 项目相关笔记 -->任务分解 Prompt
markdown
# 项目任务分解
## 项目信息
- **目标**:{{goal}}
- **截止日期**:{{deadline}}
- **可用时间**:{{available_time}} 小时/周
- **当前状态**:{{current_status}}
- **限制条件**:{{constraints}}
## 分解要求
### 任务粒度
- 每个任务 30分钟-2小时 可完成
- 任务描述具体可操作
- 任务之间有明确顺序
### 输出格式
## 阶段一:{{phase_name}}
- [ ] 任务1(预计:X小时)
- 具体步骤
- [ ] 任务2(预计:X小时)
- 具体步骤
## 阶段二:{{phase_name}}
...
## 📅 时间规划
| 阶段 | 预计时间 | 截止日期 |
|------|----------|----------|
| 阶段一 | X小时 | 日期 |
## ⚠️ 风险提示
- 风险1:应对方案
- 风险2:应对方案
## 💡 建议
- 建议1
- 建议2进度更新自动化
javascript
<%*
// 计算项目进度
const projectFile = tp.file.find_tfile("Projects/项目名.md");
const content = await app.vault.read(projectFile);
const completed = (content.match(/- \[x\]/g) || []).length;
const total = (content.match(/- \[[ x]\]/g) || []).length;
const progress = Math.round((completed / total) * 100);
tR += `## 📊 进度\n完成度:${progress}% (${completed}/${total})\n`;
%>返回
详细操作步骤
步骤一:创建项目笔记
markdown
<!-- Templates/Project.md -->
---
title: {{project_name}}
status: planning
created: {{date}}
deadline: {{deadline}}
tags: [project]
---
# {{project_name}}
## 🎯 项目目标
<!-- SMART 原则:具体、可衡量、可达成、相关、有时限 -->
## 📋 任务列表
<!-- AI 生成的任务分解 -->
## 📊 进度追踪
- 开始日期:
- 当前阶段:
- 完成度:0%
## ⚠️ 风险与应对
<!-- 项目风险 -->
## 📝 项目笔记
<!-- 项目相关资料 -->步骤二:AI 智能分解
javascript
// Templater 脚本:智能任务分解
async function decomposeProject(goal, deadline, hoursPerWeek) {
const decomposition = await textGenerator.generate(`
作为项目管理专家,将以下项目目标分解为可执行的任务:
项目目标:${goal}
截止日期:${deadline}
每周可用时间:${hoursPerWeek} 小时
分解要求:
1. 任务粒度:每个任务 30分钟-2小时
2. 明确依赖关系
3. 标注关键路径
4. 估算时间和资源
5. 识别风险点
6. 设置里程碑
输出格式:
## 阶段一:准备阶段(第1-2周)
- [ ] 任务1 ⏳ 2h 📅 日期
- 具体步骤
- 依赖:无
- 输出:...
## 里程碑检查点
- 里程碑1:日期,交付物
## 关键路径
任务A → 任务B → 任务C
## 风险清单
| 风险 | 概率 | 影响 | 应对措施 |
`);
return decomposition;
}步骤三:进度自动追踪
javascript
// 自动计算项目进度
async function updateProgress(projectFile) {
const content = await app.vault.read(projectFile);
const completed = (content.match(/- \[x\]/g) || []).length;
const total = (content.match(/- \[[ x]\]/g) || []).length;
const progress = Math.round((completed / total) * 100);
// 更新 frontmatter
await updateFrontmatter(projectFile, {
progress: `${progress}%`,
completedTasks: completed,
totalTasks: total
});
// 生成进度报告
if (progress >= 50 && progress < 55) {
await notify("项目已完成 50%,继续加油!");
}
}高级技巧
1. WBS 工作分解结构
markdown
# 项目 WBS
## 1. 需求分析
### 1.1 用户调研
- [ ] 设计问卷 ⏳ 2h
- [ ] 收集反馈 ⏳ 4h
- [ ] 分析结果 ⏳ 3h
### 1.2 竞品分析
- [ ] 竞品调研 ⏳ 3h
- [ ] 功能对比 ⏳ 2h
## 2. 设计阶段
### 2.1 原型设计
...
## 里程碑
| 里程碑 | 日期 | 交付物 |
|--------|------|--------|
| M1: 需求确认 | 日期 | 需求文档 |
| M2: 设计完成 | 日期 | 设计稿 |2. 甘特图生成
javascript
// 生成甘特图数据
async function generateGanttData(tasks) {
const ganttData = tasks.map(t => ({
task: t.name,
start: t.startDate,
end: t.endDate,
progress: t.progress
}));
// 可以导出到 Mermaid 或其他甘特图工具
return `
\`\`\`mermaid
gantt
title 项目进度
dateFormat YYYY-MM-DD
section 阶段一
任务1 :a1, 2024-01-01, 3d
任务2 :a2, after a1, 2d
\`\`\`
`;
}3. 资源分配优化
javascript
// AI 资源优化建议
async function optimizeResources(project) {
return await textGenerator.generate(`
分析以下项目任务,优化资源分配:
任务列表:
${project.tasks.map(t => `- ${t.name} (${t.hours}h, 负责人: ${t.assignee})`).join('\n')}
团队成员:
${project.members.map(m => `- ${m.name} (${m.skills.join(', ')})`).join('\n')}
请提供:
1. 任务分配优化建议
2. 瓶颈分析
3. 并行执行机会
4. 资源冲突解决方案
`);
}常见问题
Q1: 任务分解粒度如何把握?
原则:
markdown
# 任务分解原则
## 粒度标准
- **太大**:超过 4 小时 → 继续分解
- **合适**:30分钟 - 2小时 → 可执行
- **太小**:小于 15 分钟 → 合并相关任务
## 判断标准
1. 能否在一个工作时段内完成?
2. 完成标准是否清晰?
3. 是否有明确的输出物?
4. 是否可以独立验证?Q2: 项目延期怎么办?
应对策略:
javascript
async function handleDelay(project) {
const analysis = await textGenerator.generate(`
项目出现延期,分析原因并提供解决方案:
项目状态:
- 原计划:${project.originalPlan}
- 当前进度:${project.currentProgress}
- 已用时间:${project.spentTime}
请提供:
1. 延期原因分析
2. 范围调整建议(可删减的功能)
3. 资源增加方案
4. 新的时间计划
5. 风险防控措施
`);
return analysis;
}Q3: 如何管理多个并行项目?
markdown
# 多项目管理看板
## 项目概览
| 项目 | 状态 | 进度 | 下个里程碑 | 风险等级 |
|------|------|------|-----------|----------|
| 项目A | 进行中 | 60% | M2 | 🟢 低 |
| 项目B | 进行中 | 30% | M1 | 🟡 中 |
| 项目C | 规划中 | 0% | - | 🟢 低 |
## 本周任务汇总
```dataview
TABLE
project as "项目",
file.tasks.text as "任务",
file.tasks.due as "截止"
FROM "Projects"
WHERE file.tasks.due <= date(today) + dur(7 days)
## 实际案例
### 案例:开发一个 Obsidian 插件
```markdown
## 项目信息
- 目标:开发 AI 笔记增强插件
- 周期:4 周
- 每周可用:10 小时
## AI 分解结果
### 阶段一:设计(第1周)
- [ ] 需求分析 ⏳ 3h
- [ ] 技术选型 ⏳ 2h
- [ ] 原型设计 ⏳ 3h
- [ ] 架构设计 ⏳ 2h
### 阶段二:开发(第2-3周)
- [ ] 核心功能开发 ⏳ 10h
- [ ] UI 界面开发 ⏳ 5h
- [ ] 测试用例编写 ⏳ 3h
### 阶段三:发布(第4周)
- [ ] Bug 修复 ⏳ 3h
- [ ] 文档编写 ⏳ 3h
- [ ] 发布准备 ⏳ 2h
## 执行效果
- 按时完成率:90%
- 任务估算准确度:85%
- 项目成功上线效率对比
| 指标 | 手动规划 | AI 辅助规划 |
|---|---|---|
| 规划时间 | 3-4小时 | 30分钟 |
| 任务遗漏 | 经常有 | 极少 |
| 估算准确性 | 60% | 85% |
| 进度追踪 | 手动更新 | 自动统计 |