Commit Graph

9 Commits

Author SHA1 Message Date
caoqianming ec27fcae3e feat(skill): plot_pub 吸收 nature-figure 投稿级复合图设计纪律 + bump 0.12.15
调研 nature-figure skill(MIT)后只迁移可复用设计 IP,不整包移植
(避免与 plot_pub 重叠、R/生物内容不适配、多文件结构破坏单 SKILL.md 约定)。

- style.py: 补 svg.fonttype='none'(原只设 PDF Type 42,漏了 SVG 可编辑)
  + SEMANTIC_COLORS 语义色表 + clean_spines() + ablation_alphas()
- SKILL.md: 新增「投稿级多 panel 复合图」段(五点 figure contract /
  语义配色 / 信息架构 + spine 纪律 / 导出纪律),示例改建材领域
- SKILL_LIST.md / PROGRESS.md 同步;纯 Python 零新依赖,保留中文字体

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 16:54:32 +08:00
caoqianming 958678aa12 feat(skills): 用户私有 skill(.skills)+ 创作工具 + skill-creator + Web 查看页
每用户可在私有 .skills/ 下造/改 skill,只对自己生效。

- SkillRegistry 改多来源(SkillSource 列表:内置 + 用户 .skills),后扫同名
  覆盖先扫 → user wins;user_overrides 记覆盖关系、discovery 显式标注;
  Skill 加 source;from_dir 区分"非 skill 目录(静默)"与"格式错(SkillLoadError)",
  坏的用户 skill 收进 load_errors 注入 prompt,不崩整次扫描。容器路径改写下沉
  到 registry.container_dir(按 source 给 /sandbox/skills 或 /workspace/.skills),
  LoadSkillTool 去掉 container_skills_dir 参数。
- 新增 host-side 工具 save_skill / fork_skill(tools/skill_authoring.py):
  fs 的 base_dir 锚 cwd/容器 wd 够不到 user_root/.skills,故用 host-side typed
  tool(与 seedream/document_* 同范式)。save_skill 写时校验 frontmatter;
  fork_skill copytree 整目录(带脚本)+ 自动对齐 frontmatter name。
- 新增 skill-creator 引导 skill(重点教写好 description + fork 语义)。
- Web:左侧 rail 底部「技能」按钮 → modal 分平台/我的两组,点开看完整
  SKILL.md,我的可删;后端加 GET /v1/skills/{name}(正文)+ DELETE
  /v1/skills/{name}(只删 user 源 + 防穿越);/v1/skills 带 source/overrides/
  load_errors;新 web/static/js/skills.js。创建/改/fork 仍走对话。
- .skills 是 dotfile(文件面板隐藏,与 .memory 一致;validate_task_name 已禁
  . 起头 working_dir,天然不撞)。
- 测试:test_user_skills.py(20 例)+ 改写 test_load_skill.py;全 121 过。
- 文档:DESIGN §3.5 / PROGRESS / RUN(布局+端点)/ SKILL_LIST 同步。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-11 09:46:39 +08:00
caoqianming b2b4a29ad3 feat(ppt): 补信息设计纪律 + 混合背景 + pptx 预览器(深读 pptmaster 后)
深读 ppt-master 的 executor/shared-standards 后定位:它像麦肯锡的真因是
信息设计纪律(~70%)而非 SVG 渲染。这些全是 editable python-pptx 能做的。

- 信息内功:add_takeaway(论断标题下结论框)、add_kpi 加 baseline+delta
  (数据语境化)、add_source、add_toc;SKILL 策略阶段加论断式标题对照表 +
  page_rhythm(breathing 页强制打破卡片网格)+ 内容→版式映射
- 修反了的投影:add_card 默认平卡(shadow=False),投影只给悬浮卡、每页 ≤2-3、
  一容器一手段;quality_check 加绿=语义状态色豁免三色制
- 组合件:add_card_grid(均衡网格,多行图标左置治溢出)/add_timeline/add_cycle
- 混合背景 render_bg.py:无头 Chrome 渲杂志级 mesh 渐变背景 + 原生可编辑白字
- pptx_preview.py:把 .pptx 渲成 PNG 肉眼验观感 —— 当场抓到 set_text 多行
  只给第一段上色的真 bug(封面副标题第二行变暗),已修

验证:重排「大模型与智能体」10 页,逐页渲 PNG 亲眼验收均专业,quality_check 全过。
未做 SVG→原生转换器(论证为可编辑输出零视觉增益)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-09 09:41:55 +08:00
caoqianming c0169e7766 feat(ppt): 视觉系统升级为卡片式 —— 治"生成效果不太行"
学 hugohe3/ppt-master 后定位根因:被 python-pptx 原语(平矩形+左色条+
圆点 bullet)摁死视觉天花板。选路径 B(升级 python-pptx 设计系统,保留
单脚本批量架构、原生可编辑)。

- pptx_helpers: 加 add_card(圆角+柔和投影)/add_gradient_rect/add_kpi/
  add_icon_tile/add_pill/add_eyebrow/add_chevron/add_notes;set_palette
  派生明暗色阶 WASH/SOFT/DARK;apply_brand 封面/章节改渐变大色块;
  所有 helper 把 name= 写进形状 .name(原来只喂 assert_inside)
- layouts.md: 9 版式重写成卡片式 + 扩到 13 种(KPI 卡/卡片网格/流程/大数字)
- quality_check: 跟新设计语言对齐 —— 三色制按色相归桶、标签按 .name 豁免
  小字号/bullet、≥40pt 展示字跳过溢出估算、bullet≤5 改按列判
- SKILL.md: opt-in 真实配图(imagegen, ¥0.22/张)+ 每页演讲者备注
- design_principles/SKILL_LIST/PROGRESS 同步

验证:13 版式全覆盖 demo + 6 页样例 deck quality_check 全过;单列 6-bullet
回归仍触发。未动 SVG 路线/live preview/动画(更大工程)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 15:28:37 +08:00
caoqianming 1f6661b8df refactor(ppt): 工作流批量化减轮 —— 逐页生成改一脚本整建 deck
高成本 task 几乎全是 100+ 轮的逐步 tool 循环,轮数是 token 体量线性乘数。
ppt 作最低风险试点:

- 阶段一 spec 增「逐页大纲」表(页|版式|标题|要点|图标),作替代逐页确认的
  前置 checkpoint —— 改文字大纲比建完 slide 再推翻便宜
- 阶段二改成写一个 build_deck.py 一次建整 deck(同进程 new_presentation→
  按大纲循环 add_slide→一次 save,坐标天然一致;pptx_helpers 模块化已消解
  逐页防漂移理由),图标全 deck 批量预取
- 验收:quality_check 一次 → 改脚本重跑(不 edit 成品)
- 可选「风格探针」(先建封面+1页看观感)兜视觉返工险

N 页从 ~2N 轮降到 ~3-4 轮。改 SKILL.md / layouts.md(§通用起手换单脚本模板)/
SKILL_LIST.md。冒烟过单脚本建 2 页,API 与模板一致。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-08 10:22:09 +08:00
caoqianming 02cd67f63a feat(skill): 新增 standard skill — 国标/行标/团标起草(GB/T 1.1-2020)
联网核实市面无可直接复用的"写标准文件本身"的 skill(搜到的均为相邻品类:
GB/T 8567 投标技术方案、GB/T 9704 党政公文),据 GB/T 1.1-2020 自建。

- 覆盖三层级:国标 GB·T / 行标 JC·T / 团标 T/(重点对接 CSTM → T/CSTM)
- 两体裁骨架:试验方法标准(GB/T 20001.4)+ 产品标准;配套编制说明(报批必交)
- 3 references:要素骨架(必备/可选·规范性/资料性·封面前言套话)、层级选型
  (CSTM 体系与立项程序)、起草铁律(能愿动词/不可考核词/指标量化闭环/术语/引用真实性)
- 渲染复用 proposal render_docx.py + render_diagrams.py(兄弟 skill,同 patent 范式)
- 不用 proposal quality_check.py(按申报书章节名误报"缺章节"),改 §8 人工自检清单
- 同步 SKILL_LIST.md(13→14)+ PROGRESS.md

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 15:46:06 +08:00
caoqianming 68ce996ad2 feat(tools): documents/pymatgen secret-bearing 能力改 host-side tools,key 不进 sandbox
新增 tools/documents.py(document_list_kb/search/download)和 tools/materials_project.py
(mp_search_summary/get_structure/get_entries),key 只在宿主读取,sandbox/run_python 拿不到。
agent_builder 仅在对应 env 存在时注册。删 skills/pymatgen/materials.py::mp_rester() 旧入口,
smoke 改走 host tool。同步 DESIGN §6.7 secret-bearing 规则 + RUN/SKILL_LIST/两个 SKILL.md。

实测:MP step D 真连 api.materialsproject.org 返 403(工具行为正确,干净透传 [Error]),
疑似 .env 里 legacy key 在新版 mp-api 失效,待换 next-gen key 再验。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 09:35:10 +08:00
caoqianming f1a42ef13f skills: 3 SKILL.md 标 sandbox env key 拦截现状(documents/pymatgen ⚠️ + research )
run_python `_SENSITIVE_PATTERNS` 过滤器拦含 API_KEY/TOKEN/SECRET 字面的 host env
(挡 prompt 注入抽 JWT_SECRET 等),误伤 documents/pymatgen 从 env 读 key 的 helper;
docker backend 下 host env 根本不入容器,问题更彻底。LLM 还把 research 跟它们排版
类推也放弃,可 research 不持 secret 任何模式都能用 —— 加 callout 阻止误推 + 反模式
扩到禁所有 HTTP 客户端裸调,免得 urllib 钻空子跳过 helper 教学。
broker 下轮做(host tool 范式不取),DESIGN 当时再补。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 09:23:41 +08:00
caoqianming 80eafe2880 docs: 加 SKILL_LIST.md 外发清单 + CLAUDE.md 规则改 skill 同步更新
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-29 09:10:49 +08:00