Production-Grade AI-First Spec for Kotlin Financial App | Unify Cursor / Claude / Copilot / CodeX Code Output
统一 Cursor / Claude Code / GitHub Copilot / CodeX 代码生成标准
区别于通用 Android 规范,本项目专为理财、银行、信贷、支付、资产类金融 App 定制,解决金融项目最核心痛点:
- ❌ 浮点精度丢失(资金计算偏差)
- ❌ AI 生成代码混乱、架构不统一
- ❌ 跨境金融App(多语言+RTL阿拉伯/波斯/希伯来) 适配
- ❌ 空安全不严谨引发线上闪退
- ❌ 架构混乱、MVVM/MVI 混用无标准
- ❌ 敏感数据日志泄露、不合规
本仓库原生支持 AI 编码(Cursor / Claude / Copilot / 通义灵码),是目前 GitHub 稀缺的「金融专属 + 工程标准化 + AI 零Bug编码约束」开源方案。
- 金融高精度数值规范
统一金额、百分比、币种运算规则,杜绝Double/Float浮点丢失精度,全链路
String存值+BigDecimal运算+统一格式化工具NumericFormat。 - RTL国际化多语言适配规范 适配阿拉伯语、波斯语、希伯来语等RTL从右往左语种,约束布局start/end、数值LTR防翻转、多语言禁止硬编码、TextView统一样式、波斯语行间距修复等全场景规则。
- Kotlin代码风格与AI生成约束 统一 Kotlin/Android 代码格式、命名、目录分层、MVVM、MVI状态、协程Flow、空安全和反模式约束,强调项目优先级、不要造轮子、生成前先检索已有实现。
- 项目接入:将本仓库spec文档加入项目AI知识库,Cursor/Claude可实时读取规范;
- 编码生成:AI生成布局、业务代码自动遵循MUST强制规则,违规代码直接拦截;
- CodeReview:提交代码时AI自动对照规范检查,命中禁止项直接标注驳回。
推荐在目标 Android 项目中保留统一 specs/ 目录,再为不同 AI 工具添加薄入口文件。入口文件只负责声明"必须读取 specs",不要复制完整规则,避免多份提示词发散。
将本仓库 specs/ 目录复制到目标项目根目录:
your-android-project/
specs/
finance-number-skill.md
rtl-adaption.md
kotlin-style.md
在目标项目根目录新增 AGENTS.md:
# AGENTS.md 你是资深 Android + Kotlin 工程师,当前项目必须遵守以下规范: - 金融数值处理必须读取并遵守 `specs/finance-number-skill.md` - RTL / 多语言适配必须读取并遵守 `specs/rtl-adaption.md` - Kotlin 代码风格与 AI 生成约束必须读取并遵守 `specs/kotlin-style.md` - 生成代码、重构、Code Review 时,命中 MUST NOT 规则必须主动修复或驳回 - 金融小数字段禁止使用 Double / Float - UI 可见文案禁止硬编码 - 新增代码前必须先检索项目已有同类实现,禁止重复造轮子
在目标项目根目录新增 CLAUDE.md:
# CLAUDE.md 本项目是 Android Kotlin 金融类 App。 每次进行代码生成、重构、Review 前,必须先读取: 1. `specs/finance-number-skill.md` 2. `specs/rtl-adaption.md` 3. `specs/kotlin-style.md` 所有 MUST / MUST NOT 规则视为强制约束。 如代码与规范冲突,以 specs 文档为准。 如通用规范与项目已有实现或工具配置冲突,以项目已有实现和工具配置为准。
在目标项目新增 .cursor/rules/android-finance.mdc:
--- description: Android Kotlin 金融数值与 RTL 国际化强制规范 globs: - "**/*.kt" - "**/*.xml" - "**/*.java" alwaysApply: true --- 本项目必须遵守: - @specs/finance-number-skill.md - @specs/rtl-adaption.md - @specs/kotlin-style.md 生成、修改、Review Android 代码时,必须执行 specs 中的 MUST / MUST NOT 规则。 新增代码前必须先检索项目已有实现,优先复用项目现有架构、封装和工具配置。
在目标项目新增 .github/copilot-instructions.md:
# GitHub Copilot 说明 生成或修改 Kotlin/Android 代码时,必须遵循项目统一代码规范: - `specs/finance-number-skill.md` - `specs/rtl-adaption.md` - `specs/kotlin-style.md` 优先遵循项目已有架构、命名、包结构、封装、MVI 约定、Repository 模式、Result/错误处理、协程辅助函数和 Flow 收集方式。已有项目实现可复用时,不要新增重复抽象或依赖。
your-android-project/
AGENTS.md
CLAUDE.md
.cursor/
rules/
android-finance.mdc
.github/
copilot-instructions.md
specs/
finance-number-skill.md
rtl-adaption.md
kotlin-style.md
- 金融金额、涨跌、成交量禁止Double/Float,全链路
String承载原始数值 - 统一
NumericFormat格式化输出,自动内置keepLTR适配RTL - 全场景运算依托BigDecimal,固定30位预留精度,规避多级乘除精度损耗
- 布局全量
start/end替换left/right,自动跟随系统语种切换方向 - 价格/日期/币对自动LTR隔离,防止RTL文字反转、正负号错位
- 统一TextView四件套:
textSize/textColor/fontFamily/includeFontPadding=false,解决波斯语多行行距异常 - 全页面文案禁止硬编码,统一多语言资源引用,参数文案使用{0}占位符
- 项目优先级最高,生成或修改代码必须优先遵循项目已有架构、封装、命名、工具配置
- 不要造轮子,禁止臆造不存在的基类、工具类、扩展函数、架构组件或第三方依赖
- 统一 MVI、Repository、StateFlow、协程异常捕获、Flow 生命周期收集和错误转换方式
- 强化空安全和金融编码约束,禁止
!!、GlobalScope、裸launch、敏感日志和全局可变运行时状态