Commit Graph

4 Commits

Author SHA1 Message Date
caoqianming 7b09c77f76 fix(sandbox): docker 下 system prompt / SKILL 文档统一用容器路径
docker backend 下 shell/run_python/fs 工具全在容器里跑(<workspace>/users/<uid>
bind 到 /workspace),但喂给 LLM 的路径多处仍是宿主绝对路径(容器内不存在),
agent 据此 find 全空、瞎转到 pwd 才发现真身在 /workspace/<wd>。

- core/agent_builder.py::_build_system_prompt:docker 下 task_dir + 「宪法」
  glob 范例换成容器路径 /workspace/<wd>,去掉容器里无意义的 cwd 行(cwd 恒等
  task_dir);host 不变。修法同 LoadSkillTool 的 container_skills_dir 改写。
- skills 文档同类宿主路径残留清扫:patent 跨 skill 调 proposal 脚本由
  <repo_root>/...(硬编码 D:/projects/zcbot)改兄弟相对 <skill_dir>/../proposal/...;
  research fetch_pdf 范例硬编码 D:/... 改 <task_dir> 占位;patent/proposal/ppt
  的 <task_dir> 举例的废弃旧布局 workspace/tasks/<task_id> 改 host/docker 双形态说明。
- ppt 图标缓存写进只读挂载修复(方案 A):种子图标库 <skill_dir>/assets/icons/
  降为只读(glob 读),fetch_icon.py 新拉图标一律 -o <task_dir>/assets/icons/,
  读路径改种子库 + 本 task 两处都 glob。docker 下 skills 是 :ro bind,旧写法必败;
  host 下还顺带污染仓库工作树。脚本已 out.parent.mkdir,无需改。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 16:33:59 +08:00
caoqianming 647d92f532 proposal+ppt: 路径用 <skill_dir>, 补 spec_lock 模板与 --spec 覆盖度检查
按代码评审建议改的 5 项:

1. 所有脚本/资源路径改成相对 <skill_dir> (load_skill 头里的绝对路径),
   不再假设 cwd 是 zcbot 仓库根。proposal+ppt 的 SKILL.md / icons.md /
   INDEX.md 都改了。

2. quality_check.py REQUIRED_SECTIONS 给 key_rd 补上 11_team /
   12_budget / 13_appendix —— 之前模板有但检查没到, 缺团队/预算/附件
   也会显示结构完整。

3. 新增 templates/spec_lock.md, 把"八条对齐"固化成可复制字段
   (含考核指标矩阵表 + TODO 列表 + 引文清单), 阶段二/三都从这里读。

4. quality_check.py 加 --spec <spec_lock.md> 选项, 解析 spec 中的
   考核指标矩阵, 关键词模糊匹配 sections, 提示哪些指南指标在正文
   未充分覆盖。SKILL.md 阶段三命令同步。

5. SKILL.md 新增"阶段零: 摄取素材", 用 run_python + pypdf/python-docx/
   openpyxl 把 PDF/DOCX/XLSX 转成 source/*.md, 不再要新脚本。同时
   把 spec_lock 字段引用改写到模板。

顺带:
- proposal SKILL.md 明确 7 类基金里只有 3 类 (key_rd/major_project/
  nsfc_joint_fund) 有完整章节模板, 其它 4 类复用骨架, 差异查 fund_types.md
- ppt SKILL.md 阶段三命令路径错误 (python scripts/quality_check.py)
  顺带修了
2026-05-07 16:05:44 +08:00
caoqianming 0971a500e7 PPT skill v3: 红色硬约束 + 品牌条 + 强制尾页 + Iconify 图标库
修复上一轮生成的实际问题: 模型擅自把红色换成蓝色 / 内页全裸白 / 缺 Q&A 尾页;
并补齐"个性化图标"能力 (此前只有 MSO_SHAPE + unicode 字形,业务概念图标缺位)。

- SKILL.md: 红色主题改硬约束 +  BLOCKING 八条对齐 (bundled 推荐, 等用户拍板),
  封面/尾页改强制项, 不算在 5-8 页正文预算内
- layouts.md: 加 apply_brand(slide, kind) 4 模式品牌条 (cover/inner/section/end),
  9 个版式起手必调, 消灭裸白页
- 图标库: 新增 fetch_icon.py 走 Iconify CDN (tabler/lucide/heroicons 等 150+ 集),
  主题色染色, 缓存到 assets/icons/, 配 INDEX.md 推荐清单
- icons.md: 移除 MSO_SHAPE 当业务图标的部分 (PENTAGON/LIGHTNING_BOLT 等视觉陈旧),
  三层降级 → 两层 (Iconify / unicode 兜底); MSO_SHAPE 退为 layouts.md helper 内部原语
- canvas_presets.md 并入 design_principles.md §0 (减少零碎文件)
- .gitignore: spec_lock.md 与根目录 *.pptx 不入库 (PPT skill 工作产物)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 12:23:06 +08:00
caoqianming 3a66849953 Initial import: zcbot personal task agent
DESIGN.md / PROGRESS.md 落地 Phase 1-3:
- core/: LiteLLM 封装 + ReAct loop + 会话持久化 + Anthropic skill registry
- tools/: read/write/edit/glob/grep/shell/run_python/load_skill (Hybrid 范式)
- skills/coding | proposal: WHY+WHAT 风格 SKILL.md
- skills/ppt: 完整渐进披露 (SKILL + 4 references + 3 scripts)
  · 借鉴 hugohe3/ppt-master 的两阶段 + spec lock 思路
  · MSO_SHAPE 图标体系 + 安全区 + 越界检测
  · 默认商务红主题 (#C00000 / #E15554 / #FFC107)
- config/models/: DeepSeek V4 flash/pro 档案

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 11:02:59 +08:00