java-backend-guardrailslisted
Use when designing, implementing, or reviewing Java microservice or 电商/文旅/支付业务 involving 订单, 支付, 分账, 结算, OSS, 文件上传, STS, 直传, SSRF, 财务统计, GMV, 接口规范, 接口安全, 定时任务, XXL-JOB, 接口性能, N+1, 连接池, 防重放, 水平越权, 退款, 核销, 库存, 秒杀, 购物车, 优惠券, Redis, RocketMQ, 幂等, 高并发, 分布式事务, 限流, 缓存, 分库分表, 索引, 容灾, 远程调用, JVM, 对账, or 账期. Skip heavy concurrency skills for ordinary single-table CRUD.
1398281322-a11y/java-backend-guardrails · ★ 2 · AI & Automation · score 73
Install: claude install-skill 1398281322-a11y/java-backend-guardrails
# Java Backend Guardrails(总控)
定位:把面试考点变成写代码时的风险扫描,不是背题,也不是自动写出完美代码。
技术栈默认:Java 微服务 + Spring Boot + MyBatis-Plus + Redisson + RocketMQ。
## 硬规则
1. **先读本文件,再按需加载子 skill。** 禁止把所有子 skill 读进上下文。
2. **最多加载 2–4 个子 skill。** 用下面的路由表匹配,取相关度最高的。
3. **普通单表 CRUD(无钱、无库存、无回调、无跨服务写、无公开高 QPS)→ 不加载任何高并发子 skill。** 只做安全与表设计里的轻量检查(`#{}`、登录鉴权、必要唯一约束)。
4. **先给轻量方案。** 禁止无脑上 TCC、Seata、分库分表、全局分布式锁。升级重方案必须写清触发条件。
5. **skill 给风险 + 对比 + 默认路径,取舍交给人。** 不要假装只有一种正确答案。
6. **写完代码后按已加载子 skill 的评审清单再扫一遍。**
## 工作流
按当前阶段只加载该阶段相关的子 skill:
| 阶段 | 做什么 | 典型加载 |
|------|--------|----------|
| 需求 / 设计 | 标风险、定默认方案、标升级条件 | 业务命中的 2–4 个 |
| 建表 | 唯一约束、状态机、版本号、索引 | `table-design` + `mysql-index`(需要分片才加 `sharding`) |
| 写接口 | 按默认方案落代码 | 同需求阶段 |
| 代码评审 / 存量扫描 | 对照子 skill 反例和清单 | 同需求阶段 |
两种触发:
- **语义自动:** 识别到下方关键词就加载对应子 skill。
- **显式:** 用户点名某个 skill(如「用幂等 skill」)时只读那一个。
## 路由表(只读命中的文件)
路径相对本 skill 根目录。索引和分片是两个文件,禁止当作同一个问题处理。
| 子 skill | 读这个 | 命中关键词 / 症状 |
|----------|--------|-------------------|
| 幂等 | [idempotent/SKILL.md](idempotent/SKILL.md) | 重复提交、重复回调、重复消费、重试、支付回调、退款回调、核销、防重 |
| 超卖 / 扣库存 | [concurrency-sell/SKILL.md](concurrency-sell/SKILL.md) | 库存、超卖、扣减、名额、余票、分佣扣减、核销占名额 |
| 分布式事务 | [distributed-transaction/SKILL.md](distributed-transaction/SKILL.md) | 跨服务写、下单后发券、支付后分佣、核销后结算、本地消息表、TCC、Seata |
| 缓存陷阱 | [cache-trap/SKILL.md](cache-trap/SKILL.md) | Redis 缓存、穿透、击穿、雪崩、缓存一致性、热点 key |
| 限流熔断 | [rate-limit/SKILL.md](rate-limit/SKILL.md) | 限流、熔断、降级、打爆、Sentinel、网关保护 |
| 远程调用 | [rpc-remote/SKILL.md](rpc-remote/SKILL.md) | Fe