Files
bid-doctor/AGENTS.md
YANG JIANKUAN 5747a523bb docs(architecture): 接口契约 v0.1,确认 API1–API5
- openapi.yaml:用户端 MVP 主流程的 OpenAPI 3.1 契约(64 个路径、81 个操作)
- api-design.md:约定、鉴权、页面与接口对应、扣点预览、任务与事件、上传、错误码
- data-model.md:清单项 spec 改为按类别分组

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-03 17:44:28 +08:00

19 KiB
Raw Blame History

AGENTS.md — 标博士(bid-doctor)

本文件是所有 AI 编码代理(Claude Code、Codex、Cursor 等)的共用项目说明。CLAUDE.md 只做引用,请只改本文件。

项目概况

  • 产品名:标博士(代码仓库名 bid-doctor)
  • 一句话定位:站在投标方一侧,贯穿「寻标 → 读标 → 写标 → 查标 → 投标」全生命周期的 AI 辅助工具。产品是「副驾驶」,不是「自动驾驶」。
  • 口号:标博士,你的AI投标专家(固定写法,见决策 B5)。
  • 当前阶段:需求分析、品牌与 VI 已完成,产品界面设计规范 v0.1、MVP 可点击原型 v0.1、技术架构设计 v0.2(选型已定,待技术验证 S1–S4)已完成,尚无代码。工作流:需求分析 ✅ → 主题 / 品牌设计 ✅ → 产品界面设计规范 ✅ → 原型设计 ✅ → UI 设计 → 技术架构 ✅ → 实现 → 测试。
  • 需求来源:当前有效版本是 docs/招投标AI工具PRD-v0.9.1.html(docs/招投标AI工具PRD.html 是 v0.9 原稿,保留作对照),再加上 docs/decisions.md 和 docs/analysis/ 里已确认的 MVP 细化需求。三者冲突时:decisions.md > analysis > PRD。发现矛盾或缺失时,记录问题并向用户确认,不要自行假设。
  • 工作语言:文档、界面文案、提交说明默认使用简体中文;代码标识符、文件名使用英文。

产品结构速览

模块 内容 MVP(P0)
M1 商机筛选 标讯聚合、订阅、AI 匹配打分、招标计划采集 否(P1/P2)
M2 招标文件解读 上传解析(PDF/Word/OCR)→ 资格 / 废标条款 / 评分点 / 关键日期结构化提取 → 原文回链 → 生成项目检查清单 是
M3 废标风险检查(楔子) 响应完整性、形式要件、资质匹配检查 → 人工逐项确认 → 检查报告 PDF 导出 是
M4 标书生成 目录框架、分章初稿、知识库填充、偏离表、Word 导出 否(V1)
M5 查重雷同 自有历史查重、多份互查、雷同风险报告 否(V1/V2,合规边界条款为 P0)
M6 基础平台 项目工作台、额度计量与账单(P0);协作权限、资产库(P1);私有化(P2) 部分

MVP 范围 = M2 全部 P0 + M3 全部 P0 + M6 项目工作台 + 额度计量 + 免费版 / 专业版。需求分析阶段确认新增:多包 / 多标段、最小资质库、报价形式检查、补遗追加(简化版)、最小运营后台。完整清单见 docs/analysis/03-functional-requirements.md。

首发行业是 IT 集成(D1)。IT 集成项目多数走政府采购体系(《政府采购法》、财政部令第 87 号),少数走招标投标体系。两套体系的术语不一样(投标无效 / 否决投标)、无效情形也不一样,产品要先识别项目属于哪一套,再套用对应规则。详见 docs/analysis/05-it-integration-domain.md。

核心数据设计:M2、M3、M4、M5 共用同一份「项目检查清单」数据结构——解读阶段提取的要求项,在写标阶段是生成约束,在投前阶段是核对项。任何建模与架构设计都必须围绕它展开。

项目状态流:跟进中 → 编制中 → 已检查 → 已递交 → 已归档。

必须遵守的产品红线

这些约束贯穿设计、文案与实现,评审时逐条核对:

  1. 辅助定位四件套(PRD 4.1):辅助生成(产出标注为初稿)、检查清单(逐项列出、含原文出处)、人工确认(关键节点须逐项确认)、全程留痕(谁在何时确认了什么,可审计)。
  2. 可复核:每条 AI 提取 / 检查结论必须可回溯到原文(页码 + 原句高亮);无出处的结果只能进「待确认」区或降级为「提示」。
  3. 禁用绝对化表述:界面、协议、营销文案中禁止「保证不废标」「零废标」「100% 通过 / 准确」等说法;M3 只能称「辅助检查 / 风险提示」,报告首页须写明检查覆盖范围。
  4. 不阻断用户:「致命」项未处理完时项目状态保持「未就绪」,但不阻止导出——决定权在用户。
  5. 不编造:资质、业绩、知识库引用只能来自用户自有数据;缺失处用占位符提示补录。胜率等数据不足时宁可不展示。
  6. 报价数字永不由系统生成或建议,只提供结构与填充位。
  7. 签章检查只做「位置与有无」提示,不做真伪鉴定,界面明示。
  8. M5 只服务投前自查:不得支持或宣传「帮多家投标人去雷同」等围串标规避用途。
  9. 额度即货币(PRD 4.3):所有扣点规则可见、可查、可预警;解析失败 / 超时 / 系统异常不扣点;额度绑定账号与企业主体,不可转让。
  10. 数据敏感:传输与存储加密、按租户隔离、支持自助删除;SaaS 数据不用于训练公共模型。

政策引用的「双层口径」

先按项目所属的法律体系区分,再在体系内区分现行层和草案层(PRD v0.9.1 1.5)。政府采购项目的异常低价无效(87 号令第六十条)是现行规定,不能写成草案层,也不能挂「政策预警」标签。招标投标体系里引用政策时,严格区分两层,不得混同:

  • 现行依据层:发改法规〔2026〕195 号《关于加快招标投标领域人工智能推广应用的实施意见》——现行有效,但属政策指导文件而非法律。
  • 草案强化层:《招标投标法》修订草案——尚在审议、未施行,引用时必须标注。「政策预警」标签只用于草案层(如异常低价否决)。
  • 195 号文「2026 年底全覆盖」只指招标文件检测、智能辅助评标、围串标识别三个场景;本产品的楔子场景对应 2027 年底全国推广,对外不得混写。

待决策事项(PRD 第 12 章)

开工涉及以下事项时先向用户确认,不要默认:

  • D1 首发行业:✅ 已定为 IT 集成(2026-11-02,见 docs/decisions.md)。IT 集成项目多数走政府采购体系,术语和规则见 docs/analysis/05-it-integration-domain.md。
  • D2 专业版额度数字:解析 500 / 生成 300 为建议值,待成本实测定版。
  • D3 M1 商机数据来源:自建抓取 vs 第三方接口(V2 前决策)。
  • D4 企业版首单策略:是否提前准备私有化部署包。

需求分析阶段的待确认事项 G1–G10 已全部确认,见 docs/decisions.md A1。

技术约束(已定)

  • 大模型(T1):只用国内云端的国产大模型,数据不出境。按场景路由:多模态(扫描件、签章)/ 快速 / 深度思考。业务代码只声明需要什么能力,不直接写死供应商和模型;每个 AI 任务都要记下模型和提示词版本。
  • 后端语言(T2):Python 单语言,业务接口和后台任务是同一套代码、两种进程。
  • 桌面客户端(T3):连服务端的客户端外壳,界面和网页版同一套;前端从第一天起守住 docs/architecture/architecture.md §5.2 的约束。
  • 部署(T4):同一批镜像,两种编排(Docker Compose / Helm);SaaS 内测期用 Compose,商用后切到托管 K8s。
  • 云厂商(T5):暂不定,只依赖 PostgreSQL、S3 兼容的对象存储、OpenAI 兼容的模型接口。
  • 已确认的选型(AR1–AR3、AR5–AR9):模块化单体;前端用 Vue 3 + TypeScript + Vite 单页应用;数据库 PostgreSQL;文件存储用 S3 协议 + 本地磁盘驱动;单一仓库。详见 docs/architecture/architecture.md 第 11 节。
  • Valkey(AR4):只存丢了也没关系的数据(限速、验证码、推送、缓存);权威数据(含会话、任务队列)都在 PostgreSQL。
  • UI 组件(AR10):不引入带样式的 UI 框架(如 Element Plus),视觉自己写,样式只来自 tokens.css;复杂交互用无样式组件库 Reka UI 打底;不用 Tailwind。
  • 工程骨架搭好后,在本文件回填构建、运行、测试命令和目录结构。

品牌与设计资产(已定)

设计文档索引见 docs/design/README.md。做界面、文案、物料时先看这几条:

  • 视觉方向:A「校样」。蓝铅笔 #2F5BD3 = AI 标注 / 出处;墨 #1D2733 = 正文 / 人工确认。
  • 界面风格(U5,设计规范 v0.2):
    • 定稿样张是 docs/design/ui-demo/explore/workbench-d5.html。
    • 页面白色主调,浅灰从墨色派生(页面底 #F8F8F9);校样纸 #F5F6F3 只留在品牌色板里,不再作页面底色。
    • 墨色渐变窄侧栏(96px,不折叠)。
    • 圆角三档:标签 6、控件 8、卡片 12。
    • 只用功能图标,少写说明。
  • 两种红色不能混用:印章红 #D9291C 只用于 logo;致命红 #C4122F 只用于界面里的致命问题。
  • 界面规范:docs/design/design-system.md;写界面代码时颜色、字号、间距只用 docs/design/system/tokens.css 里的变量。
  • 字体(均为 OFL,可免费商用):思源宋体(标题、字标)、思源黑体 / 系统黑体(界面正文)、Libre Caslon(英文品牌字)、Barlow Semi Condensed(数字)。
  • Logo:正式文件在 docs/design/logo/svg/、png/。要改 logo,改 docs/design/logo/scripts/logo_lib.py 里的参数,再运行 scripts/build_assets.sh,不要手改 SVG。工具环境(logo/.work/)不进 git,搭建方法见 logo-spec.md 第 6 节。
  • VI 手册:docs/design/vi/标博士-VI视觉识别规范-v1.1.pdf,源文件是同目录的 vi-manual.html,重新导出方法见 docs/design/vi/README.md。logo 或口号变化后要同步重出。
  • 红线:logo 不能当作「通过 / 合格」章用在报告或任何结论上。

目录约定

docs/
  招投标AI工具PRD.html   # PRD v0.9 原稿(只读)
  招投标AI工具PRD-v0.9.1.html  # 当前有效版本;后续修订继续出新版本文件
  analysis/              # 需求分析:用户旅程、用例、数据模型草案、样本分析
  design/                # 品牌与设计(索引见 design/README.md)
    brand-strategy.md    #   品牌策略:定位、性格、口号、语气
    brand-directions.html#   三个视觉方向对比(已选 A 校样)
    logo/                #   logo 正式资产、规范、构建脚本、历史版本
    vi/                  #   VI 视觉识别规范(PDF + HTML 源文件)
    design-system.md     #   产品界面设计规范:原则、颜色、字体、组件、文案
    system/              #   tokens.css(设计变量)、components.css(组件样式)、components.html(预览)
  prototype/             # MVP 可点击原型(HTML,说明见 prototype/README.md)
  architecture/          # 技术架构、ADR(docs/architecture/adr/NNNN-*.md)
  decisions.md           # 产品与工程决策记录(含 D1–D4 的拍板结果)
samples/
  tenders/               # 真实招标文件样本(README 是清单;原始文件不进 git,用 fetch.sh 获取)

以上目录按阶段推进时再创建,不要提前建空目录。代码目录结构在技术架构确定后补充到本文件。

参考开源项目(opensource-ref/)

opensource-ref/ 放的是别人的开源项目,只供用户本人对照参考,不属于本项目,已在 .gitignore 中忽略。

  • opensource-ref/bid-engine/:标擎 BidEngine(github.com/panviviplus/bid-engine),招投标 AI 工作台,Go + Next.js。
  • 不参与本项目的编码、文件查找和逻辑:搜索代码、排查问题、设计架构、写需求时都排除这个目录;不要引用、复制或改写其中的代码、提示词、SQL 和文案,也不要把它的设计当作本项目的既定做法。用户明确要求「看一下参考项目」时才去读,读到的内容只作为讨论素材,结论仍以本项目的 decisions.md / analysis / PRD 为准。
  • 许可证:PolyForm Noncommercial 1.0.0,只允许非商业用途;本产品是商业产品,其代码不能进入本项目。
  • 已清理掉其中与本项目无关的工程化文件(嵌套的 .git、.gitignore、.gitkeep、.DS_Store、它自带的 AGENTS.md、ESLint / Prettier 配置、第三方库的 CI 配置);保留了运行它所需的 .env*、.npmrc、Dockerfile、docker-compose 和启动脚本,以及 LICENSE / NOTICE。

工作方式

  • 每个阶段产出落到 docs/ 对应目录,并在本文件「当前进度」中更新一行。
  • 用户确认的决策写入 docs/decisions.md(日期 + 决策 + 理由),不要只留在对话里。
  • 设计与文案产出提交前,对照上方「产品红线」自查一遍。
  • 技术栈确定后,在本文件补充:构建 / 运行 / 测试命令、代码规范、目录结构。

当前进度

  • 2026-11-02:项目初始化,建立 AGENTS.md / CLAUDE.md。
  • 2026-11-02:D1 定为 IT 集成;完成 MVP 需求分析(docs/analysis/)。
  • 2026-11-02:G1–G10 全部按建议确认;出 PRD v0.9.1(补充政府采购体系);大模型策略定为国产云端模型 + 按场景路由(T1)。
  • 2026-11-02:从苏采云公开渠道收集了 10 份 IT 集成采购文件(samples/tenders/),分析结论见 docs/analysis/07-sample-findings.md。关键结论:实质性条款不能只认 ★(有的用斜体 + 下划线标注,解析时必须保留文字格式);文件扩展名不可信;报价限价有三层。
  • 2026-11-02:品牌与 VI 完成。
    • 品牌策略:定位「投前审校员」,口号「标博士,你的AI投标专家」(B5);视觉方向选 A「校样」(B1)。
    • Logo v5.1:AI 生成的白文印「标」+ 思源宋体 SemiBold / Libre Caslon 字标,比例 H2、英文视觉内缩 C2(B3、B4)。中间经历的 v1–v4(Codex 精细化、SVG 程序化模拟印泥)归档在 docs/design/logo/archive/,教训见 logo/seal-research.md:印泥质感本质上是位图,不要再用 SVG 程序化模拟。
    • VI 视觉识别规范 v1.1(A4 横版 24 页,含名片、信封、信纸、报告、演示文稿、网站等应用),见 docs/design/vi/。
  • 2026-11-02:产品界面设计规范 v0.1(docs/design/design-system.md + system/tokens.css + system/components.html)。要点:红色只给致命问题(表单错误、额度、截止临近都用赭色);问题级别靠实心 / 描边 / 无框区分,不只靠颜色(色弱模拟验证过);字体全部自托管;出处是固定组件。U1–U4 全部按建议确认(只做桌面 Web、图标用 Lucide、致命问题确认无误也要写说明)。
  • 2026-11-02:MVP 可点击原型 v0.1(docs/prototype/,13 个页面,覆盖 J1–J5)。中保真,直接用设计规范的组件;查标页可逐条处理、键盘操作、看原文。原型阶段的 P1(24 小时免扣从上一次扣点的检查算起)、P2(人工核对勾选按项目保存)已按建议确认。
  • 2026-11-03:应用图标改为印泥铺满、不留白边,圆角按 Apple 连续曲率圆角由系统裁(B6);VI 手册 v1.1 第 22 页改为 iPhone 18 Pro 主屏幕模拟(docs/design/vi/mockup/,Apple 素材不进 git,机身需本人同意 Apple Design Resources 许可后放入)。
  • 2026-11-03:分析参考项目标擎 BidEngine 的架构、提示词和模型路由,整理出可参考的做法和避坑清单(docs/architecture/ref-bid-engine-analysis.md),留给技术架构阶段用。
  • 2026-11-03:技术架构设计 v0.2(docs/architecture/architecture.md)。T2–T5 已确认:Python 单语言、桌面端做客户端外壳、SaaS 先 Compose 后 K8s、云无关。之后确认了 AR1–AR3、AR5–AR9,前端改为 Vue 3;AR4 复议后改为引入 Valkey(已确认);AR10 定为不引入带样式的 UI 框架,用 Reka UI 打底。选型全部确认。编码前先做技术验证 S1–S4。
  • 2026-11-03:种子用户走查结束,没有问题。进入 UI 精修前先做 UI demo(docs/design/ui-demo/,6 个页面):控件、表单、卡片、列表,以及工作台、读标两个组合页;新增组件清单和待定问题 Q1–Q12 见其 index。
  • 2026-11-03:技术验证 S1–S4 完成(docs/architecture/tech-validation.md,代码在 spikes/),四项都可行。要点:Word 转 PDF 要修正 WPS 字体字符集并改用行高调整过的字体;格式识别不需要 Docling;表格内切句要改进;DeepSeek 抽取要加第三道依据校验和规则兜底,单项抽取每份约 0.15 元。FR-M2-05 和 FR-M2-06 的目标值按建议确认(TV1)。
  • 2026-11-03:UI 风格定稿(U5)。工作台经过六轮方案(docs/design/ui-demo/explore/),定为 D5:白色主调、墨色渐变窄侧栏、透明顶栏、圆角三档、只用功能图标、少写说明。设计规范和 tokens.css 升到 v0.2。
  • 2026-11-03:UI demo 全部按 v0.2 重刷(控件、表单、卡片、列表、工作台、读标)。Q1–Q12 全部按建议确认,写入设计规范;各页的共用问题收回到 components.css、demo.css、demo.js。Q13(流水记 0 点的「免扣」行)、U 键(撤销当前条)按建议确认。
  • 2026-11-03:MVP 原型 13 页全部按 v0.2 重刷:框架、项目头和标签页、对照布局、问题处理交互与 UI demo 一致,业务流程和红线内容不变。报告页脚与免责声明改为「本报告为辅助检查结果,仅供投标前自查参考」,规范 §7.17 和 FR-M3-09 同步,消除了「保证」字样。
  • 2026-11-03:技术架构升到 v0.3,新增 §3.14。团队版、企业版、飞书 / 企业微信登录都是以后的版本,早期不做;MVP 的表结构先按多人、多登录方式建:人 / 登录方式 / 成员身份分三层,项目成员表和统一的权限检查点先建好,以后接入不用重构(AR11、AR12)。
  • 2026-11-03:VI 手册第 20 页报告页脚去掉「保证」字样,改为与设计规范 §7.17 一致的「辅助检查结果,仅供投标前自查参考」,PDF 已重出。
  • 2026-11-03:物理数据模型 v0.1(docs/architecture/data-model.md + schema-draft.sql,40 张表,PostgreSQL 16 上 16 项行为测试通过)。DM1–DM7 全部按建议确认:句子放对象存储不进库、外键都带租户、每个项目一把数据密钥、手机号不存明文、规则问题可以只挂规则编号、清单新增「报价」类别。
  • 2026-11-03:接口契约 v0.1(docs/architecture/api-design.md + openapi.yaml,OpenAPI 3.1,64 个路径、81 个操作),覆盖 MVP 原型 13 页的主流程,运营后台另行定义。API1–API5 全部按建议确认:骨架搭好前以 openapi.yaml 为准,之后以 FastAPI 生成的快照为准;事件流用 fetch 读;异地登录确认后挤掉旧设备;扣点说明和实际不一致时拒绝、不扣点;报告后台生成。
  • 下一步:搭工程骨架(仓库结构、CI、Compose 一键启动、「上传 → 解析 → 显示清单」最小链路),见 docs/architecture/architecture.md 第 12 节。CI 里补上 OpenAPI 的完整校验(Redocly 或 Spectral)。