# 实施进度 > 配合 `DESIGN.md`。本文件只记 phase 状态、决策偏差、文件量、下一步。 最后更新:2026-05-14 --- ## 状态 | Phase | 标题 | 状态 | 备注 | |---|---|---|---| | 1-3 | 骨架 + Skill + run_python | ✅ | 三个 skill;CoreCoder 唯一匹配 edit;敏感 env 过滤 | | 4 | 演化性能力 | 🟡 | Model Profile + Probing ✅;版本化 prompt 未做 | | 5 | Eval Suite | ⏸ 不做 | dogfooding 替代,probe 覆盖健康检查 | | 6 | 长任务工程化 | 🟡 | task + 恢复 ✅;双层记忆 ✅;context 压缩未做 | | 7 | 打磨 | ❌ | Docker 沙盒 / 更多 skill | | §7 SaaS | DESIGN §7 路线 | 🟡 | A 事件流化 ✅;B 进行中(Step 1 基建 ✅;Step 2-6 待) | --- ## 已完成关键能力 - **Q1 → 05-06 / Phase 1-4**:骨架 / 三 skill / run_python / Model Profile + Probing。ppt v3 加商务红 + apply_brand + Iconify;素材摄取改 markitdown CLI。 - **05-06 / Phase 6 部分**:task + state.json + tokens 累计;CLI `tasks` + REPL `/status /done /abandon /desc`;移除 legacy `workspace/sessions/`。 - **05-07 / TUI + task_dir**:rich Markdown 渲染;spinner 显实时耗时 + 累计 token;system prompt 注入 task_dir 绝对路径,产物收敛 `workspace/tasks//`;`.gitignore` 删 bandaid。 - **05-08 / REPL 切换 + 懒创建**:`/resume [last|]`;`build_agent` 不预占文件;`_cleanup_if_empty` 三条件守门。 - **05-09 → 05-10 / §7 草案 + 导出**:DESIGN §7 初版(05-12 重写);`cli.py export ` + `core/export_docx.py`。 - **05-11 / 原子写 + 双层记忆 + §7 A**:`atomic_write_text` 接管 save;`core/memory.py`(core.md 入 prompt,extended/* 走索引);loop 事件流化(`sink.emit`)铺 SSE 路。 - **05-12 / §7 改写**:platform/core 多租户方案废弃,改 user-direct(folder-centric、task/messages 入 PG、no-subtask、hard cascade)。 - **05-14 / §7.1 心智模型修正**:`Folder-centric` → **Task 一等公民 + Dir 文件副视图**(双视图正交,dir 不是 task 父容器);task_dir 留空=一次性对话 / 指定=项目化二分语义入文。 - **05-14 / §7 B Step 1 基建**:`core/storage/{engine,models}.py` SQLAlchemy 2.x ORM(users/tasks/messages/runs/usage_events 5 表)+ alembic(初版 migration `0001_initial_schema`,GIN/复合索引)+ `cli db {upgrade,downgrade,current}` 子命令组 + 本地 sentinel user(`00000000-...`)+ `ZCBOT_DB_URL` 必填(未设给清晰报错,不引导 docker)。已在远端测试 PG 跑通 `db upgrade head`。 --- ## 关键决策与偏差 | 项 | 决策 | 备注 | |---|---|---| | 工具基目录 | cwd(读)+ task_dir(写) | system prompt 同时注入两者绝对路径 | | Workspace 布局 | `tasks//` + `memory/{core.md, extended/}` | memory 跨 task 共享 | | Eval Suite | 不做 | 个人工具 dogfooding | | 版本化 prompt | 直接 `general_v1.md` | Windows 软链接麻烦,真要切再做 | | run_python 沙盒 | subprocess + env 过滤 | Docker 在 §7 C 阶段 | --- ## 文件清单 ``` core/capabilities.py 71 core/llm.py 89 core/loop.py 152 ← §7 A: sink.emit core/sinks.py 101 ← §7 A core/ui.py 38 core/probe.py 243 core/session.py 93 ← +atomic_write_text core/skills.py 81 core/task.py 64 core/memory.py 76 core/export_docx.py 372 core/storage/__init__.py 22 ← §7 B Step 1 core/storage/engine.py 80 ← §7 B Step 1 core/storage/models.py 124 ← §7 B Step 1 tools/base.py 34 tools/fs.py 182 tools/shell.py 94 tools/run_python.py 84 tools/skill_tool.py 45 main.py 210 cli.py 484 ← §7 B Step 1: +db 子命令组 db/migrations/env.py 61 ← §7 B Step 1 db/migrations/versions/ 0001_initial_schema.py 125 ← §7 B Step 1 ───────────────────────────────── Python 合计 ~2841 行 ``` 加 skills/ppt 脚本 ~600 行 + SKILL.md / references / config / prompts + alembic.ini,总仓库约 3500 行。 --- ## 下一步候选(性价比排序) 1. **§7 B 剩余 Step 2-6**(~4 天) - Step 2 Session ORM 改造(append/load → PG messages 表) - Step 3 TaskState ORM 改造(state.json → PG tasks 表;加 task_dir 字段语义) - Step 4 main.py / cli.py 适配 ORM(`resolve_task_messages_path` 重构、`_cleanup_if_empty` 新双检查、UUID task_id 处理) - Step 5 `cli migrate-from-fs`(导旧 workspace/tasks/*/ → PG,idempotent) - Step 6 no-subtask SQL 校验(`new LIKE existing/%` cascade) 2. **Phase 6 context 三层压缩**(~1 天)—— 兜底,V4 长上下文一般用不到。 3. **Phase 7 更多 skill / 模型档案**(持续)。 4. **Proposal mermaid 预渲染**(~半天)—— ASCII 透传不够用时再上 `mmdc`。