agentsclimarketplace

Doa quotation

Skill medalsoftchina/workcopilot/embedded-skills/doa-quotation

Full project lifecycle AI workstation — orchestrates Agents, Skills, Hooks & Prompts for end-to-end development workflow, from requirements analysis to delivery. 项目全生命周期 AI 工作站。

Install
npx -y skills add medalsoftchina/workcopilot --skill doa-quotation

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

从需求描述生成经典报价 Excel 或敏捷任务拆分 Excel,并优先复用当前工作区中的客户/项目模板。 完整工作流: (1) 用户提供需求、客户名称、项目名称或参考模板 (2) 使用 vscode_askQuestions 让用户选择“经典报价”或“敏捷方式” (3) 根据客户名称、项目类型、历史模板和现有 Python/Excel 文件确定输出结构与风格 (4) 生成或更新 Excel / Python 生成脚本,并校验工时、费用、税率、Sprint 拆分和样式一致性 USE FOR: 做报价、工时报价、项目报价、经典报价单、敏捷任务拆分、Sprint 拆分、敏捷排期、报价 Excel、 工时报价 Excel、报价模板复用、按客户生成报价、按项目生成报价、生成报价脚本。 DO NOT USE FOR: 接口文档(使用 doa-apidoc)、PPT(使用 doa-ppt)、会议纪要(使用 doa-metting)。

SKILL.md

20.9 KB, as published. Nobody here has run it

报价与敏捷任务拆分生成

工作流概览

用户提供需求/客户/项目信息
→ 确认输出模式(经典报价 / 敏捷方式)
→ 搜索并比对当前工作区模板
→ 结构化整理报价项或 Sprint/任务项
→ 生成 Excel 或 Python 生成脚本
→ 校验工时/金额/税率/样式
→ 输出最终文件路径与说明

何时使用

  • 用户说“帮我做报价”“生成报价单”“整理工时报价”
  • 用户说“按敏捷方式拆任务”“做 Sprint 拆分”“生成敏捷排期 Excel”
  • 用户提供客户名称、项目名称,希望参考已有模板生成新的 Excel
  • 用户提供 Python/openpyxl 脚本或历史 Excel,要求按同类风格生成新版本

Step 0: 必须先确认输出模式

当用户只说“做报价”或“做任务拆分”,必须先使用 vscode_askQuestions 确认

  • 经典报价
    • 适合固定范围、按模块/工时/费用输出传统报价单
  • 敏捷方式
    • 适合按 Sprint、任务、人天、验收标准输出敏捷任务拆分表

推荐问题:

问题:本次希望采用哪种输出方式?
选项:
  - 经典报价 ← recommended
  - 敏捷方式(Sprint / 任务拆分)

如果用户已经明确说了“经典报价”或“敏捷方式”,可以跳过这一步。

Step 0.5: 必须确认期望总工时范围

在进入模板选择和任务拆分前,必须再使用 vscode_askQuestions 确认期望的总工时范围,单位为人天。

推荐问题:

问题:本次期望的总工时范围是?
选项:
	- 10人天以下
	- 10-30人天
	- 30-50人天
	- 50-70人天 ← recommended
	- 70-100人天

使用规则:

  1. 这个范围是生成报价和任务拆分时的重要约束,不应跳过
  2. 若用户已明确给出目标工时或目标预算可推导工时范围,可直接采用并在最终说明中写明
  3. 若用户选择的工时范围与参考模板差距很大,应优先调整任务粒度、Sprint 数量或模块范围,而不是机械照搬模板
  4. 经典报价与敏捷方式都应记录该范围,作为总人天校验依据

Step 1: 收集最小必要信息

至少确认以下信息;如用户未提供,继续追问缺失项:

  1. 客户名称
  2. 项目名称
  3. 需求描述或范围说明
  4. 输出模式
  5. 期望总工时范围
  6. 人天单价(必填,单位:元/人天,例如 2200、3000、3500)
  7. 是否有参考模板

人天单价必须由用户提供,不使用任何默认值。如果用户未主动给出,使用 vscode_askQuestions 追问。

建议补充信息:

  1. 报价主体
    • 默认:用户公司名称(需用户提供)
  2. 税率
    • 默认沿用模板;无模板时单独确认
  3. 交付周期
  4. 角色与单价口径
    • 例如 PM/BA 与 PG/PT 是否同价,SA、QA 是否有独立单价
  5. 是否需要同时输出 Python 生成脚本

Step 2: 先找模板,再决定结构

优先在当前工作区搜索并复用现有模板,而不是从零随意生成。

模板搜索优先级

  1. 同客户、同项目族的 Excel 或 Python 生成脚本
  2. 同类型文档模板
    • 报价单、敏捷任务拆分、Sprint 计划、工时校验
  3. 用户本次显式提供的附件或脚本
  4. 如果仍然没有,再基于通用结构新建

客户名称自动匹配规则

在搜索模板前,优先根据客户名称锁定候选目录,再在目录内按输出模式挑选模板。

当前工作区已知映射

以下为示例映射,实际使用时根据工作区中的客户目录自动发现。

  1. 客户名称包含:示例客户ExampleCorp
    • 优先目录:ExampleCorp/
    • 经典报价优先模板:
      • ExampleCorp/示例项目.工时报价.xlsx
    • 敏捷拆分优先模板:
      • ExampleCorp/示例项目_敏捷任务拆分.xlsx
    • Python 参考脚本:
      • ExampleCorp/示例项目_敏捷任务拆分.py

匹配流程

  1. 先读取用户输入中的客户名称
  2. 如果客户名称命中已知映射,先限定到对应目录搜索
  3. 在对应目录中按输出模式筛选:
    • 经典报价:优先 报价工时报价quotation
    • 敏捷方式:优先 敏捷任务拆分Sprint工时校验
  4. 如果同目录存在多个候选模板:
    • 优先用户显式提到的项目名
    • 其次优先最新日期版本
    • 再其次优先已有配套 Python 脚本的模板族
  5. 如果客户名称未命中任何已知映射,再退回通用搜索策略

使用原则

  • 命中客户目录时,不要跨目录随意混用其他客户模板
  • 同一客户目录下,经典报价和敏捷模板可以共用配色、公司抬头、税率口径,但仍应分别遵守各自模板结构
  • 如果用户上传了新的客户模板,应优先以用户上传模板覆盖目录默认模板

搜索建议

  • 先搜索客户名、项目名、关键词:报价、拆分、Sprint、工时、POC
  • 同时查找:.xlsx.py.html.md
  • 如果已有 Python 脚本可生成 Excel,优先继承其表结构、颜色、字体、列宽、汇总方式

复用原则

  • 保持原有模板的视觉风格和结构层级
  • 保持客户名称、项目名称、币种、税率口径一致
  • 不随意更换已成熟模板中的字段命名方式
  • 如果模板存在明显数据错误,可以修正,但需在最终说明中指出

Step 3A: 经典报价模式

适用于固定范围报价、模块报价、工时报价单。

经典报价默认模板

经典报价统一使用以下模板结构生成。该模板已内嵌在骨架脚本中。

脚本路径references/classic-quotation-template.py 品牌素材brand-assets/company_logo.png(请替换为您的公司 Logo)

模板画像

  • 面向客户的正式 Service Quotation / 服务报价单
  • 工作簿 2 个工作表项目报价 + 开发工作量
  • 左上角(A1:D6)嵌入公司 Logo(缩小显示 150×35px,原图 445×104px)
  • 中英文双语字段,适合对外发送
  • 统一人天单价(由用户提供),PM/BA 与 PG/PT 默认同价
  • 无折扣行,只有"未税小计" + "含税合计"
  • 税率默认 6%,金额格式 ¥#,##0.00
  • 字体:Sheet 1 项目报价用微软雅黑,Sheet 2 开发工作量用 DengXian(等线),浅蓝表头底色(#D9EAF7

推荐文件命名

  • 输出目录:output/{客户名称}.{项目名称}/(每次新任务创建独立子文件夹)
  • {客户名称}.{项目名称}.工时报价 {YYYYMMDD}.xlsx
  • 若同项目存在多个工时版本,可追加 _V2_45MD 等后缀

项目报价 页布局(A1:N26,共 26 行)

┌────────────────────────────────────────────────────────────┐
│ [Logo 445×104]  │ Service Quotation  │ {您的公司名称}    │
│  A1:D6          │ 服务报价单 E1:K6   │ L1:N6 (右对齐)     │
├─────────────────┴────────────────────┴────────────────────┤
│ To:                       │ From:                         │
│ Contact/联系人  Company    │ Contact  Email  Phone         │
│ Address  Email  Phone      │ Quo date  Due Date            │
├────────────────────────────────────────────────────────────┤
│ 项目服务价格 section header                                │
│ PM/BA: =E小计 * {单价} │  PG/PT: =F小计 * {单价}        │
│ 未税小计 =L15+L16     │  含税合计 =L17*1.06            │
├────────────────────────────────────────────────────────────┤
│ CR/Enhancement 费用(同结构,QTY留空)                     │
├────────────────────────────────────────────────────────────┤
│ Notes/备注:(备注1~7条,wrap_text)                       │
└────────────────────────────────────────────────────────────┘

关键公式

  • H15 = =开发工作量!E{小计行} (PM/BA 人天引用)
  • H16 = =开发工作量!F{小计行} (PG/PT 人天引用)
  • L15 = =H15*J15M15 = =ROUND(H15*J15+H15*J15*N15,2)
  • L17 = =L15+L16 (未税小计),L18 = =L17*1.06 (含税合计)

开发工作量 页布局

内容
BID(按场景分组,同场景多行时垂直合并)
C用户场景(同场景多行时垂直合并)
D任务名称
EPM/BA/SA
FPG/PT
G费用小计(同场景多行时垂直合并,公式按场景组汇总 =SUM(E{组起}:F{组止})*单价
H备注
  • 场景分组合并:相同 scenario 的相邻行,B 列(ID)、C 列(用户场景)和 G 列(费用小计)垂直合并
  • 小计行:=SUM(E{start}:E{end})
  • 合计行:=SUM(G{start}:G{end}),标注"不含税价"

默认口径与样式

参数默认值说明
统一单价用户提供(无默认值)PM/BA 与 PG/PT 默认同价
税率6%增值税
账期Net30天报价日期 +30
字体微软雅黑 / DengXianSheet1 微软雅黑,Sheet2 DengXian(等线)
表头底色#D9EAF7浅蓝
金额格式¥#,##0.00两位小数
Logocompany_logo.png显示 150×35px(原图 445×104)

人天单价必须由用户提供,不使用任何硬编码默认值。税率和客户专属口径同样以用户输入为准。

Logo 自动注入

Logo 内嵌在 brand-assets/company_logo.png,脚本自动查找并缩小显示(150×35px)嵌入 A2 位置。 如未找到 Logo 文件,A1:D6 区域留空,不影响其他内容生成。

经典报价完成标准

  • 明细金额可回溯到人天和单价
  • 项目报价页金额通过公式引用开发工作量页的小计
  • Logo 正确嵌入左上角
  • 文件名、抬头、公司名、客户名全部正确

经典报价内容整理规则

  • 把需求拆成可报价模块,不要直接复制原始需求长文
  • 优先使用"场景 + 任务名称 + PM/BA 人天 + PG/PT 人天"的结构
  • 如果用户给的是结果导向需求,先推导实施模块
  • 费用公式统一用 =SUM(E:F)*单价,不按角色差异定价
  • 涉及税率时,明确"不含税 / 含税"口径
  • 生成后检查总人天是否落在用户选择的工时范围内;若超出,应收缩范围、拆阶段或说明超出原因

Step 3B: 敏捷方式模式

适用于 Sprint 排期、任务拆分、用户故事追溯、工时校验。

敏捷方式标准模板规则

如果用户提供了类似 C-level_Conversations_Assistant_POC_敏捷任务拆分.xlsx 的模板,或当前工作区存在同类模板,则优先按该模板族生成。

模板画像

该类模板的核心特征是:

  • Sprint总览 作为首页,而不是单纯的任务表
  • 至少包含 7 个工作表,形成“总览 + 明细 + 校验 + 图表 + 风险 + 追溯 + 仪式”的完整闭环
  • 同时体现报价口径与敏捷执行口径
  • 既能给管理层看总览,也能给项目团队看任务拆分细节

推荐文件命名

  • 输出目录:output/{客户名称}.{项目名称}/(每次新任务创建独立子文件夹)
  • {项目名称}_敏捷任务拆分.xlsx
  • {客户名称}.{项目名称}_敏捷任务拆分.xlsx
  • 如果属于某个 POC 或阶段项目,可保留 POCPhase1SprintPlan 等关键词

推荐工作表结构

  1. Sprint总览
    • 项目概览 + 6 个左右 Sprint 的目标、周期、里程碑、验收标准
  2. 任务明细拆分
    • 核心任务表,按任务 ID、Sprint、分类、角色、人天、依赖、验收标准拆分
  3. 工时校验
    • 按 Sprint 汇总 PM/BA、PG/PT、费用、累计费用,并映射回报价项
  4. 燃尽图
    • 计划剩余人天、Sprint 交付人天、累计交付、完成比例、理想线
  5. 风险追踪
    • 风险描述、影响 Sprint、影响程度、发生概率、应对措施、责任人、状态
  6. 用户故事追溯
    • 用户故事与任务、Sprint、人天、费用的映射关系
  7. Scrum仪式
    • Sprint Planning、Daily Standup、Sprint Review、Retrospective、Backlog Refinement、DoD

Sprint总览 推荐字段

  • 项目名称
  • 开发商 / 报价主体
  • 客户
  • 迭代周期
  • 总周期
  • 方法论
  • 报价总额(不含税)
  • 报价总额(含税)
  • 税率
  • PM/BA 人天
  • PG/PT 人天
  • 总人天

Sprint 总览表推荐列:

  1. Sprint
  2. 名称
  3. 周期
  4. Sprint目标
  5. PM/BA 人天
  6. PG/PT 人天
  7. 费用小计(不含税)
  8. 交付里程碑
  9. 验收标准

任务明细拆分 推荐列

  1. 任务ID
  2. Sprint
  3. 报价ID
  4. 分类
  5. 子项
  6. 任务名称
  7. 任务描述
  8. 负责角色
  9. PM/BA 人天
  10. PG/PT 人天
  11. 费用(不含税)
  12. 优先级
  13. 前置依赖
  14. 用户故事ID
  15. 验收标准
  16. 状态

工时校验 推荐列

  1. Sprint
  2. PM/BA 人天
  3. PG/PT 人天
  4. 人天合计
  5. 费用(不含税)
  6. 累计费用
  7. 对应报价ID
  8. 校验说明

并建议追加一个“报价工作量 → Sprint 映射对照”区块,用于把报价模块映射回 Sprint。

燃尽图 推荐列

  1. 时间节点
  2. 计划剩余人天
  3. Sprint交付人天
  4. 累计交付人天
  5. 完成比例
  6. PM/BA 累计
  7. PG/PT 累计
  8. 累计费用(不含税)
  9. 理想线

风险追踪 推荐列

  1. 风险ID
  2. 风险描述
  3. 影响Sprint
  4. 影响程度
  5. 发生概率
  6. 应对措施
  7. 责任人
  8. 状态
  9. 更新日期

用户故事追溯 推荐列

  1. 用户故事ID
  2. 用户故事描述
  3. 关联任务ID
  4. 关联Sprint
  5. PM/BA 人天
  6. PG/PT 人天
  7. 费用(不含税)

Scrum仪式 推荐列

  1. 仪式名称
  2. 频率
  3. 时长
  4. 参与人
  5. 目的
  6. 输出物

并建议在该页追加 Definition of Done 清单。

样式与视觉规则

  • 主题色以商务蓝系为主,深蓝表头、中蓝汇总、浅蓝副标题
  • 默认字体沿用微软雅黑
  • 主表头白字深底,正文使用浅灰斑马纹
  • 每个 Sprint 可使用单独的浅色底区分行块
  • 优先级推荐:P0 红色、P1 橙色、P2 黄色
  • 金额统一 ¥#,##0
  • 建议启用冻结窗格与筛选

敏捷方式完成标准

  • Sprint 总览、任务明细、工时校验三者数据一致
  • 总人天、总费用与报价口径对齐
  • 每个 Sprint 都有目标、里程碑、验收标准
  • 每个核心任务都有责任角色、依赖和验收标准
  • 风险、追溯、Scrum 仪式页至少保留基础结构,不能只交一个任务表

推荐输出结构

  1. Sprint 总览
    • Sprint 名称、周期、目标、交付里程碑、验收标准
  2. 任务明细拆分
    • 任务 ID、Sprint、分类、子项、任务名称、描述、角色、人天、优先级、依赖、状态
  3. 工时校验
    • 按 Sprint 汇总 PM/BA、PG/PT、费用、累计费用
  4. 可选工作表
    • 燃尽图、风险追踪、用户故事追溯、Scrum 仪式

敏捷拆分规则

  • 先按阶段分 Sprint,再在 Sprint 内分任务
  • 每个 Sprint 应包含目标、里程碑、验收标准
  • 每个任务都尽量具备:依赖、责任角色、验收标准、状态
  • 拆分结果必须能回溯到原始需求或报价项
  • 任务粒度以“便于排期和验收”为准,避免过粗或过碎
  • 生成后检查总人天是否落在用户选择的工时范围内;若超出,应调整 Sprint 数量、任务深度或明确说明原因

Step 4: 生成方式选择

根据上下文选择生成方式:

直接生成 Excel

适用于:

  • 结构简单
  • 当前任务只需要交付 .xlsx
  • 不要求后续大规模复用脚本

生成 Python 脚本再输出 Excel

优先适用于:

  • 已有 openpyxl 模板脚本可参考
  • 需要大量格式控制
  • 需要后续迭代复用
  • 需要多工作表、图表、复杂样式或校验逻辑

当工作区已有类似 Python 脚本时,优先沿用其写法和样式约定。

推荐复用脚本骨架

当需要快速生成新脚本时,优先读取并复制以下模板骨架,再替换其中的占位数据:

使用原则:

  1. 如果是对客正式报价,优先从经典报价骨架开始
  2. 如果是 Sprint 任务拆分、排期、追溯、风险管理,优先从敏捷拆分骨架开始
  3. 如果工作区已有客户专属脚本,先参考客户脚本,再回落到骨架模板
  4. 骨架中的公司名、税率、单价、字段文案都允许按项目覆盖,但不要改坏公式关系和整体结构

标准占位参数

为了降低每次生成脚本时的改动范围,优先使用统一参数接口:

  • 通用参数:output_fileproject_namecustomer_namevendor_nametemplate_sourcequote_datetax_rate
  • 经典报价优先补充:role_rateschange_request_ratessales_contactcustomer_contact
  • 敏捷拆分优先补充:iteration_cycleduration_textamount_ex_taxamount_inc_taxpm_days_totalpg_days_total

如果客户模板需要新增字段,优先在标准参数的基础上做扩展,而不是随意改名或分裂成另一套命名体系。

Step 5: Excel 设计与样式要求

生成内容必须兼顾商务美观与可维护性。

通用要求

  • 标题层级清晰,字体、底色、边框统一
  • 冻结表头、设置筛选、合理列宽、启用自动换行
  • 金额、税率、人天采用统一数字格式
  • 汇总区域突出显示
  • 客户可直接用于汇报或交付,不要生成“开发草稿感”过重的表格

美观要求

  • 优先复用模板已有主题色
  • 无模板时采用商务蓝系或与客户品牌相近的克制风格
  • 不使用杂乱高饱和色块
  • 表格密度适中,保证打印与屏幕查看都清晰

安全与严谨要求

  • 不凭空捏造客户敏感信息
  • 金额、人天、税率、总计必须可追溯
  • 如果基于估算,应明确标注为“预估”或“假设”
  • 对外文档避免出现内部调试字段或无意义注释

Step 6: 校验清单

生成完成后至少检查以下内容:

  1. 客户名称、项目名称是否正确
  2. 输出模式是否与用户选择一致
  3. 总人天是否落在用户选择的工时范围内
  4. 人天合计、金额合计、税额、含税金额是否正确
  5. Sprint 与任务分配是否前后一致
  6. 样式是否与参考模板一致或至少保持商务统一
  7. 工作表名称、筛选、冻结窗格、列宽是否可用
  8. 如使用公式,确保无 #REF!#DIV/0!#VALUE! 等错误

Step 7: 最终交付说明

完成后向用户明确说明:

  1. 采用的是经典报价还是敏捷方式
  2. 参考了哪些模板或脚本
  3. 用户选择的总工时范围,以及最终总人天是否落在该范围内
  4. 输出文件路径
  5. 若有关键假设、缺失信息或人工估算项,需要单独列出

触发示例

  • 帮我做一个给示例客户的经典报价 Excel
  • 根据这个需求做一个敏捷任务拆分,参考当前工作区模板
  • 帮我生成一份工时报价单
  • 这个项目你帮我先判断应该走经典报价还是敏捷方式,再生成 Excel

完成标准

  • 用户完成了模式选择,或用户已明确指定模式
  • 输出文件已生成
  • 模板来源清楚
  • 金额/工时/Sprint 数据校验完成
  • 最终表格可直接用于商务沟通或内部评审

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.