Agent skill

time-boxing

马斯克时间盒管理法:时间固定,范围可变。用 MVU 驱动 AI 在限定时间内最大化交付完成度,而非完美主义。触发词:时间盒、启动任务、mvu、限时完成。

Stars 163
Forks 31

Install this agent skill to your Project

npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/deep-work-tracker

SKILL.md

Time Boxing - 马斯克时间盒管理法

核心理念:AI 不需要休息,需要的是完成欲与进度的配合

公式:时间固定 × 范围可变 = MVU 最大化交付


问题诊断

传统工作模式 时间盒模式
目标:"把这个功能做完美" 目标:"在 30 分钟内交付最高完成度的 MVU"
在小问题上纠缠 20 分钟 小问题标记为 TODO,先完成核心
2 小时后核心功能还没跑通 30 分钟后 MVU 可演示
完美主义导致进度阻塞 完成主义驱动快速迭代

根本解法:用时间盒强制 AI 做价值优先级判断


核心概念

MVU (Minimum Viable Unity)

定义:在限定时间内,能独立运行、可演示、有用户价值的最小功能单元

项目类型 MVU 示例
登录功能 能登录成功,错误提示可以暂时简陋
数据看板 核心指标能显示,样式可以后续优化
API 接口 主流程能调通,边界 case 可以后置
文档系统 核心章节完成,格式可以后续美化

关键判断

  • ✅ 没有它,功能无法运行 → MVU 必须做
  • ⚠️ 没有它,功能能跑但不够好 → MVU 完成后优化
  • ❌ 有了更好,没有也行 → 直接砍掉

时间盒工作机制

0. 时间感知系统(核心,必须)

问题:AI 无法感知时间流逝,会话中没有"时钟"概念

解法:用系统命令 + 定时提醒形成时间感知

bash
# 获取当前时间
date +"%H:%M:%S"

# 获取时间戳(秒)
date +%s

# 计算剩余时间(示例:deadline - now)
echo $((deadline_ts - $(date +%s)))

实现方式

方式 频率 说明
启动时记录 deadline 1 次 deadline=$(date -d "+30 minutes" +%s)
每次工具调用前检查 每次 在输出工具调用前,先用 date 命令
每完成一个任务报告 触发式 "P0 项完成,现在时间 HH:MM,剩余 XX 分钟"
用户问时间时 触发式 立即用 date 命令回答

**强制规则**:
- ❌ 禁止凭空说"大概过了 10 分钟"
- ✅ 必须用 `date` 命令获取当前时间
- ✅ 每次报告进度时必须附带当前时间和剩余时间

---

### 1. 任务启动时必须定义

```markdown
## 时间盒定义

| 要素 | 内容 |
|------|------|
| **任务目标** | [一句话描述要做什么] |
| **时间盒长度** | 10min / 20min / 30min(默认 10min) |
| **结束时间** | HH:MM(绝对时间) |
| **MVU 定义** | [什么是可演示的最小功能] |
| **MVU 完成标准** | [怎样算 MVU 完成] |

2. MVU 优先级分层

P0 - MVU 核心(必须完成)
├── 没有它功能无法运行
├── 没有它用户无法理解
└── 占时间盒 60-70% 时间

P1 - MVU 增强(时间允许再做)
├── 让功能更好用
├── 让界面更美观
└── 占时间盒 20-30% 时间

P2 - 锦上添花(有剩余时间)
├── 动效优化
├── 边界 case 处理
└── 占时间盒 0-10% 时间

3. 时间盒执行规则

规则 说明
时间一到必须停止 不管完成度如何,到点就停
先交付再优化 MVU 完成后才能做 P1/P2
小问题不纠缠 单个问题>5 分钟→标记 TODO 继续
进度透明化 每 10 分钟报告 MVU 完成度%

时间盒决策树

遇到问题/卡点
    │
    ├── 影响 MVU 核心功能吗?
    │   │
    │   ├── 是 → 有现成方案吗?
    │   │   │
    │   │   ├── 有 → 立即应用 (限时 3min)
    │   │   └── 没有 → 用 Workaround 绕过 (限时 5min)
    │   │           │
    │   │           └── 还是搞不定?→ 降级 MVU 范围
    │   │
    │   └── 否 → 标记 TODO,继续
    │
    └── 时间剩余多少?
        │
        ├── >50% → 可以继续打磨
        ├── 20-50% → 收缩范围,保 MVU
        └── <20% → 停止新功能,收尾交付

进度追踪

进度文件格式:.agent/time-box.json

json
{
  "box_id": "tb-20260318-001",
  "task": "用户登录功能",
  "started": "2026-03-18T10:00:00+08:00",
  "deadline": "2026-03-18T10:30:00+08:00",
  "duration_minutes": 30,

  "mvu": {
    "definition": "用户输入账号密码能登录成功,错误有基本提示",
    "completion_criteria": [
      "登录表单能提交",
      "正确密码能跳转",
      "错误密码有提示"
    ]
  },

  "priority_layers": {
    "P0": [
      {"item": "登录表单 UI", "status": "done", "time_spent": 8},
      {"item": "API 调用逻辑", "status": "done", "time_spent": 10},
      {"item": "错误处理", "status": "in_progress", "time_spent": 5}
    ],
    "P1": [
      {"item": "表单验证", "status": "pending"},
      {"item": "记住我功能", "status": "pending"}
    ],
    "P2": [
      {"item": "动效优化", "status": "pending"},
      {"item": "UI 美化", "status": "pending"}
    ]
  },

  "time_checkpoints": [
    {"elapsed": 10, "mvu_progress": 40, "note": "表单完成", "clock": "10:10:23"},
    {"elapsed": 20, "mvu_progress": 75, "note": "API 调通", "clock": "10:20:15"}
  ],

  "clock": {
    "start_ts": 1710732600,
    "deadline_ts": 1710734400,
    "last_check": "10:20:15",
    "remaining_minutes": 10
  },

  "todos": [
    {"desc": "密码强度验证", "reason": "不影响核心登录"},
    {"desc": "第三方登录", "reason": "MVU 不需要"}
  ],

  "status": "in_progress"
}

时间盒协议

启动阶段

用户说"开始时间盒"或类似触发词
    ↓
1. 确认任务目标
2. 确认时间盒长度(默认 30min)
3. 执行 `date` 命令:
   - 记录开始时间:start_time=$(date +"%H:%M:%S")
   - 计算 deadline:deadline_ts=$(date -d "+30 minutes" +%s)
4. 定义 MVU 和完成标准
5. 创建 .agent/time-box.json
6. 报告:"时间盒启动,当前时间 HH:MM,结束时间 HH:MM"

执行阶段

每 10 分钟或完成一个 P0 项后:
    ↓
1. 执行 date +"%H:%M:%S" 获取当前时间
2. 计算剩余时间:deadline - now
3. 更新 time-box.json
4. 报告:当前时间 / 已用时间 / MVU 完成度% / 剩余 P0 项
5. 判断:按当前速度能按时完成 MVU 吗?
    │
    ├── 能 → 继续
    └── 不能 → 收缩范围,砍掉低优先 P0 项

时间检查点命令

bash
# 快速检查时间(每次工具调用前执行)
now=$(date +%s); deadline=1710734400; echo "当前:$(date +%H:%M), 剩余:$(( (deadline-now)/60 )) 分钟"

结束阶段

时间盒到期(提前 5 分钟提醒):
    ↓
1. 执行 `date` 命令确认时间
2. 停止新功能开发
3. 确保 MVU 能跑起来
4. 清理临时代码
5. 输出交付报告
6. 记录 TODO 清单(给下个时间盒)
7. 执行 `date` 命令记录结束时间

提前 5 分钟提醒

bash
# 检查是否剩余<5 分钟
now=$(date +%s)
if [ $((deadline_ts - now)) -lt 300 ]; then
  echo "⚠️ 剩余时间 <5 分钟,停止新功能,准备收尾"
fi

交付报告模板

markdown
## 时间盒交付报告

**任务**: [任务名称]
**时间盒**: XX 分钟 (HH:MM - HH:MM)
**实际使用**: XX 分钟

### MVU 完成度

| P0 项 | 状态 | 说明 |
|-------|------|------|
| 项 1 | ✅ | |
| 项 2 | ✅ | |
| 项 3 | ⚠️ 部分 | 降级方案:xxx |

### P1/P2 完成情况
- P1 完成:X/Y 项
- P2 完成:0/0 项(正常,时间不够)

### 遗留 TODO
| 内容 | 优先级 | 建议放入下个时间盒 |
|------|--------|-------------------|
| xxx | 高 | 是 |
| yyy | 中 | 看时间 |

### 时间分配分析
- MVU 核心:XX%(目标 60-70%)
- 增强功能:XX%(目标 20-30%)
- 调试/卡点:XX%(目标<10%)

### 下一步建议
[给下个时间盒的建议]

与其他 Skill 协作

Skill 协作方式
product-builder 时间盒用于 Phase 2-3 的快速实现,MVU 定义来自 PRD
task-list 每个时间盒对应 1-3 个 TaskList 任务
git-commit 时间盒结束时自动 commit,message 包含 MVU 完成度

触发词

优先级 触发词 动作
启动时间盒、限时 XX 分钟、做个 mvu 启动时间盒
时间盒状态、mvu 进度、还剩多久 报告进度
结束时间盒、交付 输出交付报告
先不管 XX 了、这个后面再说 标记 TODO,收缩范围

时间盒长度建议

任务类型 建议长度 说明
小功能/修复 10min 快速迭代,强制收缩范围
中等功能 20min 可拆成 2 个小时间盒
大功能 30min 需要分多个时间盒完成
复杂模块 3×30min 拆成 3 个独立时间盒
探索性任务 10min 先探路,再决定

原则

  • 时间盒越短,MVU 定义越要保守
  • 默认从 10 分钟开始,不够再加
  • 30 分钟是上限,超过必须拆分

核心原则

完成比完美重要,迭代比一步到位现实

  1. 时间固定 - 到点就停,不延长
  2. MVU 优先 - P0 不完不成,绝不做 P1
  3. 完成欲驱动 - 每个时间盒必须有可交付成果
  4. 问题不纠缠 - 单问题>5 分钟→Workaround 或降级
  5. 透明化进度 - 每 10 分钟报告 MVU 完成度
  6. 时间感知 - 每次报告前必须执行 date 命令,禁止凭空估计

时间感知协议(新增,必须)

时机 命令 用途
启动时间盒 date +"%H:%M:%S" 记录开始时间
设置 deadline date -d "+30 minutes" +%s 计算截止时间戳
每次进度报告前 date +"%H:%M:%S" 获取当前时间
计算剩余时间 echo $((deadline_ts - $(date +%s))) 剩余秒数
结束时间盒 date +"%H:%M:%S" 记录结束时间

强制规则

  • ❌ 禁止说"大概过了 X 分钟"
  • ✅ 必须用 date 命令获取准确时间
  • ✅ 进度报告格式:"当前时间 HH:MM,已用 XX 分钟,剩余 XX 分钟,MVU 完成度 XX%"

快速时间检查命令

反模式(禁止行为)

行为 为什么错 正确做法
❌ 为了完美延迟交付 时间盒失去意义 到点交付,完美放下个盒
❌ 在一个 bug 上花 30 分钟 MVU 完成度降低 10 分钟搞不定就绕过
❌ MVU 没完成就做 P1 优先级错乱 P0 全部完成前禁止碰 P1
❌ 时间盒结束后继续做 破坏节奏 停,休息或开新盒
❌ 不定义 MVU 就开始 没有完成标准 先定义 MVU 再启动

快速时间检查命令

bash
# 完整检查(推荐)
now=$(date +%s); clock=$(date +"%H:%M:%S"); remaining=$(( (deadline_ts - now) / 60 ))
echo "当前时间:$clock, 剩余:$remaining 分钟"

# 简单检查
date +"当前时间:%H:%M:%S"

# 剩余时间百分比
now=$(date +%s); elapsed=$(( now - start_ts )); total=$(( deadline_ts - start_ts ))
echo "时间进度:$(( elapsed * 100 / total ))% 已用"

示例:完整时间盒会话(带时间感知)

用户:用 10 分钟做个登录功能

## Claude 响应:

### 时间盒定义
- 任务:用户登录功能
- 时间盒:10 分钟 (10:00-10:10)
- MVU:用户输入账号密码能登录,错误有基本提示

### P0 优先级(必须完成)
1. 登录表单 UI(3min)
2. API 调用逻辑(4min)
3. 错误提示(2min)
4. 登录成功跳转(1min)

### P1(时间允许再做)
- 表单验证
- 记住我

### P2(不做)
- 动效
- UI 美化

---

[启动] 时间盒开始,当前时间 10:00:00,结束时间 10:10:00

[10:03] 进度报告:已用 3min, 剩余 7min, MVU 30%, 表单完成
[10:06] 进度报告:已用 6min, 剩余 4min, MVU 70%, API 调通
[10:08] 提醒:剩余 2 分钟,停止新功能,收尾
[10:10] 交付报告:MVU 完成

---

## 交付报告
**MVU 完成度**: 100%
**P1 完成**: 0/2 项(正常,时间不够)
**实际用时**: 10 分钟 (10:00-10:10)
**遗留 TODO**: 表单验证、记住我、UI 美化

版本:v3.0 (马斯克时间盒版) | 最后更新:2026-03-18

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results