[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J46GREGSBVMZRY82RKPNBT":3,"skill-same:01M6J46GREGSBVMZRY82RKPNBT":54},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":14,"categories":15,"keywords":21,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":37,"ownerDescription":38,"updatedAt":39,"install":40,"resources":53},"01M6J46GREGSBVMZRY82RKPNBT","code-reviewer",null,"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\u002Fdocs\u002Fexamples\u002Fskill-templates\u002Fcode-reviewer\u002FSKILL.md",[16],{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[22,23,24],"code","code reviewer","reviewer","2026-11-10 10:12:30",false,"---\nname: [REPLACE: SKILL_NAME]\ndescription: First-touch review of newly opened PRs on [REPLACE: WATCHED_REPO] — verdict + welcoming comment + label\nmetadata:\n  category: dev\n  var: \"\"\n  tags:\n    - dev\n---\n\n> **${var}** — Optional. PR number to review. If empty, scans all newly-opened PRs on `[REPLACE: WATCHED_REPO]`.\n\nToday is ${today}. Review external PRs on **[REPLACE: WATCHED_REPO]** with a focus on **[REPLACE: REVIEW_FOCUS]**.\n\n## Steps\n\n1. **List candidates** — every open PR opened in the last 24h that hasn't been reviewed by this skill yet:\n\n   If `${var}` is set, that PR number is the only candidate. Otherwise get the cutoff with its own call, `date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ`, and write the printed value into the filter literally (the `\u003CSINCE>` below):\n\n   ```bash\n   gh pr list -R [REPLACE: WATCHED_REPO] --state open --json number,author,createdAt,additions,deletions --jq '.[] | select(.createdAt >= \"\u003CSINCE>\") | select(.author.login != \"github-actions[bot]\" and .author.login != \"aeonframework\") | .number'\n   ```\n\n   Track previously-reviewed PRs in `memory\u002Ftopics\u002F[REPLACE: SKILL_NAME]-reviewed.json` (a flat array of PR numbers). Skip anything already in there.\n\n2. **For each PR** — fetch metadata + diff:\n\n   One call per PR, with its number written in literally (the `\u003CPR>` below). Read the output directly; do not save it to a file:\n\n   ```bash\n   gh pr view \u003CPR> -R [REPLACE: WATCHED_REPO] --json title,body,additions,deletions,files,author\n   ```\n\n   ```bash\n   gh pr diff \u003CPR> -R [REPLACE: WATCHED_REPO]\n   ```\n\n   Run the diff call only for a PR under the size limit. Skip if `additions + deletions > [REPLACE: MAX_PR_LINES]`: flag it as `DEFERRED: too large for first-touch review`, leave a note, and move on.\n\n3. **Apply the rubric** — assign one of four verdicts:\n\n   | Verdict | Trigger |\n   |---------|---------|\n   | **ACCEPT** | Touches expected paths, follows repo conventions, focused scope, no obvious bugs in the diff. |\n   | **NEEDS-CHANGES** | Reasonable intent but specific issues: missing tests, broken format, incorrect assumption, naming. |\n   | **DEFER** | Out of scope for this skill — needs a human reviewer (large refactor, architectural change). |\n   | **OUT-OF-SCOPE** | Touches files outside what the repo accepts contributions on (e.g. lock files, generated assets). |\n\n   Focus the rubric on **[REPLACE: REVIEW_FOCUS]** — that's the lens that matters most for this repo.\n\n4. **Post a comment** — use a friendly, specific tone. Acknowledge the contributor, name the verdict, give 1-3 concrete bullets:\n\n   Write the comment to `\u002Ftmp\u002Freview-comment-\u003CPR>.md` with Write:\n\n   ```markdown\n   Thanks for the PR! [verdict text]\n\n   - [bullet 1]\n   - [bullet 2]\n   ```\n\n   Then post it:\n\n   ```bash\n   gh pr comment \u003CPR> -R [REPLACE: WATCHED_REPO] --body-file \u002Ftmp\u002Freview-comment-\u003CPR>.md\n   ```\n\n5. **Label** the PR via `gh pr edit \u003CPR> -R [REPLACE: WATCHED_REPO] --add-label \"\u003Clabel>\"`: use `accepted` \u002F `needs-changes` \u002F `defer` \u002F `out-of-scope` (create the labels in the target repo first if they don't exist).\n\n6. **Notify** via `.\u002Fnotify` only on `ACCEPT` or `OUT-OF-SCOPE` — those are the actionable verdicts for the operator. Silent on `NEEDS-CHANGES` and `DEFER` (the comment on the PR is the signal).\n\n7. **Log** — append to `memory\u002Flogs\u002F${today}.md`:\n   ```\n   ## [REPLACE: SKILL_NAME]\n   - **PRs reviewed**: N (skipped M as previously seen)\n   - **Verdicts**: accept=X, needs-changes=Y, defer=Z, out-of-scope=W\n   - **Status**: REVIEW_OK | REVIEW_QUIET (no new PRs)\n   ```\n\n## Network note\n\n`gh` handles auth via the workflow's `GITHUB_TOKEN`. To comment on or label a PR in **[REPLACE: WATCHED_REPO]**, the token needs `pull-requests: write` and `issues: write` permission on that repo — verify the workflow grants those, or this skill will silently fail to write.\n\n**Shell shape.** Each Bash call is one allowed command (pipes are fine). The run refuses a call that sets a variable (`PRS=$(gh pr list ...)`), uses `if` \u002F `for`, joins commands with `;`, `&&` or `||`, or redirects into a file (`> .pr-meta.json`), and each refusal costs a model turn. So make one `gh` call per PR with the number written in literally, read `gh` output directly, and write the comment body, `reviewed.json` and the log with Write\u002FEdit.\n\n## Constraints\n\n- **Be welcoming**. The PR may be someone's first open-source contribution. Lead with thanks, then specifics.\n- **Never auto-merge**. This skill is first-touch review, not auto-merge. Even an `ACCEPT` verdict still waits for a human merge.\n- **Idempotent**. Re-running the skill must never double-comment. The `reviewed.json` state file is what enforces that.\n","> **${var}** — Optional. PR number to review. If empty, scans all newly-opened PRs on `[REPLACE: WATCHED_REPO]`.\n\nToday is ${today}. Review external PRs on **[REPLACE: WATCHED_REPO]** with a focus on **[REPLACE: REVIEW_FOCUS]**.\n\n## Steps\n\n1. **List candidates** — every open PR opened in the last 24h that hasn't been reviewed by this skill yet:\n\n   If `${var}` is set, that PR number is the only candidate. Otherwise get the cutoff with its own call, `date -u -d '24 hours ago' +%Y-%m-%dT%H:%M:%SZ`, and write the printed value into the filter literally (the `\u003CSINCE>` below):\n\n   ```bash\n   gh pr list -R [REPLACE: WATCHED_REPO] --state open --json number,author,createdAt,additions,deletions --jq '.[] | select(.createdAt >= \"\u003CSINCE>\") | select(.author.login != \"github-actions[bot]\" and .author.login != \"aeonframework\") | .number'\n   ```\n\n   Track previously-reviewed PRs in `memory\u002Ftopics\u002F[REPLACE: SKILL_NAME]-reviewed.json` (a flat array of PR numbers). Skip anything already in there.\n\n2. **For each PR** — fetch metadata + diff:\n\n   One call per PR, with its number written in literally (the `\u003CPR>` below). Read the output directly; do not save it to a file:\n\n   ```bash\n   gh pr view \u003CPR> -R [REPLACE: WATCHED_REPO] --json title,body,additions,deletions,files,author\n   ```\n\n   ```bash\n   gh pr diff \u003CPR> -R [REPLACE: WATCHED_REPO]\n   ```\n\n   Run the diff call only for a PR under the size limit. Skip if `additions + deletions > [REPLACE: MAX_PR_LINES]`: flag it as `DEFERRED: too large for first-touch review`, leave a note, and move on.\n\n3. **Apply the rubric** — assign one of four verdicts:\n\n   | Verdict | Trigger |\n   |---------|---------|\n   | **ACCEPT** | Touches expected paths, follows repo conventions, focused scope, no obvious bugs in the diff. |\n   | **NEEDS-CHANGES** | Reasonable intent but specific issues: missing tests, broken format, incorrect assumption, naming. |\n   | **DEFER** | Out of scope for this skill — needs a human reviewer (large refactor, architectural change). |\n   | **OUT-OF-SCOPE** | Touches files outside what the repo accepts contributions on (e.g. lock files, generated assets). |\n\n   Focus the rubric on **[REPLACE: REVIEW_FOCUS]** — that's the lens that matters most for this repo.\n\n4. **Post a comment** — use a friendly, specific tone. Acknowledge the contributor, name the verdict, give 1-3 concrete bullets:\n\n   Write the comment to `\u002Ftmp\u002Freview-comment-\u003CPR>.md` with Write:\n\n   ```markdown\n   Thanks for the PR! [verdict text]\n\n   - [bullet 1]\n   - [bullet 2]\n   ```\n\n   Then post it:\n\n   ```bash\n   gh pr comment \u003CPR> -R [REPLACE: WATCHED_REPO] --body-file \u002Ftmp\u002Freview-comment-\u003CPR>.md\n   ```\n\n5. **Label** the PR via `gh pr edit \u003CPR> -R [REPLACE: WATCHED_REPO] --add-label \"\u003Clabel>\"`: use `accepted` \u002F `needs-changes` \u002F `defer` \u002F `out-of-scope` (create the labels in the target repo first if they don't exist).\n\n6. **Notify** via `.\u002Fnotify` only on `ACCEPT` or `OUT-OF-SCOPE` — those are the actionable verdicts for the operator. Silent on `NEEDS-CHANGES` and `DEFER` (the comment on the PR is the signal).\n\n7. **Log** — append to `memory\u002Flogs\u002F${today}.md`:\n   ```\n   ## [REPLACE: SKILL_NAME]\n   - **PRs reviewed**: N (skipped M as previously seen)\n   - **Verdicts**: accept=X, needs-changes=Y, defer=Z, out-of-scope=W\n   - **Status**: REVIEW_OK | REVIEW_QUIET (no new PRs)\n   ```\n\n## Network note\n\n`gh` handles auth via the workflow's `GITHUB_TOKEN`. To comment on or label a PR in **[REPLACE: WATCHED_REPO]**, the token needs `pull-requests: write` and `issues: write` permission on that repo — verify the workflow grants those, or this skill will silently fail to write.\n\n**Shell shape.** Each Bash call is one allowed command (pipes are fine). The run refuses a call that sets a variable (`PRS=$(gh pr list ...)`), uses `if` \u002F `for`, joins commands with `;`, `&&` or `||`, or redirects into a file (`> .pr-meta.json`), and each refusal costs a model turn. So make one `gh` call per PR with the number written in literally, read `gh` output directly, and write the comment body, `reviewed.json` and the log with Write\u002FEdit.\n\n## Constraints\n\n- **Be welcoming**. The PR may be someone's first open-source contribution. Lead with thanks, then specifics.\n- **Never auto-merge**. This skill is first-touch review, not auto-merge. Even an `ACCEPT` verdict still waits for a human merge.\n- **Idempotent**. Re-running the skill must never double-comment. The `reviewed.json` state file is what enforces that.\n",{},"main","d3388dfd66c33c15db8eb232fa0d13e18564b629","docs\u002Fexamples\u002Fskill-templates\u002Fcode-reviewer",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":7,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add MiroShark\u002Fmiroshark-aeon --skill code-reviewer",{"tool":46,"command":47},"bunx","bunx skills add MiroShark\u002Fmiroshark-aeon --skill code-reviewer",{"tool":49,"command":50},"pnpm","pnpm dlx skills add MiroShark\u002Fmiroshark-aeon --skill code-reviewer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMiroShark\u002Fmiroshark-aeon\u002Fblob\u002Fmain\u002Fdocs\u002Fexamples\u002Fskill-templates\u002Fcode-reviewer\u002FSKILL.md",true,[],[55,89,112,140,165,188],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":67,"publishedAt":25},"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",[61,66],{"categoryNo":62,"categoryName":63,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":17,"categoryName":18,"taxonomyType":19,"taxonomyTypeDesc":20},[68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88],"web search","search","you","you web search","web","time","only","api","web crawling","read","read-only","real-time","basics","keyless","with","research","results","high","quality","box","limits",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":25},"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",[],[96,97,98,99,100,75,101,102,103,104,80,105,106,107,108,109,110,111],"write","write tweet","standalone","social","studio","across","xai","past","drafts","twitter","thread","multi","size","via","format","content",{"skillNo":113,"name":114,"nameZh":6,"description":115,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":116,"categories":117,"keywords":121,"publishedAt":25},"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",[118],{"categoryNo":119,"categoryName":120,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000016","图像与多媒体",[122,123,124,125,126,127,128,73,129,130,131,132,133,134,135,136,137,96,138,139],"weekly","weekly aeoncard","as","usage","SVG","memory","card","Meta","image","recap","csv","monitoring","notifications","productivity","top","build","token","aeon",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":25},"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",[],[147,148,129,149,150,96,138,151,152,153,154,155,156,157,158,159,160,82,161,162,163,164],"tracker","vuln tracker","impact","scanner","status","action","security","pr","stars","lifecycle","dev","gh","aging","advisory","github","transitions","triage","global",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":174,"publishedAt":25},"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",[171],{"categoryNo":172,"categoryName":173,"taxonomyType":64,"taxonomyTypeDesc":65},"01JBSEEDCAT000000000000005","邮件与沟通",[150,175,176,177,178,129,179,153,180,181,182,157,161,183,164,184,75,185,186,187],"vuln scanner","resend","re","trending","repos","email","for","scan","vulnerabilities","submit","route","audit","send",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":8,"repositoryNo":11,"starsCount":12,"licenseSpdxId":13,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":25},"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",[194],{"categoryNo":119,"categoryName":120,"taxonomyType":64,"taxonomyTypeDesc":65},[196,197,198,199,200,201,202,203,204,80,205,206,207,82,208,209,210,211,212,110,213,214,215],"Video","video script","script","recording","sources","ready","direction","page","repo","claim","plain-language","glossary","first","verify","product","screen","update","list","live","receipts"]