HS Design 报价自动化系统(2026-08-01 建立)
背景决策
- 弃用 quotation SaaS(部署经常出问题,Sozo 心累)
- 改用 Google Sheets + Hermes AI 协作:制度化又灵活
- Sozo 定协作模式:大框架 AI 写,定制化细节用户写,标准 item AI 自动匹配,用户写好 AI 检查逻辑
系统组件(Google Sheets)
工作簿: https://docs.google.com/spreadsheets/d/1AtTlTiqMLbl8t0u8u6osQQ6NmiQ-lG6kXewsgIuUwRM/edit
| Sheet | 内容 |
|---|---|
| Quotation 模板 | 品牌化报价格式(10 工种分组 + 付款条款) |
| Cost Breakdown | 成本明细(一 item 多成本子项) |
| Item 库 | 85 个 item(最终清洗版,从 HS Design + Hill Land 提取) |
| 检查SOP | 漏项检查逻辑(18 条规则) |
架构决策(2026-08-01 晚场细化 → 方案 B)
- 对比「A. 每项目单独 Sheet」vs「B. Item 大数据 + 项目 Sheet 结合」后,用户确认 B:以一处累积的 Item 库为核心,每个项目用独立 Quotation Sheet
- 理由:item 集中才能做训练/分析、自动化匹配、跨项目漏项检查;参考格式用 Rosmerah(用户喜欢),item 数据大量从前公司 Hill Land 提取
构建进度(2026-08-01 晚场 17:55–19:11)
- ITEM 大数据库:Rosmerah 28 → HS Design 92 → Hill Land 451(去重 298)→ 智能分类 → 清洗合并 85 个最终 item(Carpentry 28 / Supply-Install 18 / Labour 13 / Masonry 13 / Plumbing 6 / Painting 4 等)
- Quotation 模板重建:54 行 = 品牌化表头 + 10 工种分组 + 条款区;利润公式(Cost → Profit Margin → Profit → Selling Price)
- 检查SOP Sheet:18 条漏项检查规则(敲/水泥/地砖/橱柜/水电常见坑)
- skill 固化:
hsdesign-quotation-system(D:\hermes\skills\productivity\hsdesign-quotation-system\SKILL.md) - 提取/清洗脚本:
D:\hermes\hsdesign_work\(init_item_db / extract_all_items / clean_merge_items / merge_hillland_to_db / write_final_item_db 等) - Hill Land 数据源:
G:\.shortcut-targets-by-id\144qcqfCNgK6WQLz5lcDTIjjsFaNKXcH8\Hillland\Customer Project\Proposal(HLP0001-0064+,43 个 xlsx 已复制本地) - 用户指示:一小时内无回复则继续自动完善数据库(自动续跑模式)
品牌风格(HS Design “Design your Health Space”)
- primary 鼠尾草绿
#7C9A8E(主表头) - gold 金
#C9A84C(强调/总额) - primary-light
#F0F7F4(分组背景) - 字体:Plus Jakarta Sans / Segoe UI
- 配色取自原有 quotation SaaS UI (quote-app.js)
数据源
- HS Design(新公司):格式标准(Rosmerah/HSP/HSD),6 报价单提取
- Hill Land(前公司):数据量大(43 xlsx → 451 item),格式不采用但词汇可用
- 本地脚本:
D:\hermes\hsdesign_work\quotes_data\
报价流程
- 收集项目信息(房型/面积/工种)
- 查 Item 库匹配 item 措辞
- 填 Quotation 模板(工种分组)
- 成本拆 Cost Breakdown(一 item 多成本)
- 利润 20-33%(成本×1.2-1.5)
- 对照检查SOP 找漏项
- 用户审 → 导出 PDF
待办的两个新报价
- Austin 橱柜:商家版 + 铝蜂窝板橱柜
- Permas Condo:敲工/水泥/地砖/装工/少量木工
相关 skill
hsdesign-quotation-system(主 skill)workspace-mcp-auth(授权)- winrm(远程)
深夜场更新(2026-08-01 21:17–08-02 00:14)
当前文件体系(4 个独立 Sheets,勿混淆)
模板格式基准(用户原模板,Quotation sample.xlsx)
- Description 在 C 列(宽 63.4),售价 H,成本 J-L,利润 N-P;打印区域
A1:I66→ 导出 PDF 自动跳过成本/利润列 - Description 全列 wrap=True;字体 Quattrocento Sans 12pt;工种标题行青绿
#5E9E9B+ 白字粗体 - xlsx 导入 Google Sheets 1:1 保留格式(列宽/wrap/合并/打印区域/颜色/公式)→ 重建报价版面用「上传原模板转换」优于 API 逐格重建
- item 措辞规范:尺寸放描述末尾 + 括号 + 斜杠分隔(如
(4465mm / 250mm deep))
颜色规范(2026-08-01 修复白字 bug 后定稿)
- item 行(白底):文字 深青绿 2D4E52
- 工种标题行(青绿底 5E9E9B):文字 白色 粗体
- 陷阱:模板创建时曾把整列设白字 → 白底白字 invisible(已修 MASTER 335 + Ambience 100 处);任何从模板复制的新表都要先检查颜色
已知坑(操作 Sheets 时)
- 操作前先重读布局(删列/行后坐标偏移)
- 插入行会继承上方样式(inheritFromBefore)→ 需重置白底
- 删行后 REF! 常在 A 列残留(
=#REF!*0.15)→ 清 A 列 - execute_code 被安全策略阻止 → 用 terminal 跑 Python
- API 导出 PDF 默认 Letter 且带成本列 → PDF 由用户自己导出(用户偏好)
Description 富文本格式(用户认可的可读性优化,2026-08-01 夜)
- item 格 = 粗体标题 + 普通正文 + 青绿粗体 Size 行(如
(4465mm / 250mm deep))3 行结构 - 用户明确满意(「粗体字大大降低顾客阅读难度」)→ 所有 item 一律用此结构
Sheets API 富文本要点(踩坑记录)
textFormatRuns是 CellData 顶级字段(不在 userEnteredFormat 里)TextFormatRun.format直接就是TextFormat(不要再嵌套 textFormat 层)- run 的 fg=None 会继承单元格整体文字色 → 白底白字 invisible 的根源之一
- auto-resize 对多行文本无效(仍 20px)→ 手动设行高(3 行 ≈ 90px)
打印规范(用户偏好,勿违背)
- PDF 一律用户自己导出(agent 不导出,省 token);用户习惯:手动 select 客户可见部分 → Print > Selected cells,A4 / portrait / fit to width / narrow margins
- 成本/利润列用 custom page breaks 跳过(不要隐藏列——隐藏后编辑时看不到成本)
- 用户已删 A 列 + 第 1 行 → print preview 无多余边距(模板已同步,新表勿加回)
空白页解法(已验证)
- 删多余空白行列:Austin rowCount 977→40、MASTER 1046→109(多余列 27→19/21)→ PDF 从 3 页(含空白页)变干净 1 页
- Google Sheets 打印把空行列也算进范围,custom page breaks 救不了空白页
小规范
- S/N 列居中(水平+垂直)
- item 措辞:材质直接括弧、不用 “with”(如
Replace Pull-Out Drawer Doors (Aluminium Honeycomb))
底部区(Bank/Contact/Payment)标准(2026-08-02 用户确认)
⚠️ 重要:底部所有 detail 写 A 列 + merge A-F(新模板已删 A 列空格,不像 Rosmerah 用 B——Rosmerah 用 B 是因为它的 A 列有一整排空格占位)。
- Payment Term 标题行(Ambience R24 / MASTER R91):标题格 + 右边一格 = 青绿底 + 白字粗体
- Bank/Contact 4 行(teal 10pt LEFT,merge A-F):
- RegNo
202603001610 - 地址(24-1, Jalan Rosmerah 2/17, Taman Johor Jaya, 81100 Johor Bahru, Johor)
- email + 网站
www.hsdesign.biz+ 真实手机号011-1688 0145(绝不脱敏,脱敏客户无法联系) - Maybank
551539158314
- RegNo
- 不需要 “Bank Account” 标题(删掉,底下 Maybank 账号就够)
- 长地址 → 分段写 + wrap + 行高 40px(如 B8 项目名+街道 / B9 邮编+城市;22px 单行高 wrap 会挤掉 postcode)
- ⚠️ 补写内容必须带样式:
values().update只写文字不写样式 → 继承错误深灰格式(白底白字 invisible 的变种);补写时用 format_sheet_range / cell 级样式抄模板 - 客户 Project Site 地址尽量搜完整(如 Ms Ong:
A-08-03, D'Ambience Residences, Jalan Permas 2, Bandar Baru Permas Jaya, 81750 Masai, Johor),显得专业