用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/yoursweakfoe/ywf-ddd-java --skill new-portal命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
基于 SOC 职业分类
正在显示 SKILL.md
| name | new-portal |
| description | 为已有聚合新增外部系统集成(Portal 接口 + Gateway 实现)。当需要对接支付、文件存储、短信、第三方 RPC 等外部能力时使用。 |
docs/sample-application/cookbook/gateway.md(完整代码走查).agents/rules/03-coding-conventions.md(Portal / Gateway 节).agents/rules/04-forbidden-patterns.md(Infrastructure 层禁止 + ACL 翻译)Domain 层(接口) Infrastructure 层(实现)
┌─────────────────┐ ┌──────────────────────────┐
│ PaymentPortal │ ←实现 │ AlipayPaymentGateway │
│ (extends Portal)│ │ - 调用外部 SDK │
│ - pay(...) │ │ - ACL 模型翻译 │
│ - refund(...) │ │ - 容错(超时/降级/重试) │
└─────────────────┘ └──────────────────────────┘
domain/{agg}/portal/{Xxx}Portal.javaPortal 标记接口public interface PaymentPortal extends Portal {
PaymentResult pay(UUID orderId, BigDecimal amount, String currency);
}
domain/{agg}/model/PaymentResult.java(或 domain/shared/model/)infrastructure/gateway/{Xxx}Gateway.java@Component@Component
public class AlipayPaymentGateway implements PaymentPortal {
private final AlipayClient alipayClient;
@Override
public PaymentResult pay(UUID orderId, BigDecimal amount, String currency) {
// 1. 构建请求(领域参数 → SDK 参数)
// 2. 调用
// 3. 翻译响应(SDK 响应 → PaymentResult)
// 4. 异常处理(SDK 异常 → BusinessException)
}
}
@Autowired(构造器注入,Bean 注册在 infra config)domain/{agg}/portal/ 包下Portal 标记接口infrastructure/gateway/ 包下BusinessException(i18n 位点)docs/sample-application/cookbook/gateway.md(如引入了新的容错模式)