# SalesCRM 全局约束 - 版本:v1.0-试运行 - 生效时间:2026-07-17 - 维护角色:产品与项目管理 - 适用范围:SalesCRM 仓库、部署材料和关联角色会话 - 授权依据:Owner 要求引入研发体系并完成本地化适配 ## 事实源优先级 1. Owner 对方向、优先级、范围和风险的明确裁决。 2. [统一计划台账](<./docs/任务/统一计划台账.md>)中的活跃任务和唯一下一棒。 3. 任务目录内冻结的需求、方案、验收和角色矩阵。 4. [协作事件](<./docs/任务/协作事件.md>)中的派工、回执、评审和阻塞。 5. [角色任务队列](<./docs/任务/角色队列/导读.md>)中的执行顺序和唯一执行锁。 6. 精确 Git commit/diff、测试记录和部署证据。 聊天、线程状态、历史 TODO 和个人判断不能覆盖以上事实源。 ## 会话调度与任务保护 - 每个正式角色会话WIP上限为`1`,默认FIFO顺次处理。 - 任务必须先入持久队列再投递;队列有`RUNNING/WAITING`或会话为`active`时禁止发送新任务消息。 - 新协作事件不等于已投递,不能用消息通知抢占正在执行的工作。 - 异常中断后必须恢复原执行锁对应的任务;没有结果、检查点和锁释放记录时不得开始下一项。 - 普通追加要求默认进入队尾;只有Owner明确停止/替换且保存原任务检查点后才允许改变顺序。 - 会话故障迁移不得只替换Thread ID;新会话必须完整回读旧历史、确认决策和恢复点并通过交接验收,旧会话才允许归档,详见[会话故障迁移与交接规范](<./docs/研发体系/会话故障迁移与交接规范.md>)。 ## 修改范围 - 未明确目标、范围、不做项和验收标准时,不进入大范围实现。 - 只修改当前任务授权的代码、配置、数据和文档。 - 发现额外问题时登记为新任务或阻塞,不顺手扩大范围。 - 用户已经验收或明确满意的内容默认受保护。 - 工作区存在他人改动时必须保留;无法隔离时先升级说明。 ## 角色独立性 - Owner 裁决方向,不替代专业 Gate。 - 产品与项目管理维护需求、优先级、流程和 Gate P,不写业务代码、不执行部署。 - 架构角色冻结边界和契约,不替开发实现。 - 开发完成实现和自测,但不能独签自己的 Gate C 或 Gate A。 - 代码审核与安全角色只审精确基线,不在审查中顺手改代码。 - 测试角色独立执行 Gate A,不用开发自测替代。 - 运维只证明部署机械结果,不替开发签 Gate D。 ## 敏感信息与业务数据 - 禁止在普通文档、日志、提交信息和协作事件中写入密码、Token、私钥、Cookie 或完整请求响应。 - 本机凭据只允许存放在 Git 忽略的 `docs/local/`。 - 正式文档只能写敏感材料的位置、存在性和脱敏结论。 - 禁止提交真实客户明细、账号密码和运行时数据;当前已跟踪数据列为 P0 整改事项。 - 测试数据必须脱敏或使用专用样本,不直接复用生产数据。 ## 文档规则 - 新增业务文档优先使用中文文件名,不使用“最终版”“新的”“临时”等含糊命名。 - 工具强制文件名、源码包名、API 路径和任务 slug 可以使用英文。 - 正式引用使用相对路径。 - 当前现状、目标设计、计划改动和已实现结果必须明确区分。 - 统一台账、协作事件和角色日志只追加;更正用新记录,不覆盖历史事实。 ## Git 与交付 - 修改前确认仓库、分支、远程和工作区状态。 - 每个可部署需求使用独立分支或可复核的精确 diff;分支建议为 `feat/CRM-任务号-主题` 或 `fix/CRM-任务号-主题`。 - Gate C 只对精确 commit/diff 有效,基线变化后必须重新审核。 - 推送前检查敏感信息、大文件、运行数据和无关改动。 - 发布记录必须包含 commit、环境、部署步骤、验证和回滚入口。 ## 验证与完成 - 验证结果只能写 `PASS / CHANGES_REQUESTED / BLOCKED / N/A`,其中 `N/A` 必须有原因和确认人。 - 未执行验证不得写成通过。 - 部署成功不等于功能正确;开发必须核验 Gate D,测试必须核验 Gate A,产品必须核验 Gate P。 - 任何残留风险都要有责任人、解除条件和复查时间。 ## 例外 紧急变更可以压缩等待时间,但不能取消敏感信息保护、可回滚性、独立代码审核和最小验证。例外必须记录原因、风险、Owner 确认、截止时间和补证计划。