api-designREST API 设计规范——URL 用复数+kebab、HTTP 方法/状态码语义化、单资源直返不包 data、集合带 items/meta/links 分页、错误码 A-BBB-CCCC 结构化、版本管理与限流。触发:设计/审查 API 端点与契约、实现分页/过滤/排序、设计错误响应、规划 API 版本。跳过:GraphQL/gRPC/事件流(非 REST)、内部 RPC 协议、纯前端路由。
auth-constraints认证与会话约束(authN,不含 authZ)——双 token、refresh 原地轮换 + 重放即吊销、滑动续期、密码 argon2id。触发:实现/设计登录注册、token 签发/刷新/校验、会话或设备管理、密码哈希、登出/吊销、前端 token 携带与刷新。跳过:权限判定(→authz-constraints)、第三方 SSO 托管、与认证无关的业务端点。
authz-constraints授权(authZ)约束——默认拒绝/fail-close;后端必校、前端权限仅 UX;集中决策禁散落 `if role==`;两级检查 = 角色/权限 + 资源 ownership。触发:设计/实现权限校验、角色或权限模型、资源 ownership、多租户隔离、管理员鉴权。跳过:身份认证(→auth-constraints)、纯公开资源、与权限无关的业务逻辑。
config-constraints后端配置载体三分——env/secret 装启动必需且不热更、yaml/configmap 装可热更且有默认值、DB+API 装业务方可改的动态配置;核心凭据默认只能 secret/KMS,下沉 DB 必须 envelope encryption;热更失败保留旧值 + 告警禁崩溃。触发:设计/实现配置加载、密钥存储、热更机制、新增 env/yaml/DB 配置项、k8s secret/configmap 编排。跳过:配置加载后的运行时治理(→service-constraints)、可观测性脱敏(→observability-constraints)。
database-constraints关系型数据库 schema 与访问约定——UUIDv7 应用层主键;`deleted` 微秒时间戳软删 + UNIQUE 联合;created_at/updated_at 由 DB 管理;全链路 UTC。触发:编写/修改 .sql、migration、DDL;设计表结构或数据模型。跳过:非关系型存储(Redis/MongoDB/ES)、不动 schema 的查询调优、代码生成物。
golang-constraintsGo 后端全生命周期规范——统一三层 handler→service→repository(禁 manager/facade/usecase);事务只在 service;禁过度抽象、禁单实现 interface、禁过渡方案。触发:编辑 .go/go.mod/go.sum;写 Go 项目的文档/PRD/规划/设计/review。跳过:vendor、代码生成物(*_gen.go/protobuf)、非 Go 项目。
golang-testingGo 测试惯用法(配合 tdd-workflow)——测试文件必须 1:1 对应实现文件(foo_test.go 必有 foo.go);默认 table-driven + t.Run 子测试;独立测试 t.Parallel;benchmark/fuzz 用 testing 内置工具。触发:编写/审查 Go 函数或方法、新增 *_test.go、补充测试覆盖、创建 benchmark/fuzz test。跳过:生成代码、vendor、纯配置、非 Go 项目。
observability-constraints可观测性约束(日志/链路/指标)——三信号一处装配 + OTel 统一标准;JSON 日志 + trace_id 从 ctx 自动注入(无 trace 输出空串);指标 `<domain>_<noun>_<unit>` + label 基数有限;body 凭证脱敏。触发:搭建/修改日志/链路/指标、新增指标或日志字段、接入 OTel/OTLP、设计日志级别或告警。跳过:前端埋点/RUM、纯三方托管 APM。
service-constraints后端服务运行时治理——启动 fail-fast;优雅生命周期(SIGTERM→排空→超时强退→LIFO 释放);非幂等写经幂等键;跨进程必设超时、重试仅幂等且退避。触发:启动/关闭、健康检查、写幂等、下游超时/重试、错误传播。跳过:配置载体与密钥分层(→config-constraints)、代码风格(→golang-constraints)、API 契约(→api-design)、可观测性(→observability)。