基于ima Skills架构的招标文件合规审查系统,审查规则依据《招标文件公平竞争合法合规性审查表(校对版0520)》编制,将业务规则落盘为8个YAML规则文件(共95条规则),通过Python规则引擎执行匹配,实现审查流程可审计、可复现、可版本管理。
| 扫描维度 | 规则文件 | 规则数 | 对应审查表类别 |
|----------|---------|--------|---------------|
| 公平竞争审查 | fair_competition_rules.yml | 28 | 一至七类(事项1.1-7.5) |
| 废标条款审查 | disqualify_rules.yml | 8 | 一/二类+废标条款 |
| 资格条件审查 | qualification_rules.yml | 8 | 三类(事项3.1-3.4) |
| 技术参数合规 | technical_rules.yml | 8 | 四类(事项4.1-4.4) |
| 招标程序与评标合规 | bidding_procedure_rules.yml | 16 | 八/九类(事项8.1-9.8) |
| 合同条款风险 | contract_rules.yml | 7 | 十类部分(合同风险) |
| 合同与程序合规 | contract_compliance_rules.yml | 11 | 十/十一类(事项10.1-11.5) |
| 反垄断与专项审查 | antitrust_rules.yml | 9 | 十二/十三类(事项12.1-13.5) |
当用户上传招标文件并要求合规审查时,按以下步骤执行:
PRJ-YYYYMMDD-NNN)
```
{output_root}/{project_id}/
├── artifacts/ # 中间产物(raw_text.txt, tender.json, issue_list.json)
├── audit/ # 审计日志
└── output/ # 最终报告
```
```bash
python3 {SKILL_DIR}/scripts/extract_text.py \
--file_path "{文件路径}" \
--project_id {项目ID} \
--enable_ocr true \
--output_dir {项目目录}/artifacts
```
extraction_meta.json 中 status 为 success 后进入 Phase 2
```bash
python3 {SKILL_DIR}/scripts/parse_structure.py \
--raw_text_path {项目目录}/artifacts/raw_text.txt \
--project_id {项目ID} \
--output_dir {项目目录}/artifacts
```
tender.json 生成后初始化空的问题清单:
```bash
echo '{"project_id":"{项目ID}","issues":[],"issue_count":0}' > {项目目录}/artifacts/issue_list.json
```
Step 3a:公平竞争审查(覆盖审查表第一部分:事项1.1-7.5)
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/fair_competition_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/fair_competition.log \
--scan_type fair_competition \
--project_id {项目ID}
Step 3b:废标条款审查
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/disqualify_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/disqualify_check.log \
--scan_type disqualify_check \
--project_id {项目ID}
Step 3c:资格条件审查
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/qualification_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/qualification_check.log \
--scan_type qualification_check \
--project_id {项目ID}
Step 3d:技术参数合规
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/technical_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/technical_spec.log \
--scan_type technical_spec_match \
--project_id {项目ID}
Step 3e:招标程序与评标合规(覆盖审查表第八/九类:事项8.1-9.8)
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/bidding_procedure_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/bidding_procedure.log \
--scan_type bidding_procedure \
--project_id {项目ID}
Step 3f:合同条款风险
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/contract_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/contract_terms.log \
--scan_type contract_terms_risk \
--project_id {项目ID}
Step 3g:合同与程序合规(覆盖审查表第十/十一类:事项10.1-11.5)
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/contract_compliance_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/contract_compliance.log \
--scan_type contract_compliance \
--project_id {项目ID}
Step 3h:反垄断与专项审查(覆盖审查表第十二/十三类:事项12.1-13.5)
python3 {SKILL_DIR}/scripts/run_rules_engine.py \
--tender_json {项目目录}/artifacts/tender.json \
--rules {SKILL_DIR}/references/rules/antitrust_rules.yml \
--issue_list {项目目录}/artifacts/issue_list.json \
--output {项目目录}/artifacts/issue_list.json \
--log {项目目录}/audit/antitrust_special.log \
--scan_type antitrust_special \
--project_id {项目ID}
```bash
python3 {SKILL_DIR}/scripts/render_report.py \
--project_id {项目ID} \
--tender_json {项目目录}/artifacts/tender.json \
--issue_list {项目目录}/artifacts/issue_list.json \
--template {SKILL_DIR}/assets/compliance_report.md \
--output {项目目录}/output/compliance_report.md
```
compliance_report_meta.json 获取审查结论
端到端一键执行(适用于所有步骤):
python3 {SKILL_DIR}/scripts/run_compliance_check.py \
--file_path "{文件路径}" \
--project_id {项目ID} \
--output_root ./output
--log 参数必须指向项目审计目录
check_item 字段,对应审查表事项编号
| 规则文件 | 路径 | 规则数 | 审查维度 | 对应审查表 |
|---------|------|--------|---------|-----------|
| 公平竞争审查规则 | references/rules/fair_competition_rules.yml | 28 | 公平竞争 | 第一部分 事项1.1-7.5 |
| 废标条款审查规则 | references/rules/disqualify_rules.yml | 8 | 实质性条款 | 第一/二部分交叉 |
| 资格条件审查规则 | references/rules/qualification_rules.yml | 8 | 投标人资格 | 第三类 事项3.1-3.4 |
| 技术参数合规规则 | references/rules/technical_rules.yml | 8 | 技术规格 | 第四类 事项4.1-4.4 |
| 招标程序与评标规则 | references/rules/bidding_procedure_rules.yml | 16 | 招标/评标程序 | 第八/九类 事项8.1-9.8 |
| 合同条款风险规则 | references/rules/contract_rules.yml | 7 | 合同风险 | 第十类部分 |
| 合同与程序合规规则 | references/rules/contract_compliance_rules.yml | 11 | 合同/信息合规 | 第十/十一类 事项10.1-11.5 |
| 反垄断与专项规则 | references/rules/antitrust_rules.yml | 9 | 反垄断/专项 | 第十二/十三类 事项12.1-13.5 |
| 合计 | | 95 | | 覆盖13大类45+事项 |
bidding-compliance-engine/
├── SKILL.md # 本文件 - Skill定义与工作流
├── scripts/
│ ├── extract_text.py # 文本提取(PDF/DOCX/TXT)
│ ├── parse_structure.py # 章节结构化解析
│ ├── run_rules_engine.py # 通用规则引擎
│ ├── render_report.py # 审查报告生成
│ └── run_compliance_check.py # 端到端一键执行入口
├── references/
│ └── rules/
│ ├── fair_competition_rules.yml # 公平竞争审查(28条)
│ ├── disqualify_rules.yml # 废标条款审查(8条)
│ ├── qualification_rules.yml # 资格条件审查(8条)
│ ├── technical_rules.yml # 技术参数合规(8条)
│ ├── bidding_procedure_rules.yml # 招标程序与评标合规(16条)
│ ├── contract_rules.yml # 合同条款风险(7条)
│ ├── contract_compliance_rules.yml # 合同与程序合规(11条)
│ └── antitrust_rules.yml # 反垄断与专项审查(9条)
└── assets/
└── compliance_report.md # 审查报告Jinja2模板
共 2 个版本