mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-18 06:15:51 +00:00
* feat: 适配 zed acp 协议 * docs: 完善 acp 文档 * feat: integrate feature branches + daemon/job 命令层级化 + 跨平台后台引擎 Cherry-picked from origin/lint/preview (637c908), excluding lint-only changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct detectMimeFromBase64 to decode raw bytes from base64 Cherry-picked from origin/lint/preview (ee36954). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: daemon 子进程 spawn 跨平台修复 + CliLaunchSpec 集中化重构 Cherry-picked from origin/lint/preview (c5f52cd), excluding lint-only formatting changes. - 新建 src/utils/cliLaunch.ts: 集中化 CLI 子进程启动层 - 修复 --daemon-worker=kind 等号格式解析 - 修复 daemon/bg fast path 缺少 setShellIfWindows() - 修复 checkPathExists 用 existsSync 替代 execSync('dir') - 7 个 spawn 站点迁移到 CliLaunchSpec Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: merge tsconfig.base.json into tsconfig.json with full compiler options The cherry-pick from637c908dropped jsx/strict/etc settings when removing tsconfig.base.json. This commit restores them in a single tsconfig.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: merge tsconfig.base.json into tsconfig.json with full compiler options The cherry-pick from637c908dropped jsx/strict/etc settings when removing tsconfig.base.json. This commit restores them in a single tsconfig.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
88 lines
2.2 KiB
Markdown
88 lines
2.2 KiB
Markdown
# 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:249`)
|
|
- handler 是空的 (`src/cli/handlers/templateJobs.ts`)
|
|
- `markdownConfigLoader` 已把 `templates` 纳入配置目录 (`src/utils/markdownConfigLoader.ts:29`)
|
|
- `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-id>/` 下创建 job 目录
|
|
- 写入 `template.md`, `input.txt`, `state.json`
|
|
- 返回 job id 与目录路径
|
|
|
|
### reply 命令
|
|
|
|
- 将回复写入 `replies.jsonl` 或 `input.txt`
|
|
- 更新 `state.json`
|
|
|
|
## 验证步骤
|
|
|
|
- [ ] `list` 能列出 `.claude/templates` 下的所有模板
|
|
- [ ] `new <template> [args...]` 能创建 job 目录和状态文件
|
|
- [ ] `reply <job-id> <text>` 能更新 job 内容和状态
|
|
- [ ] frontmatter schema 最小字段集已定义
|
|
|
|
## Phase 2 (后续)
|
|
|
|
- [ ] 恢复 `src/jobs/classifier.ts`
|
|
- [ ] 让带 `CLAUDE_JOB_DIR` 的 job session 在 turn 完成后自动更新 `state.json`
|
|
- [ ] 再决定是否补自动 job runner
|
|
|
|
### 为什么拆分
|
|
|
|
- 当前是 "template job commands",不是单纯模板列表
|
|
- 自动 job 运行链路没有足够现成实现
|
|
- 先做文件系统 job lifecycle 更稳
|
|
|
|
## 风险
|
|
|
|
- frontmatter schema 需要先定义最小字段集
|
|
- 一旦扩展到"自动运行 job",范围会明显膨胀
|
|
|
|
## 依赖
|
|
|
|
无硬性依赖,可独立实施。
|