XForge — 穿透式监管规则锻造平台 | Penetrating Supervision Rule Forge
Project description
XForge — 穿透式监管规则全生命周期管理平台
Penetrating Supervision Rule Forge — Full Lifecycle Rule Management
规则全生命周期管理中心:Excel 导入 → 状态匹配 → 编写 SQL → DuckDB 直接执行 → 预警工单流转。
Full lifecycle rule management: Excel import → status matching → SQL authoring → DuckDB in-process execution → alert ticketing.
快速开始 · Quick Start
git clone ssh://git@codeberg.org/songwupei/RuleForge.git
cd RuleForge
cp config.yaml.example config.yaml # 按需修改 Excel 路径和数据绑定 / edit paths as needed
pip install -e "."
# 导入规则(从规则手册 Excel) / import rules from Excel
python scripts/import_rules.py --excel --clear
# 启动 TUI / launch TUI
xforge
依赖 · Dependencies
| 依赖 · Dependency | 要求 · Version |
|---|---|
| textual | ≥0.52 |
| duckdb | ≥0.9 |
| polars | ≥0.19 |
| openpyxl | ≥3.1 |
| pyyaml | ≥6.0 |
三级数据层次 · Three-Level Data Hierarchy
问题乱象 · Category (model_name)
示例 / e.g. 资金风险、合规风险、运营风险...
└─ 模型 · Model (rule_code)
示例 / e.g. CAP_01, FIN_12... 同模型可含多条子规则 / one model may contain multiple sub-rules
└─ 规则 · Rule (rule_code + rule_order)
最小编排单元,含 6 维度 + SQL / the smallest unit, with 6 dimensions + SQL
去重键为
(rule_code, rule_order),保证同一模型下的每条规则独立可追溯。 Dedup key:(rule_code, rule_order). Each rule within a model is independently traceable.
界面 · Interface
仪表盘 · Dashboard — 三级统计总览
┌─ 规则概览 · Overview ──────────┐
│ 🏛 问题乱象 · Categories: N │ ← 一级 / L1:业务大类
│ 📐 模型 · Models: N │ ← 二级 / L2:模型代码 (distinct rule_code)
│ 📋 规则 · Rules: N │ ← 三级 / L3:具体规则 (rule_code + rule_order)
│ 📝 SQL覆盖 · Coverage: X/N (%) │
│ │
│ ── 按状态 · By Status ── │
│ 📝草稿 Draft N ████ │
│ 🔍审核中 Review N ██ │
│ 🟢生效中 Active N ██ │
│ │
│ ── 问题乱象分布 · Distribution ─│
│ 示例类别A N个模型, N条规则 │
│ 示例类别B N个模型, N条规则 │
└─────────────────────────────────┘
规则查询 · Rule Query — 三级联动筛选 · Cascading Filters
┌─ 统计面板 · Stats ─┬─ [问题乱象▼] [模型▼] [状态▼] ─────────────┐
│ 筛选结果: N │ 📋 条件筛选 · Conditions │
│ │ [字段▼] [运算符▼] [值___] [+条件] [搜索] │
│ 按问题乱象 │ ──────────────────────────────────────── │
│ By Category │ │模型│规则名称│问题乱象│规则序号│状态│..│ │
│ 类别A N │ │CAP │示例规则│类别A │CAP_01_1│生效│..│ │
│ 类别B N │ │FIN │另一规则│类别B │FIN_12 │草稿│..│ │
│ │ │... │... │... │... │.. │.. │ │
│ 按状态 · By Status │ │
│ 📝草稿 Draft N │ │
└─────────────────────┴───────────────────────────────────────────┘
选择"问题乱象"后,"模型"下拉自动过滤;再选"模型"后表格过滤为对应规则。 Select a category → the model dropdown auto-filters; select a model → the table filters accordingly.
预警工单 · Alert Tickets — 批量操作 · Batch Operations
| 键 · Key | 功能 · Function |
|---|---|
Space |
勾选/取消当前行(随时可用)· Toggle current row |
Ctrl+A |
全选/取消全选当前筛选结果 · Select/deselect all filtered |
a / r / c |
有选中行→批量操作,无选中→操作当前行 · Batch if selected, else single |
b |
批量模式开关 · Batch mode toggle |
Enter |
查看预警详情 · View alert detail |
快捷键 · Keybindings
规则查询 · Rule Query
| 键 · Key | 功能 · Function |
|---|---|
Enter |
查看规则详情(6维度 + 版本历史)· View rule detail |
e |
编辑规则 · Edit rule |
n |
新建规则 · New rule |
a |
推进状态 (draft→review→approved→deployed→active) · Advance |
s |
暂停 · Suspend |
r |
回退 · Rollback |
Backspace |
废弃 · Deprecate |
x |
执行规则(异步,不阻塞 UI)· Execute (async) |
f |
聚焦条件筛选 · Focus filter |
[ / ] |
面板变窄/变宽 · Resize panel |
鼠标拖 ┃ |
调整面板宽度 · Drag to resize |
预警工单 · Alert Tickets
| 键 · Key | 功能 · Function |
|---|---|
Enter |
查看预警详情 · View alert detail |
Space |
勾选/取消当前预警 · Toggle current alert |
Ctrl+A |
全选/取消全选当前筛选结果 · Select/deselect all |
a / r / c |
推进/回退/关闭(有选中则批量)· Advance/rollback/close |
b |
批量模式开关 · Batch mode |
全局 · Global
| 键 · Key | 功能 · Function |
|---|---|
Ctrl+1~6 |
切换 Tab · Switch tabs |
? |
帮助 · Help |
命令行工具 · CLI Tools
# 导入规则 / import rules
xforge-import --excel --clear
# 导入 SQL 文件 / import SQL files
python scripts/import_sql_files.py
# 执行中心 / execution center(交互多选 / interactive multi-select)
python scripts/run_center.py # 交互选择
python scripts/run_center.py --all # 全部有 SQL 的规则
python scripts/run_center.py --all --clear
# 导出 DSL / export DSL
xforge-export [--status active]
# 生成规则手册 / generate rule manual(AI + PDF/DOCX)
xforge-manual --all # 默认全开 / all on
xforge-manual --all --no-ai # 跳过 AI / skip AI
xforge-manual --all --no-pdf # 仅 DOCX / DOCX only
xforge-manual --all --force # 强制重生成 / force regenerate
规则状态流转 · Rule State Machine
8 种状态 · 8 states,Enter → Deploy → Retire:
draft ──→ review ──→ approved ──→ deployed ──→ active ⇄ suspended
↑ ↑ ↑ ↑ ↑
└──────────┴───────────┴────────────┴───────────┘ (r 回退·rollback)
↑
deprecated ──→ retired
| 状态 · State | 图标 | 含义 · Meaning | 判定来源 · Source |
|---|---|---|---|
draft |
📝 | 草稿 · Draft | 默认 · Default |
review |
🔍 | 审核中 · Under Review | Excel 开发状态关键词匹配 |
active |
🟢 | 生效中 · Active | Excel 开发状态关键词匹配 |
状态初值由
config.yaml的status_rules关键词匹配决定,其余状态在 TUI 中手动流转。 Initial status is determined by keyword matching instatus_rules; other states are manually transitioned in the TUI.
6维度规则模型 · 6-Dimension Rule Model
| # | 维度 · Dimension | 内容 · Content |
|---|---|---|
| 1 | 管理要求 · Mgmt Requirement | 制度依据、文件来源 · Policy basis |
| 2 | 规则解读 · Rule Interpretation | 业务逻辑翻译 · Business logic |
| 3 | 系统及字段 · Systems & Fields | 数据源、表名、字段映射 · Data mapping |
| 4 | SQL代码 · SQL Code | 可执行 DuckDB SQL · Executable SQL |
| 5 | 输出结果 · Output Spec | 预警记录结构 · Alert record schema |
| 6 | 输出解读 · Output Interpretation | 业务核查指南 · Audit guidance |
配置说明 · Configuration
config.yaml 核心配置项 · Core options:
# Excel 导入 · Import
excel:
excluded_sheets: [封皮, 封面, ...]
excluded_models: [需排除的模型名, ...]
column_mapping: # 表头 → 字段名 · header → field
规则代码: "rule_code"
预警规则: "rule_name"
规则序号: "sub_code"
...
sheet_mappings: # 特定 sheet 覆盖映射 · per-sheet override
概览:
模型: "model_name"
开发状态: "dev_status"
status_rules: # 关键词 → 生命周期状态
- keyword: "已上线"
status: "active"
# 数据绑定 · Data bindings
data_bindings:
alias_name: "/path/to/data.parquet"
# UI 术语 · Terminology(可自定义 · customizable)
terminology:
model: "问题乱象" # L1:业务大类
rule_code: "模型" # L2:模型代码
rule_name: "规则名称" # L3:具体规则
版本历史 · Changelog
v0.4.5 — 三级层次 + 批量重构 · Hierarchy & Batch Refactor
- 三级数据层次正式确立:问题乱象 → 模型 → 规则,术语映射统一 Three-level hierarchy: Category → Model → Rule, unified terminology
- 规则查询三级联动筛选:问题乱象 → 模型 → 状态级联下拉 Cascading filter dropdowns in rule query
- 仪表盘显示「问题乱象 / 模型 / 规则」三级统计 + 每类模型数+规则数 Dashboard shows three-level stats with model count per category
- 规则详情标题显示完整层级路径 Rule detail shows full hierarchy path in title
- 预警批量操作重构:Space 勾选、Ctrl+A 全选、Enter 查看详情 Alert batch mode: Space toggle, Ctrl+A select all, Enter detail
- 修复安装后
_get_version()→importlib.metadata.versionFixed version lookup after pip install
v0.4.x — 品牌重塑 + AI 手册 · Rebrand + AI Manual
- 项目更名为 XForge,CLI 入口
xforge· Renamed to XForge - AI 规则手册生成:SQL → 业务解读,自动 PDF + DOCX AI rule manual: SQL → business interpretation, auto PDF/DOCX
- 三级智能跳过:已有/无SQL/占位符 · Smart skip: existing / no-SQL / placeholder
v0.3.x — TUI 核心框架 · Core TUI
- 6 Tab Textual TUI:仪表盘/查询/审批/执行/预警/分析 6-tab TUI: Dashboard / Query / Approval / Execution / Alerts / Analytics
- DuckDB in-process 直接执行 · In-process SQL execution
- 执行中心:交互多选 + 实时进度 + 自动备份 Execution center: multi-select + live progress + auto-backup
- 分析 Tab:覆盖率/触发率/SLA/趋势 · Analytics: coverage / trigger rate / SLA / trends
- Excel 导入 + 概览 sheet 独立映射 + 状态自动匹配 Excel import + overview sheet mapping + auto status matching
- 配置驱动术语系统 · Config-driven terminology
v0.2.x — DSL 引擎 · DSL Engine
- DSL 导出/导入、规则-数据源绑定 · DSL export/import, rule-data binding
v0.1.x — 项目启动 · Inception
- 6维度规则模型 + Excel 解析器 + 基础 CLI 6-dimension rule model + Excel parser + basic CLI
技术架构 · Architecture
┌──────────────────────────────────────────────────┐
│ Textual TUI │
│ Dashboard │ Query │ Approval │ Exec │ Alert │ Analytics │ Settings │
├──────────────────────────────────────────────────┤
│ Service Layer │
│ import_service │ execution_service │ export_service │ sql_adapter │
├──────────────────────────────────────────────────┤
│ Model Layer (SQLite) │
│ rules │ rule_versions │ executions │ alerts │ models │
├──────────────────────────────────────────────────┤
│ Execution Engine (DuckDB) │
│ in-process SQL execution │ parquet data sources │
└──────────────────────────────────────────────────┘
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xforge-0.4.6.tar.gz.
File metadata
- Download URL: xforge-0.4.6.tar.gz
- Upload date:
- Size: 92.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1d6367abd9981a0a846eda0a0b38d2a5409e403a57d26bde3cc375d42e3f2645
|
|
| MD5 |
385554d4206197c3fb3545ca84ae88c6
|
|
| BLAKE2b-256 |
3895307032ce818360a8003a3f6fa41df2cc3cce5ea4514ceb9085ddd060521f
|
File details
Details for the file xforge-0.4.6-py3-none-any.whl.
File metadata
- Download URL: xforge-0.4.6-py3-none-any.whl
- Upload date:
- Size: 113.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3b42b67c216081661a2b9d08ce3b9c08316180f7ebe312aa9d337c1c1cb8d431
|
|
| MD5 |
7b4e49c13b40fa1f2d2d4e997a78813f
|
|
| BLAKE2b-256 |
f5fcc32632128e236aadc87f8f109048b0ca88ff7b9d52012a272ffb1f720066
|