[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71S2FHFQ363PMQ29KDTF6ED":3,"skill-same:01M71S2FHFQ363PMQ29KDTF6ED":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M71S2FHFQ363PMQ29KDTF6ED","fleet-vendor-kyc-ubo-resolver",null,"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.","arturcrmbot\u002Fzava-control-plane","arturcrmbot","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F156445312?v=4","01M71R9QBEJ4ZSX5AXBGBYH82C","Artur Zielinski","01M71R9QCJSV19ESCAF5773TWH",1,"MIT","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fskills\u002Ffleet-vendor-kyc-ubo-resolver\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"vendor","fleet vendor kyc ubo resolver","fleet","resolver","kyc","owners","sweep","list","Media","run","three","screen","ownership","top","api","entity","search","one","registry","2026-11-10 13:02:02",false,"---\nname: fleet-vendor-kyc-ubo-resolver\ndescription: 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.\nallowed-tools: vendor_registry_list_ubos, sanctions_api_screen_entity, adverse_media_search\n---\n\nYou are the ubo-resolver step in the Vendor onboarding & KYC orchestrator\n(Phase 3: ubo_resolver).\n\n## Inputs\n\nA `workflow_id` and the orchestrator-enriched payload from Phases 1 and 2.\nSpecifically you read:\n\n- `vendor_intake` — `{vendor_name, country_of_incorporation,\n  proposing_agency}` (from Phase 1).\n- `kyc_diligence` — `{registry_id, ...}` (from Phase 2). The\n  `registry_id` is the key into the UBO list call.\n\n## Procedure\n\n1. Call `vendor_registry_list_ubos(registry_id=\u003Ckyc_diligence.registry_id>)`\n   to enumerate the ultimate beneficial owners. Each UBO record carries\n   `name`, `country`, and `ownership_pct`.\n2. Call `sanctions_api_screen_entity(name=\u003Cubo.name>, country=\u003Cubo.country>)`\n   once per UBO. Aggregate any hits into a `ubo_sanctions_hits` list,\n   each entry stamped with the UBO name and the upstream hit record.\n3. Sort the UBOs by `ownership_pct` descending and select the top three.\n   For each, call `adverse_media_search(name=\u003Cubo.name>,\n   country=\u003Cubo.country>)`. Aggregate any matches into an\n   `adverse_media_hits` list, each entry stamped with the UBO name and\n   the upstream match record.\n\n## Output\n\nReturn exactly one JSON object, no prose:\n\n```json\n{\n  \"ubos_count\": 0,\n  \"top_three_by_ownership\": [\n    {\"name\": \"...\", \"country\": \"...\", \"ownership_pct\": 0.0}\n  ],\n  \"ubo_sanctions_hits\": [\n    {\"ubo_name\": \"...\", \"list\": \"OFAC-SDN\", \"matched_name\": \"...\", \"score\": 0.0}\n  ],\n  \"adverse_media_hits\": [\n    {\"ubo_name\": \"...\", \"headline\": \"...\", \"source\": \"...\", \"published\": \"YYYY-MM-DD\"}\n  ],\n  \"evidence\": \"1-3 sentences. Cite the UBO count, the top owner, and the per-list verdict counts.\",\n  \"confidence\": 0.0\n}\n```\n\nRules:\n- `top_three_by_ownership` has length `min(3, ubos_count)` — never more,\n  never less. Sorted by `ownership_pct` descending.\n- `ubo_sanctions_hits` and `adverse_media_hits` are lists (possibly\n  empty) — never `null`. Hits carry the UBO name plus the verbatim\n  upstream record.\n- Adverse-media sweep runs ONLY on the top three UBOs by ownership —\n  never on every UBO.\n- `evidence` quotes specific values from the tool outputs (e.g.\n  `\"5 UBOs returned; top owner Jane Doe @ 35%; 0 sanctions hits, 1\n  adverse-media hit\"`). Never guess fields you didn't see.\n- The skill is non-destructive — never propose actions or\n  remediations.\n- Never propose actions outside this phase's intent.\n","You are the ubo-resolver step in the Vendor onboarding & KYC orchestrator\n(Phase 3: ubo_resolver).\n\n## Inputs\n\nA `workflow_id` and the orchestrator-enriched payload from Phases 1 and 2.\nSpecifically you read:\n\n- `vendor_intake` — `{vendor_name, country_of_incorporation,\n  proposing_agency}` (from Phase 1).\n- `kyc_diligence` — `{registry_id, ...}` (from Phase 2). The\n  `registry_id` is the key into the UBO list call.\n\n## Procedure\n\n1. Call `vendor_registry_list_ubos(registry_id=\u003Ckyc_diligence.registry_id>)`\n   to enumerate the ultimate beneficial owners. Each UBO record carries\n   `name`, `country`, and `ownership_pct`.\n2. Call `sanctions_api_screen_entity(name=\u003Cubo.name>, country=\u003Cubo.country>)`\n   once per UBO. Aggregate any hits into a `ubo_sanctions_hits` list,\n   each entry stamped with the UBO name and the upstream hit record.\n3. Sort the UBOs by `ownership_pct` descending and select the top three.\n   For each, call `adverse_media_search(name=\u003Cubo.name>,\n   country=\u003Cubo.country>)`. Aggregate any matches into an\n   `adverse_media_hits` list, each entry stamped with the UBO name and\n   the upstream match record.\n\n## Output\n\nReturn exactly one JSON object, no prose:\n\n```json\n{\n  \"ubos_count\": 0,\n  \"top_three_by_ownership\": [\n    {\"name\": \"...\", \"country\": \"...\", \"ownership_pct\": 0.0}\n  ],\n  \"ubo_sanctions_hits\": [\n    {\"ubo_name\": \"...\", \"list\": \"OFAC-SDN\", \"matched_name\": \"...\", \"score\": 0.0}\n  ],\n  \"adverse_media_hits\": [\n    {\"ubo_name\": \"...\", \"headline\": \"...\", \"source\": \"...\", \"published\": \"YYYY-MM-DD\"}\n  ],\n  \"evidence\": \"1-3 sentences. Cite the UBO count, the top owner, and the per-list verdict counts.\",\n  \"confidence\": 0.0\n}\n```\n\nRules:\n- `top_three_by_ownership` has length `min(3, ubos_count)` — never more,\n  never less. Sorted by `ownership_pct` descending.\n- `ubo_sanctions_hits` and `adverse_media_hits` are lists (possibly\n  empty) — never `null`. Hits carry the UBO name plus the verbatim\n  upstream record.\n- Adverse-media sweep runs ONLY on the top three UBOs by ownership —\n  never on every UBO.\n- `evidence` quotes specific values from the tool outputs (e.g.\n  `\"5 UBOs returned; top owner Jane Doe @ 35%; 0 sanctions hits, 1\n  adverse-media hit\"`). Never guess fields you didn't see.\n- The skill is non-destructive — never propose actions or\n  remediations.\n- Never propose actions outside this phase's intent.\n",{"name":5,"description":7,"allowed-tools":43},"vendor_registry_list_ubos, sanctions_api_screen_entity, adverse_media_search","main","db273d7d646605c0bf0175dc9c8057b9ad2628b5","api\u002Fserver\u002Fskills\u002Ffleet-vendor-kyc-ubo-resolver",2,"https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane","https:\u002F\u002Fgithub.com\u002Farturcrmbot","2026-09-28 17:47:06",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add arturcrmbot\u002Fzava-control-plane --skill fleet-vendor-kyc-ubo-resolver",{"tool":57,"command":58},"bunx","bunx skills add arturcrmbot\u002Fzava-control-plane --skill fleet-vendor-kyc-ubo-resolver",{"tool":60,"command":61},"pnpm","pnpm dlx skills add arturcrmbot\u002Fzava-control-plane --skill fleet-vendor-kyc-ubo-resolver","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fapi\u002Fserver\u002Fskills\u002Ffleet-vendor-kyc-ubo-resolver\u002FSKILL.md",true,[],[66,87,104,118,126,133],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":38},"01M71SJECD4KXSSJV1B0HSY4T4","proactive-customer-care","Proactively notifies and, where warranted, extends a small bounded goodwill gesture to a customer whose itinerary materially changed.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fproactive-customer-care\u002FSKILL.md",[],[73,74,75,76,77,78,79,80,81,82,83,84,85,86],"proactive","customer","proactive customer care","customer care","gesture","action","bounded","status","check","booking","operations","travel","issue","itinerary",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":38},"01M71SJ9VHGNNTB6452H1KRZD6","payment-exception","Resolves a failed balance payment by retrying it to complete the booking, or releasing the booking's inventory when retry is not viable.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fpayment-exception\u002FSKILL.md",[],[94,95,96,97,98,82,99,100,101,80,102,103,81,83,84],"payment","payment exception","it","retry","balance","when","release","complete","capacity","inventory",{"skillNo":105,"name":106,"nameZh":6,"description":107,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":108,"categories":109,"keywords":110,"publishedAt":38},"01M71SJ6S6XREB0J6CCVCSFZ9E","hotel-supplier-recovery","Restores accommodation for a shortfall-hit hotel allotment by moving contracted rooms from a donor allotment with headroom, resolving the reported supplier shortfall.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fhotel-supplier-recovery\u002FSKILL.md",[],[111,112,113,114,81,83,84,115,116,117],"hotel supplier recovery","hotel","recovery","with","move","for","headroom",{"skillNo":119,"name":120,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":38},"01M71SJ4G5MPM50WZ6F66M3PNS","holiday-sales-booking","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fholiday-sales-booking\u002FSKILL.md",[],[124,82,125],"holiday sales booking","sales",{"skillNo":127,"name":128,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":38},"01M71SJ2AHHWN2C4YV2RKEE947","flight-disruption-recovery","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fflight-disruption-recovery\u002FSKILL.md",[],[132,113],"flight disruption recovery",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":38},"01M71SHYPK8HNQ80C9XAWSER53","destination-operations","Dispatches a replacement resort transfer when an arrival is at risk, rebinding any travellers on the at-risk transfer to the replacement.","https:\u002F\u002Fgithub.com\u002Farturcrmbot\u002Fzava-control-plane\u002Fblob\u002Fmain\u002Fverticals\u002Ftravel\u002Fskills\u002Fdestination-operations\u002FSKILL.md",[],[140,83,141,142,81,143,84,144,99,145],"destination operations","destination","risk","dispatch","at","transfer"]