[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6H0QCVRBS6Z202JFJD09M18":3,"skill-same:01M6H0QCVRBS6Z202JFJD09M18":71},{"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":19,"publishedAt":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":40,"ownerDescription":41,"updatedAt":42,"install":43,"resources":56},"01M6H0QCVRBS6Z202JFJD09M18","triangulate-independent-sources",null,"Use when a factual claim rests on a single source. Confirms it against at least two independent origins before repeating it.","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-triangulate-independent-sources\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-triangulate-independent-sources\u002FSKILL.md",[],[20,21,22,23,24,25,26,27,28],"sources","triangulate independent sources","use","claim","it","at","source","single","when","2026-11-10 10:12:30",false,"---\nname: triangulate-independent-sources\ndescription: Use when a factual claim rests on a single source. Confirms it against at least two independent origins before repeating it.\n---\n\n# Triangulate Independent Sources\n\nA claim is only as strong as the number of *independent* places it survives. Two articles quoting the same press release are one source, not two.\n\n## Procedure\n\n1. List every load-bearing factual claim in the answer. A claim is load-bearing when deleting it changes the conclusion.\n2. For each claim record: URL, publisher, named author, publication date, and — critically — the origin that source cites.\n3. Trace citations to their root. Run `curl -sL \"\u003Curl>\" | grep -oE 'https?:\u002F\u002F[^\" ]+' | head`, then follow the first upstream link. If two sources resolve to the same root document, count them once.\n4. Score independence. Two sources are independent only if they differ in at least two of: publisher, underlying data, named author, funding source.\n5. Label each claim `[triangulated: N]`, `[single-source]`, or `[contradicted]` inline.\n6. When sources disagree, keep both figures and name the disagreement. Never average two conflicting numbers into one.\n7. If no second independent source exists, write `single-sourced from \u003CX>` rather than quietly deleting the hedge.\n\nA cheap independence probe:\n\n```python\nimport hashlib, urllib.request\ndef fingerprint(url):\n    body = urllib.request.urlopen(url, timeout=10).read()\n    return hashlib.sha256(body).hexdigest()[:12]\n# equal digests -> same upstream text -> one source\n```\n\n## Pitfalls\n\n- Syndication: one wire story printed in 40 outlets reads like 40 sources. Grep for the wire credit (\"Reuters\", \"AP\") and collapse them.\n- Circular reporting: an aggregator cites a blog that cites the aggregator back.\n- Date collapse: several pieces from the same 24-hour news cycle usually share one origin.\n- Silence is not denial — a source failing to mention a claim does not refute it.\n- Two papers by the same group on the same cohort are not independent replications.\n\n## Verification\n\n    grep -c '\\[single-source\\]' answer.md\n\nEvery load-bearing claim is either triangulated across 2+ independent sources or explicitly marked single-source. Report: \"Claim X triangulated across 2 independent sources (common origin suppressed); claim Z remains single-sourced and is flagged.\"\n","# Triangulate Independent Sources\n\nA claim is only as strong as the number of *independent* places it survives. Two articles quoting the same press release are one source, not two.\n\n## Procedure\n\n1. List every load-bearing factual claim in the answer. A claim is load-bearing when deleting it changes the conclusion.\n2. For each claim record: URL, publisher, named author, publication date, and — critically — the origin that source cites.\n3. Trace citations to their root. Run `curl -sL \"\u003Curl>\" | grep -oE 'https?:\u002F\u002F[^\" ]+' | head`, then follow the first upstream link. If two sources resolve to the same root document, count them once.\n4. Score independence. Two sources are independent only if they differ in at least two of: publisher, underlying data, named author, funding source.\n5. Label each claim `[triangulated: N]`, `[single-source]`, or `[contradicted]` inline.\n6. When sources disagree, keep both figures and name the disagreement. Never average two conflicting numbers into one.\n7. If no second independent source exists, write `single-sourced from \u003CX>` rather than quietly deleting the hedge.\n\nA cheap independence probe:\n\n```python\nimport hashlib, urllib.request\ndef fingerprint(url):\n    body = urllib.request.urlopen(url, timeout=10).read()\n    return hashlib.sha256(body).hexdigest()[:12]\n# equal digests -> same upstream text -> one source\n```\n\n## Pitfalls\n\n- Syndication: one wire story printed in 40 outlets reads like 40 sources. Grep for the wire credit (\"Reuters\", \"AP\") and collapse them.\n- Circular reporting: an aggregator cites a blog that cites the aggregator back.\n- Date collapse: several pieces from the same 24-hour news cycle usually share one origin.\n- Silence is not denial — a source failing to mention a claim does not refute it.\n- Two papers by the same group on the same cohort are not independent replications.\n\n## Verification\n\n    grep -c '\\[single-source\\]' answer.md\n\nEvery load-bearing claim is either triangulated across 2+ independent sources or explicitly marked single-source. Report: \"Claim X triangulated across 2 independent sources (common origin suppressed); claim Z remains single-sourced and is flagged.\"\n",{"name":5,"description":7},"main","3df1d0d67b30ff15236561f8c0f9f06d33f42dfd","skills\u002Fpayments\u002F0xklen-triangulate-independent-sources",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-15 02:28:10",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add jiayaoqijia\u002Fcryptoskill --skill triangulate-independent-sources",{"tool":49,"command":50},"bunx","bunx skills add jiayaoqijia\u002Fcryptoskill --skill triangulate-independent-sources",{"tool":52,"command":53},"pnpm","pnpm dlx skills add jiayaoqijia\u002Fcryptoskill --skill triangulate-independent-sources","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-triangulate-independent-sources\u002FSKILL.md",true,[57,61,67],{"path":58,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":16},"LICENSE","许可证",1063,{"path":62,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":65,"sourceHtmlUrl":66},"SOURCE.md","REFERENCE","参考文档",357,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-triangulate-independent-sources\u002FSOURCE.md",{"path":68,"resourceType":63,"resourceTypeDesc":64,"sizeBytes":69,"sourceHtmlUrl":70},"TRUST.auto.yaml",2206,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fpayments\u002F0xklen-triangulate-independent-sources\u002FTRUST.auto.yaml",[72,81,89,97,105,113],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":76,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":80},"01M764JA3MJZHRQHE7S59WX7XQ","evm-contract-control-audit","Find out who controls an EVM smart contract or protocol. Use when the user asks who owns, who controls, who can upgrade, who can mint or pause, or who holds the admin roles on an Ethereum, Base, Arbitrum, Optimism, Polygon, BSC or other EVM contract; whether an admin is an EOA or a multisig; whether a Safe is 1-of-N; whether privileged calls go through a timelock; to audit a protocol's admin surface or control graph; to produce a monitoring config for owner\u002Frole\u002Fupgrade changes; or to verify an ERC-8241 control disclosure against the chain. Read-only: no key, no wallet, nothing is ever sent on-chain.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fimal1ice-evm-contract-control-audit\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fmcp-servers\u002Fimal1ice-evm-contract-control-audit\u002FSKILL.md",[],[],"2026-11-12 13:55:43",{"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":15,"licenseFileUrl":85,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":80},"01M764FCP2BRPHDM7X7D06YR5B","solve-challenge","Solves CTF challenges by performing first-pass triage, identifying the dominant category, and routing execution to the right specialized ctf-* skill. Use when the user gives you a challenge bundle, a remote service, a suspicious file, or only a vague challenge description and you must determine where to start. Do not use it when the category is already clear and a specialized skill can be invoked directly; this is the dispatcher and recon entrypoint, not the deepest reference for category-specific techniques.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-solve-challenge\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-solve-challenge\u002FSKILL.md",[],[],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":93,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":80},"01M764F832BZV5Y3AFBSAG264J","osint-ctf-databases","Authoritative public databases and live APIs for OSINT CTF work. Use for geolocation, map\u002FPOI proximity, Wikidata\u002FCommons verification, domain\u002FRDAP\u002Fcertificate history, web archives, corporate registries, flight\u002Fvessel enrichment, and turning a vague clue into a reproducible source trail.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-osint-ctf-databases\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-osint-ctf-databases\u002FSKILL.md",[],[],{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":101,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":80},"01M764F3XF4THEXN5WN4HN1QXN","ctf-writeup","Generates a single standardized submission-style CTF writeup for competition handoff and organizer review. Use after solving a CTF challenge to document the solution steps, tools used, and lessons learned in a structured format.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-writeup\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-writeup\u002FSKILL.md",[],[],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":109,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":80},"01M764EY2J858TC7ARDJHMQ937","ctf-web-devtools","Browser-native reconnaissance with chrome-devtools-mcp for CTF web targets. Use when the challenge is a JS-heavy page or SPA and you need the exact API requests the page makes, POST bodies, console errors with stack traces, computed CSS, localStorage\u002Fsecrets, or screenshots — before moving to wire replay with curl\u002Fffuf. Pairs with ctf-web (ops loop) and feeds har_map.py.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-web-devtools\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-web-devtools\u002FSKILL.md",[],[],{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":117,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":80},"01M764ERZBS5CG2R81C7F8J5ND","ctf-stego","Front-loads steganography triage for CTF files. Use when an image, audio file, video, GIF, PDF or text file is described as containing something hidden, or when a challenge gives media with no obvious purpose, \"stego\", LSB, bit plane, palette, spectrogram, QR or metadata hints. Runs the project's preset sweep and filter library first instead of re-deriving extraction code, then routes to the stego MCP for structured checks. Do not use it for pure disk\u002Fmemory\u002Fnetwork forensics, for crypto on recovered data, or for reversing an encoder binary.","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-stego\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fdev-tools\u002Fabhay2008-ctf-stego\u002FSKILL.md",[],[]]