[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GZ5GY54MYZXWERXGJ5GPEC":3,"skill-same:01M6GZ5GY54MYZXWERXGJ5GPEC":81},{"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":16,"sourceHtmlUrl":17,"categories":18,"keywords":24,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M6GZ5GY54MYZXWERXGJ5GPEC","map-third-party-data-processors",null,"Use when you must name every vendor receiving personal data and the fields each one gets. Discover recipients from real egress traffic, then record purpose, fields, and region.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"MIT","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-map-third-party-data-processors\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-map-third-party-data-processors\u002FSKILL.md",[19],{"categoryNo":20,"categoryName":21,"taxonomyType":22,"taxonomyTypeDesc":23},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[25,26,27,28,29,30,31,32,33,34,35,36,37,38],"data","map","map third party data processors","party","personal","vendor","use","record","discover","name","you","traffic","fields","when","2026-11-10 10:12:30",false,"---\nname: map-third-party-data-processors\ndescription: Use when you must name every vendor receiving personal data and the fields each one gets. Discover recipients from real egress traffic, then record purpose, fields, and region.\n---\n\n# Map third-party data processors\n\nEvery vendor you send personal data to is a recipient you must be able to name and constrain. This skill builds that list from real traffic, not from a CRM of intended vendors.\n\n## Procedure\n\n1. Discover recipients from egress, not memory. Snapshot outbound endpoints over a week:\n   `rg -o \"https:\u002F\u002F[a-z0-9.-]+\" src\u002F | sort -u` and cross-check against proxy or DNS logs.\n\n2. For each domain capture: vendor name, purpose, data fields, processing region, DPA status, sub-processors, and retention.\n\n3. Classify each as processor (acts on your instruction) or controller (decides the purpose). A self-serve analytics tool may be a controller, not a processor.\n\n4. Verify the processing region from the endpoint host and the vendor's residency setting, never from the marketing page.\n\n5. Confirm a signed DPA exists with the correct legal entity and covers the data categories you actually send.\n\n6. Record the exact fields sent by reading the payload code, then minimise: remove any field the vendor does not need for the stated purpose.\n\n7. Track sub-processors. A vendor's CDN, error tracker, or email delivery provider is a further recipient you must list.\n\n8. Alert on new egress: a weekly diff of this week's domains against last week's must be empty or reviewed by a human.\n\n9. Re-review annually and on any vendor change, and keep the register in version control.\n\n## Pitfalls\n\n- Client-side SDKs phone home from the browser and are invisible to server-side grep; check the network tab and the CSP `connect-src`.\n- A \"free\" tool funded by data brokerage is likely a controller that sells data, not a processor acting for you.\n- Support tools hold whatever the user typed into a ticket; treat the helpdesk as a high-risk recipient.\n- A residency dropdown in a dashboard does not guarantee storage location; get the processing location in writing.\n- A vendor acquiring another company silently changes the recipient; monitor vendor corporate changes.\n\n## Verification\n\n    comm -13 \u003C(sort last-week-domains.txt) \u003C(sort this-week-domains.txt)   # expect empty or investigated\n\nReport the vendor count, the fields sent to each, and any egress domain not on the register.\n","# Map third-party data processors\n\nEvery vendor you send personal data to is a recipient you must be able to name and constrain. This skill builds that list from real traffic, not from a CRM of intended vendors.\n\n## Procedure\n\n1. Discover recipients from egress, not memory. Snapshot outbound endpoints over a week:\n   `rg -o \"https:\u002F\u002F[a-z0-9.-]+\" src\u002F | sort -u` and cross-check against proxy or DNS logs.\n\n2. For each domain capture: vendor name, purpose, data fields, processing region, DPA status, sub-processors, and retention.\n\n3. Classify each as processor (acts on your instruction) or controller (decides the purpose). A self-serve analytics tool may be a controller, not a processor.\n\n4. Verify the processing region from the endpoint host and the vendor's residency setting, never from the marketing page.\n\n5. Confirm a signed DPA exists with the correct legal entity and covers the data categories you actually send.\n\n6. Record the exact fields sent by reading the payload code, then minimise: remove any field the vendor does not need for the stated purpose.\n\n7. Track sub-processors. A vendor's CDN, error tracker, or email delivery provider is a further recipient you must list.\n\n8. Alert on new egress: a weekly diff of this week's domains against last week's must be empty or reviewed by a human.\n\n9. Re-review annually and on any vendor change, and keep the register in version control.\n\n## Pitfalls\n\n- Client-side SDKs phone home from the browser and are invisible to server-side grep; check the network tab and the CSP `connect-src`.\n- A \"free\" tool funded by data brokerage is likely a controller that sells data, not a processor acting for you.\n- Support tools hold whatever the user typed into a ticket; treat the helpdesk as a high-risk recipient.\n- A residency dropdown in a dashboard does not guarantee storage location; get the processing location in writing.\n- A vendor acquiring another company silently changes the recipient; monitor vendor corporate changes.\n\n## Verification\n\n    comm -13 \u003C(sort last-week-domains.txt) \u003C(sort this-week-domains.txt)   # expect empty or investigated\n\nReport the vendor count, the fields sent to each, and any egress domain not on the register.\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-map-third-party-data-processors",17,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia","https:\u002F\u002Feth2030.com","Hardcore infra. Building @alt-research and applied cryptography.","2026-11-13 02:31:19",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill map-third-party-data-processors",{"tool":59,"command":60},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill map-third-party-data-processors",{"tool":62,"command":63},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill map-third-party-data-processors","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-map-third-party-data-processors\u002FSKILL.md",true,[67,71,77],{"path":68,"resourceType":68,"resourceTypeDesc":69,"sizeBytes":70,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"SOURCE.md","REFERENCE","参考文档",357,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-map-third-party-data-processors\u002FSOURCE.md",{"path":78,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":79,"sourceHtmlUrl":80},"TRUST.auto.yaml",2217,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-map-third-party-data-processors\u002FTRUST.auto.yaml",[82,110,133,150,163,173],{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":86,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":39},"01M712C436EQYE43342Q4E7GG1","recipe-performance","Diagnose a specific MetaMask user flow's real-app performance and Sentry critical-user-flow telemetry with deterministic mm-harness recipes. Use for CUF boundaries, cold\u002Fwarm\u002Fbackground-resume behavior, latency regressions, lifecycle tags, duplicate or blocking network requests, long tasks, layout\u002Fpaint cost, screen redraws, React rerenders, or browser trace analysis where tests alone cannot prove the real app.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fwallets\u002Fmetamask-official-recipe-performance\u002FSKILL.md",[],[90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109],"performance","recipe performance","recipe","mm","sentry","harness","app","deterministic","recipes","flow","cold","critical","analysis","tasks","react","browser","layout","screen","network","metamask",{"skillNo":111,"name":112,"nameZh":6,"description":113,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":115,"sourceHtmlUrl":116,"categories":117,"keywords":118,"publishedAt":39},"01M70XT2F8A5CQZ81JBP98KSW3","mexc-spot-websocket","MEXC Spot WebSocket workflows for public streams, protobuf handling, depth maintenance, listen keys, and private streams without exposing API keys.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-websocket\u002FSKILL.md",[],[119,120,121,122,123,124,125,126,127,128,129,130,131,132],"mexc spot websocket","spot","websocket","api","workflows","public","listen","streams","depth","keys","for","api keys","maintenance","protobuf",{"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":114,"licenseFileUrl":137,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":39},"01M70XT0MBXN3WZY1BKN0CPNKR","mexc-spot-rest","MEXC Spot REST workflows for public data, signed account requests, orders, wallet\u002Fadmin actions, and secure signing without exposing API keys.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-spot-rest\u002FSKILL.md",[],[141,120,142,143,144,145,146,130,129,128,147,148,25,124,149,123,122],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","orders",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":154,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":39},"01M70XSYSVZ2N0N91XCAR2CAK0","mexc-futures-websocket","MEXC Futures WebSocket workflows for public streams, private account\u002Forder\u002Fposition streams, ping\u002Fpong, subscriptions, and depth maintenance.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fexchanges\u002Fmncrftfrcnm-mexc-futures-websocket\u002FSKILL.md",[],[158,159,121,160,161,131,129,162,127,126,124,123],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":164,"name":165,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":166,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":39},"01M6H0ZWHVE5W04WG2DKQE2SQC","0xklen-version-and-refresh-sanctions-lists","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-version-and-refresh-sanctions-lists\u002FSKILL.md",[],[170,171,172],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":174,"name":175,"nameZh":6,"description":176,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":177,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":39},"01M6H0Z28Q3R8J0S799GJQWXM3","verify-tests-cover-changed-lines","Use when a PR adds code that the existing suite may not exercise. Measures patch coverage — the share of newly changed lines hit by tests — before approving.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-verify-tests-cover-changed-lines\u002FSKILL.md",[],[181,182,183,184,185,186,187,31,188,189,190],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]