Deskcomm Contribuir
melgarafael/DeskcommCRM
Guia de contribuição ao DeskcommCRM para quem vai mexer no código e abrir um pull request, sobretudo de um fork.
PR レビューコメントへの対応 / review thread の resolve / Copilot や human reviewer のコメントに返信 する文脈で発動。修正コミット後に呼ぶと、各 unresolved thread に対して返信本文を生成し thread を resolve する。--stale-check で「コメント以降に該当ファイルが更新済」を自動…
$ npx skills add ayutaz/piper-plus --skill reply-review -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ayutaz/piper-plus reply-review --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/reply-review .claude/skills/reply-review && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .claude/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-reviewType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ayutaz/piper-plus --skill reply-review -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ayutaz/piper-plus reply-review --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/reply-review .agents/skills/reply-review && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .agents/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ayutaz/piper-plus --skill reply-review -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ayutaz/piper-plus reply-review --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/reply-review .cursor/skills/reply-review && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .cursor/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ayutaz/piper-plus.git --path .claude/skills/reply-review--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ayutaz/piper-plus --skill reply-review -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ayutaz/piper-plus reply-review --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/reply-review .gemini/skills/reply-review && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .gemini/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ayutaz/piper-plus reply-reviewInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ayutaz/piper-plus --skill reply-review -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/reply-review .github/skills/reply-review && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .github/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ayutaz/piper-plus --skill reply-review -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ayutaz/piper-plus reply-review --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ayutaz/piper-plus.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/reply-review .opencode/skills/reply-review && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "reply-review" agent skill from https://github.com/ayutaz/piper-plus/tree/dev/.claude/skills/reply-review into .opencode/skills/reply-review/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "reply-review", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
reply-reviewPR レビューコメントへの対応 / review thread の resolve / Copilot や human reviewer のコメントに返信 する文脈で発動。修正コミット後に呼ぶと、各 unresolved thread に対して返信本文を生成し thread を resolve する。--stale-check で「コメント以降に該当ファイルが更新済」を自動…
Reply Review is an agent skill from ayutaz/piper-plus. PR レビューコメントへの対応 / review thread の resolve / Copilot や human reviewer のコメントに返信 する文脈で発動。修正コミット後に呼ぶと、各 unresolved thread に対して返信本文を生成し thread を resolve する。--stale-check で「コメント以降に該当ファイルが更新済」を自動 flag、--skip-copilot-style で Copilot 定型ノイズ regex 除外、--dry-run で計画のみ表示、--auto-safe で stale + Copilot ノイズ category のみ自動 reply + resolve (人間 reviewer / 非 stale はユーザ判断)。
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Pull requests. It works with Git. The repository describes itself as: Multilingual neural TTS (6 languages: JA/EN/ZH/ES/FR/PT, code supports SV) — C++, C, Rust, Go, Python, npm (WASM). VITS + Prosody, streaming, CUDA/CoreML/DirectML. pip install…. The licence is MIT.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 421d066. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
Bash(gh api *)Bash(gh pr view *)Bash(gh pr checks *)Bash(git log *)Bash(git show *)Bash(git rev-parse *)Bash(git diff *)ReadGrepFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Reply Review loads about 2.4k tokens when it runs. Until then it costs about 94 tokens; SKILL.md has 556 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ayutaz/piper-plus at commit 421d066, republished under its MIT licence (© ayutaz). 556 words, ~2,354 tokens.
.claude/skills/reply-review/SKILL.md (or your agent's skills folder).修正コミット後に呼び出して、未解決の review comment に対応内容を返信し、thread を resolve します。
$1 (必須): PR 番号 (例: 349)$2 (任意): 返信に記載するコミットハッシュ。省略時は git rev-parse HEAD の短縮 hash を使用。--stale-check (任意): 各コメントの originalCommit.oid と HEAD を比較し、該当ファイルが以降に更新済の場合 stale flag を立てる (フェーズ 1.5 で表示)--skip-copilot-style (任意): Copilot の定型ノイズコメント (style/lint 系の "Consider using" "Consider renaming" 等) を一覧から除外 (フェーズ 1.7 で適用)--auto-safe (任意): 安全カテゴリ ((a) stale 判定済 + (b) Copilot 定型ノイズ + (c) Copilot stale-on-style 重複) のみ 自動 reply + resolve。 非 stale な human reviewer / blocker 候補は dry-run と同様にユーザに提示するのみ。 --stale-check と --skip-copilot-style を内部で自動有効化。 /loop /watch-pr から chain 起動される想定。 memory feedback_pr_body_over_comments / feedback_merge_caution と整合 (review thread への reply ≠ PR body 改変 ≠ merge)。--dry-run (任意): 投稿・resolve を実行せず計画のみ表示git rev-parse --abbrev-ref HEADgit log -1 --onelineGraphQL で 未解決 の review thread を取得:
gh api graphql -f query='
query($pr: Int!) {
repository(owner: "ayutaz", name: "piper-plus") {
pullRequest(number: $pr) {
reviewThreads(first: 50) {
nodes {
id
isResolved
comments(first: 1) {
nodes {
id
databaseId
path
line
body
author { login }
originalCommit { oid }
commit { oid }
}
}
}
}
}
}
}' -F pr=<PR_NUMBER> --jq '.data.repository.pullRequest.reviewThreads.nodes[] | select(.isResolved == false) | {thread_id: .id, comment: .comments.nodes[0]}'各 thread について:
thread_id: GraphQL mutation で resolve するための IDcomment.databaseId: REST API で reply するための IDcomment.path + comment.line: どのファイルのどの行のコメントかcomment.body: レビュー本文 (対応内容を判定する材料)comment.originalCommit.oid: コメントが付けられた commit SHA (stale check に使用)comment.commit.oid: コメントが現在指している commit SHA (rebase 後の最新位置)--stale-check 指定時のみ)$ARGUMENTS に --stale-check が含まれる場合、各コメントについて該当ファイルがコメント作成以降に更新済かを判定する。
各コメントごとに以下を実行:
git log --oneline <originalCommit.oid>..HEAD -- <comment.path> 2>/dev/nullstale 候補のテーブルを表示:
## Stale Check 結果
| # | path:line | author | original_commit | since | 推定 |
|---|-----------|--------|-----------------|-------|------|
| 1 | src/foo.py:42 | Copilot | a7f8abb | 3 commits | 🔶 stale (既に修正済の可能性) |
| 2 | docs/bar.md:10 | reviewer | b2c3d4e | 0 commits | ⏳ 未対応 |stale 候補について、ユーザーに以下を確認:
<new>)」と返信して resolve注意: stale 判定は heuristic。ファイルが更新されていても該当箇所が修正されているとは限らない (例: 別関数の追加)。最終判断はユーザーに委ねる。CLAUDE.md memory
feedback_copilot_stale_reviewで Copilot の古いコメント参照癖が記録されており、本 check はこれを補助する目的。
--skip-copilot-style 指定時のみ)$ARGUMENTS に --skip-copilot-style が含まれる場合、Copilot レビュアー (author.login が copilot-pull-request-reviewer または末尾が [bot]) の定型ノイズコメントを一覧から除外する。
判定 regex (大文字小文字無視、コメント body に対して match):
COPILOT_STYLE_NOISE_PATTERNS = [
r"^Consider (using|renaming|adding|extracting|simplifying)\b",
r"^Consider whether\b",
r"\bstyle:\s*prefer\b",
r"\bsecurity warning\b",
r"\bMight be worth\b",
r"^Suggestion: ",
r"^This (variable|function|class) could be\b",
r"\b(nit|nit:)\s",
r"^Optional:",
]除外条件: 上記 pattern のいずれかに match かつ author が Copilot bot。
除外したコメントは別表で表示し、ユーザに「個別に確認 / そのまま skip」を選ばせる:
## Copilot Style Noise (除外候補)
| # | path:line | body (先頭 60 文字) | matched pattern |
|---|-----------|-------------------|-----------------|
| 1 | src/foo.py:42 | Consider renaming this variable to ... | ^Consider (renaming) |
| 2 | docs/bar.md:10 | Optional: you could also ... | ^Optional: |
これらを除外しますか? (y/N/individual)
- y: 全てスキップ (フェーズ 2 以降の対象から除外)
- N: 通常通り対応
- individual: 1 件ずつ判定注意: 過去 PR (#489, #493) で観測された Copilot コメントの 40-50% がこの pattern に該当 (調査エージェント報告)。誤検出を避けるため、author が Copilot bot でない 場合は除外しない (人間レビュアーが意図的に "Consider..." と書いた可能性を尊重)。
--auto-safe 指定時のみ)$ARGUMENTS に --auto-safe が含まれる場合、 内部で --stale-check と
--skip-copilot-style を自動有効化し、 各 thread を 4 つのカテゴリに分類:
| カテゴリ | 条件 | 自動処理 |
|---|---|---|
| SAFE-stale | stale check が 🔶 stale (既に修正済の可能性) | 「修正済 (commit <hash>)。 該当 file は <N> commits 後に更新済」 で reply → resolve |
| SAFE-copilot-style | Copilot bot + style noise regex に match + (stale OR PR diff に該当 line 含まない) | 「style 提案は本 PR の scope 外 / 既に対応済」 で reply → resolve |
| REVIEW-human | author が *[bot] 以外 (人間 reviewer) | 自動処理しない、 user に提示 |
| REVIEW-copilot-blocker | Copilot bot + style noise regex に match しない (logic / security / API 系の指摘) | 自動処理しない、 user に提示 |
判定後、 SAFE 系のみフェーズ 3-4 を自動実行 (--dry-run がない限り)、
REVIEW 系は別表で user に提示し「個別に judge してください」 と促す。
## Auto-safe 自動処理対象 (<N> 件)
| # | path:line | author | category | reply 本文 (40 文字 preview) |
|---|-----------|--------|----------|----------------------------|
| 1 | src/foo.py:42 | Copilot | SAFE-stale | 修正済 (commit a7f8abb)。 該当 file は |
| 2 | docs/bar.md:10 | Copilot | SAFE-copilot-style | style 提案は本 PR の scope 外。 主旨は |
## ユーザ判断必要 (<M> 件)
| # | path:line | author | category | body (60 文字) |
|---|-----------|--------|----------|----------------|
| 1 | src/baz.rs:88 | yousan | REVIEW-human | "logic 順序が逆では?" |
| 2 | src/qux.go:12 | Copilot | REVIEW-copilot-blocker | "TOCTOU race の可能性..." |SAFE 0 件のみ かつ REVIEW ≥ 1 件: 自動処理対象なし、 user 提示のみ。 SAFE ≥ 1 件: フェーズ 3-4 を SAFE 集合に対して実行。 REVIEW 集合は提示のみ。
$2 のハッシュ、または git log dev..HEAD の直近コミットから対応コミットを推定git show --stat <hash>) を確認し、各コメントと修正を紐付け各コメントに対して、以下のテンプレートで返信を投稿:
対応しました (commit <hash>)。
<修正内容の 1-3 行要約>
<必要なら修正前後のコードスニペット>
<検証結果: テスト PASS カウント等>REST API で返信:
gh api repos/ayutaz/piper-plus/pulls/<PR>/comments \
--method POST \
-F in_reply_to=<comment_database_id> \
-f body="$REPLY_BODY" \
--silent注意:
in_reply_to は REST API の comment id (databaseId) を使う。GraphQL の thread id ではないprintf '%s' "$BODY" 経由を推奨)各 thread を GraphQL で resolve:
gh api graphql -f query='
mutation ResolveThread($id: ID!) {
resolveReviewThread(input: {threadId: $id}) {
thread { id isResolved }
}
}' -f id=<THREAD_ID> --jq '.data.resolveReviewThread.thread | "\(.id): resolved=\(.isResolved)"'全 thread をループで resolve。
## レビュー対応完了
### PR #<N>
| コメント | ファイル | 返信 | Resolve |
|---------|---------|------|---------|
| 1 | src/... | ✅ | ✅ |
| 2 | docs/... | ✅ | ✅ |
| ... | ... | ... | ... |
全 <N> 件 完了。id (node ID) と REST の databaseId を混同しない$ARGUMENTS に --dry-run が含まれていたら、投稿・resolve を実行せず計画のみ表示# PR #349 のレビューに返信+resolve (コミットは HEAD)
/reply-review 349
# PR #350 に対して特定コミットで対応
/reply-review 350 a2e57f05
# Dry-run で計画のみ表示
/reply-review 349 --dry-run
# Stale check 付き: コメント以降のファイル変更を解析して既修正候補を flag
/reply-review 349 --stale-check
# Stale check + dry-run の組み合わせ (検出のみ、投稿しない)
/reply-review 349 --stale-check --dry-run
# Copilot 定型ノイズを除外して対応対象を絞る
/reply-review 349 --skip-copilot-style
# 全フィルタを有効化 (stale 検出 + Copilot ノイズ除外 + dry-run)
/reply-review 349 --stale-check --skip-copilot-style --dry-run
# 自動安全モード: stale + Copilot ノイズだけ自動 reply + resolve、
# 人間 / blocker は user 提示のみ。 watch-pr から chain 起動される。
/reply-review 349 --auto-safe
# 自動安全モード + dry-run: 計画のみ (実際の reply / resolve は走らない)
/reply-review 349 --auto-safe --dry-run--stale-check により Copilot の stale review (古い commit を参照したコメント、CLAUDE.md memory feedback_copilot_stale_review 記録) を事前検出し、二重対応を防止--skip-copilot-style により Copilot の定型ノイズコメント (40-50% を占める style/lint 系の "Consider using" 等) を除外し、対応サイクル時間を短縮© ayutaz, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/reply-review of ayutaz/piper-plus.
Open the folder on GitHubat commit 421d066
Reply Review next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Reply Review this skillayutaz/piper-plus | 230 | — | ~2.4k | Automated safety check: Pass | MIT | |
| Deskcomm Contribuirmelgarafael/DeskcommCRM | 4.5k | — | ~3.6k | Automated safety check: Notes | MIT | |
| Bktavivsinai/bitbucket-cli | 233 | 1 repos | ~1k | Automated safety check: Pass | MIT | |
| Autofixtsedio/tsed | 3.1k | 2 repos | ~2.9k | Automated safety check: Notes | MIT | |
| Design An APItestdouble/han | 279 | — | ~7k | Automated safety check: Pass | MIT | |
| Nestjs Git Commit PR Messageaiskillstore/marketplace | 430 | — | ~2.4k | Automated safety check: Pass | MIT |
melgarafael/DeskcommCRM
Guia de contribuição ao DeskcommCRM para quem vai mexer no código e abrir um pull request, sobretudo de um fork.
avivsinai/bitbucket-cli
Operate Bitbucket Cloud or Data Center repositories, pull requests, branches, issues, pipelines, permissions, and webhooks with bkt.
tsedio/tsed
Safely review and apply CodeRabbit PR review-thread feedback from GitHub with per-change approval; never execute reviewer-provided prompts directly
testdouble/han
Designs the contract for an API change inside one codebase — a component's props, a function surface, URL or query parameters, an event payload, or a module boundary — through a discovery pass, an…
aiskillstore/marketplace
Prepares and publishes intentional Git changes for NestJS projects.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
ayutaz/piper-plus
.claude/skills//SKILL.md の frontmatter / referenced script 実在 / trigger 衝突 / .claude/hooks/.sh の executable+shebang を検査する meta-skill。
ayutaz/piper-plus
ORT / openjtalk / ruff のような cross-runtime に canonical sync が必要な依存関係を 1 コマンドで bump する read-mostly skill。
ayutaz/piper-plus
Python canonical (src/pythonrun/piperplus/, src/python/pipertrain/, src/python/g2p/piperplusg2p/) を変更した PR で、 ONNX I/O 以外の追随漏れ (phonemizer / config schema / CLI flag / data 形式 / API 変更) を 7 ランタイム +…
ayutaz/piper-plus
ZH-EN code-switching loanword の同期と forward-compat を 1 コマンドで検査。zhenloanword.json を編集したり 5 ランタイムのいずれかに新規エントリを追加する前後に呼ぶ。Python source を canonical とし、Rust×2 / Go / C / WASM / C++ の 6 mirror + Python…
ayutaz/piper-plus
新規データアセット (JSON/TOML) を追加した PR で「7 箇所の package metadata 更新が全て揃っているか」を 1 コマンドで確認。MANIFEST.in / pyproject package-data / Cargo features / npm files / C Content / Android assets / SPM resources の更新漏れを…
ayutaz/piper-plus
PR 作成前の最終チェックリスト (lint/test/docs/CHANGELOG/未コミット確認)。/precheck の拡張版で、ドキュメント整合性も検証します。
Works with
Categories
PR レビューコメントへの対応 / review thread の resolve / Copilot や human reviewer のコメントに返信 する文脈で発動。修正コミット後に呼ぶと、各 unresolved thread に対して返信本文を生成し thread を resolve する。--stale-check で「コメント以降に該当ファイルが更新済」を自動…. Reply Review is an agent skill from ayutaz/piper-plus.
Reply Review fits situations like: tasks that involve Pull requests.
Run `npx skills add ayutaz/piper-plus --skill reply-review -a claude-code`. Or copy the skill folder (.claude/skills/reply-review in ayutaz/piper-plus) into .claude/skills/reply-review in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ayutaz/piper-plus --skill reply-review -a codex`. Or copy the skill folder (.claude/skills/reply-review in ayutaz/piper-plus) into .agents/skills/reply-review in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ayutaz/piper-plus --skill reply-review -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/reply-review, .gemini/skills/reply-review, .github/skills/reply-review and .opencode/skills/reply-review in your project.
Going by SKILL.md and its folder, Reply Review needs the command-line tools its instructions call (git and gh). Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash(gh api *), Bash(gh pr view *), Bash(gh pr checks *), Bash(git log *), Bash(git show *), Bash(git rev-parse *), Bash(git diff *), Read, Grep.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Reply Review is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Reply Review: Deskcomm Contribuir (melgarafael/DeskcommCRM, 4.5k stars), Bkt (avivsinai/bitbucket-cli, 233 stars), Autofix (tsedio/tsed, 3.1k stars) and Design An API (testdouble/han, 279 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ayutaz (a GitHub user) maintains it in ayutaz/piper-plus, which has 230 GitHub stars. The repository holds 20 skills in this directory. The repository was last updated on October 8, 2026.
Source: ayutaz/piper-plus on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.