|
| 1 | +--- |
| 2 | +name: github-conversation |
| 3 | +description: Practical workflow for agents to read GitHub PR/issue context and communicate effectively with evidence, clear status, and low noise. |
| 4 | +metadata: |
| 5 | + primary-tools: |
| 6 | + - gh-llm |
| 7 | + - gh |
| 8 | +--- |
| 9 | + |
| 10 | +# GitHub Conversation |
| 11 | + |
| 12 | +## Use this skill when |
| 13 | + |
| 14 | +1. You need to read a PR/issue before replying. |
| 15 | +2. You need to reply to comments or review threads. |
| 16 | +3. You need to submit a review. |
| 17 | +4. You need to post a status update that closes loops. |
| 18 | + |
| 19 | +## Tool split |
| 20 | + |
| 21 | +1. Use `gh-llm` for reading context (timeline, collapsed items, review threads, checks). |
| 22 | +2. Use `gh` for simple write actions (comment, labels, assignees, reviewers, close/reopen, merge). |
| 23 | +3. If context is incomplete, do not reply yet; expand first. |
| 24 | + |
| 25 | +## Install gh-llm |
| 26 | + |
| 27 | +Prerequisites: |
| 28 | + |
| 29 | +1. `gh` is installed and authenticated (`gh auth status`). |
| 30 | +2. Python 3.14+ is available if installing via `uv`. |
| 31 | + |
| 32 | +Install option A (recommended for CLI tool use): |
| 33 | + |
| 34 | +```bash |
| 35 | +uv tool install gh-llm |
| 36 | +gh-llm --version |
| 37 | +``` |
| 38 | + |
| 39 | +Install option B (GitHub CLI extension): |
| 40 | + |
| 41 | +```bash |
| 42 | +gh extension install ShigureLab/gh-llm |
| 43 | +gh llm --version |
| 44 | +``` |
| 45 | + |
| 46 | +Command prefix mapping: |
| 47 | + |
| 48 | +1. If installed via `uv tool`, use `gh-llm ...`. |
| 49 | +2. If installed as `gh` extension, use `gh llm ...`. |
| 50 | + |
| 51 | +## Fast start |
| 52 | + |
| 53 | +### Read a PR |
| 54 | + |
| 55 | +```bash |
| 56 | +gh-llm pr view <pr> --repo <owner/repo> |
| 57 | +gh-llm pr timeline-expand <page> --pr <pr> --repo <owner/repo> |
| 58 | +gh-llm pr review-expand <PRR_id[,PRR_id...]> --pr <pr> --repo <owner/repo> |
| 59 | +gh-llm pr checks --pr <pr> --repo <owner/repo> |
| 60 | +``` |
| 61 | + |
| 62 | +### Read an issue |
| 63 | + |
| 64 | +```bash |
| 65 | +gh-llm issue view <issue> --repo <owner/repo> |
| 66 | +gh-llm issue timeline-expand <page> --issue <issue> --repo <owner/repo> |
| 67 | +``` |
| 68 | + |
| 69 | +### Write simple updates |
| 70 | + |
| 71 | +```bash |
| 72 | +gh pr comment <pr> --repo <owner/repo> --body '<comment>' |
| 73 | +gh issue comment <issue> --repo <owner/repo> --body '<comment>' |
| 74 | +gh pr edit <pr> --repo <owner/repo> --add-label '<label1>,<label2>' |
| 75 | +gh pr edit <pr> --repo <owner/repo> --remove-label '<label1>,<label2>' |
| 76 | +gh pr edit <pr> --repo <owner/repo> --add-reviewer '<reviewer1>,<reviewer2>' |
| 77 | +gh pr edit <pr> --repo <owner/repo> --add-assignee '<assignee1>,<assignee2>' |
| 78 | +``` |
| 79 | + |
| 80 | +## Reading workflow (required before replying) |
| 81 | + |
| 82 | +### 1) Build context map |
| 83 | + |
| 84 | +Identify: |
| 85 | + |
| 86 | +1. Current goal of this PR/issue. |
| 87 | +2. Open requests not yet addressed. |
| 88 | +3. Decisions already made. |
| 89 | +4. Linked PRs/issues that affect this thread. |
| 90 | + |
| 91 | +### 2) Expand hidden context |
| 92 | + |
| 93 | +Expand collapsed timeline pages and relevant review threads before replying. |
| 94 | + |
| 95 | +### 3) Check delivery state |
| 96 | + |
| 97 | +For PRs, check: |
| 98 | + |
| 99 | +1. CI/check failures. |
| 100 | +2. Mergeability/conflicts. |
| 101 | +3. Unresolved review threads. |
| 102 | + |
| 103 | +## Reply workflow |
| 104 | + |
| 105 | +### 1) Reply to one thread with one intent |
| 106 | + |
| 107 | +A single reply should answer the target point only. |
| 108 | +Do not mix unrelated updates. |
| 109 | + |
| 110 | +### 2) Be verifiable |
| 111 | + |
| 112 | +When making technical claims, include at least one concrete reference: |
| 113 | + |
| 114 | +1. `path:line` |
| 115 | +2. commit hash |
| 116 | +3. check/log link |
| 117 | +4. reproduction command |
| 118 | + |
| 119 | +### 3) Quote only when needed |
| 120 | + |
| 121 | +Use `>` when: |
| 122 | + |
| 123 | +1. the original comment has multiple points |
| 124 | +2. the thread is long and reference is ambiguous |
| 125 | +3. you are answering a specific sentence fragment |
| 126 | + |
| 127 | +For short one-to-one replies, no quote is needed. |
| 128 | + |
| 129 | +### 4) State status clearly |
| 130 | + |
| 131 | +Use plain status language: |
| 132 | + |
| 133 | +1. fixed |
| 134 | +2. partially fixed |
| 135 | +3. not fixed yet |
| 136 | +4. intentionally unchanged |
| 137 | + |
| 138 | +If partially fixed or unchanged, include reason and next step. |
| 139 | + |
| 140 | +## Review workflow |
| 141 | + |
| 142 | +### As reviewer |
| 143 | + |
| 144 | +1. Separate blocking vs non-blocking points. |
| 145 | +2. Give actionable suggestions. |
| 146 | +3. Point to exact location when possible. |
| 147 | +4. Avoid generic criticism without concrete evidence. |
| 148 | + |
| 149 | +### As PR author |
| 150 | + |
| 151 | +1. Expand and read all relevant review content. |
| 152 | +2. Address items one by one. |
| 153 | +3. Reply to each addressed thread. |
| 154 | +4. Resolve a thread only after fix/decision is actually complete. |
| 155 | +5. Post one concise round-up after a batch of fixes. |
| 156 | + |
| 157 | +## Issue workflow |
| 158 | + |
| 159 | +### Opening an issue |
| 160 | + |
| 161 | +Include: |
| 162 | + |
| 163 | +1. Problem statement. |
| 164 | +2. Minimal reproduction. |
| 165 | +3. Expected vs actual behavior. |
| 166 | +4. Environment details. |
| 167 | +5. Logs/traceback/screenshots. |
| 168 | +6. Related links. |
| 169 | + |
| 170 | +### Maintaining a busy issue |
| 171 | + |
| 172 | +1. Ask for missing repro info instead of guessing. |
| 173 | +2. Link duplicates to the canonical thread. |
| 174 | +3. Keep one canonical status update comment. |
| 175 | + |
| 176 | +## Quality gates before posting |
| 177 | + |
| 178 | +1. Is context complete (including expanded hidden/collapsed content)? |
| 179 | +2. Does the message move the thread forward? |
| 180 | +3. Are key claims backed by verifiable evidence? |
| 181 | +4. Does tone and granularity match this repository? |
| 182 | + |
| 183 | +## Co-author and credit |
| 184 | + |
| 185 | +When a reviewer's concrete code change is substantially adopted, add: |
| 186 | + |
| 187 | +```text |
| 188 | +Co-authored-by: <Reviewer Name> <reviewer_email> |
| 189 | +``` |
| 190 | + |
| 191 | +Use GitHub-linked email if attribution on GitHub is desired. |
0 commit comments