# Task 003: TEMPLATES — job 文件系统 MVP > 来源: [stub-recovery-design-1-4.md](../features/stub-recovery-design-1-4.md) 第 3 项 > 优先级: P2 > 工作量: 中等 > 状态: DONE > 阶段: MVP ## 目标 把 `new` / `list` / `reply` 做成可用的模板任务系统。第一阶段不碰复杂的自动分类与自动执行。 ## 背景 - 命令入口只有 fast-path (`src/entrypoints/cli.tsx:272`) - handler 是空的 (`src/cli/handlers/templateJobs.ts`) - `markdownConfigLoader` 已把 `templates` 纳入配置目录 (`src/utils/markdownConfigLoader.ts:35`) - `query/stopHooks` 已预留 job classifier 链路 (`src/query/stopHooks.ts:103`) - `jobs/classifier.ts` 仍是 stub (`src/jobs/classifier.ts`) ## 实现方案 ### 新增文件 | 文件 | 说明 | |------|------| | `src/jobs/state.ts` | job 状态管理 | | `src/jobs/templates.ts` | 模板解析与列表 | ### 修改文件 | 文件 | 改动 | |------|------| | `src/cli/handlers/templateJobs.ts` | 实现 `new` / `list` / `reply` handler | ### 模板来源 `.claude/templates/*.md` ### 模板格式 复用现有 markdown + frontmatter 解析,不另外设计 DSL。 ### list 命令 - 列出所有模板 - 显示: 模板名, description, 路径 ### new 命令 - 解析模板 - 在 `~/.claude/jobs//` 下创建 job 目录 - 写入 `template.md`, `input.txt`, `state.json` - 返回 job id 与目录路径 ### reply 命令 - 将回复写入 `replies.jsonl` 或 `input.txt` - 更新 `state.json` ## 验证步骤 - [ ] `list` 能列出 `.claude/templates` 下的所有模板 - [ ] `new