code-reviewer
暂无简介
- License 许可
- MIT
- 所属仓库
- aeonfun/aeon
- 最近更新
- 2026-11-12
- Stars
- ★ 791
- Forks
- 305
03 SKILL.md 正文
${var} — Optional. PR number to review. If empty, scans all newly-opened PRs on
[REPLACE: WATCHED_REPO].
Today is ${today}. Review external PRs on [REPLACE: WATCHED_REPO] with a focus on [REPLACE: REVIEW_FOCUS].
Steps
-
List candidates — every open PR opened in the last 24h that hasn't been reviewed by this skill yet:
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<SINCE>below):gh pr list -R [REPLACE: WATCHED_REPO] --state open --json number,author,createdAt,additions,deletions --jq '.[] | select(.createdAt >= "<SINCE>") | select(.author.login != "github-actions[bot]" and .author.login != "aeonframework") | .number'Track previously-reviewed PRs in
memory/topics/[REPLACE: SKILL_NAME]-reviewed.json(a flat array of PR numbers). Skip anything already in there. -
For each PR — fetch metadata + diff:
One call per PR, with its number written in literally (the
<PR>below). Read the output directly; do not save it to a file:gh pr view <PR> -R [REPLACE: WATCHED_REPO] --json title,body,additions,deletions,files,authorgh pr diff <PR> -R [REPLACE: WATCHED_REPO]Run the diff call only for a PR under the size limit. Skip if
additions + deletions > [REPLACE: MAX_PR_LINES]: flag it asDEFERRED: too large for first-touch review, leave a note, and move on. -
Apply the rubric — assign one of four verdicts:
Verdict Trigger ACCEPT Touches expected paths, follows repo conventions, focused scope, no obvious bugs in the diff. NEEDS-CHANGES Reasonable intent but specific issues: missing tests, broken format, incorrect assumption, naming. DEFER Out of scope for this skill — needs a human reviewer (large refactor, architectural change). OUT-OF-SCOPE Touches files outside what the repo accepts contributions on (e.g. lock files, generated assets). Focus the rubric on [REPLACE: REVIEW_FOCUS] — that's the lens that matters most for this repo.
-
Post a comment — use a friendly, specific tone. Acknowledge the contributor, name the verdict, give 1-3 concrete bullets:
Write the comment to
/tmp/review-comment-<PR>.mdwith Write:Thanks for the PR! [verdict text] - [bullet 1] - [bullet 2]Then post it:
gh pr comment <PR> -R [REPLACE: WATCHED_REPO] --body-file /tmp/review-comment-<PR>.md -
Label the PR via
gh pr edit <PR> -R [REPLACE: WATCHED_REPO] --add-label "<label>": useaccepted/needs-changes/defer/out-of-scope(create the labels in the target repo first if they don't exist). -
Notify via
./notifyonly onACCEPTorOUT-OF-SCOPE— those are the actionable verdicts for the operator. Silent onNEEDS-CHANGESandDEFER(the comment on the PR is the signal). -
Log — append to
memory/logs/${today}.md:## [REPLACE: SKILL_NAME] - **PRs reviewed**: N (skipped M as previously seen) - **Verdicts**: accept=X, needs-changes=Y, defer=Z, out-of-scope=W - **Status**: REVIEW_OK | REVIEW_QUIET (no new PRs)
Network note
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.
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 / 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/Edit.
Constraints
- Be welcoming. The PR may be someone's first open-source contribution. Lead with thanks, then specifics.
- Never auto-merge. This skill is first-touch review, not auto-merge. Even an
ACCEPTverdict still waits for a human merge. - Idempotent. Re-running the skill must never double-comment. The
reviewed.jsonstate file is what enforces that.
04 同仓库更多 Skills
sns-digest
Digest Internet Computer governance - new and open NNS proposals and SNS DAO proposals - so the operator sees what is up for a vote without watching the dashboard. Fully public, no secret; fires only when there is something new to report.
icp-deploy-check
Pre-deploy safety checklist for an Internet Computer Rust canister - read a local/cloned canister repo and verify the deploy-time footguns from the canister-security checklist (controller backup, anonymous-principal rejection, no mainnet fetch_root_key, upgrade safety) before it ships. Static, read-only, no network and no mainnet action.
canister-status
Monitor Internet Computer canisters for control-plane changes - a new controller, a module-hash change (upgrade), or a canister going missing from the public index - and alert the moment one happens. Uses only the public IC dashboard API.
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
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}
weekly-aeoncard
Build a weekly token-consumption recap image from memory/token-usage.csv - this week + all-time totals, top skills, rendered as a shareable SVG card.