# 金融Harness **Repository Path**: szhengye/harness ## Basic Information - **Project Name**: 金融Harness - **Description**: 这是一个基于 Biz-SIP 中间件的金融系统 Harness 环境,采用 Harness Engineering范式:将平台能力与业务能力分离,把金融领域知识固化为可复用的 AI Skills,AI 读取标准化建模文档后,自动生成符合金融规范的Biz-SIP框架代码,覆盖 Source(接入渠道)→ App(应用编排)→ Sink(领域服务)全链路,实现金融交易系统的代码自动化生产。 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 1 - **Created**: 2026-03-21 - **Last Updated**: 2026-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Harness Finance 基于 **Biz-SIP 中间件**的金融系统 Harness 环境。采用 Harness Engineering 范式,将平台能力与业务能力分离,把金融领域知识固化为可复用的 AI Skills,由 AI 读取标准化建模文档后自动生成符合金融规范的微服务代码。 --- ## 技术栈 | 技术 | 版本 | |---|---| | Java | 17 | | Spring Boot | 2.7.18 | | Biz-SIP | 1.0.0.RC4 | | MyBatis-Plus | 3.5.5 | | Hutool | 5.8.25 | | Lombok | 1.18.30 | --- ## 模块结构 ``` harness/ ├── platform/ │ └── finance-common # 公共基础库(工具类、异常、常量) ├── infrastructure/ │ └── finance-db # 数据访问层(MyBatis-Plus 配置、Mapper) ├── client/ │ ├── app-client # App 层接口定义与 DTO │ ├── sink-client # Sink 层接口定义与 DTO │ └── source-client # Source 层接口定义与 DTO ├── source/ │ └── openapi-source # OpenAPI 接入渠道 ├── app/ │ └── finance-app # 核心应用编排层 ├── sink/ │ ├── account-sink # 账户领域服务 │ ├── customer-sink # 客户领域服务 │ └── accounting-sink # 通用记账组件(借贷记账规则) ├── docs/ │ ├── modeling/ # 生产业务建模文档(待填充) │ │ ├── data-model/ # 数据模型文档 │ │ ├── app-design/ # 应用设计文档 │ │ ├── external-interface/ # 外部接口文档 │ │ └── ui-design/ # 界面设计文档 │ └── superpowers/ # 项目设计规划文档 │ ├── specs/ │ │ └── 2026-03-21-harness-environment-design.md # Harness 环境整体设计方案 │ └── plans/ │ ├── 2026-03-21-plan1-monorepo-skeleton.md # 计划1:Monorepo 工程骨架搭建 │ ├── 2026-03-21-plan2-finance-common.md # 计划2:finance-common 平台扩展包实现 │ ├── 2026-03-21-plan3-skills.md # 计划3:Skills 体系实现 │ ├── 2026-03-21-plan4-finance-db.md # 计划4:finance-db 基础设施层实现 │ └── 2026-03-21-plan5-sample-transfer.md # 计划5:转账示例全链路实现 └── sample/ # 转账完整示例(含建模→生成全流程) ├── CLAUDE.md # 示例工作规范 ├── GENERATION.md # 代码生成过程说明 ├── modeling/ # 示例建模文档 │ ├── app-design/ # 转账应用设计 │ ├── data-model/ # 转账账户数据模型 │ └── external-interface/ # 转账渠道外部接口 ├── skills/ # AI 代码生成 Skills │ ├── system/ # 系统能力规范(db-access、exception、http-comm 等) │ ├── business/ # 业务规则(accounting、account-op、flow-design 等) │ └── generate/ # 代码生成 Skills(gen-sink、gen-app、gen-source 等) ├── transfer-client # 接口定义与 DTO ├── transfer-source # 接入渠道 ├── transfer-app # 应用编排 ├── transfer-sink # 账户领域服务 └── accounting-sink # 记账实现(仅用于示例) ``` --- ## 架构说明 ``` 外部渠道 │ ▼ Source(接入渠道) ← openapi-source 等 │ Biz-SIP ▼ App(应用编排层) ← finance-app │ AppClientFactory.getSinkClient() ▼ Sink(领域服务层) ← account-sink / customer-sink / accounting-sink │ ▼ 数据库 / 外部系统 ``` --- ## 建模文档 AI 代码生成依赖以下建模文档,请按规范编写后再执行 Skill 生成: | 类型 | 路径 | 说明 | |---|---|---| | 数据模型 | `docs/modeling/data-model/<实体名>.md` | 实体定义、字段类型、约束规则 | | 应用设计 | `docs/modeling/app-design/<功能名>.md` | 应用接口定义 + 应用逻辑规格 | | 外部接口 | `docs/modeling/external-interface/<系统名>.md` | 第三方报文格式、通讯方式、安全要求 | | 界面设计 | `docs/modeling/ui-design/<页面名>.md` | 手机银行/网上银行页面交互设计 | --- ## AI 代码生成(Skills) 按以下顺序执行 Skill,逐层生成代码: | 步骤 | Skill | 依赖建模文档 | |---|---|---| | 1 | `/gen-data-model` | `data-model/` | | 2 | `/gen-infrastructure` | `data-model/` | | 3 | `/gen-client` | `app-design/`(接口部分) | | 4 | `/gen-sink` | `app-design/`(逻辑部分)+ `data-model/` | | 5 | `/gen-app` | `app-design/`(完整) | | 6 | `/gen-source` | `external-interface/` + `app-design/`(接口部分) | --- ## 金融编码规范 - **金融金额**:数据库存 `BIGINT`(单位:分),业务层用 `MoneyUtil.toDecimal()` 转 `BigDecimal` 计算,禁止浮点运算 - **业务异常**:统一抛 `BizException`,错误码从 2000 起 - **层次调用**:Source → App(通过 Biz-SIP)→ Sink(通过 `AppClientFactory.getSinkClient()`) - **记账**:App 层编排调用 `accounting-sink` 功能组件,Sink 层实现借贷记账逻辑 --- ## 参考资料 - [Biz-SIP 官方文档](https://www.bizsip.org/doc/tech-doc) - 设计方案:`docs/superpowers/specs/2026-03-21-harness-environment-design.md` - 转账完整示例:`sample/` 目录