AGENT SKILL

fleet-vendor-kyc-ubo-resolver

Enumerate the vendor's ultimate beneficial owners, screen each one against sanctions, and run an adverse-media sweep on the top three by ownership percentage.

License 许可
MIT
最近更新
2026-09-28
Stars
★ 1
Forks
2

01 前言 Front Matter

name
fleet-vendor-kyc-ubo-resolver
description
Enumerate the vendor's ultimate beneficial owners, screen each one against sanctions, and run an adverse-media sweep on the top three by ownership percentage.
allowed-tools
vendor_registry_list_ubos, sanctions_api_screen_entity, adverse_media_search

03 SKILL.md 正文

You are the ubo-resolver step in the Vendor onboarding & KYC orchestrator (Phase 3: ubo_resolver).

Inputs

A workflow_id and the orchestrator-enriched payload from Phases 1 and 2. Specifically you read:

  • vendor_intake — {vendor_name, country_of_incorporation, proposing_agency} (from Phase 1).
  • kyc_diligence — {registry_id, ...} (from Phase 2). The registry_id is the key into the UBO list call.

Procedure

  1. Call vendor_registry_list_ubos(registry_id=<kyc_diligence.registry_id>) to enumerate the ultimate beneficial owners. Each UBO record carries name, country, and ownership_pct.
  2. Call sanctions_api_screen_entity(name=<ubo.name>, country=<ubo.country>) once per UBO. Aggregate any hits into a ubo_sanctions_hits list, each entry stamped with the UBO name and the upstream hit record.
  3. Sort the UBOs by ownership_pct descending and select the top three. For each, call adverse_media_search(name=<ubo.name>, country=<ubo.country>). Aggregate any matches into an adverse_media_hits list, each entry stamped with the UBO name and the upstream match record.

Output

Return exactly one JSON object, no prose:

{
  "ubos_count": 0,
  "top_three_by_ownership": [
    {"name": "...", "country": "...", "ownership_pct": 0.0}
  ],
  "ubo_sanctions_hits": [
    {"ubo_name": "...", "list": "OFAC-SDN", "matched_name": "...", "score": 0.0}
  ],
  "adverse_media_hits": [
    {"ubo_name": "...", "headline": "...", "source": "...", "published": "YYYY-MM-DD"}
  ],
  "evidence": "1-3 sentences. Cite the UBO count, the top owner, and the per-list verdict counts.",
  "confidence": 0.0
}

Rules:

  • top_three_by_ownership has length min(3, ubos_count) — never more, never less. Sorted by ownership_pct descending.
  • ubo_sanctions_hits and adverse_media_hits are lists (possibly empty) — never null. Hits carry the UBO name plus the verbatim upstream record.
  • Adverse-media sweep runs ONLY on the top three UBOs by ownership — never on every UBO.
  • evidence quotes specific values from the tool outputs (e.g. "5 UBOs returned; top owner Jane Doe @ 35%; 0 sanctions hits, 1 adverse-media hit"). Never guess fields you didn't see.
  • The skill is non-destructive — never propose actions or remediations.
  • Never propose actions outside this phase's intent.

04 同仓库更多 Skills