61 lines
9.5 KiB
Markdown
61 lines
9.5 KiB
Markdown
# SQLite 工作台实施基线
|
||||
|
|
|
|||
|
|
日期:2026-10-01。需求来源:用户确认 Superdesign 重建原型,并授权「直接开发,数据库用 SQLite」。恢复点:9c351b0;开发分支 codex/sqlite-experience-workbench。本记录是新增实施切片,不把旧草案当成真实部署或概率验证。
|
|||
|
|
|
|||
|
|
## 1. 范围与术语
|
|||
|
|
三模块沿用现有独立路由与 miniOpenClaw 受控执行链。第一期使用 240 条虚构金融租赁公司对公案例;承租人是法人,标的是设备、工程机械、医疗设备、能源设备、物流车辆,不混入个人贷款。正式通过是评审会结果。案例库是经验来源;已发布卡片是运行配置;草稿不执行;概率演示是人工情景表,真实概率仍未校准。评审员退出新版登录与配置入口,独立审核由另一位配置管理员承担;历史评审身份保留为审计事实。
|
|||
|
|
|
|||
|
|
## 2. 数据与接口契约
|
|||
|
|
数据库复用 backend/xingbang_data/project_assistant.sqlite3。新增幂等迁移 lease_library_v1:lease_cases(id TEXT PRIMARY KEY, lessee TEXT, industry TEXT, mode TEXT, asset TEXT, amount REAL 万元, term INTEGER 月, outcome TEXT, year INTEGER, guarantee TEXT, issue TEXT, supplements TEXT, meeting_reason TEXT, data_domain TEXT固定demo)。所有字段非空。模拟来源与生成版本固定保留;交易金额是生成值,不用于真实财务计算。
|
|||
|
|
|
|||
|
|
API 前缀 /api/xingbang/risk-agent/project-assistant/library:GET /cases 返回案例和 count、total、schema、模拟说明;POST /queries {mode:filters|natural|sql,filters?:object,text?:string}返回preview_id、实际结果items、count、规范化条件;POST /selections {preview_id,selected_ids?:string[]}保存不可变确认selection;POST /extractions {project_id,selection_id,kind:skill|rule_set,requirement:string}真实调用既有模型,返回status、candidate_id|null、degradations;GET /cards?project_id 返回现有注册表当前草稿/发布索引。POST /skills/import {project_id,files:[{path,content_base64}]},返回注册表草稿;GET /skills/{draft_id}/package 返回清单和标准文件文本;GET /skills/{draft_id}/download返回ZIP;POST /skills/{draft_id}/open仅允许本机预览打开托管包;GET /cards/{draft_id}获取治理体与示例测试;发布/评测沿用既有prescreen transitions。权限、项目范围、域每次验证。历史库仅启用演示身份且demo开关开启;真实身份不能从模拟提炼出production卡片。
|
|||
|
|
|
|||
|
|
SQL仅一条SELECT、仅lease_cases、无PRAGMA/ATTACH/写入/系统表;authorizer与进度预算兜底,上限240行。查询确认由服务器保留完整匹配ID与主体/时间,30分钟过期;提炼只能取确认后的非空集合。自然语言先转成已知枚举/金额条件,未知要求报错,不静默扩大。
|
|||
|
|
|
|||
|
|
Skills磁盘根 backend/xingbang_data/skill_packages/{UUID},数据库保存版本哈希、文件清单与来源;导入保留完整标准SKILL.md及可选references/scripts/assets。路径无绝对、穿越、链接;≤100文件、单文件≤2MiB、总计≤10MiB;SKILL.md UTF-8、合法YAML且name/description非空,name与所选目录名一致。脚本只保存不运行;模型Skill的工具集合由服务端固定,导入不能扩大白名单。
|
|||
|
|
|
|||
|
|
## 3. 表面规格与状态
|
|||
|
|
历史页:深绿导航+浅色工作区,上方数据库指标,中间筛选/可见表格/详情,右侧单独提炼Skills/Rules与自然语言要求,下方红色AI/蓝色人工卡片池及文件树。保留旧项目过程加工为折叠高级入口。客户经理只读案例、使用已发布卡片;配置管理员筛选、确认、提炼、人工导入及评测,发布须独立身份与当前哈希评测。
|
|||
|
|
预审:项目上下文+五种输入+已发布方案冻结+既有执行结果、动态雷达、概率环与完整情景变化依据。轨迹:看判断过程/比较两次预审/核对会议结果,展示实际步骤与版本差异。
|
|||
|
|
状态:idle→loading→ready|empty|error;ready→submitting→ready|error。提交中保留旧内容并禁用重复操作。筛选或项目变化清空确认/选择;过期重新预览。请求晚到不覆盖新查询。按钮有文字状态、错误role=alert、焦点可见、reduced-motion。
|
|||
|
|
设计 token沿用批准原型:nav #102B27,workspace #F3F5F4,primary #17634C,AI #A33C38/#FBEFEC,manual #226A7A/#EDF5F7。新增样式限定 .xb-v2,不改无关页面。
|
|||
|
|
|
|||
|
|
## 4. 业务规则
|
|||
|
|
- BR-61:240条对公金融租赁案例经幂等迁移入SQLite,每条能查看来源与会议依据。
|
|||
|
|
- BR-62:三种筛选只读且确认完整匹配集合,提炼不跨选择/项目/主体。
|
|||
|
|
- BR-63:两个提炼动作调用真实模型并产出有来源的独立草稿;无模型失败、无候选。Rule默认advisory,不从频次制造制度。
|
|||
|
|
- BR-64:人工文件夹导入保留标准包、不可覆盖同名版本,能下载及在托管文件夹查看,任何脚本不执行。
|
|||
|
|
- BR-65:新版界面仅客户经理和配置管理员;经理不能加工/发布,管理员发布仍须独立身份与隔离评测。
|
|||
|
|
- BR-66:实际预审硬规则命中且result=issue才阻断,失败/缺证不能建议无条件推进;条件和例外由受控执行器验证。
|
|||
|
|
- BR-67:新版三页实际连接数据库和既有运行,动态雷达面积不换算概率,情景不覆盖基线,真实域不显示演示概率。
|
|||
|
|
|
|||
|
|
## 5. 异常
|
|||
|
|
- E-36 / LIBRARY_QUERY_INVALID:筛选无法解析或SQL越权;「筛选条件不受支持,请修改后重新预览」。无数据更改。
|
|||
|
|
- E-37 / LIBRARY_SELECTION_INVALID:无确认/越权/过期/空集合;「请重新预览并确认要加工的案例」。拒绝提炼。
|
|||
|
|
- E-38 / SKILL_PACKAGE_INVALID:非法路径/超限/非法标准格式/同名重复;「Skills 文件夹格式不正确,请检查 SKILL.md 与目录」。清理本次未完成暂存,旧包不改。
|
|||
|
|
- E-39 / LIBRARY_MODEL_UNAVAILABLE:模型未配置/失败/输出非法;「本次未能完成经验提炼,请稍后重试或改为人工创建」。失败记录保留,无候选。
|
|||
|
|
- E-40 / LIBRARY_FORBIDDEN:无角色/域/项目权限;「当前身份无权进行经验加工」。HTTP403。
|
|||
|
|
- E-41 / SKILL_FOLDER_UNAVAILABLE:远程部署无本机打开能力;「当前部署不支持打开本机文件夹,请下载标准包」。包仍可下载。
|
|||
|
|
|
|||
|
|
## 6. Given/When/Then 验收映射
|
|||
|
|
- AC-70(BR-61):Given空/已初始化SQLite When重复初始化 Then始终240条且全为对公租赁,重开连接数据仍在。
|
|||
|
|
- AC-71(BR-62/E-36):GivenSQL/自然语言筛选 WhenSELECT或未知条件/写入/系统表 Then返回真实集合或明确拒绝,数据库无变更。
|
|||
|
|
- AC-72(BR-62/E-37):Given查询确认 When越主体/空/过期提炼 Then拒绝;有效确认仅用选中ID。
|
|||
|
|
- AC-73(BR-63/E-39):Given配置/未配置模型 When分别提炼Skills/Rules Then真实调用并可追溯草稿,失败不产候选、不发布。
|
|||
|
|
- AC-74(BR-64/E-38/E-41):Given标准/非法文件夹 When导入 Then保留文件和哈希或拒绝;重开SQLite后可读取下载,导入脚本不执行。
|
|||
|
|
- AC-75(BR-65/E-40):Given经理/管理员/旧reviewer When加工或发布 Then仅管理员可加工,独立发布与评测继续验证。
|
|||
|
|
- AC-76(BR-66):Given失败步骤/硬规则/条件例外 When运行 Then保留失败、不误判推进;只有适用且已确认的硬规则阻断。
|
|||
|
|
- AC-77(BR-67):Given实际项目运行 When查看三个页面/切换情景 Then调用真实接口、动态维度与情景对照可定位来源;缺证/未校准如实呈现。
|
|||
|
|
测试所有权:backend/test_lease_library.py、test_skill_packages.py、现有预审执行/策略测试、前端生产构建与源码守卫;实际浏览器视觉验收需单独证据,构建不等于视觉通过。
|
|||
|
|
|
|||
|
|
## 7. 决策与阶段证据
|
|||
|
|
SQLite用于当前单机本地磁盘,短事务、busy_timeout,文件单独存盘;不把模型耗时放在写事务内。WAL须在可控连接初始化并测试后启用,不使用网络共享盘;以后多实例大量并发写再迁移数据库。[SQLite适用场景](https://www.sqlite.org/whentouse.html)、[WAL](https://www.sqlite.org/wal.html)。实际数据未获取,真实模型、概率校准、Jev接入、生产发布均独立验收,不作本切片完成证据。
|
|||
|
|
需求/架构/详细设计/UI:以上合同、规则与批准原型构成定案;用户2026-10-01授权实施。实现/验证/交付:完成后在22-implementation-delivery.md记录真实测试结果、入口与限制,当前尚未完成。无阻塞本切片的未决项。
|
|||
|
|
|
|||
|
|
## 8. 本轮补充的数据与执行事实
|
|||
|
|
SQLite 迁移采用 lease_library_v1 / lease_library_v2 两个标记。第二次迁移仅追加经营现金流、租赁物估值、收入、负债、资产与初始材料快照字段,不清空既有记录。财务金额单位为万元,快照单独保存初始可得信息;正式评审结果不能混入初始输入。240条均为明确标注的虚构对公金融租赁案例。
|
|||
|
|
|
|||
|
|
新版界面仅提供客户经理、配置管理员两个身份;新案例库拒绝旧 reviewer 身份。旧业务 API 的历史权限兼容仍保留,不能据此宣称全平台旧身份已删除。Skill 本机打开仅限受控本机演示或 preview,远程环境使用标准 ZIP 下载。实际文件按哈希校验,脚本只存储、不执行。
|
|||
|
|
|
|||
|
|
新增轨迹对照使用两个冻结运行的材料、组件版本与核查结果;配置改变时提示不能直接归因于补件。模型提炼是真实调用链,但本轮模型输送测试使用替身,不证明真实提供商已接通或结果质量已校准。
|