[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GX35PD8MT7F5HS7X7ZEDM3":3,"skill-same:01M6GX35PD8MT7F5HS7X7ZEDM3":80},{"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":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":54,"ownerDescription":55,"updatedAt":56,"install":57,"resources":69},"01M6GX35PD8MT7F5HS7X7ZEDM3","fix-false-positives",null,"Use when the user asks to \"fix false positives\", \"check FP stats\", \"triage autofixer false positives\", \"why is rule X getting dismissed\", or wants to reduce dismissal rates in the program_autofixer. Queries live dismissal telemetry from Databricks, ranks rules by false-positive burden, diagnoses the root cause in the rule's visitor, and implements a fix with the user approving each step.","jiayaoqijia\u002Fcryptoskill","jiayaoqijia","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1453879?v=4","01M6GMYTX7Q7S504VC6E756ENR","YQ","01M6GMYV1QKJ1CC75MTTGT9PR0",81,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fsolana-fix-false-positives\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41],"fix false positives","fix","false","queries","program","when","root cause","reduce","true","root","with","rule","live","triage","use","user","check","Rules","why","false-positive","stats","databricks","telemetry","2026-11-10 10:12:30",false,"---\nname: fix-false-positives\ndescription: Use when the user asks to \"fix false positives\", \"check FP stats\", \"triage autofixer false positives\", \"why is rule X getting dismissed\", or wants to reduce dismissal rates in the program_autofixer. Queries live dismissal telemetry from Databricks, ranks rules by false-positive burden, diagnoses the root cause in the rule's visitor, and implements a fix with the user approving each step.\nuser-invocable: true\n---\n\n# Fix autofixer false positives\n\nReduce `program_autofixer` false positives using real dismissal telemetry. The model dismisses an issue when it verifies a `false_positive_hints` condition holds, so a high dismissal rate on a rule means that rule's analysis is missing something the model can see.\n\nThis skill is a conversation, not a batch job. Never implement a fix the user has not approved, and never claim a root cause you have not confirmed by reading the rule source.\n\n## 1. Fetch the stats\n\nRank rules by dismissal burden over the last 90 days:\n\n```sql\nWITH parsed AS (\n  SELECT from_json(response_text, 'rules array\u003Cstring>, dismissed_rules array\u003Cstring>') AS j\n  FROM ${catalog}.${schema}.mcp_tool_calls\n  WHERE tool_name = 'program_autofixer' AND row_type = 'response'\n    AND timestamp >= current_timestamp() - INTERVAL 90 DAYS\n),\nfires AS (\n  SELECT explode(j.rules) AS rule, 1 AS fired, 0 AS dismissed FROM parsed\n  UNION ALL\n  SELECT explode(j.dismissed_rules) AS rule, 0 AS fired, 1 AS dismissed FROM parsed\n)\nSELECT rule, sum(fired) AS fires, sum(dismissed) AS dismissals,\n       round(100.0 * sum(dismissed) \u002F nullif(sum(fired), 0), 1) AS dismissal_pct\nFROM fires\nGROUP BY rule\nHAVING sum(fired) > 0\nORDER BY dismissals DESC\nLIMIT 20\n```\n\nUse `mcp__databricks__execute_sql_read_only`. Substitute `${catalog}` and `${schema}` from the deployed bundle values for the `catalog` and `schema` variables declared in `databricks.yml`; they are intentionally not committed, so ask the user if you cannot resolve them. Note that `rules` is a distinct set per tool call, so `fires` counts calls where the rule appeared, not individual issues.\n\nRank by absolute `dismissals`, not by percentage: a rule at 50% of 4 fires is noise, a rule at 20% of 800 fires is the real cost. Ignore rules under ~20 fires.\n\nThe 90-day window spans past fixes. Check `git log --oneline -20 -- lib\u002Ftools\u002FprogramAutofixer\u002Fvisitors\u002F` for rules already fixed; for those, re-run the query with a window starting after the fix deployed to see whether it actually worked, and tell the user the before\u002Fafter. That is how the loop closes: a previous run's fix is graded at the start of the next run, not at the end of its own.\n\nPresent the top rules to the user as a short table and ask which one to work on. Recommend one and say why.\n\n## 2. Find which blind spot\n\nFor the chosen rule, break dismissals down by which `false_positive_hints` index the model matched:\n\n```sql\nWITH parsed AS (\n  SELECT from_json(response_text, 'dismissed_hint_counts map\u003Cstring, map\u003Cstring, int>>') AS j\n  FROM ${catalog}.${schema}.mcp_tool_calls\n  WHERE tool_name = 'program_autofixer' AND row_type = 'response'\n    AND timestamp >= current_timestamp() - INTERVAL 90 DAYS\n),\nhits AS (SELECT explode(j.dismissed_hint_counts) AS (rule, buckets) FROM parsed)\nSELECT rule, bucket, sum(n) AS dismissals\nFROM hits LATERAL VIEW explode(buckets) AS bucket, n\nWHERE rule = '\u003CRULE>'\nGROUP BY rule, bucket\nORDER BY dismissals DESC\n```\n\nBucket keys are the hint index as a string, `'other'` when no listed hint matched, or `'unspecified'` when the caller omitted `matched_hint`. Map each index back to the hint text in the rule's visitor.\n\nThese counts are per dismissed issue, while step 1 counts calls, so the buckets sum higher than the step 1 dismissal count. Compare buckets against each other, not against step 1.\n\nA large `other` bucket means the hints themselves are incomplete: the model is finding a blind spot nobody has written down. That is a different fix from a hint index dominating.\n\nDismissal `reason` text and fingerprints are deliberately not logged, so the telemetry tells you *which* condition, never the specific code. Do not go looking for a raw reason column.\n\n## 3. Diagnose\n\nRead the rule at `lib\u002Ftools\u002FprogramAutofixer\u002Fvisitors\u002F\u003Crule>.ts` and its `false_positive_hints`. Shared analysis lives in `_helpers.ts` and `_anchor-helpers.ts`; the walker and visitor context are in `walk.ts` and `handler.ts`.\n\nCommon root causes seen so far:\n\n- **Scope too narrow.** Rule checks only the current function, but the verification lives in a caller, a helper, or elsewhere in the file. This was the `arbitrary-cpi` case (commit `9bbf0be`).\n- **Pattern too literal.** Rule matches one spelling of a safe construct and misses equivalent ones (builder chains, qualified paths, aliases).\n- **Missing framework knowledge.** Anchor constraint or macro already enforces the property, rule does not know about it.\n\nState the root cause to the user in a couple of sentences with the file:line evidence. If the telemetry and the source disagree, say so and stop rather than guessing.\n\n## 4. Propose, then confirm\n\nPropose the narrowest fix that kills the identified bucket. Give the user:\n\n- what changes, in which file\n- roughly how many of the observed dismissals it should eliminate\n- what it deliberately does not cover\n- the false-negative risk: every FP fix widens what the rule accepts as safe, so name what a real attacker could now slip past\n\nAsk the user to approve, adjust, or reject before writing any code. If the fix would suppress a genuine vulnerability class, say that plainly and prefer rewording the hint over loosening the check.\n\n## 5. Implement\n\n- Edit the rule (and helpers, if the analysis is shared).\n- Add fixtures to `tests\u002Funit\u002FprogramAutofixer\u002Ffixtures-anchor.ts` or `fixtures-pinocchio.ts` covering both directions: the FP pattern must stop firing, and a near-miss unsafe variant must still fire.\n- Run `pnpm test`. Report the real result; if anything fails, say so and fix it before continuing.\n- Update `false_positive_hints` if the fix makes a listed condition obsolete or reveals a new one.\n\nShow the user the diff and ask before committing. On approval, stage only the files the fix touched, never `git add -A`, and commit with a `fix(autofixer):` message describing the behavior change. Do not push or open a PR unless the user asks.\n\nPassing tests are not proof the fix worked; only telemetry is, and that arrives weeks later. Step 1 of the next run grades this one.\n","# Fix autofixer false positives\n\nReduce `program_autofixer` false positives using real dismissal telemetry. The model dismisses an issue when it verifies a `false_positive_hints` condition holds, so a high dismissal rate on a rule means that rule's analysis is missing something the model can see.\n\nThis skill is a conversation, not a batch job. Never implement a fix the user has not approved, and never claim a root cause you have not confirmed by reading the rule source.\n\n## 1. Fetch the stats\n\nRank rules by dismissal burden over the last 90 days:\n\n```sql\nWITH parsed AS (\n  SELECT from_json(response_text, 'rules array\u003Cstring>, dismissed_rules array\u003Cstring>') AS j\n  FROM ${catalog}.${schema}.mcp_tool_calls\n  WHERE tool_name = 'program_autofixer' AND row_type = 'response'\n    AND timestamp >= current_timestamp() - INTERVAL 90 DAYS\n),\nfires AS (\n  SELECT explode(j.rules) AS rule, 1 AS fired, 0 AS dismissed FROM parsed\n  UNION ALL\n  SELECT explode(j.dismissed_rules) AS rule, 0 AS fired, 1 AS dismissed FROM parsed\n)\nSELECT rule, sum(fired) AS fires, sum(dismissed) AS dismissals,\n       round(100.0 * sum(dismissed) \u002F nullif(sum(fired), 0), 1) AS dismissal_pct\nFROM fires\nGROUP BY rule\nHAVING sum(fired) > 0\nORDER BY dismissals DESC\nLIMIT 20\n```\n\nUse `mcp__databricks__execute_sql_read_only`. Substitute `${catalog}` and `${schema}` from the deployed bundle values for the `catalog` and `schema` variables declared in `databricks.yml`; they are intentionally not committed, so ask the user if you cannot resolve them. Note that `rules` is a distinct set per tool call, so `fires` counts calls where the rule appeared, not individual issues.\n\nRank by absolute `dismissals`, not by percentage: a rule at 50% of 4 fires is noise, a rule at 20% of 800 fires is the real cost. Ignore rules under ~20 fires.\n\nThe 90-day window spans past fixes. Check `git log --oneline -20 -- lib\u002Ftools\u002FprogramAutofixer\u002Fvisitors\u002F` for rules already fixed; for those, re-run the query with a window starting after the fix deployed to see whether it actually worked, and tell the user the before\u002Fafter. That is how the loop closes: a previous run's fix is graded at the start of the next run, not at the end of its own.\n\nPresent the top rules to the user as a short table and ask which one to work on. Recommend one and say why.\n\n## 2. Find which blind spot\n\nFor the chosen rule, break dismissals down by which `false_positive_hints` index the model matched:\n\n```sql\nWITH parsed AS (\n  SELECT from_json(response_text, 'dismissed_hint_counts map\u003Cstring, map\u003Cstring, int>>') AS j\n  FROM ${catalog}.${schema}.mcp_tool_calls\n  WHERE tool_name = 'program_autofixer' AND row_type = 'response'\n    AND timestamp >= current_timestamp() - INTERVAL 90 DAYS\n),\nhits AS (SELECT explode(j.dismissed_hint_counts) AS (rule, buckets) FROM parsed)\nSELECT rule, bucket, sum(n) AS dismissals\nFROM hits LATERAL VIEW explode(buckets) AS bucket, n\nWHERE rule = '\u003CRULE>'\nGROUP BY rule, bucket\nORDER BY dismissals DESC\n```\n\nBucket keys are the hint index as a string, `'other'` when no listed hint matched, or `'unspecified'` when the caller omitted `matched_hint`. Map each index back to the hint text in the rule's visitor.\n\nThese counts are per dismissed issue, while step 1 counts calls, so the buckets sum higher than the step 1 dismissal count. Compare buckets against each other, not against step 1.\n\nA large `other` bucket means the hints themselves are incomplete: the model is finding a blind spot nobody has written down. That is a different fix from a hint index dominating.\n\nDismissal `reason` text and fingerprints are deliberately not logged, so the telemetry tells you *which* condition, never the specific code. Do not go looking for a raw reason column.\n\n## 3. Diagnose\n\nRead the rule at `lib\u002Ftools\u002FprogramAutofixer\u002Fvisitors\u002F\u003Crule>.ts` and its `false_positive_hints`. Shared analysis lives in `_helpers.ts` and `_anchor-helpers.ts`; the walker and visitor context are in `walk.ts` and `handler.ts`.\n\nCommon root causes seen so far:\n\n- **Scope too narrow.** Rule checks only the current function, but the verification lives in a caller, a helper, or elsewhere in the file. This was the `arbitrary-cpi` case (commit `9bbf0be`).\n- **Pattern too literal.** Rule matches one spelling of a safe construct and misses equivalent ones (builder chains, qualified paths, aliases).\n- **Missing framework knowledge.** Anchor constraint or macro already enforces the property, rule does not know about it.\n\nState the root cause to the user in a couple of sentences with the file:line evidence. If the telemetry and the source disagree, say so and stop rather than guessing.\n\n## 4. Propose, then confirm\n\nPropose the narrowest fix that kills the identified bucket. Give the user:\n\n- what changes, in which file\n- roughly how many of the observed dismissals it should eliminate\n- what it deliberately does not cover\n- the false-negative risk: every FP fix widens what the rule accepts as safe, so name what a real attacker could now slip past\n\nAsk the user to approve, adjust, or reject before writing any code. If the fix would suppress a genuine vulnerability class, say that plainly and prefer rewording the hint over loosening the check.\n\n## 5. Implement\n\n- Edit the rule (and helpers, if the analysis is shared).\n- Add fixtures to `tests\u002Funit\u002FprogramAutofixer\u002Ffixtures-anchor.ts` or `fixtures-pinocchio.ts` covering both directions: the FP pattern must stop firing, and a near-miss unsafe variant must still fire.\n- Run `pnpm test`. Report the real result; if anything fails, say so and fix it before continuing.\n- Update `false_positive_hints` if the fix makes a listed condition obsolete or reveals a new one.\n\nShow the user the diff and ask before committing. On approval, stage only the files the fix touched, never `git add -A`, and commit with a `fix(autofixer):` message describing the behavior change. Do not push or open a PR unless the user asks.\n\nPassing tests are not proof the fix worked; only telemetry is, and that arrives weeks later. Step 1 of the next run grades this one.\n",{"name":5,"description":7,"user-invocable":47},true,"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fmcp-servers\u002Fsolana-fix-false-positives",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-12 02:28:42",{"source":8,"skillName":5,"commands":58,"prompt":68,"zipAvailable":47},[59,62,65],{"tool":60,"command":61},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill fix-false-positives",{"tool":63,"command":64},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill fix-false-positives",{"tool":66,"command":67},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill fix-false-positives","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fsolana-fix-false-positives\u002FSKILL.md",[70,76],{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"SOURCE.md","REFERENCE","参考文档",397,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fsolana-fix-false-positives\u002FSOURCE.md",{"path":77,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":78,"sourceHtmlUrl":79},"TRUST.auto.yaml",2274,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fsolana-fix-false-positives\u002FTRUST.auto.yaml",[81,110,133,151,164,174],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":85,"licenseFileUrl":86,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":42},"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.","MIT","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":42},"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":42},"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,149,124,150,123,122],"mexc spot rest","REST","admin","signing","Wallet","requests","actions","secure","data","orders",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":114,"licenseFileUrl":155,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":42},"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",[],[159,160,121,161,162,131,129,163,127,126,124,123],"mexc futures websocket","futures","position","ping","subscriptions",{"skillNo":165,"name":166,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":85,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":42},"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",[],[171,172,173],"refresh","0xklen version and refresh sanctions lists","version",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":85,"licenseFileUrl":178,"sourceHtmlUrl":179,"categories":180,"keywords":181,"publishedAt":42},"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",[],[182,183,184,185,186,187,188,33,189,190,191],"tests","cover","verify tests cover changed lines","verify","coverage","pr","exercise","patch","code","share"]