Slash Command Reference
This repository bundles eight slash commands across three plugins:
| Plugin | Command | Best for | Triggered workflow |
|---|---|---|---|
myk-github |
/myk-github:coderabbit-rate-limit |
Waiting out a CodeRabbit cooldown | coderabbit check -> coderabbit trigger |
myk-github |
/myk-github:pr-review |
Reviewing an open GitHub PR and posting selected findings | pr diff -> pr claude-md -> 3 reviewer tasks -> pr post-comment |
myk-github |
/myk-github:refine-review |
Polishing your own pending GitHub review comments before submission | reviews pending-fetch -> AI refinement -> reviews pending-update |
myk-github |
/myk-github:release |
Validating, versioning, and publishing a GitHub release | release info -> release detect-versions -> optional release bump-version -> release create |
myk-github |
/myk-github:review-handler |
Working through human, Qodo, and CodeRabbit feedback end to end | reviews fetch -> decision/fix/test loop -> reviews post -> reviews store |
myk-review |
/myk-review:local |
Reviewing local changes before or instead of a PR | git diff -> 3 reviewer tasks |
myk-review |
/myk-review:query-db |
Querying stored review history and analytics | db stats|patterns|dismissed|query|find-similar |
myk-acpx |
/myk-acpx:prompt |
Sending prompts to ACP-compatible coding agents through acpx |
acpx session, exec, fix, or peer workflow |
Most of the GitHub and review commands are orchestration layers over the bundled helper CLI:
[project.scripts]
myk-claude-tools = "myk_claude_tools.cli:main"
The slash command metadata itself is defined in each command file. A typical example looks like this:
description: Review a GitHub PR and post inline comments on selected findings
argument-hint: [PR_NUMBER|PR_URL]
allowed-tools: Bash(myk-claude-tools:*), Bash(uv:*), Bash(git:*), Bash(gh:*), AskUserQuestion, Task
Note: The
allowed-toolsvalues below come from each command's frontmatter. They describe the command's intended tool budget. Your local Claude Code installation still needs the matching executables and permissions.
Shared Prerequisites
myk-claude-toolsbacks mostmyk-githubcommands and/myk-review:query-db.ghis required for GitHub PR, comment, and release operations.gitis required anywhere the workflow inspects or validates the local worktree.acpxplus the underlying agent CLI are required for/myk-acpx:prompt./myk-github:pr-reviewand/myk-review:localboth expect the reviewer agentssuperpowers:code-reviewer,pr-review-toolkit:code-reviewer, andfeature-dev:code-reviewerto be available.
Tip: When a command checks for
myk-claude-toolsand cannot find it, the command docs consistently instruct Claude to offeruv tool install myk-claude-tools.
Allowed Tools Cheat Sheet
| Tool token | What it means in practice |
|---|---|
Bash(myk-claude-tools:*) |
Run the repo's helper CLI subcommands such as pr diff, reviews fetch, or release info |
Bash(gh:*) |
Call GitHub CLI for PRs, GraphQL, comments, and releases |
Bash(git:*) |
Inspect or update local git state |
Bash(acpx:*) |
Run ACP-compatible agent CLIs through acpx |
AskUserQuestion |
Require an explicit choice or confirmation from you |
Task |
Launch structured parallel review tasks |
Agent |
Delegate implementation or specialist analysis work |
Edit / Write |
Update temp handoff files, or in myk-acpx:prompt, allow writable workflows |
Read, Glob, Grep |
Read and search the workspace, mainly for myk-acpx:prompt |
myk-github
The myk-github plugin bundles GitHub-facing workflows: PR review, review follow-up, release automation, and CodeRabbit cooldown handling.
/myk-github:coderabbit-rate-limit
Use this when CodeRabbit has rate-limited a PR and you want Claude to wait, retrigger the review, and watch for it to start.
argument-hint:[PR_NUMBER|PR_URL]allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*),Bash(git:*),Bash(gh:*)
Actual usage examples:
/myk-github:coderabbit-rate-limit
/myk-github:coderabbit-rate-limit 123
/myk-github:coderabbit-rate-limit https://github.com/owner/repo/pull/123
What it does:
- Resolves the PR from a URL, a PR number, or the current branch.
- Runs the helper CLI to check CodeRabbit's current status.
- If the PR is rate-limited, adds a 30-second safety buffer and triggers a fresh
@coderabbitai review. - Polls every 60 seconds for up to 10 minutes to confirm the review has started.
The core helper calls are exactly these:
myk-claude-tools coderabbit check <owner/repo> <pr_number>
myk-claude-tools coderabbit trigger <owner/repo> <pr_number> --wait <wait_seconds + 30>
A few implementation details matter here:
- The rate-limit detector looks for CodeRabbit's summary comment on the PR and parses the cooldown text from that comment.
- The trigger flow treats two consecutive "summary comment disappeared" checks as success, because that usually means CodeRabbit replaced the summary while starting a new review.
- If the PR is not rate-limited, the command exits early instead of waiting.
Warning: This workflow depends on CodeRabbit's summary comment being present on the PR. If that comment is missing, the check step fails instead of guessing.
/myk-github:pr-review
Use this when you want Claude to review an actual GitHub PR, merge findings from three review agents, and post only the findings you approve.
argument-hint:[PR_NUMBER|PR_URL]allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*),Bash(git:*),Bash(gh:*),AskUserQuestion,Task
Actual usage examples:
/myk-github:pr-review
/myk-github:pr-review 123
/myk-github:pr-review https://github.com/owner/repo/pull/123
What it does:
- Detects the PR from the current branch when you do not pass an argument.
- Fetches PR metadata, full diff text, and changed-file data through
myk-claude-tools pr diff. - Fetches project rules through
myk-claude-tools pr claude-md. The helper checks localCLAUDE.mdor.claude/CLAUDE.mdfirst when you are already in the target repo, then falls back to GitHub. - Runs three review agents in parallel and merges their findings.
- Shows the findings grouped by severity and asks which ones to post.
- Posts the selected findings back to GitHub as a single review.
The reviewer trio is defined directly in the command workflow:
- superpowers:code-reviewer
- pr-review-toolkit:code-reviewer
- feature-dev:code-reviewer
One important detail for fork PRs: the command uses gh repo view to determine the base repository context. That avoids accidentally treating the fork as the target repo.
When the posting step runs, it uses the helper CLI's JSON contract for inline review comments:
JSON Input Format (array of comments):
[
{
"path": "src/main.py",
"line": 42,
"body": "### [CRITICAL] SQL Injection\n\nDescription..."
},
{
"path": "src/utils.py",
"line": 15,
"body": "### [WARNING] Missing error handling\n\nDescription..."
}
]
Severity Markers:
- ### [CRITICAL] Title - For critical security/functionality issues
- ### [WARNING] Title - For important but non-critical issues
- ### [SUGGESTION] Title - For code improvements and suggestions
That means the final post back to GitHub is not just free-form prose. It is a structured review with per-line comments and a summary body.
Tip: Inline review comments only work on lines that are actually part of the PR diff. If posting fails, the helper CLI specifically points to stale line numbers, wrong file paths, or a stale PR head SHA as the most common causes.
/myk-github:refine-review
Use this when you have already started a review in GitHub, added draft comments, and want Claude to polish those comments before you submit them.
argument-hint:<PR_URL>allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*),AskUserQuestion,Edit(/tmp/claude/**),Write(/tmp/claude/**)
Actual usage example:
/myk-github:refine-review https://github.com/owner/repo/pull/123
What it does:
- Fetches your own pending review with
myk-claude-tools reviews pending-fetch "<PR_URL>". - Loads the pending review comments plus PR diff context from a temp JSON file.
- Generates refined wording for each comment while preserving the original technical intent.
- Shows you each original comment alongside the refined version.
- Lets you accept all, accept specific comments, keep originals, cancel, or replace individual comments with custom text.
- Updates the temp JSON and runs
myk-claude-tools reviews pending-update, optionally with--submit.
The backing helper calls are straightforward:
myk-claude-tools reviews pending-fetch "<PR_URL>"
myk-claude-tools reviews pending-update "<json_path>" --submit
The workflow is intentionally conservative:
- It only updates
refined_bodyandstatusfor each comment during the accept/reject step. - It only submits the review if you explicitly choose a submit action.
- The lower-level fetcher only works against the authenticated user's latest
PENDINGreview on that PR.
Warning: This command requires a full PR URL. A bare PR number is not enough.
Note: The pending-review fetcher stores diff context in the temp JSON, but it truncates very large diffs after 50,000 characters. On very large PRs, refinement happens with shortened context instead of the full diff.
/myk-github:release
Use this when you want Claude to validate the repo state, generate a conventional-commit changelog, optionally bump version files, and publish a GitHub release.
argument-hint:[--dry-run] [--prerelease] [--draft] [--target <branch>] [--tag-match <pattern>]allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*),Bash(git:*),Bash(gh:*),AskUserQuestion
Actual usage examples:
/myk-github:release
/myk-github:release --dry-run
/myk-github:release --prerelease
/myk-github:release --draft
What it does:
- Runs
myk-claude-tools release infoto validate branch, worktree cleanliness, and sync with remote. - Runs
myk-claude-tools release detect-versionsto discover version files in the current repository. - Parses commits since the last matching tag and proposes a major, minor, or patch bump using conventional-commit rules.
- Shows you the proposed version and changelog, and lets you override the bump type or exclude detected version files.
- If version files are being updated, runs
myk-claude-tools release bump-version. - Creates a bump branch, commits, pushes, opens a PR, and merges it.
- Creates the GitHub release with
myk-claude-tools release create.
The release helper exposes these subcommands:
myk-claude-tools release info --target <branch> --tag-match <pattern>
myk-claude-tools release detect-versions
myk-claude-tools release bump-version <VERSION> --files <file1> --files <file2>
myk-claude-tools release create <owner/repo> <tag> "<changelog_file>"
Version detection is broader than just Python packages. The implementation scans these root-level files:
_ROOT_SCANNERS = [
("pyproject.toml", _parse_pyproject_toml, "pyproject"),
("package.json", _parse_package_json, "package_json"),
("setup.cfg", _parse_setup_cfg, "setup_cfg"),
("Cargo.toml", _parse_cargo_toml, "cargo"),
("build.gradle", _parse_gradle, "gradle"),
("build.gradle.kts", _parse_gradle, "gradle"),
]
It also searches Python __init__.py and version.py files for __version__.
Important behaviors to know:
- If you are already on a version branch such as
v2.10, the validation step auto-detects that branch as the target and scopes tag discovery tov2.10.*. - The bump step expects a version without the
vprefix, such as1.2.0. - If
uv.lockexists, the workflow regenerates it after bumping version files. - The low-level
release createhelper warns if the tag does not look like semantic versioning (vX.Y.Z), but it does not hard-block the release.
User choices during approval include:
yesto continue with the proposed version and all detected filesmajor,minor, orpatchto override the proposed bumpexclude Nto remove one detected version file from the bumpnoto cancel the release
Warning: This workflow can modify version files, create a branch, push commits, open and merge a PR, and publish a GitHub release. Use
--dry-runfirst if you want a preview without creating anything.
/myk-github:review-handler
Use this when you want the full PR review follow-up workflow: fetch all review feedback, choose what to address, delegate fixes, run tests, reply to reviewers, and store the outcome in the local review database.
argument-hint:[--autorabbit] [REVIEW_URL]allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*),Bash(git:*),Bash(gh:*),AskUserQuestion,Task,Agent
Actual usage examples:
/myk-github:review-handler
/myk-github:review-handler https://github.com/owner/repo/pull/123#pullrequestreview-456
/myk-github:review-handler --autorabbit
What it does:
- Runs
myk-claude-tools reviews fetch, usually against the current branch's PR. - Groups unresolved feedback by source: human, Qodo, and CodeRabbit.
- Shows every item in mandatory tables, including auto-skipped items, and asks you what to address.
- Delegates approved fixes to specialist agents with the full review thread, not a summary.
- Requires a fully green test run before moving on.
- Optionally asks whether to commit and push your changes.
- Posts replies with
myk-claude-tools reviews post. - Stores the finished review record in
.claude/data/reviews.dbwithmyk-claude-tools reviews store.
The table format is defined directly in the command:
## Review Items: {source} ({total} total, {auto_skipped} auto-skipped)
| # | Priority | File | Line | Summary | Status |
|---|----------|------|------|---------|--------|
| 1 | HIGH | src/storage.py | 231 | Backfill destroys historical chronology | Pending |
| 2 | MEDIUM | src/html_report.py | 1141 | Add/delete leaves badges stale | Pending |
| 3 | LOW | src/utils.py | 42 | Unused import | Auto-skipped (skipped): "style only" |
| 4 | LOW | src/config.py | 15 | Missing validation | Auto-skipped (addressed): "added in prev PR" |
The response options are also part of the command contract:
Respond with:
- 'yes' / 'no' (per item number — if 'no', ask for a reason)
- 'all' — address all remaining pending items
- 'skip human/qodo/coderabbit' — skip remaining from that source (ask for a reason)
- 'skip ai' — skip all AI sources (qodo + coderabbit) (ask for a reason)
A few user-facing details are easy to miss:
reviews fetchauto-detects the PR from the current branch and can fall back to anupstreamremote when needed.- CodeRabbit review bodies can contain outside-diff, nitpick, and duplicate comments that do not have normal GitHub review threads. The post step handles those through consolidated PR comments instead of per-thread replies.
- Human threads with
skippedornot_addressedstatus stay unresolved on purpose, so the reviewer can follow up. Qodo and CodeRabbit replies are resolved after posting. - After a successful
reviews store, the JSON handoff file is deleted and the database entry is appended rather than updated.
The storage step is described in the helper CLI itself:
@reviews.command("store")
@click.argument("json_path")
def reviews_store(json_path: str) -> None:
"""Store completed review to database.
Stores the completed review JSON to SQLite database for analytics.
The database is stored at: <project-root>/.claude/data/reviews.db
This command should run AFTER the review flow completes.
The JSON file is deleted after successful storage.
Note: Previous skip decisions are used for auto-skip suggestions, but those items are still shown in the table so you can override them.
Tip: If
myk-claude-tools reviews postreports failures, rerun the exact retry command it prints. The post helper is designed to retry only entries that have not been successfully posted yet.Warning:
--autorabbitdoes not stop on its own. It waits 5 minutes between checks, handles CodeRabbit rate limits automatically, and keeps looping until you stop it.
myk-review
The myk-review plugin covers local review before GitHub and post-review analytics after GitHub.
/myk-review:local
Use this when you want a three-agent review of your local changes without opening or touching a GitHub PR.
argument-hint:[BRANCH]allowed-tools:Bash(git:*),Task,AskUserQuestion
Actual usage examples:
/myk-review:local
/myk-review:local main
/myk-review:local feature/branch
What it does:
- If you pass a branch, it reviews
git diff "$ARGUMENTS"...HEAD. - If you do not pass a branch, it reviews
git diff HEAD, which covers tracked staged and unstaged changes. - It sends the diff to the same three review agents used by
/myk-github:pr-review. - It merges and deduplicates findings and presents them as critical issues, warnings, and suggestions.
The diff commands are taken directly from the command file:
git diff "$ARGUMENTS"...HEAD
git diff HEAD
This command does not post comments anywhere. It is purely a local review surface.
Tip: Use
/myk-review:localbefore opening a PR, and/myk-github:pr-reviewafter the PR exists. The review model is similar, but the data source is different.
/myk-review:query-db
Use this when you want analytics and historical context from the review database created by /myk-github:review-handler.
argument-hint:[stats|patterns|dismissed|query|find-similar] [OPTIONS]allowed-tools:Bash(myk-claude-tools:*),Bash(uv:*)
Common slash-command examples from the command definition:
/myk-review:query-db stats --by-source
/myk-review:query-db stats --by-reviewer
/myk-review:query-db patterns --min 2
/myk-review:query-db dismissed --owner X --repo Y
/myk-review:query-db query "SELECT * FROM comments WHERE status='skipped' LIMIT 10"
Subcommands:
| Subcommand | What it does |
|---|---|
stats |
Shows addressed rates by source or by reviewer |
patterns |
Finds recurring dismissed comments that look like repeat feedback |
dismissed |
Returns dismissed review comments for one repo |
query |
Runs a raw read-only SQL query |
find-similar |
Looks for a previously dismissed comment with the same path and similar body text |
The database location is fixed by the helper code:
- Default path:
<git-root>/.claude/data/reviews.db - Override:
--db-path
A few behavior details are worth knowing:
statsdefaults to--by-sourceif you do not pass--by-sourceor--by-reviewer.--by-sourceand--by-reviewerare mutually exclusive.patternsgroups recurring comments by path plus approximate body similarity, not only exact string matches.find-similarrequires both--ownerand--repo, and it expects a single JSON object on stdin.
The actual helper example for find-similar is:
echo '{"path": "foo.py", "body": "Add error handling..."}' | \
myk-claude-tools db find-similar --owner myk-org --repo claude-code-config --json
Read-only SQL is enforced in code:
if not sql_upper.startswith(("SELECT", "WITH")):
raise ValueError("Only SELECT/CTE queries are allowed for safety")
That means INSERT, UPDATE, DELETE, DROP, ALTER, and other write operations are rejected.
Warning:
queryis intentionally read-only. It is for analytics and exploration, not for editing the review database.Note: The
dismissedview intentionally includesnot_addressedandskippedcomments, plus addressed body-only comments that do not have normal GitHub review threads. That behavior supports later auto-skip decisions.
myk-acpx
The myk-acpx plugin is the bridge to acpx, which in turn can drive multiple ACP-compatible coding agents from one slash command.
/myk-acpx:prompt
Use this when you want to send a prompt to one or more external coding agents such as Codex, Gemini, Cursor, or Claude through acpx.
argument-hint:<agent>[,agent2,...] [--fix | --peer | --exec] [--model <model>] <prompt>allowed-tools:Bash(acpx:*),Bash(git:*),AskUserQuestion,Agent,Edit,Write,Read,Glob,Grep
Actual usage examples:
/myk-acpx:prompt codex fix the tests
/myk-acpx:prompt cursor review this code
/myk-acpx:prompt gemini explain this function
/myk-acpx:prompt codex --exec summarize this repo
/myk-acpx:prompt codex --model o3-pro review the architecture
/myk-acpx:prompt codex --fix fix the code quality issues
/myk-acpx:prompt gemini --peer review this code
/myk-acpx:prompt codex --peer --model o3-pro review the architecture
/myk-acpx:prompt cursor,codex review this code
/myk-acpx:prompt cursor,gemini,codex --peer review the architecture
Supported agents are declared in the command file:
| Agent | Wraps |
|---|---|
pi |
Pi Coding Agent |
openclaw |
OpenClaw ACP bridge |
codex |
Codex CLI (OpenAI) |
claude |
Claude Code |
gemini |
Gemini CLI |
cursor |
Cursor CLI |
copilot |
GitHub Copilot CLI |
droid |
Factory Droid |
iflow |
iFlow CLI |
kilocode |
Kilocode |
kimi |
Kimi CLI |
kiro |
Kiro CLI |
opencode |
OpenCode |
qwen |
Qwen Code |
Modes:
| Mode | Flag | Behavior |
|---|---|---|
| Session | none | Read-only by default, with session persistence |
| Exec | --exec |
Read-only, one-shot, no session persistence |
| Fix | --fix |
Writable run, single agent only |
| Peer | --peer |
Read-only AI-to-AI review loop |
The mode-specific acpx calls are defined like this:
acpx --approve-reads --non-interactive-permissions fail <agent> exec '<prompt>'
acpx --approve-all <agent> '<prompt>'
acpx --approve-reads --non-interactive-permissions fail <agent> '<prompt>'
What it does:
- Checks whether
acpxis installed and offersnpm install -g acpx@latestif needed. - Validates the agent list and the mode flags.
- In default session mode, runs
acpx <agent> sessions ensureand falls back tosessions newwhen needed. - In
--fixor--peermode, checks git state first and offers a checkpoint commit if the worktree is dirty. - Runs the selected agent or agents.
- In
--fixmode, reads the resulting diff and summarizes file changes. - In
--peermode, loops until the peer agent confirms there are no remaining actionable issues, or the discussion is recorded as an unresolved disagreement.
Important flag rules:
--fix,--peer, and--execare mutually exclusive.--fixcan only be used with a single agent.--modelcan only appear once.- If no prompt is provided, the command aborts with a usage message.
Two implementation details are especially useful:
- In non-fix modes, the command appends a read-only guard to the prompt so the target agent does not try to modify files.
- In
--peermode, the workflow includes projectCLAUDE.mdconventions in the peer-review framing when aCLAUDE.mdfile exists.
Tip: Use session mode when you expect follow-up prompts in the same repo. Use
--execwhen you want a one-shot answer with no session state.Warning:
--fixcan modify files and is single-agent only. In a dirty git worktree, the command may offer to create a checkpoint commit before it proceeds.Note: If
acpxsession management fails with the known session bugs handled by the command, the workflow falls back to one-shot exec mode instead of simply giving up.