blacklist-screening

黑名单筛查助手,适用于券商合规管理、客户准入、反洗钱、风险监控等场景。 以下情况请主动触发此技能: - 用户提供了客户/交易对手名单,问"有没有在黑名单上""帮我筛查一下" - 用户问"黑名单筛查怎么做""命中黑名单怎么处理" - 用户需要:黑名单筛查、命中分析、处置建议 - 用户提到:黑名单、制裁名单、反洗钱、可疑名单、禁入名单 - 用户需要形成筛查报告、合规意见、处置方案 不要等用户明确说"黑名单筛查"——只要涉及客户准入筛查、交易对手审查、制裁名单比对,就应主动启动此技能。

105 stars

Best use case

blacklist-screening is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

黑名单筛查助手,适用于券商合规管理、客户准入、反洗钱、风险监控等场景。 以下情况请主动触发此技能: - 用户提供了客户/交易对手名单,问"有没有在黑名单上""帮我筛查一下" - 用户问"黑名单筛查怎么做""命中黑名单怎么处理" - 用户需要:黑名单筛查、命中分析、处置建议 - 用户提到:黑名单、制裁名单、反洗钱、可疑名单、禁入名单 - 用户需要形成筛查报告、合规意见、处置方案 不要等用户明确说"黑名单筛查"——只要涉及客户准入筛查、交易对手审查、制裁名单比对,就应主动启动此技能。

Teams using blacklist-screening should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/blacklist-screening/SKILL.md --create-dirs "https://raw.githubusercontent.com/aifinlab/FinClaw/main/skills/blacklist-screening/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/blacklist-screening/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How blacklist-screening Compares

Feature / Agentblacklist-screeningStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

黑名单筛查助手,适用于券商合规管理、客户准入、反洗钱、风险监控等场景。 以下情况请主动触发此技能: - 用户提供了客户/交易对手名单,问"有没有在黑名单上""帮我筛查一下" - 用户问"黑名单筛查怎么做""命中黑名单怎么处理" - 用户需要:黑名单筛查、命中分析、处置建议 - 用户提到:黑名单、制裁名单、反洗钱、可疑名单、禁入名单 - 用户需要形成筛查报告、合规意见、处置方案 不要等用户明确说"黑名单筛查"——只要涉及客户准入筛查、交易对手审查、制裁名单比对,就应主动启动此技能。

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# 黑名单筛查助手

你的核心职责:准确进行黑名单筛查比对,识别命中风险,形成清晰的筛查报告和处置建议,支持合规管理和风险防控。

---

## 第一步:识别输入类型,选择路径

收到用户请求后,先做两个判断:

**判断 1:是否有筛查数据?**
- 用户提供了待筛查名单、黑名单数据库 → 直接进入比对
- 只有待筛查对象名称 → 先说明需要的数据字段(见下方"数据需求")
- 只有简短描述(如"帮我查一下这个客户") → 可基于描述给出筛查框架,说明"需具体数据才能精准筛查"

**判断 2:用户需要哪种深度?**

| 用户意图 | 适用模板 |
|---------|---------|
| "有没有命中""快速筛查" | 模板 A:快速筛查 |
| "详细分析""筛查报告" | 模板 B:标准报告 |
| "合规意见""处置方案" | 模板 C:处置版 |
| 未明确说明 | 默认模板 A,再提供"需要详细报告可继续" |

---

## 数据需求(理想字段)

**待筛查对象信息:**
- 姓名/名称(中文/英文)
- 证件类型、证件号码
- 出生日期/注册日期
- 国籍/注册地
- 地址/注册地址

**黑名单数据库:**
- 名单类型(制裁/反洗钱/禁入等)
- 名单来源(官方/内部/第三方)
- 名单更新日期
- 命中规则(精确/模糊)

**比对结果数据:**
- 命中状态(命中/未命中)
- 匹配置信度
- 命中名单类型
- 命中要素(姓名/证件等)

---

## 核心分析框架

### 黑名单类型分类

**1. 制裁名单**
- 联合国制裁名单
- 美国 OFAC 制裁名单
- 欧盟制裁名单
- 中国制裁名单

**2. 反洗钱名单**
- 恐怖分子名单
- 贩毒人员名单
- 腐败人员名单
- 其他犯罪人员名单

**3. 监管禁入名单**
- 证券市场禁入者
- 失信被执行人
- 重大税收违法人员

**4. 内部黑名单**
- 违约客户
- 异常交易客户
- 投诉频发客户
- 高风险客户

### 筛查匹配规则

**1. 精确匹配**
- 姓名完全一致
- 证件号码完全一致
- 姓名 + 证件组合匹配

**2. 模糊匹配**
- 姓名相似度>85%
- 音译名匹配
- 别名/曾用名匹配

**3. 组合匹配**
- 姓名 + 出生日期
- 姓名 + 国籍
- 姓名 + 地址

### 命中置信度评估

| 等级 | 匹配类型 | 置信度 | 处置建议 |
|-----|---------|-------|---------|
| 高 | 精确匹配(姓名 + 证件) | 95%-100% | 立即拒绝,上报合规 |
| 中高 | 精确匹配(姓名) | 80%-95% | 人工复核,补充信息 |
| 中 | 模糊匹配(多要素) | 60%-80% | 进一步核实 |
| 低 | 模糊匹配(单要素) | <60% | 记录备查,持续监控 |

---

## 输出模板

### 模板 A:快速筛查
> 适用:"有没有命中""快速筛查"

```
**黑名单筛查结果** | YYYY-MM-DD

**筛查对象**:XX 个

**命中情况**:
- 命中:X 个
- 未命中:X 个
- 待复核:X 个

**命中明细**:
| 对象 | 命中类型 | 置信度 | 名单来源 |
|-----|---------|-------|---------|
| 对象 A | 精确匹配 | 98% | OFAC 制裁 |
| 对象 B | 模糊匹配 | 75% | 内部黑名单 |

**建议动作**:
- 对象 A:立即拒绝业务,上报合规
- 对象 B:人工复核,补充身份信息
```

### 模板 B:标准报告
> 适用:"详细分析""筛查报告"

```
**黑名单筛查报告** | YYYY-MM-DD

## 一、筛查概览

**筛查时间**:YYYY-MM-DD HH:MM
**筛查对象数量**:XX 个
**黑名单数据库**:XXX(版本/日期)

**命中统计**:
- 高置信度命中:X 个
- 中置信度命中:X 个
- 低置信度命中:X 个
- 未命中:X 个

## 二、命中详情

**命中对象 A**
- 对象类型:个人/机构
- 基本信息:姓名 XXX,证件 XXX
- 命中名单:OFAC 制裁名单
- 匹配要素:姓名(精确)、出生日期(精确)
- 置信度:98%
- 名单详情:制裁原因 XXX,生效日期 XXX

**命中对象 B**
- 对象类型:个人/机构
- 基本信息:姓名 XXX,证件 XXX
- 命中名单:内部黑名单
- 匹配要素:姓名(模糊)、手机号(精确)
- 置信度:75%
- 名单详情:违约客户,欠款 XXX 万

## 三、风险分析

**命中名单类型分布**:
- 制裁名单:X 个
- 反洗钱名单:X 个
- 监管禁入:X 个
- 内部黑名单:X 个

**风险等级评估**:
- 高风险:X 个(需立即处置)
- 中风险:X 个(需人工复核)
- 低风险:X 个(记录备查)

## 四、筛查结论

**合规意见**:xxx
**处置建议**:xxx
```

### 模板 C:处置版
> 适用:"合规意见""处置方案"

```
**黑名单筛查处置方案** | YYYY-MM-DD

**核心结论**:筛查 XX 个对象,命中 X 个,需立即处置 X 个

**处置清单**:

| 对象 | 风险等级 | 命中类型 | 处置措施 | 责任人 | 时限 |
|-----|---------|---------|---------|-------|------|
| 对象 A | 高 | 制裁名单 | 拒绝业务,冻结账户 | 张三 | 立即 |
| 对象 B | 中 | 内部黑名单 | 人工复核,补充材料 | 李四 | 3 日内 |

**处置流程**:

**对象 A(高风险)**:
1. 立即暂停所有业务往来
2. 冻结相关账户
3. 上报合规部门
4. 按规定报送监管
5. 留存筛查记录

**对象 B(中风险)**:
1. 联系客户补充身份信息
2. 人工复核匹配度
3. 确认是否误命中
4. 根据复核结果决定后续

**合规提示**:
- 制裁名单命中必须拒绝业务
- 筛查记录保存至少 5 年
- 定期更新黑名单数据库
```

---

## 特殊情况处理

**同名误判**:如存在同名情况,提示"需补充证件号码、出生日期等信息进一步核实"

**音译名差异**:如存在音译名差异,说明"建议比对多种音译形式,降低漏筛风险"

**名单更新延迟**:如名单可能更新,说明"建议定期更新黑名单数据库,确保筛查准确性"

**跨境筛查**:如涉及跨境业务,说明"需同时筛查多国制裁名单,确保合规"

---

## 语言要求

- 先给结论,再给支撑数据
- 命中判断要有依据,置信度评估要准确
- 明确区分:筛查结果 vs 风险分析 vs 处置建议
- 关键数字、名单来源、置信度单独指出
- 制裁名单命中必须明确提示合规风险

---

## Reference

**监管法规:**
- 《反洗钱法》
- 《金融机构客户身份识别和客户身份资料及交易记录保存管理办法》
- 《证券公司反洗钱工作指引》
- 《关于金融领域打击恐怖融资工作的通知》

**制裁名单来源:**
- 联合国安理会制裁名单
- 美国 OFAC SDN 名单
- 欧盟制裁名单
- 中国外交部制裁名单
- 中国人民银行反洗钱名单

**行业标准:**
- FATF(金融行动特别工作组)建议
- Wolfsberg 集团反洗钱原则
- ACAMS(国际反洗钱师协会)指南

---

## Scripts

**Python 黑名单筛查示例:**
```python
import pandas as pd
from fuzzywuzzy import fuzz

def exact_match(client_data, blacklist):
    """
    精确匹配
    
    参数:
        client_data: 客户数据 DataFrame
        blacklist: 黑名单 DataFrame
    
    返回:
        命中结果 DataFrame
    """
    # 证件号码精确匹配
    merged = pd.merge(
        client_data, 
        blacklist, 
        on='id_number', 
        how='inner',
        suffixes=('_client', '_blacklist')
    )
    merged['match_type'] = '精确匹配'
    merged['confidence'] = 100
    return merged

def fuzzy_match(client_data, blacklist, threshold=85):
    """
    模糊匹配(姓名相似度)
    
    参数:
        client_data: 客户数据 DataFrame
        blacklist: 黑名单 DataFrame
        threshold: 相似度阈值
    
    返回:
        命中结果 DataFrame
    """
    matches = []
    
    for _, client in client_data.iterrows():
        for _, bl in blacklist.iterrows():
            # 姓名相似度
            name_score = fuzz.ratio(client['name'], bl['name'])
            
            if name_score >= threshold:
                matches.append({
                    'client_id': client['client_id'],
                    'client_name': client['name'],
                    'blacklist_name': bl['name'],
                    'match_type': '模糊匹配',
                    'confidence': name_score,
                    'list_source': bl['list_source'],
                    'list_type': bl['list_type']
                })
    
    return pd.DataFrame(matches)

def screen_blacklist(client_data, blacklist, exact=True, fuzzy=True):
    """
    黑名单筛查主函数
    
    参数:
        client_data: 客户数据 DataFrame
        blacklist: 黑名单 DataFrame
        exact: 是否进行精确匹配
        fuzzy: 是否进行模糊匹配
    
    返回:
        筛查结果 DataFrame
    """
    results = []
    
    if exact:
        exact_results = exact_match(client_data, blacklist)
        results.append(exact_results)
    
    if fuzzy:
        fuzzy_results = fuzzy_match(client_data, blacklist)
        results.append(fuzzy_results)
    
    if results:
        all_results = pd.concat(results, ignore_index=True)
        all_results = all_results.sort_values('confidence', ascending=False)
        return all_results
    else:
        return pd.DataFrame()

# 使用示例
if __name__ == '__main__':
    # 假设数据
    clients = pd.DataFrame({
        'client_id': ['C001', 'C002', 'C003'],
        'name': ['张三', '李四', '王五'],
        'id_number': ['110101199001011234', '110101199002022345', '110101199003033456']
    })
    
    blacklist = pd.DataFrame({
        'name': ['张三', '李四某', '赵六'],
        'id_number': ['110101199001011234', '', ''],
        'list_source': ['OFAC', '内部', '监管'],
        'list_type': ['制裁', '违约', '禁入']
    })
    
    results = screen_blacklist(clients, blacklist)
    print(results)
```

**SQL 查询示例:**
```sql
-- 黑名单筛查查询
SELECT 
    c.client_id,
    c.client_name,
    c.id_number,
    b.blacklist_name,
    b.id_number as blacklist_id,
    b.list_source,
    b.list_type,
    CASE 
        WHEN c.id_number = b.id_number AND c.id_number != '' THEN '精确匹配'
        WHEN c.client_name = b.blacklist_name THEN '姓名精确'
        ELSE '模糊匹配'
    END as match_type,
    CASE 
        WHEN c.id_number = b.id_number AND c.id_number != '' THEN 100
        WHEN c.client_name = b.blacklist_name THEN 90
        ELSE 70
    END as confidence
FROM client_info c
CROSS JOIN blacklist b
WHERE c.status = 'active'
  AND (
    c.id_number = b.id_number 
    OR c.client_name = b.blacklist_name
  )
ORDER BY confidence DESC;
```

Related Skills

loan-pre-screening-assistant

105
from aifinlab/FinClaw

用于零售金融场景下的个贷预审任务。适用于当用户需要对个人贷款申请进行准入初筛、资料完整性检查、关键风险识别、预审结论分级、补件建议和面谈核验要点整理时使用。 尤其适合住房按揭、消费贷、经营贷、信用贷等场景的贷前预审。 当输入材料不完整、字段前后不一致、存在明显高风险信号或结论需要降级时,应明确标注“待核验”“待补充”“不可直接下正式审批结论”。

bank-t218-risk-management-watchlist-screening-assistant

105
from aifinlab/FinClaw

当需要对监控名单筛查结果进行汇总、误报排查与风险处置建议输出时使用本技能。

marketing-target-screening

105
from aifinlab/FinClaw

当用户需要进行保险营销客群筛选时使用此 skill。适用于客群画像分析、目标客户识别、精准营销策略制定等场景。

anti-fraud-screening

105
from aifinlab/FinClaw

当用户需要进行保险欺诈风险筛查时使用此 skill。适用于投保欺诈识别、理赔欺诈预警、可疑行为分析等场景。

trust-valuation-engine

105
from aifinlab/FinClaw

## 描述

trust-risk-manager

105
from aifinlab/FinClaw

## 描述

trust-product-analyzer

105
from aifinlab/FinClaw

## 描述

trust-income-calculator

105
from aifinlab/FinClaw

## 描述

trust-compliance-checker

105
from aifinlab/FinClaw

## 描述

trust-asset-allocation

105
from aifinlab/FinClaw

## 描述

family-trust-designer

105
from aifinlab/FinClaw

## 描述

charity-trust-manager

105
from aifinlab/FinClaw

## 描述