Target Version
3.0-dev。复核基于 origin/3.0-dev 提交 a75fc8721b99e5c0b4421d0c58b5618bbe71ff31(PR #57 )。Reliability 已从保留概念变成 Redis 专项的可执行雏形,本 Issue 更新为补齐覆盖面、CI 可信度与文档治理。
Evidence
tests/Makefile:41-43 已提供 test-reliability,执行 go test -tags=reliability ./reliability/...。
tests/reliability/redis_failover_test.go 已覆盖 Redis Cluster 停止/恢复、熔断快速失败、本地限流兜底以及 Push unacked 在 Redis 恢复后重投。
tests/pkg/chaos/redis.go 已提供 Redis Cluster stop/start/health 控制,但尚无 RabbitMQ、MySQL、服务进程或网络隔离控制器。
.github/workflows/ci.yml:162-190 已新增 Reliability job;PR feat(cache): harden Redis resilience and multilevel caching #57 的 service-artifacts 因构建环境缺少 jsoncppConfig.cmake 失败,Reliability job 被跳过,没有形成已通过的合入证据。
当前提交的所有全栈 jobs 都调用 ./scripts/wait_for_services.sh,但该文件不存在;即使 artifact build 恢复,Reliability 仍会在测试前中断。cold-start Compose/readiness 修复由 Make the clean-slate Compose stack and CI runtime gates executable #78 负责。
tests/Makefile 的 Reliability 目标尚未消费 TEST_RUN,不能按 Issue 契约精确选择并在零匹配时失败。
.agents/skills/chatnow-testing/references/framework.md:14 与 .agents/skills/chatnow-orienting/references/technology-stack.md:61 仍声明“没有目录或 Make target”,与仓库可执行面冲突。
本次复核中 Reliability tag 可编译,但动态 Reliability 未在当前提交的完整 Docker 栈中执行,因此不能宣称运行通过。
Problem or Goal
把现有 Redis 专项套件升级为仓库权威、可重复、可清理的分布式 Reliability 层,并确保 CI 真正运行。它应覆盖消息顺序、不重不漏、Outbox、ACK 与缓存收敛所依赖的主要故障域。
Scope
Non-goals
Acceptance Criteria
Test-first Plan
先在 tests/pkg/agentpolicy/tests/pkg/contracts 增加 TestReliabilityLayerContract,运行:
cd tests && go test ./pkg/agentpolicy ./pkg/contracts -run TestReliabilityLayerContract -v -count=1
预期 RED 是 Skills 仍声明 Reliability 不可执行、TEST_RUN 未生效、CI 引用不存在的 readiness helper 或非 Redis 控制器缺失。最小 GREEN 先修正文档契约、选择器和 job contract;#78 负责通用 cold-start stack。随后逐类加入可证明业务收敛的故障用例,最后运行完整 Reliability 与现有 BVT/Functional 回归。
Risk and Security
故障注入只允许隔离测试环境,必须校验 Docker endpoint、目标容器和网络 allowlist;拒绝生产/共享地址。日志不得输出 JWT、口令、消息正文或 secret,失败清理必须可重复。与 #78 的职责边界必须保持清晰,避免 Reliability 测试自行复制不一致的启动/等待脚本。
Architecture Impact
Yes。扩展独立测试层、故障控制边界和 CI gate,不改变生产服务所有权。
Core-flow Impact
No。该 Issue 建立验证能力;生产核心流程只被测试观测和故障注入,不改变业务语义。
Required Skill Updates
更新 .agents/skills/chatnow-testing/SKILL.md 与 references/framework.md,把 Reliability 登记为可执行层。
更新 .agents/skills/chatnow-testing/references/case-catalog.md,登记现有 Redis 与新增 RL-* 用例。
更新 .agents/skills/chatnow-orienting/references/technology-stack.md 与 repository-map.md,登记目录、命令、CI 和故障控制器。
Target Version
3.0-dev。复核基于
origin/3.0-dev提交a75fc8721b99e5c0b4421d0c58b5618bbe71ff31(PR #57)。Reliability 已从保留概念变成 Redis 专项的可执行雏形,本 Issue 更新为补齐覆盖面、CI 可信度与文档治理。Evidence
tests/Makefile:41-43已提供test-reliability,执行go test -tags=reliability ./reliability/...。tests/reliability/redis_failover_test.go已覆盖 Redis Cluster 停止/恢复、熔断快速失败、本地限流兜底以及 Push unacked 在 Redis 恢复后重投。tests/pkg/chaos/redis.go已提供 Redis Cluster stop/start/health 控制,但尚无 RabbitMQ、MySQL、服务进程或网络隔离控制器。.github/workflows/ci.yml:162-190已新增 Reliability job;PR feat(cache): harden Redis resilience and multilevel caching #57 的service-artifacts因构建环境缺少jsoncppConfig.cmake失败,Reliability job 被跳过,没有形成已通过的合入证据。./scripts/wait_for_services.sh,但该文件不存在;即使 artifact build 恢复,Reliability 仍会在测试前中断。cold-start Compose/readiness 修复由 Make the clean-slate Compose stack and CI runtime gates executable #78 负责。tests/Makefile的 Reliability 目标尚未消费TEST_RUN,不能按 Issue 契约精确选择并在零匹配时失败。.agents/skills/chatnow-testing/references/framework.md:14与.agents/skills/chatnow-orienting/references/technology-stack.md:61仍声明“没有目录或 Make target”,与仓库可执行面冲突。Problem or Goal
把现有 Redis 专项套件升级为仓库权威、可重复、可清理的分布式 Reliability 层,并确保 CI 真正运行。它应覆盖消息顺序、不重不漏、Outbox、ACK 与缓存收敛所依赖的主要故障域。
Scope
TEST_RUN=<regex>精确选择;零测试匹配必须失败。Non-goals
Acceptance Criteria
make -C tests test-reliability是真实存在且可发现测试的命令。TEST_RUN=<regex>可精确选择用例,零匹配失败。continue-on-error和无条件 skip。Test-first Plan
先在
tests/pkg/agentpolicy/tests/pkg/contracts增加TestReliabilityLayerContract,运行:cd tests && go test ./pkg/agentpolicy ./pkg/contracts -run TestReliabilityLayerContract -v -count=1预期 RED 是 Skills 仍声明 Reliability 不可执行、
TEST_RUN未生效、CI 引用不存在的 readiness helper 或非 Redis 控制器缺失。最小 GREEN 先修正文档契约、选择器和 job contract;#78 负责通用 cold-start stack。随后逐类加入可证明业务收敛的故障用例,最后运行完整 Reliability 与现有 BVT/Functional 回归。Risk and Security
故障注入只允许隔离测试环境,必须校验 Docker endpoint、目标容器和网络 allowlist;拒绝生产/共享地址。日志不得输出 JWT、口令、消息正文或 secret,失败清理必须可重复。与 #78 的职责边界必须保持清晰,避免 Reliability 测试自行复制不一致的启动/等待脚本。
Architecture Impact
Yes。扩展独立测试层、故障控制边界和 CI gate,不改变生产服务所有权。
Core-flow Impact
No。该 Issue 建立验证能力;生产核心流程只被测试观测和故障注入,不改变业务语义。
Required Skill Updates
.agents/skills/chatnow-testing/SKILL.md与references/framework.md,把 Reliability 登记为可执行层。.agents/skills/chatnow-testing/references/case-catalog.md,登记现有 Redis 与新增RL-*用例。.agents/skills/chatnow-orienting/references/technology-stack.md与repository-map.md,登记目录、命令、CI 和故障控制器。