Files
story/artifacts/requirements_audit_candidates.txt
T

157 lines
25 KiB
Plaintext
Raw Normal View History

2026-08-26 06:41:07 +08:00
132:P0060 [Normal] • 设备未绑定、授权不足或固件低于最低安全版本时,设备不能进入看似正常但实际无法工作的通话状态,应获得明确错误并通过设备既有提示方式告知用户。
133:P0061 [Normal] • 网络暂时不可用时,设备可以进行有限次数重试,但不能重复创建多次通话或多个供应商语音任务。
134:P0062 [Normal] • 设备已经入房但智能体启动失败时,Agent角色应停止并清理本次通话;设备收到可识别的失败状态后退出通话。
135:P0063 [Normal] • 设备在通话中断网、断电或重启时,Agent角色通过租约和后台检查回收供应商任务;设备恢复联网后上报最后状态。
136:P0064 [Normal] • 设备本地存在待上传录音时,SaaS角色应在网页中显示上传队列和失败原因;只有云端确认文件完整后,设备才延迟删除本地密文。
170:P0076 [Normal] • 实时语音不得进入SaaS业务接口、Agent控制接口、日志系统或自建应用服务器磁盘。
171:P0077 [Normal] • 设备上传录音时直接访问云端文件存储;SaaS业务接口只签发短期上传授权并校验上传结果。
172:P0078 [Normal] • SaaS网页不直接调用火山引擎或豆包接口;第三方接口细节统一由Agent角色的供应商对接模块封装。
173:P0079 [Normal] • 每次通话只关联一个客户组织、一个家庭、一个长者、一台设备和一个供应商语音任务。
174:P0080 [Normal] • PostgreSQL是业务数据的最终依据;Redis只保存租约、在线状态、限流和短期缓存。
175:P0081 [Normal] • 跨进程后台任务先可靠写入数据库再执行;重复执行不能生成重复内容、重复录音记录或重复费用。
176:P0082 [Normal] • 每类业务数据只设一个主责角色;另一个角色通过内部接口读取或提交结果,不直接修改对方模块负责的数据。
238:P0098 [Normal] • 两个角色共同维护一份接口和数据字典,先冻结创建通话、授权快照、字幕、候选内容、已确认记忆和停止动作的内部结构。
239:P0099 [Normal] • 每个交接点至少提供成功、超时、重复、乱序、授权撤回和删除中的典型测试样例。
240:P0100 [Normal] • SaaS角色提供模拟的长者档案、授权、绑定和人工核对结果;Agent角色提供模拟供应商、字幕回调和机器候选。
241:P0101 [Normal] • 任何破坏内部接口或数据含义的改动,必须先更新接口说明、迁移影响和兼容方案,再合并代码。
242:P0102 [Normal] • 阶段验收采用端到端业务场景,不以“各自模块单独演示成功”代替两角色联调。
297:P0113 [Normal] • 首期采用模块化单体。不同业务模块通过明确的程序接口协作,不允许一个模块直接修改另一个模块的数据表。
298:P0114 [Normal] • 数据库事务不得跨越火山引擎、云端文件存储、用户登录服务或大模型服务的网络调用,避免长事务和无法回滚。
299:P0115 [Normal] • 调用外部系统前先保存要执行的业务意图,调用后再保存结果。网络超时或进程重启后,可以继续确认状态或安全重试。
300:P0116 [Normal] • 配置、数据库升级脚本、接口文档、前后端字段类型、测试样例和运维文档必须与代码版本同步。
301:P0117 [Normal] • 生产长期密钥不得进入代码仓库、容器镜像、普通环境文件、业务数据库、日志或前端构建文件。
303:P0119 [Normal] • 模块接口的输入和输出使用明确的业务名称,不把火山引擎原始字段直接暴露给SaaS模块。
304:P0120 [Normal] • SaaS模块向Agent模块提供的授权和长者资料必须带版本、来源和有效状态;Agent不得自行猜测缺失授权。
305:P0121 [Normal] • Agent模块产生的字幕、摘要和候选内容必须带通话编号、长者编号、来源轮次和生成版本;SaaS不得只保存脱离来源的正文。
306:P0122 [Normal] • 任何状态变更先写入本模块的业务记录,再调用外部系统;网络结果未知时通过同一业务编号查询或对账。
307:P0123 [Normal] • 模块之间的写操作必须幂等;重复请求、重复通知和后台重试不得造成双通话、双记忆或重复删除。
455:P0186 [Normal] • 家庭用户能够从创建长者、设置授权、绑定设备一直完成到查看通话、核对故事和管理已确认记忆的完整流程。
456:P0187 [Normal] • 同一用户在不同家庭、不同长者和不同资源之间的权限边界清楚,越权请求不泄露资源是否存在。
457:P0188 [Normal] • 设备在线状态、配置下发、录音上传、导出和删除等异步过程都有明确的处理中、成功和失败状态。
458:P0189 [Normal] • 所有网页操作在无数据、加载中、权限不足、网络失败和并发修改时都有可理解的页面反馈。
459:P0190 [Normal] • SaaS角色向Agent角色提供的长者、授权、绑定、配置和已确认记忆都带稳定编号、版本和有效状态。
623:P0259 [Normal] • 真实设备连续完成多次创建、入房、激活、对话、挂断和异常恢复,供应商侧无遗留语音任务。
624:P0260 [Normal] • 三种语音处理方式在真实账号下均有标准启动请求、状态通知样例、时延和成本对比。
625:P0261 [Normal] • 每次通话可以追溯使用的长者资料、已确认记忆、人设、提示词、音色、模型和路由版本。
626:P0262 [Normal] • 最终字幕、摘要、故事和事实候选均保留来源;机器候选不会自动成为正式记忆。
627:P0263 [Normal] • 长者友好对话、记忆准确、打断、敏感信息和提示注入测试达到项目设定的质量门槛。
728:P0277 [Normal] • 项目团队交付可运行的模拟设备。模拟设备能够执行启动、读取配置、创建通话、确认入房、发送心跳、停止、断网、重复请求、字幕补交和录音上传。
729:P0278 [Normal] • Agent角色交付模拟火山引擎服务和可重复播放的脱敏状态通知样例,覆盖任务开始、最终字幕、智能体开始回答、被打断、用量、错误和停止。
730:P0279 [Normal] • 硬件团队提供设备能力表、音频编码与采样率、智能体用户订阅方式、心跳字段、两条录音轨道分片清单格式和设备命令结果格式。
731:P0280 [Normal] • 接口变更先更新 OpenAPI 接口说明和兼容性说明。会导致旧固件无法工作的变更使用新的接口版本,不能依赖固件 User-Agent 猜测兼容方式。
732:P0281 [Normal] • 设备不根据 engine_mode 改变实时音视频采集和播放逻辑。该字段只用于云端诊断、成本统计和通话记录。
733:P0282 [Normal] • 联调过程中,双方共同维护问题清单,记录问题现象、设备编号、通话编号、发生时间、日志关联编号、责任方、解决结果和回归结论。
735:P0284 [Normal] • SaaS判定设备未绑定、授权不足或额度达到时,Agent不创建房间和供应商任务,设备获得稳定错误码。
736:P0285 [Normal] • SaaS校验通过但Agent准备背景资料失败时,本次通话进入可诊断失败状态,网页和设备看到同一结果。
737:P0286 [Normal] • Agent已经创建房间但设备未入房时,预留到期后自动清理,不产生供应商语音任务。
738:P0287 [Normal] • 家庭用户在通话中撤回更严格授权或运营人员停止通话时,SaaS生成操作请求,Agent停止任务并向设备下发动作。
739:P0288 [Normal] • Agent写入故事候选后,SaaS页面可以跳转到字幕来源;家庭用户确认后,Agent在下一次通话中能检索新记忆。
740:P0289 [Normal] • 设备上传录音失败不影响字幕和故事页面;录音完成校验后,网页状态和设备本地删除动作最终一致。
770:P0297 [Normal] • 所有业务编号使用不可猜测的随机编号。所有客户组织业务数据明确保存客户组织编号。
771:P0298 [Normal] • 客户组织编号、长者编号和资源权限必须从登录信息和服务端关系中推导,不能相信浏览器或设备自行上报的客户组织边界。
772:P0299 [Normal] • 时间统一保存为协调世界时,并带完整时区格式。设备同时上报单调时钟,用于对齐录音和字幕时间。
773:P0300 [Normal] • 授权、故事、记忆、配置和费用均采用版本化保存。逻辑删除、法律或审计保留、最终物理清除分别建模。
774:P0301 [Normal] • 短期入房凭证、云端文件存储短期上传或下载地址、供应商长期密钥不得写入业务数据库。
775:P0302 [Normal] • 数据库字段、云端文件存储路径、向量索引附加信息和缓存键都必须包含或可推导明确的客户组织和长者边界。
776:P0303 [Normal] • 任何模型生成内容都要保存来源和生成版本。没有来源的机器内容不能进入人工确认流程。
796:P0309 [Normal] • 原始字幕先经过授权和敏感信息检查,再生成摘要、故事或事实候选。
797:P0310 [Normal] • 候选内容只有在有权限的家庭用户确认后,才能成为正式记忆。
798:P0311 [Normal] • 正式记忆仍然保留来源、确认人、版本和敏感级别,不能与原始来源脱离。
799:P0312 [Normal] • 撤回授权、停用、修订或删除后,新通话立即停止使用旧内容;后台继续清理数据库、对象和外部索引。
800:P0313 [Normal] • 任何后台清理都应显示处理中、成功或部分失败状态,不能仅凭数据库软删除就向用户显示全部完成。
804:P0317 [Normal] • 网页管理接口统一使用“/api/v1”作为基础路径;设备通信接口统一使用“/device/v2”;供应商状态通知接口统一使用“/callbacks/v1”。
805:P0318 [Normal] • 请求和响应使用 JSON。错误响应使用统一格式,至少包含稳定错误码、中文说明、请求关联编号、是否可以重试和必要的字段级错误详情。
806:P0319 [Normal] • 会产生写入、启动、停止、导出或删除等外部影响的 POST 请求,必须携带“Idempotency-Key(重复请求识别码)”。服务端在有效窗口内保存结果,并检查同一识别码的请求内容是否一致。
807:P0320 [Normal] • 列表接口使用不透明的下一页标记(程序字段 cursor)和每页数量。默认每页 20 条,最大值由具体接口说明。
808:P0321 [Normal] • 修改资源时使用版本标记(ETag/If-Match)或显式版本号。发现多人并发修改时返回冲突,不静默覆盖。
809:P0322 [Normal] • “X-Request-Id”只用于串联日志和故障排查,不能作为身份认证或重复请求凭据。
810:P0323 [Normal] • OpenAPI 接口文件是前后端和设备端的接口事实来源。持续集成自动检查字段类型生成和破坏性变更。
811:P0324 [Normal] • 接口响应不返回云端文件存储桶名称、内部数据库主键、供应商长期密钥、完整供应商原始错误、完整提示词或永久录音地址。
896:P0336 [Normal] • 用户身份通过标准身份服务确认。访问一个资源时,同时检查用户是否属于当前客户组织、在家庭中的角色、对该长者是否具有代理或管理权限,以及是否获得具体资源的分享授权。
897:P0337 [Normal] • 家庭所有者或管理员不自动获得原录音访问权。收听和下载必须分别有明确授权。
898:P0338 [Normal] • 设备只能访问自身当前绑定长者的通话、配置、录音上传和遥测资源。设备不能按任意长者编号请求数据。
899:P0339 [Normal] • 内部运营入口启用强制多因素认证、最小权限、临时权限提升和完整审计。客服默认看不到字幕正文和原录音。
900:P0340 [Normal] • 云端文件存储访问和向量检索使用与业务接口相同的客户组织和长者边界,不能只在网页层判断权限。
901:P0341 [Normal] • 所有管理动作、授权、播放、下载、故事确认、配置发布、设备吊销和长期密钥轮换都写入审计。
903:P0343 [Normal] • 所有网络接口使用 TLS 1.2 或更高版本。设备接口使用双向证书认证或经过批准的每设备独立请求签名。
904:P0344 [Normal] • PostgreSQL、数据库备份和云端文件存储使用云端密钥管理服务加密;云端文件存储桶禁止公开读取。
905:P0345 [Normal] • 日志默认不记录姓名全文、完整字幕、完整提示词、Wi-Fi 密码或详细网络信息、短期入房凭证、云端文件存储短期地址和完整文件路径。
906:P0346 [Normal] • 高敏感数据进入模型或故事整理前执行识别、最小化和策略过滤。对于验证码、账户信息和敏感医疗数据,默认不进入普通故事内容。
907:P0347 [Normal] • 导出文件加密存储,只提供短期下载地址,到期自动清理;每次下载生成访问审计。
908:P0348 [Normal] • 数据删除覆盖 PostgreSQL 正文、缓存、云端文件存储、pgvector、自有或供应商记忆索引和导出文件,并通过对账确认各处结果。
910:P0350 [Normal] • 持续集成自动执行密钥泄露扫描、静态代码安全检查、依赖漏洞与许可证检查、软件材料清单、容器镜像和基础设施配置检查。
911:P0351 [Normal] • 所有外部输入限制请求体大小、数组长度、字符串长度和嵌套深度。JSON、供应商通知、录音分片清单和文件元数据都必须按结构规则校验。
912:P0352 [Normal] • 按设备、用户、客户组织和网络地址分别限流。启动语音智能体的请求还要受到供应商每秒请求数和同时任务数保护。
913:P0353 [Normal] • 生产环境的对外访问白名单只允许火山引擎与豆包、云端文件存储、用户登录服务、时间服务和必要监控目标。
914:P0354 [Normal] • 上线前必须完成客户组织越权、云端文件存储越权、供应商通知重放、提示注入、长期密钥泄露和遗留语音任务专项测试。
935:P0360 [Normal] • 供应商状态通知和所有后台任务按“可能重复送达”设计,业务处理必须支持重复执行而不产生重复副作用。
936:P0361 [Normal] • 启动、停止、录音上传、数据导出、数据删除和设备命令均支持安全重试,并有最终状态对账。
937:P0362 [Normal] • 接口服务单实例重启、Redis 重启和后台任务进程重启不能产生双重供应商任务或永久卡住的通话。
938:P0363 [Normal] • 数据库结构升级应可以回滚,或提供明确的前向修复方案;生产发布支持滚动更新。
939:P0364 [Normal] • 供应商故障时,云端暂停创建新的供应商任务,继续回收已知任务,保持历史网页数据可访问并产生告警。
953:P0369 [Normal] • 后端核心模块单元测试覆盖率目标不低于 70%;通话状态、权限、删除和供应商对接的关键分支不低于 85%。
954:P0370 [Normal] • 接口说明、数据库升级脚本、配置结构和状态通知结构均进行版本控制和兼容性检查。
955:P0371 [Normal] • 日志、指标和调用链统一使用请求关联编号、设备编号、通话编号、供应商任务编号和录音上传批次编号,便于跨系统排查。
956:P0372 [Normal] • 网页前端支持最近两个主流版本的 Chrome、Edge 和 Safari;核心页面适配 1280 像素以上桌面,并兼顾平板。
957:P0373 [Normal] • 首期语言为中文;时间、时区和文案结构应支持后续增加其他语言。
979:P0380 [Normal] • 开发、上线前验证和生产环境分别使用独立的火山引擎应用编号、接口凭证、状态通知地址、数据库和云端文件存储桶。
980:P0381 [Normal] • 配置分为普通技术配置、受控业务配置和长期密钥。普通配置可以随代码版本管理;长期密钥只保存引用,不保存明文。
981:P0382 [Normal] • 供应商配置、人设、音色、语音处理路由、额度和数据保留策略使用发布版本,支持审计和回滚。
982:P0383 [Normal] • 轮换长期密钥不需要重新构建容器镜像。轮换步骤、验证方式和回退方式写入运维手册。
994:P0386 [Normal] • 告警至少覆盖供应商不可用、语音任务启动或停止异常、遗留任务、数据库或 Redis 故障、证书过期、供应商通知积压、删除超期、录音上传失败和费用异常增长。
995:P0387 [Normal] • 分别提供业务仪表盘、技术仪表盘和安全仪表盘。告警信息包含对应运维手册链接和设备、通话或请求关联编号。
997:P0389 [Normal] • PostgreSQL 使用自动备份和时间点恢复,并定期在隔离环境中实际恢复验证。
998:P0390 [Normal] • 云端文件存储启用版本、生命周期和删除保护策略;正式删除流程必须能够按确认规则清除历史版本。
999:P0391 [Normal] • Redis 按可重新生成的缓存处理,不能作为唯一业务证据。
1000:P0392 [Normal] • 每次正式发布前后保留数据库升级备份点。项目至少完成数据库恢复、长期密钥轮换、供应商故障和隐私删除四类演练。
1033:P0414 [Normal] • 所有首期需求、验收用例、缺陷和遗留风险已经形成可追踪对应关系,阻断级缺陷为 0。
1034:P0415 [Normal] • 使用真实火山引擎账号完成短期入房凭证、启动、更新、停止、三种语音处理方式、字幕与状态通知、用量和配额验证。
1035:P0416 [Normal] • 接口说明、数据库升级、配置、运维手册、监控、告警、备份恢复和安全扫描全部通过持续集成检查。
1036:P0417 [Normal] • 客户组织隔离、录音越权、供应商通知重放、遗留任务回收和隐私删除专项测试通过。
1037:P0418 [Normal] • 生产域名、证书、长期密钥、用户登录、云端文件存储、备份、告警接收人和应急联系人已经配置。
1038:P0419 [Normal] • 业务方、外包团队和硬件团队完成联合验收,并签署上线检查清单。
1077:P0435 [Normal] • 代码仓库、持续集成与部署账号、云资源账号和域名由业务方控制。外包人员使用实名、最小权限账号。
1078:P0436 [Normal] • 所有第三方依赖列明许可证、版本和用途。未经批准,不得引入限制商业使用或来源不明的组件。
1079:P0437 [Normal] • 所有配置和文档纳入项目仓库管理。个人网盘、个人云账号和个人长期密钥不得进入正式交付链路。
1080:P0438 [Normal] • 交付完成时移除外包人员个人权限,并完成生产权限、密钥管理、用户登录、监控和告警接收人的正式移交。
1082:P0440 [Normal] • 架构、权限、数据保留、接口不兼容变更、外部供应商和新增付费服务必须提交变更单。
1083:P0441 [Normal] • 变更单至少说明变更原因、影响范围、兼容性、数据迁移、费用、安全、测试和回退方案。
1084:P0442 [Normal] • 每个研发阶段进行代码、接口、数据和安全评审,评审结论和待办事项进入项目跟踪系统。
1085:P0443 [Normal] • 演示通过不能替代自动化测试、正式文档、异常清理路径和真实账号验证证据。
1087:P0445 [Normal] • 需求编号已经关联对应代码、测试、接口或配置变更。
1088:P0446 [Normal] • 正常、超时、重试、重复、乱序、撤回、删除和清理路径均有测试结果。
1089:P0447 [Normal] • 日志、指标和调用链可以定位问题,同时不泄露个人数据和长期密钥。
1090:P0448 [Normal] • 数据库升级、回滚或前向修复、接口说明、项目说明和运维手册已经同步更新。
1091:P0449 [Normal] • 代码完成评审,持续集成全部通过,阻断级安全问题为 0。
1092:P0450 [Normal] • 功能已经部署到目标环境,并通过业务方可以独立复现的验收步骤。
1109:P0458 [Normal] • 一套可以持续部署的共享开发环境,包括SaaS业务服务、Agent编排服务、PostgreSQL、Redis、供应商状态通知接收服务、模拟供应商、模拟设备和最小联调工作台。
1110:P0459 [Normal] • 设备独立身份、设备启动信息、基础配置版本、服务器时间同步、设备能力表、最低固件策略和请求审计。
1111:P0460 [Normal] • 两阶段通话启动:先创建通话并下发房间资料,设备成功进入房间后再确认入房并启动语音智能体。
1112:P0461 [Normal] • 真实语音链路先使用固定的端到端语音模式、单一音色和单一供应商配置,验证设备、实时音视频和语音智能体的稳定配合;程序字段保留后续切换能力。
1113:P0462 [Normal] • 最小长者背景资料,包括固定智能体人设、安全规则、测试长者称呼、少量测试背景和本次交流目标。
1114:P0463 [Normal] • 完整任务控制,包括启动、停止、心跳、短期租约、超时、供应商状态通知、后台异常回收和统一错误提示。
1115:P0464 [Normal] • 联调可观测性:请求关联编号、设备编号、通话编号、房间编号和供应商任务编号在日志和工作台中可以互相定位,同时不显示完整短期凭证。
1117:P0466 [Normal] 1. 设备开机后使用独立身份访问“GET /device/v2/bootstrap”,上报型号、固件版本和设备时间,完成服务器时间同步、设备状态和最低固件版本检查。
1118:P0467 [Normal] 2. 设备访问“GET /device/v2/config”,提交当前配置版本和能力信息,获取实时音视频编码、采样率、心跳间隔、上传策略和其他非敏感运行配置。
1119:P0468 [Normal] 3. 用户拿起听筒后,设备携带“Idempotency-Key(重复请求识别码)”调用“POST /device/v2/conversations”,请求创建本次通话。
1123:P0472 [Normal] 7. 设备收到“加入房间成功”事件后,调用“POST /device/v2/conversations/{id}/activate”,上报加入时间、实时音视频状态和当前配置版本。云端可以结合火山引擎房间通知二次核验。
1138:P0479 [Normal] • 最小联调工作台显示设备在线状态、固件、配置版本、当前通话、通话状态、短期凭证签发与过期时间、实时音视频状态、智能体状态、供应商通知和最近错误;不显示完整短期凭证。
1139:P0480 [Normal] • 支持按设备编号、通话编号、房间编号、供应商任务编号和请求关联编号查询;有权限人员可以执行停止、状态对账和测试配置刷新。
1140:P0481 [Normal] • 交付设备通信接口 OpenAPI、请求响应样例、设备接入说明、通话状态说明、错误码、测试设备证书发行说明和可运行模拟设备。
1141:P0482 [Normal] • 交付真实火山引擎账号的脱敏标准请求响应、状态通知样例、环境配置清单、日志字段、监控仪表盘和联调故障排查手册。
1142:P0483 [Normal] • 硬件团队提供设备能力表、实时音视频加入房间成功和失败事件、心跳字段、挂断原因、本地时间和固件版本;双方共同维护联调问题清单。
1143:P0484 [Heading 3] 15.2.6 验收标准
1144:P0485 [Normal] • 一台真实设备可以完成设备启动、读取配置、创建通话、加入实时音视频房间、确认入房、实时双向语音、发送心跳、挂断、停止和任务回收的完整闭环。
1145:P0486 [Normal] • 设备、接口响应、网页、日志、数据库和容器镜像中不存在实时音视频应用密钥、火山引擎访问密钥、豆包长期凭证或完整短期入房凭证。
1146:P0487 [Normal] • 错误房间、错误用户、过期短期凭证和被吊销设备无法进入有效通话;正常凭证可以在有效期内入房。
1147:P0488 [Normal] • 创建、确认入房、心跳和停止请求重复发送时,不产生双通话、双供应商任务、重复计量或错误最终状态。
1148:P0489 [Normal] • 真实设备连续完成至少 10 次通话;每次供应商任务、房间、租约和通话状态最终完成,无遗留的“通话中”或“正在停止”任务。
1149:P0490 [Normal] • 设备创建通话后未入房、入房后未确认、通话中断网、设备重启和云端重启时,均能超时回收或恢复,并形成可以定位的错误记录。
1150:P0491 [Normal] • 联调工作台能够追踪握手各步骤耗时、启动和停止结果、供应商通知和错误码;硬件人员可以独立按照文档复现完整流程。
1151:P0492 [Normal] • 最小长者背景资料正确带入测试称呼、背景和本次交流目标,证明背景资料由云端整理并随本次通话生效。
1223:P0508 [Normal] • 只有明确标记为可以重试的网络错误、超时和供应商临时错误才自动重试。
1224:P0509 [Normal] • 重试采用逐步增加等待时间并加入随机变化,设置最大次数;超过最大次数后进入人工处理或死信状态。
1225:P0510 [Normal] • 启动语音智能体结果未知时保持同一供应商任务编号,并先通过状态通知或查询确认结果;停止语音智能体可以安全重复执行。
1226:P0511 [Normal] • 供应商状态通知和可靠后台待办按至少一次处理设计,所有外部副作用使用业务唯一键去重。
1227:P0512 [Normal] • 权限不足、授权缺失、参数错误、版本冲突和额度达到不自动重试。