[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J4ENTAPBSPWV1DW5VTAJGF":3,"skill-same:01M6J4ENTAPBSPWV1DW5VTAJGF":78},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":59,"ownerHtmlUrl":60,"ownerBlogUrl":61,"ownerDescription":62,"updatedAt":63,"install":64,"resources":77},"01M6J4ENTAPBSPWV1DW5VTAJGF","hunter-22",null,"Scan the ClawHunter agent bounty marketplace for opportunities that genuinely match this agent's real capabilities (code, security research, writing) and surface only real matches — never a raw unfiltered dump. When a match is real audit-shaped work with a linked GitHub repo, the notification carries a one-tap button to dispatch vuln-scanner at it directly.","MiroShark\u002Fmiroshark-aeon","MiroShark","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F304594232?v=4","01M6J466B8NNAZ4H6NNK3N3TT5","01M6J466FXNNWH622S3B9PC496",20,"MIT","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fhunter-22\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"hunter","hunter 22","dispatch","when","github repo","for","notification","with","scan","scanner","tap","writing","only","never","repo","work","discovery","productivity","capabilities","code","research","github","2026-11-10 10:12:30",false,"---\nname: hunter-22\ndescription: Scan the ClawHunter agent bounty marketplace for opportunities that genuinely match this agent's real capabilities (code, security research, writing) and surface only real matches — never a raw unfiltered dump. When a match is real audit-shaped work with a linked GitHub repo, the notification carries a one-tap button to dispatch vuln-scanner at it directly.\nmetadata:\n  title: Hunter 22\n  mode: write\n  category: productivity\n  var: \"\"\n  tags: [bounties, income, discovery, security]\n  requires: []\n---\n\n> **${var}** — optional filter. Empty → default capability match (see below). `types:\u003Ca,b>` → restrict to bounty types (e.g. `types:code,research`). `min:\u003Cusd>` → minimum reward floor.\n\nToday is ${today}.\n\n## What this is\n\n[ClawHunter](https:\u002F\u002Fclawhunter.fun) is a paid API that indexes crypto\u002Fsocial bounty venues and ranks opportunities. This skill calls its **free discovery tier only** — no API key, no wallet, no payment. Read `docs\u002FClawHunter-API.md` in this repo for the endpoint reference (base URL, auth, rate limits).\n\nThis is **discovery only** for anything requiring human judgment or funds — it never claims, submits, or executes a bounty, and never touches a wallet. It surfaces candidates for the operator to act on manually, with one exception: when a match is real audit-shaped work (code\u002Fsecurity, with a linked GitHub repo), the notification carries a button that dispatches `vuln-scanner` at that repo — the operator still taps to trigger it, this skill never dispatches on its own. Do not call any `$` (paid, x402) endpoint in this skill; those require a funded wallet this fork does not have configured.\n\n## What to do\n\n1. Read `memory\u002Ftopics\u002Fhunter-22-seen.json` if it exists (dedup log — bounty IDs already surfaced, with the timestamp last seen). Create it empty (`[]`) if missing.\n2. Call `POST https:\u002F\u002Fclawhunter.fun\u002Fapi\u002Fv1\u002Fmatch` with this agent's real, demonstrated capabilities, then pipe its response directly through the mandatory expiration gate before reading or triaging it:\n   ```bash\n   curl -fsS -X POST https:\u002F\u002Fclawhunter.fun\u002Fapi\u002Fv1\u002Fmatch \\\n     -H 'content-type: application\u002Fjson' \\\n     --data '{\"capabilities\":[\"code\",\"security-research\",\"research\",\"writing\",\"dependency-analysis\"],\"canDoRealWorld\":false,\"minReward\":20,\"limit\":25}' \\\n     | node scripts\u002Fhunter-22-filter.mjs\n   ```\n   Run that command as written when `${var}` is empty. When `${var}` sets `types:\u003Ca,b>`, add `\"types\":[\"a\",\"b\"]` to the `--data` body before running it (`types` filters the bounty `types` field). When it sets `min:\u003Cusd>`, set `minReward` to that number before running it. Apply both edits when both are set.\n   Do not save, inspect, or triage the raw response. If the gate exits non-zero, treat the API as unavailable and stop. The gate removes expired and malformed deadlines deterministically. Its `gate.seen` list retains minimal dedup fields for all input candidates, including rejected ones. Use these real capabilities, not aspirational ones:\n   ```json\n   {\n     \"capabilities\": [\"code\", \"security-research\", \"research\", \"writing\", \"dependency-analysis\"],\n     \"canDoRealWorld\": false,\n     \"minReward\": 20,\n     \"limit\": 25\n   }\n   ```\n   `canDoRealWorld: false` — this agent has no wallet\u002Fpayment rails configured, so exclude bounties requiring on-chain execution or payment. Do NOT set `canDoRealWorld: true` unless a wallet has actually been funded and documented in `memory\u002Ftopics\u002F` — check first.\n3. Triage the gate output the same way as any other discovery skill - **be honest, not generous**:\n   - Drop anything that's really a content\u002Fsocial-growth task in disguise (tweet threads, engagement farming, influencer voice-cloning, \"get a streamer\u002Fcreator to post X\" outreach). A `requires` array that's only `engage`\u002F`outreach`\u002F`video`\u002F`image` with no `code`\u002F`onchain` is the tell — this agent has no content-generation or social-outreach tooling wired up and can't credibly deliver those.\n   - Keep bounties that map to real work: code fixes, dependency\u002Fsecurity review, technical writing, structured research with citable sources — the kind of work already demonstrated in `output\u002Farticles\u002Fvuln-scan-*.md`.\n   - For each kept candidate, sanity-check the reward is real (not vaporware) and that a remaining deadline is reachable.\n4. **Flag audit-shaped candidates.** For each candidate that survives step 3, check whether it's actually a code-security audit: `requires` includes `code` or `onchain`, **and** the bounty's `body`\u002F`url` contains a GitHub repo link (`github\\.com\u002F[\\w.-]+\u002F[\\w.-]+`). If both hold, extract `owner\u002Frepo` - this is exactly the Veilo-bounty shape (a Superteam listing naming a specific on-chain program's source repo). Not every kept candidate will have one; most won't.\n5. Diff against `memory\u002Ftopics\u002Fhunter-22-seen.json` - only report bounties not already seen in the last 14 days.\n6. Update `memory\u002Ftopics\u002Fhunter-22-seen.json`: append `{id, title, reward, seen_at}` from every entry in `gate.seen`, so candidates rejected by the hard gate still enter the dedup window. Prune entries older than 30 days.\n7. If there are new, genuinely-good matches: `.\u002Fnotify` with a short, decision-grade list - title, reward, venue, one-line why-it-matches, link. Lead with the count and the best one. For any match flagged audit-shaped in step 4, add an inline button so the operator can dispatch the audit in one tap:\n   ```bash\n   .\u002Fnotify -f \u002Ftmp\u002Fhunter22-notify.md --buttons '[[\n     {\"text\":\"Audit owner\u002Frepo\",\"callback_data\":\"run:vuln-scanner:owner\u002Frepo\"},\n     {\"text\":\"Open bounty\",\"url\":\"\u003Cbounty url>\"}\n   ]]'\n   ```\n   `callback_data` has a hard 64-byte limit (see `docs\u002Ftelegram-commands.md`) — `run:vuln-scanner:owner\u002Frepo` fits comfortably for any realistic repo path. If more than one candidate this run is audit-shaped, send one notify per candidate (each with its own button row) rather than merging them, so a tap is unambiguous about which repo it targets.\n   If nothing new or nothing real survived triage, do **not** notify (see CLAUDE.md: \"notify only on signal\").\n8. Commit `memory\u002Ftopics\u002Fhunter-22-seen.json` with an updated `timestamp:`.\n\n## Guardrails\n\n- Never call a paid (`$`) endpoint. Never touch `\u002Ftools\u002F*`, `\u002Fchat\u002Fcompletions`, or anything billed via x402 in this skill.\n- Never claim or submit a bounty on the operator's behalf - this skill only surfaces candidates, and the audit-dispatch button in step 7 still requires a human tap, not an automatic trigger.\n- If the API is unreachable or rate-limited, log it and exit quietly — do not retry aggressively (60\u002Fmin per IP is the documented ceiling; this runs once daily, nowhere close).\n","> **${var}** — optional filter. Empty → default capability match (see below). `types:\u003Ca,b>` → restrict to bounty types (e.g. `types:code,research`). `min:\u003Cusd>` → minimum reward floor.\n\nToday is ${today}.\n\n## What this is\n\n[ClawHunter](https:\u002F\u002Fclawhunter.fun) is a paid API that indexes crypto\u002Fsocial bounty venues and ranks opportunities. This skill calls its **free discovery tier only** — no API key, no wallet, no payment. Read `docs\u002FClawHunter-API.md` in this repo for the endpoint reference (base URL, auth, rate limits).\n\nThis is **discovery only** for anything requiring human judgment or funds — it never claims, submits, or executes a bounty, and never touches a wallet. It surfaces candidates for the operator to act on manually, with one exception: when a match is real audit-shaped work (code\u002Fsecurity, with a linked GitHub repo), the notification carries a button that dispatches `vuln-scanner` at that repo — the operator still taps to trigger it, this skill never dispatches on its own. Do not call any `$` (paid, x402) endpoint in this skill; those require a funded wallet this fork does not have configured.\n\n## What to do\n\n1. Read `memory\u002Ftopics\u002Fhunter-22-seen.json` if it exists (dedup log — bounty IDs already surfaced, with the timestamp last seen). Create it empty (`[]`) if missing.\n2. Call `POST https:\u002F\u002Fclawhunter.fun\u002Fapi\u002Fv1\u002Fmatch` with this agent's real, demonstrated capabilities, then pipe its response directly through the mandatory expiration gate before reading or triaging it:\n   ```bash\n   curl -fsS -X POST https:\u002F\u002Fclawhunter.fun\u002Fapi\u002Fv1\u002Fmatch \\\n     -H 'content-type: application\u002Fjson' \\\n     --data '{\"capabilities\":[\"code\",\"security-research\",\"research\",\"writing\",\"dependency-analysis\"],\"canDoRealWorld\":false,\"minReward\":20,\"limit\":25}' \\\n     | node scripts\u002Fhunter-22-filter.mjs\n   ```\n   Run that command as written when `${var}` is empty. When `${var}` sets `types:\u003Ca,b>`, add `\"types\":[\"a\",\"b\"]` to the `--data` body before running it (`types` filters the bounty `types` field). When it sets `min:\u003Cusd>`, set `minReward` to that number before running it. Apply both edits when both are set.\n   Do not save, inspect, or triage the raw response. If the gate exits non-zero, treat the API as unavailable and stop. The gate removes expired and malformed deadlines deterministically. Its `gate.seen` list retains minimal dedup fields for all input candidates, including rejected ones. Use these real capabilities, not aspirational ones:\n   ```json\n   {\n     \"capabilities\": [\"code\", \"security-research\", \"research\", \"writing\", \"dependency-analysis\"],\n     \"canDoRealWorld\": false,\n     \"minReward\": 20,\n     \"limit\": 25\n   }\n   ```\n   `canDoRealWorld: false` — this agent has no wallet\u002Fpayment rails configured, so exclude bounties requiring on-chain execution or payment. Do NOT set `canDoRealWorld: true` unless a wallet has actually been funded and documented in `memory\u002Ftopics\u002F` — check first.\n3. Triage the gate output the same way as any other discovery skill - **be honest, not generous**:\n   - Drop anything that's really a content\u002Fsocial-growth task in disguise (tweet threads, engagement farming, influencer voice-cloning, \"get a streamer\u002Fcreator to post X\" outreach). A `requires` array that's only `engage`\u002F`outreach`\u002F`video`\u002F`image` with no `code`\u002F`onchain` is the tell — this agent has no content-generation or social-outreach tooling wired up and can't credibly deliver those.\n   - Keep bounties that map to real work: code fixes, dependency\u002Fsecurity review, technical writing, structured research with citable sources — the kind of work already demonstrated in `output\u002Farticles\u002Fvuln-scan-*.md`.\n   - For each kept candidate, sanity-check the reward is real (not vaporware) and that a remaining deadline is reachable.\n4. **Flag audit-shaped candidates.** For each candidate that survives step 3, check whether it's actually a code-security audit: `requires` includes `code` or `onchain`, **and** the bounty's `body`\u002F`url` contains a GitHub repo link (`github\\.com\u002F[\\w.-]+\u002F[\\w.-]+`). If both hold, extract `owner\u002Frepo` - this is exactly the Veilo-bounty shape (a Superteam listing naming a specific on-chain program's source repo). Not every kept candidate will have one; most won't.\n5. Diff against `memory\u002Ftopics\u002Fhunter-22-seen.json` - only report bounties not already seen in the last 14 days.\n6. Update `memory\u002Ftopics\u002Fhunter-22-seen.json`: append `{id, title, reward, seen_at}` from every entry in `gate.seen`, so candidates rejected by the hard gate still enter the dedup window. Prune entries older than 30 days.\n7. If there are new, genuinely-good matches: `.\u002Fnotify` with a short, decision-grade list - title, reward, venue, one-line why-it-matches, link. Lead with the count and the best one. For any match flagged audit-shaped in step 4, add an inline button so the operator can dispatch the audit in one tap:\n   ```bash\n   .\u002Fnotify -f \u002Ftmp\u002Fhunter22-notify.md --buttons '[[\n     {\"text\":\"Audit owner\u002Frepo\",\"callback_data\":\"run:vuln-scanner:owner\u002Frepo\"},\n     {\"text\":\"Open bounty\",\"url\":\"\u003Cbounty url>\"}\n   ]]'\n   ```\n   `callback_data` has a hard 64-byte limit (see `docs\u002Ftelegram-commands.md`) — `run:vuln-scanner:owner\u002Frepo` fits comfortably for any realistic repo path. If more than one candidate this run is audit-shaped, send one notify per candidate (each with its own button row) rather than merging them, so a tap is unambiguous about which repo it targets.\n   If nothing new or nothing real survived triage, do **not** notify (see CLAUDE.md: \"notify only on signal\").\n8. Commit `memory\u002Ftopics\u002Fhunter-22-seen.json` with an updated `timestamp:`.\n\n## Guardrails\n\n- Never call a paid (`$`) endpoint. Never touch `\u002Ftools\u002F*`, `\u002Fchat\u002Fcompletions`, or anything billed via x402 in this skill.\n- Never claim or submit a bounty on the operator's behalf - this skill only surfaces candidates, and the audit-dispatch button in step 7 still requires a human tap, not an automatic trigger.\n- If the API is unreachable or rate-limited, log it and exit quietly — do not retry aggressively (60\u002Fmin per IP is the documented ceiling; this runs once daily, nowhere close).\n",{"name":5,"metadata":45,"description":7},{"var":46,"mode":47,"tags":48,"title":52,"category":35,"requires":53},"","write",[49,50,34,51],"bounties","income","security","Hunter 22",[],"main","b582c38fd13a043dca7ed24605354715d7a6e3f2","skills\u002Fhunter-22",2,"https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon","https:\u002F\u002Ft.me\u002Fmiroshark_aeon","https:\u002F\u002Fgithub.com\u002FMiroShark","https:\u002F\u002Fwww.miroshark.xyz\u002F","Simulate anything, for $1 & less than 10 min.","2026-11-14 00:33:09",{"source":8,"skillName":5,"commands":65,"prompt":75,"zipAvailable":76},[66,69,72],{"tool":67,"command":68},"npx","npx skills add MiroShark\u002Fmiroshark-aeon --skill hunter-22",{"tool":70,"command":71},"bunx","bunx skills add MiroShark\u002Fmiroshark-aeon --skill hunter-22",{"tool":73,"command":74},"pnpm","pnpm dlx skills add MiroShark\u002Fmiroshark-aeon --skill hunter-22","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fhunter-22\u002FSKILL.md",true,[],[79,114,136,163,185,206],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":95,"publishedAt":40},"01M6J4P8XKB8RJ7PCYMZPZ0F6S","you-web-search","Web search using You.com Search API with high-quality, cited results — runs keyless out of the box; YDC_API_KEY unlocks higher limits and real-time web crawling","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fyou-web-search\u002FSKILL.md",[85,90],{"categoryNo":86,"categoryName":87,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":91,"categoryName":92,"taxonomyType":93,"taxonomyTypeDesc":94},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[96,97,98,99,100,101,30,102,103,104,105,106,107,108,25,38,109,110,111,112,113],"web search","search","you","you web search","web","time","api","web crawling","read","read-only","real-time","basics","keyless","results","high","quality","box","limits",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":120,"publishedAt":40},"01M6J4P4H35WQG6RHGTTACSMVW","write-tweet","Multi-format tweet studio - standalone drafts (10 across 5 size tiers), a 5-10 tweet thread, or 10 remixes of past tweets, selected via ${var}","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fwrite-tweet\u002FSKILL.md",[],[47,121,122,123,124,102,125,126,127,128,107,129,130,131,132,133,134,135],"write tweet","standalone","social","studio","across","xai","past","drafts","twitter","thread","multi","size","via","format","content",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":145,"publishedAt":40},"01M6J4P11K7ZJ2PJDHDTTFZ1HY","weekly-aeoncard","Build a weekly token-consumption recap image from memory\u002Ftoken-usage.csv - this week + all-time totals, top skills, rendered as a shareable SVG card.","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fweekly-aeoncard\u002FSKILL.md",[142],{"categoryNo":143,"categoryName":144,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000016","图像与多媒体",[146,147,148,149,150,151,152,101,153,154,155,156,157,158,35,159,160,47,161,162],"weekly","weekly aeoncard","as","usage","SVG","memory","card","Meta","image","recap","csv","monitoring","notifications","top","build","token","aeon",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":40},"01M6J4NVJYQP5DNKSGXAXQW06B","vuln-tracker","One lifecycle poll over everything vuln-scanner produces - PR and advisory status, PVR triage transitions, and pending-disclosure aging, with a stars-secured impact headline and one action queue.","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fvuln-tracker\u002FSKILL.md",[],[170,171,153,172,27,47,161,173,174,51,175,176,177,178,179,180,181,25,39,182,183,184],"tracker","vuln tracker","impact","status","action","pr","stars","lifecycle","dev","gh","aging","advisory","transitions","triage","global",{"skillNo":186,"name":187,"nameZh":6,"description":188,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":189,"categories":190,"keywords":194,"publishedAt":40},"01M6J4NNQCHTKNGENAPJQ8KYHR","vuln-scanner","Audit trending repos for real security vulnerabilities and disclose responsibly - scan and route findings (PVR \u002F dependency PR), re-submit queued advisories, and send armed email disclosures","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fvuln-scanner\u002FSKILL.md",[191],{"categoryNo":192,"categoryName":193,"taxonomyType":88,"taxonomyTypeDesc":89},"01JBSEEDCAT000000000000005","邮件与沟通",[27,195,196,197,198,153,199,51,200,23,26,178,39,201,184,202,102,203,204,205],"vuln scanner","resend","re","trending","repos","email","vulnerabilities","submit","route","audit","send",{"skillNo":207,"name":208,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":213,"publishedAt":40},"01M6J4NFBXTGG0R4M484T0KNYW","video-script","Turn a repo, product page, or update into a recording-ready video script in a receipts-first format - verifies every claim against live sources, then writes timestamped VO + on-screen direction with a plain-language glossary, assets checklist, anti-tells, and a verify-before-recording list","https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fskills\u002Fvideo-script\u002FSKILL.md",[212],{"categoryNo":143,"categoryName":144,"taxonomyType":88,"taxonomyTypeDesc":89},[214,215,216,217,218,219,220,221,32,107,222,223,224,25,225,226,227,228,229,134,230,231,232],"Video","video script","script","recording","sources","ready","direction","page","claim","plain-language","glossary","first","verify","product","screen","update","list","live","receipts"]