From 9a631fef90a228cdbb937abb2cc49fcc234ed9d7 Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Sun, 23 Aug 2026 11:37:06 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=B7=BB=E5=8A=A0=20README=EF=BC=8C?= =?UTF-8?q?=E8=A1=A5=E5=85=85=E7=94=9F=E4=BA=A7=E7=B3=BB=E7=BB=9F=E5=91=A8?= =?UTF-8?q?=E6=9C=9F=E4=B8=8E=E6=8A=A5=E4=BB=B7=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- README.md | 34 ++++++++++++++++++++ output/生产系统/生产系统开发周期与报价.xlsx | Bin 0 -> 12479 bytes 2 files changed, 34 insertions(+) create mode 100644 README.md create mode 100644 output/生产系统/生产系统开发周期与报价.xlsx diff --git a/README.md b/README.md new file mode 100644 index 0000000..14cc189 --- /dev/null +++ b/README.md @@ -0,0 +1,34 @@ +# 报价工作区 + +输入一份 PDR 或项目概述,输出报价单 xlsx。报价规则和格式规范见 [CLAUDE.md](CLAUDE.md),由 Claude Code 按其执行。 + +## 目录 + +``` +input/ 报价参考材料(PDR、概述、会议纪要) +output/ 输出的报价单,按项目分目录 +scripts/ 生成 xlsx 的 Python 脚本(openpyxl) +reference/ 历史报价单与排期表副本,作为格式模板和估算参照 +CLAUDE.md 报价规则:单价、计费口径、人天基准、格式规范、工作流程 +``` + +## 核心规则速览 + +- 单价按项目确认:历史有 1000 元/人天(西藏移动系列)和 1200 元/人天(生产系统 AI 项目)两档。 +- 全新系统计全量(公共底座+业务功能+测试与交付+项目管理);同一系统新增模块只计业务增量;复用模块计 0 并注明。 +- 测试与交付约占开发人天 20%,项目管理约占总人天 10%,估算后用比例反查。 +- 每份报价单固定「报价汇总 + 报价明细」双 sheet,金额全部用公式,不抄数字。 +- 交付物要过「去 AI 味」检查:不加说明文案、不穷举、文字简单直接。 + +## 使用方式 + +在本目录启动 Claude Code,把报价材料(文件或粘贴的概述)交给它: + +1. 它会先给出模块拆解和人天估算的 Markdown 清单,确认单价和口径; +2. 确认后生成 xlsx 到 `output/<项目名>/`,用 Excel 重算公式缓存后交付。 + +## 已完成报价 + +| 项目 | 人天 | 单价 | 金额 | 时间 | +|---|---|---|---|---| +| 生产系统(化工 AI 优化) | 194 | 1200 | 232,800 元 | 2026-08 | diff --git a/output/生产系统/生产系统开发周期与报价.xlsx b/output/生产系统/生产系统开发周期与报价.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..b6dee37d44992f738c8a1e27176df3f0a1d7425b GIT binary patch literal 12479 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