Appearance
金融风控系统研发实施
示例方案与真实状态
本文保留 Codex 与两个技能的研发方法与候选设计。用户随后授权创建,平台草稿已落地,部分计算已验证,实际结果见创建实录。尚未完成全业务联调或上线,不保存 API Key。
1. 输入与双 Skill 分工
需求输入为用户提供的《金融风控管理系统-功能清单.xlsx》,已用 openpyxl 只读解析“功能清单”“入池单”“下单风控审核表”“看板页面”四个工作表。实施参考为仓库内 projects/financial-risk/implementation.md;其中早期认证失败记录是历史状态,最新状态以上述说明为准。
| 工具或技能 | 研发职责 | 交付边界 |
|---|---|---|
| Codex | 阅读需求、拆解任务、编写脚本与文档、整理验证证据 | 生成代码和设计不等于平台运行成功 |
| informat-designer | 管理需求、分析设计、分批开发、测试、验收上线与运维移交 | 按生命周期确定范围、变更影响、阶段门禁和证据 |
| informat | 核对平台领域文档、方法 schema、SDK 与真实对象定义,执行获授权的调用 | 使用真实 ID;结构写入串行执行,随后回读核对 |
进入平台实施前,先检查运行时注入的 INFORMAT_HOST、INFORMAT_AGENT_TOKEN 是否存在,只输出检查结论。不得将凭证写入文档、参数文件、日志、版本库或 scripts/.env。建设采用用户已确认范围;发布与业务验收分别记录。
2. 需求追踪与范围
用稳定需求 ID 连接来源、模型、入口、任务、测试与验收。以下沿用实施基线,不因开发批次变化重编号。
| 需求 ID | Excel 来源 | 候选实现与验收目标 |
|---|---|---|
| FR-01~03 | 功能清单 6~9;入池单 | 产品、入池申请、评级与额度;查重、自动或审批入池、评级依据可追溯 |
| FR-04 | 功能清单 10~12 | 交易导入与持仓重算;重复交易不重复入账,更正后可对账 |
| FR-05~06 | 功能清单 13~17;下单风控审核表 | 规则、下单审核、事件与处置;触发路径和审批结论可追溯 |
| FR-07 | 功能清单 18~20;看板页面 | 持仓、现金、盈亏、类型占比与额度;展示口径和数据时点 |
| FR-08 | 功能清单 21~22 | 交易软件同步与止损预警;接口和公式未提供,待确认 |
| OA-01~02、SEC-01 | 功能清单 23~28 | 组织成员、OA 与权限;OA 是否同批实施待确认 |
每项台账记录“需求来源 → 决策版本 → 实现对象 → 测试用例 → 证据 → 当前状态”。未确认事项不能标为已完成;费用列为空、合计为零不能推导项目报价。
3. 候选模型与字段契约
下表为设计建议,尚无真实表 ID、字段 ID。实施时以目标环境 schema 和回读定义校准类型、精度及配置。
| 对象 | 关键字段示例 | 类型与关系建议 |
|---|---|---|
产品 product | productCode、productName、assetCategory、currency、isListed | 代码和名称用 SingleText;品种、币种用 ListSelect;上市标记用 Checkbox |
入池申请 poolApplication | productId、applicationType、applicant、applicationDate、applicationStatus | RelationRecord 关联产品;User 记录申请人;Date 记录日期;类型与状态用 ListSelect |
投资账户 investmentAccount | accountName、owner、baseCurrency | SingleText、User、ListSelect;账户与组合粒度待确认 |
下单申请 orderApplication | investmentAccountId、productId、direction、orderAmount、decisionSnapshot | 账户和产品关联;金额候选 Double,须验证存储精度;审批依据采用明确快照字段,结构化快照存储按真实能力选型 |
交易 trade、持仓 position | sourceTradeNo、quantity、price、tradeTime、marketValue | 交易保留来源和有效状态;持仓按账户与产品聚合,计算结果禁止普通用户编辑 |
规则 riskRule、额度 productLimit | metricCode、operator、threshold、thresholdUnit、ruleVersion | 指标、比较符、单位用稳定选项;金额、比例、保证金分开表达,保留版本与有效期 |
评级 riskRating | productId、internalRating、ratingValidUntil、ratingReason | RelationRecord、ListSelect、Date、MultiText;外部评级与机构分别记录 |
事件 riskEvent、处置 riskTreatment | riskRuleId、actualValue、eventStatus、treatmentResult | 事件关联规则、账户和产品;处置关联事件,结果用 MultiText,材料用附件字段 |
行情与汇率 marketSnapshot | productId、price、exchangeRate、observedAt | 保存来源与数据时点;接口和估值口径确定后再实施 |
字段标识采用英文 camelCase;外键为业务对象名加 Id,快照加 Snapshot。选项 ID 使用稳定英文语义或间隔为 10 的字符串编码,不能用显示名称或随机 UUID 代替。产品代码唯一范围须结合市场、币种和来源确认。
产品详情通过 LookupList 展示申请、交易、评级和事件;事件详情展示处置列表。RelationRecordField 可带出当前展示值,但审批依据必须保存独立快照,不能随主数据变化。关联显示列需核对真实字段 ID、类型和非空列名。
表单按申请、产品、指标、评级、额度分组,短字段紧凑排列,长理由独立占宽,按实际内容与控件空间配置宽度。股票和固收字段按品种显示,新建时隐藏未产生的编号与结果。关键提交仍须服务端校验,隐藏或前端必填不能保证数据完整;Date 记录时刻时同时配置显示时间与日期时间格式。
4. 规则语义先于规则代码
| 原始规则 | 可复用的解释原则 |
|---|---|
| 国债自动入池、R1、阈值“无” | “无”不是数值零;只描述该行阈值,不代表免除其他校验 |
| 存款单银行不超过总资产 5% | 按银行聚合;总资产分母、时点、范围与币种折算待确认 |
| 公司债等投资级且内部 R3 及以下,500 万美元 | 保留外部评级、内部评级与金额条件;混合评级情形和机构映射待确认 |
| 债券基金 500 万或指定高分散高收益基金 300 万美元 | 按具体类别匹配;不能将所有债券基金合并为同一规则 |
| 股票核心池、普通池 50 万美元 | 保留市值、近 30 日交易指标、交易所与财务条件;原文美元交易量的金额口径待确认 |
| 指定衍生品 50 万、其他指定衍生品 10 万美元 | 衡量保证金,不能用名义本金直接比较 |
| 法币挂钩且发行量大于 1000 亿美元的虚拟货币,500 万美元 | 入池条件与下单额度分别判断;缺失评级不补造等级 |
| “0 万美元,单独请示” | 进入例外审核,不能解释为不限额;批准额度与有效期另行确认 |
建议规则结果区分 pass、approvalRequired、blocked、dataMissing,这是待确认的应用契约,不是平台内置枚举。规则输入记录账户、产品、方向、金额、持仓、评级、行情与版本;输出保留命中原因和审批路径。多规则冲突、未成交订单是否占用额度、卖出适用范围须明确后再编码。
金额统一单位后比较;“<=”覆盖等于阈值的情况。缺失或过期评级、缺失行情或汇率不能按零值放行。评级权重、止损公式、成本和收益算法未提供,禁止由 AI 自行补齐。Codex 用于研发协作,不替代投资决策或人工审批。
5. 分批实现、入口与流程
以下为分阶段实施方法;本轮已执行与尚未执行部分以创建实录为准。完整应用蓝图先确定业务范围和绑定规划,再按 informat 契约登记计划;组件数量来自业务需求,不为数量门禁新增无用对象。
| 阶段 | 实施内容 | 阶段交付与进入下一阶段条件 |
|---|---|---|
| 需求与设计 | 查重、确认账户粒度、OA 范围、规则与角色;形成蓝图和差异清单 | 需求追踪、模型、入口、权限、未知项和确认记录齐备 |
| 模型第一批 | 全部基础表与无跨表依赖字段 | 串行写入后全量回读,记录真实表和字段 ID |
| 模型第二批 | 关联记录、带出字段、查找列表、汇总及显示配置 | 真实引用存在,表单和关联选择可用,样例关系验证完成 |
| 业务实现 | 分层脚本、自动化、流程、按钮、监听与调度 | 各组件有入口、权限、错误路径与幂等策略,回读结果符合设计 |
| 联调验收 | 规则边界、交易对账、权限、流程、同步及看板 | 需求逐项关联运行证据,缺陷与待确认项可追踪 |
| 发布移交 | 取得范围明确的发布授权,检查、发布、验证运行态 | 发布记录、冒烟证据、版本、回退方案和运维责任交接 |
入池申请“提交审核”绑定查重与规则判断,符合已确认条件才自动入池,否则走研究员、基金经理审批。下单申请“提交风控审核”绑定评级、持仓与额度检查,例外路由涉及总经理、家族办公室,实际岗位映射和顺序待确认。审批通过仅形成下单结论,不能当作成交或直接增加持仓。
交易工具栏绑定导入;交易变更监听触发相关账户与产品重算。定时扫描绑定风险检测、事件去重、分类审批和通知;事件“提交处置”绑定方案、结果与复核关闭。各流程共用一个应用级 Bpmn 和关联 BpmnData 模块,分别建立业务流程定义,不能随机指定审批人。交互确认可能分割服务端事务,暂停前已提交写入不能假定随后续失败回滚。
6. 分层脚本与集成
优先读取用户或项目已有脚本模板,无适用模板才选技能骨架。建议调用链为 入口 → service → mapper → 平台 SDK,工具层处理对象转换、金额、时间和日志。service 只表达业务规则,不写 SQL;mapper 封装持久化和参数化查询。SQL 如确有必要,应按目标数据库采用存在性检查、幂等迁移等可重复执行方式,不能直接执行未验证的数据库方言。
每个类和函数详细说明职责、输入类型、返回值、权限、错误、副作用、幂等和事务边界。先核对各 informat.* 模块 SDK 签名;GraalVM 入参和返回值可能是 Java Map/List,需显式适配。金额使用经验证的十进制计算方案,不用普通浮点误差作为资金对账结论;平台表达式是 UEL,不能直接照搬 JavaScript。
关键日志记录 traceId、需求 ID、业务编号、规则版本、判断摘要、耗时及错误码;覆盖校验、审批、导入、重算、同步和事件去重。日志不得输出凭证、完整持仓或个人敏感信息。运行排错需关联真实运行日志与业务记录,无 ERROR 或脚本保存成功不足以证明通过。
外部集成先取得接口、认证、字段样例、分页、时区和频率,再设计“拉取 → 校验 → 幂等入账 → 更新指标 → 检测”。交易幂等键由来源系统、账户与来源交易编号等确认;更正和撤销保留追踪链。并发入账与事件去重须验证原子性,不能只依赖先查询再创建。失败记录可重试范围,通知失败不重复入账。看板按账户、币种和时点对账,未确认汇率前分币种展示。
7. 逐阶段提示词
下面是未来阶段的可复用提示词模板,本轮不执行。平台实施需另有明确授权;任何不兼容改动均须用户手工确认,发布授权与验收结论分别记录。
| 阶段 | 可复用提示词 |
|---|---|
| 需求整理 | 使用 informat-designer 和 informat,只读分析指定 Excel 与实施基线。按需求 ID 输出来源、业务结果、范围、待确认项和验收入口,区分事实与假设,不进行平台写入。 |
| 蓝图设计 | 根据已确认范围设计模型、字段类型、精度、关系、表单、角色权限与绑定规划。列出规则原文和可执行语义差异;未知项标为待确认,输出供人工确认的蓝图。 |
| 模型实施 | 在本次已授权范围内,先查询真实结构并读领域文档与方法 schema。分两批创建基础模型和关联,结构写入串行、逐次回读,保留真实 ID 与差异,不改变未授权对象。 |
| 业务研发 | 按项目模板实现入口、service、mapper、工具层;service 不写 SQL。类与函数写完整注释,关键动作打印脱敏日志,明确金额、幂等、并发、权限和失败契约,逐项核对 SDK。 |
| 联调测试 | 按需求 ID 验证阈值以下、等于、超过,以及缺失数据、重复导入、更正、超额卖出、重复扫描和各角色越权。记录预期、实际、运行日志和业务记录,无证据不得标记通过。 |
| 发布移交 | 核对已获授权的环境和版本,执行完整性检查与发布后冒烟,交付真实发布结果、回退边界、调度及同步监控责任;授权不足时停留在待发布状态。 |
8. 交付证据与当前结论
验收证据模板为:需求 ID / 场景 / 数据与版本 / 操作身份 / 预期 / 实际 / traceId / 记录或流程 ID / 结论 / 缺陷。覆盖读取、写入、导入和脚本入口的权限;测试不能只用管理员。下单并发、重复同步、规则切换、历史审批快照和看板对账均须形成真实证据。
当前应用 ID 为 sokxosrao8s5v。模型、流程草稿、看板、角色与脚本已保存并回读,平台配置检查通过,纯计算在 Node 与真实 GraalVM 中验证。外部集成、实际入账、记录权限、审批实例与发布尚未验证,不能报告完整项目验收通过。
下一阶段待确认:OA 批次、账户范围、审批岗位、规则冲突与例外额度、评级权重、止损及收益算法、交易接口、行情汇率和调度频率。实际实施后再补充对象 ID、配置回读、日志、对账与验收记录;文档构建通过仅证明文档可构建,不能作为金融风控功能通过的证据。

