winter-super-cli 2026.6.26 → 2026.6.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -5
- package/README.md +66 -0
- package/package.json +5 -1
- package/resources/local/gsap-skills/.claude-plugin/marketplace.json +20 -0
- package/resources/local/gsap-skills/.claude-plugin/plugin.json +6 -0
- package/resources/local/gsap-skills/.cursor-plugin/marketplace.json +13 -0
- package/resources/local/gsap-skills/.cursor-plugin/plugin.json +22 -0
- package/resources/local/gsap-skills/.github/copilot-instructions.md +17 -0
- package/resources/local/gsap-skills/.github/instructions/react.instructions.md +15 -0
- package/resources/local/gsap-skills/.github/instructions/scrolltrigger.instructions.md +18 -0
- package/resources/local/gsap-skills/AGENTS.md +27 -0
- package/resources/local/gsap-skills/CLAUDE.md +1 -0
- package/resources/local/gsap-skills/GEMINI.md +1 -0
- package/resources/local/gsap-skills/LICENSE +21 -0
- package/resources/local/gsap-skills/README.md +163 -0
- package/resources/local/gsap-skills/assets/gsap-green.svg +7 -0
- package/resources/local/gsap-skills/assets/gsap-icon-inverted.svg +15 -0
- package/resources/local/gsap-skills/assets/gsap-icon-square.svg +1 -0
- package/resources/local/gsap-skills/assets/gsap-white.svg +7 -0
- package/resources/local/gsap-skills/examples/README.md +29 -0
- package/resources/local/gsap-skills/examples/nuxt/app/app.vue +3 -0
- package/resources/local/gsap-skills/examples/nuxt/app/composables/useGSAP.ts +91 -0
- package/resources/local/gsap-skills/examples/nuxt/app/pages/index.vue +55 -0
- package/resources/local/gsap-skills/examples/nuxt/nuxt.config.ts +4 -0
- package/resources/local/gsap-skills/examples/nuxt/package.json +18 -0
- package/resources/local/gsap-skills/examples/react/App.jsx +46 -0
- package/resources/local/gsap-skills/examples/react/index.html +12 -0
- package/resources/local/gsap-skills/examples/react/main.jsx +9 -0
- package/resources/local/gsap-skills/examples/react/package.json +21 -0
- package/resources/local/gsap-skills/examples/react/vite.config.js +7 -0
- package/resources/local/gsap-skills/examples/vanilla/index.html +33 -0
- package/resources/local/gsap-skills/examples/vanilla/main.js +36 -0
- package/resources/local/gsap-skills/examples/vue/app.vue +47 -0
- package/resources/local/gsap-skills/examples/vue/index.html +15 -0
- package/resources/local/gsap-skills/examples/vue/main.js +9 -0
- package/resources/local/gsap-skills/examples/vue/package.json +19 -0
- package/resources/local/gsap-skills/examples/vue/vite.config.js +7 -0
- package/resources/local/gsap-skills/skills/gsap-core/SKILL.md +254 -0
- package/resources/local/gsap-skills/skills/gsap-frameworks/SKILL.md +266 -0
- package/resources/local/gsap-skills/skills/gsap-performance/SKILL.md +79 -0
- package/resources/local/gsap-skills/skills/gsap-plugins/SKILL.md +433 -0
- package/resources/local/gsap-skills/skills/gsap-react/SKILL.md +136 -0
- package/resources/local/gsap-skills/skills/gsap-scrolltrigger/SKILL.md +296 -0
- package/resources/local/gsap-skills/skills/gsap-timeline/SKILL.md +107 -0
- package/resources/local/gsap-skills/skills/gsap-utils/SKILL.md +284 -0
- package/resources/local/gsap-skills/skills/llms.txt +39 -0
- package/resources/local/hermes-agent-core/AGENTS.md +1132 -0
- package/resources/local/hermes-agent-core/LICENSE +21 -0
- package/resources/local/hermes-agent-core/README.md +215 -0
- package/resources/local/hermes-agent-core/docs/2026-05-07-s6-overlay-dynamic-subagent-gateways.md +434 -0
- package/resources/local/hermes-agent-core/hermes-already-has-routines.md +160 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/DESCRIPTION.md +3 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/claude-code/SKILL.md +745 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/codex/SKILL.md +130 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/hermes-agent/SKILL.md +1021 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/kanban-codex-lane/SKILL.md +277 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/kanban-codex-lane/templates/pmb-codex-lane-prompt.md +57 -0
- package/resources/local/hermes-agent-core/skills/autonomous-ai-agents/opencode/SKILL.md +219 -0
- package/resources/local/hermes-agent-core/skills/github/DESCRIPTION.md +3 -0
- package/resources/local/hermes-agent-core/skills/github/codebase-inspection/SKILL.md +116 -0
- package/resources/local/hermes-agent-core/skills/github/github-auth/SKILL.md +247 -0
- package/resources/local/hermes-agent-core/skills/github/github-auth/scripts/gh-env.sh +66 -0
- package/resources/local/hermes-agent-core/skills/github/github-code-review/SKILL.md +481 -0
- package/resources/local/hermes-agent-core/skills/github/github-code-review/references/review-output-template.md +74 -0
- package/resources/local/hermes-agent-core/skills/github/github-issues/SKILL.md +370 -0
- package/resources/local/hermes-agent-core/skills/github/github-issues/templates/bug-report.md +35 -0
- package/resources/local/hermes-agent-core/skills/github/github-issues/templates/feature-request.md +31 -0
- package/resources/local/hermes-agent-core/skills/github/github-pr-workflow/SKILL.md +367 -0
- package/resources/local/hermes-agent-core/skills/github/github-pr-workflow/references/ci-troubleshooting.md +183 -0
- package/resources/local/hermes-agent-core/skills/github/github-pr-workflow/references/conventional-commits.md +71 -0
- package/resources/local/hermes-agent-core/skills/github/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
- package/resources/local/hermes-agent-core/skills/github/github-pr-workflow/templates/pr-body-feature.md +33 -0
- package/resources/local/hermes-agent-core/skills/github/github-repo-management/SKILL.md +516 -0
- package/resources/local/hermes-agent-core/skills/github/github-repo-management/references/github-api-cheatsheet.md +161 -0
- package/resources/local/hermes-agent-core/skills/mcp/DESCRIPTION.md +3 -0
- package/resources/local/hermes-agent-core/skills/mcp/native-mcp/SKILL.md +357 -0
- package/resources/local/hermes-agent-core/skills/software-development/debugging-hermes-tui-commands/SKILL.md +152 -0
- package/resources/local/hermes-agent-core/skills/software-development/hermes-agent-skill-authoring/SKILL.md +165 -0
- package/resources/local/hermes-agent-core/skills/software-development/hermes-s6-container-supervision/SKILL.md +176 -0
- package/resources/local/hermes-agent-core/skills/software-development/node-inspect-debugger/SKILL.md +319 -0
- package/resources/local/hermes-agent-core/skills/software-development/plan/SKILL.md +58 -0
- package/resources/local/hermes-agent-core/skills/software-development/python-debugpy/SKILL.md +375 -0
- package/resources/local/hermes-agent-core/skills/software-development/requesting-code-review/SKILL.md +280 -0
- package/resources/local/hermes-agent-core/skills/software-development/spike/SKILL.md +197 -0
- package/resources/local/hermes-agent-core/skills/software-development/subagent-driven-development/SKILL.md +352 -0
- package/resources/local/hermes-agent-core/skills/software-development/subagent-driven-development/references/context-budget-discipline.md +53 -0
- package/resources/local/hermes-agent-core/skills/software-development/subagent-driven-development/references/gates-taxonomy.md +93 -0
- package/resources/local/hermes-agent-core/skills/software-development/systematic-debugging/SKILL.md +367 -0
- package/resources/local/hermes-agent-core/skills/software-development/test-driven-development/SKILL.md +343 -0
- package/resources/local/hermes-agent-core/skills/software-development/writing-plans/SKILL.md +297 -0
- package/resources/local/manifest.json +12 -0
- package/rule.md +2 -0
- package/scripts/audit-pack.js +5 -0
- package/scripts/smoke-browser.js +53 -0
- package/scripts/smoke-package.js +38 -4
- package/skill.md +36 -4
- package/skills/gsap.md +26 -0
- package/skills/hermes-agent.md +17 -0
- package/src/agent/agent-definitions.js +4 -4
- package/src/agent/runtime.js +179 -5
- package/src/agent/subagent-child.js +44 -0
- package/src/ai/capability-scorecard.js +193 -14
- package/src/ai/hermes-core.js +77 -0
- package/src/ai/model-capabilities.js +42 -2
- package/src/ai/prompts/system-prompt.js +16 -2
- package/src/ai/small-model-amplifier.js +35 -7
- package/src/ai/workflow-selector.js +22 -1
- package/src/cli/commands.js +21 -1
- package/src/cli/config.js +42 -4
- package/src/cli/context-loader.js +253 -9
- package/src/cli/conversation-format.js +5 -0
- package/src/cli/input-controller.js +79 -10
- package/src/cli/prompt-builder.js +45 -8
- package/src/cli/repl-commands.js +115 -0
- package/src/cli/repl.js +147 -86
- package/src/cli/slash-commands.js +3 -1
- package/src/cli/tui.js +133 -37
- package/src/mcp/client.js +46 -5
- package/src/tools/agent.js +316 -25
- package/src/tools/executor.js +310 -9
- package/src/tools/permission.js +20 -17
- package/winter.d.ts +112 -10
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: github-issues
|
|
3
|
+
description: "Create, triage, label, assign GitHub issues via gh or REST."
|
|
4
|
+
version: 1.1.0
|
|
5
|
+
author: Hermes Agent
|
|
6
|
+
license: MIT
|
|
7
|
+
platforms: [linux, macos, windows]
|
|
8
|
+
metadata:
|
|
9
|
+
hermes:
|
|
10
|
+
tags: [GitHub, Issues, Project-Management, Bug-Tracking, Triage]
|
|
11
|
+
related_skills: [github-auth, github-pr-workflow]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# GitHub Issues Management
|
|
15
|
+
|
|
16
|
+
Create, search, triage, and manage GitHub issues. Each section shows `gh` first, then the `curl` fallback.
|
|
17
|
+
|
|
18
|
+
## Prerequisites
|
|
19
|
+
|
|
20
|
+
- Authenticated with GitHub (see `github-auth` skill)
|
|
21
|
+
- Inside a git repo with a GitHub remote, or specify the repo explicitly
|
|
22
|
+
|
|
23
|
+
### Setup
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
if command -v gh &>/dev/null && gh auth status &>/dev/null; then
|
|
27
|
+
AUTH="gh"
|
|
28
|
+
else
|
|
29
|
+
AUTH="git"
|
|
30
|
+
if [ -z "$GITHUB_TOKEN" ]; then
|
|
31
|
+
if [ -f ~/.hermes/.env ] && grep -q "^GITHUB_TOKEN=" ~/.hermes/.env; then
|
|
32
|
+
GITHUB_TOKEN=$(grep "^GITHUB_TOKEN=" ~/.hermes/.env | head -1 | cut -d= -f2 | tr -d '\n\r')
|
|
33
|
+
elif grep -q "github.com" ~/.git-credentials 2>/dev/null; then
|
|
34
|
+
GITHUB_TOKEN=$(grep "github.com" ~/.git-credentials 2>/dev/null | head -1 | sed 's|https://[^:]*:\([^@]*\)@.*|\1|')
|
|
35
|
+
fi
|
|
36
|
+
fi
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
REMOTE_URL=$(git remote get-url origin)
|
|
40
|
+
OWNER_REPO=$(echo "$REMOTE_URL" | sed -E 's|.*github\.com[:/]||; s|\.git$||')
|
|
41
|
+
OWNER=$(echo "$OWNER_REPO" | cut -d/ -f1)
|
|
42
|
+
REPO=$(echo "$OWNER_REPO" | cut -d/ -f2)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 1. Viewing Issues
|
|
48
|
+
|
|
49
|
+
**With gh:**
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
gh issue list
|
|
53
|
+
gh issue list --state open --label "bug"
|
|
54
|
+
gh issue list --assignee @me
|
|
55
|
+
gh issue list --search "authentication error" --state all
|
|
56
|
+
gh issue view 42
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**With curl:**
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# List open issues
|
|
63
|
+
curl -s \
|
|
64
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
65
|
+
"https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20" \
|
|
66
|
+
| python3 -c "
|
|
67
|
+
import sys, json
|
|
68
|
+
for i in json.load(sys.stdin):
|
|
69
|
+
if 'pull_request' not in i: # GitHub API returns PRs in /issues too
|
|
70
|
+
labels = ', '.join(l['name'] for l in i['labels'])
|
|
71
|
+
print(f\"#{i['number']:5} {i['state']:6} {labels:30} {i['title']}\")"
|
|
72
|
+
|
|
73
|
+
# Filter by label
|
|
74
|
+
curl -s \
|
|
75
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
76
|
+
"https://api.github.com/repos/$OWNER/$REPO/issues?state=open&labels=bug&per_page=20" \
|
|
77
|
+
| python3 -c "
|
|
78
|
+
import sys, json
|
|
79
|
+
for i in json.load(sys.stdin):
|
|
80
|
+
if 'pull_request' not in i:
|
|
81
|
+
print(f\"#{i['number']} {i['title']}\")"
|
|
82
|
+
|
|
83
|
+
# View a specific issue
|
|
84
|
+
curl -s \
|
|
85
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
86
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42 \
|
|
87
|
+
| python3 -c "
|
|
88
|
+
import sys, json
|
|
89
|
+
i = json.load(sys.stdin)
|
|
90
|
+
labels = ', '.join(l['name'] for l in i['labels'])
|
|
91
|
+
assignees = ', '.join(a['login'] for a in i['assignees'])
|
|
92
|
+
print(f\"#{i['number']}: {i['title']}\")
|
|
93
|
+
print(f\"State: {i['state']} Labels: {labels} Assignees: {assignees}\")
|
|
94
|
+
print(f\"Author: {i['user']['login']} Created: {i['created_at']}\")
|
|
95
|
+
print(f\"\n{i['body']}\")"
|
|
96
|
+
|
|
97
|
+
# Search issues
|
|
98
|
+
curl -s \
|
|
99
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
100
|
+
"https://api.github.com/search/issues?q=authentication+error+repo:$OWNER/$REPO" \
|
|
101
|
+
| python3 -c "
|
|
102
|
+
import sys, json
|
|
103
|
+
for i in json.load(sys.stdin)['items']:
|
|
104
|
+
print(f\"#{i['number']} {i['state']:6} {i['title']}\")"
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
## 2. Creating Issues
|
|
108
|
+
|
|
109
|
+
**With gh:**
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
gh issue create \
|
|
113
|
+
--title "Login redirect ignores ?next= parameter" \
|
|
114
|
+
--body "## Description
|
|
115
|
+
After logging in, users always land on /dashboard.
|
|
116
|
+
|
|
117
|
+
## Steps to Reproduce
|
|
118
|
+
1. Navigate to /settings while logged out
|
|
119
|
+
2. Get redirected to /login?next=/settings
|
|
120
|
+
3. Log in
|
|
121
|
+
4. Actual: redirected to /dashboard (should go to /settings)
|
|
122
|
+
|
|
123
|
+
## Expected Behavior
|
|
124
|
+
Respect the ?next= query parameter." \
|
|
125
|
+
--label "bug,backend" \
|
|
126
|
+
--assignee "username"
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**With curl:**
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
curl -s -X POST \
|
|
133
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
134
|
+
https://api.github.com/repos/$OWNER/$REPO/issues \
|
|
135
|
+
-d '{
|
|
136
|
+
"title": "Login redirect ignores ?next= parameter",
|
|
137
|
+
"body": "## Description\nAfter logging in, users always land on /dashboard.\n\n## Steps to Reproduce\n1. Navigate to /settings while logged out\n2. Get redirected to /login?next=/settings\n3. Log in\n4. Actual: redirected to /dashboard\n\n## Expected Behavior\nRespect the ?next= query parameter.",
|
|
138
|
+
"labels": ["bug", "backend"],
|
|
139
|
+
"assignees": ["username"]
|
|
140
|
+
}'
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Bug Report Template
|
|
144
|
+
|
|
145
|
+
```
|
|
146
|
+
## Bug Description
|
|
147
|
+
<What's happening>
|
|
148
|
+
|
|
149
|
+
## Steps to Reproduce
|
|
150
|
+
1. <step>
|
|
151
|
+
2. <step>
|
|
152
|
+
|
|
153
|
+
## Expected Behavior
|
|
154
|
+
<What should happen>
|
|
155
|
+
|
|
156
|
+
## Actual Behavior
|
|
157
|
+
<What actually happens>
|
|
158
|
+
|
|
159
|
+
## Environment
|
|
160
|
+
- OS: <os>
|
|
161
|
+
- Version: <version>
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
### Feature Request Template
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
## Feature Description
|
|
168
|
+
<What you want>
|
|
169
|
+
|
|
170
|
+
## Motivation
|
|
171
|
+
<Why this would be useful>
|
|
172
|
+
|
|
173
|
+
## Proposed Solution
|
|
174
|
+
<How it could work>
|
|
175
|
+
|
|
176
|
+
## Alternatives Considered
|
|
177
|
+
<Other approaches>
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
## 3. Managing Issues
|
|
181
|
+
|
|
182
|
+
### Add/Remove Labels
|
|
183
|
+
|
|
184
|
+
**With gh:**
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
gh issue edit 42 --add-label "priority:high,bug"
|
|
188
|
+
gh issue edit 42 --remove-label "needs-triage"
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**With curl:**
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Add labels
|
|
195
|
+
curl -s -X POST \
|
|
196
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
197
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42/labels \
|
|
198
|
+
-d '{"labels": ["priority:high", "bug"]}'
|
|
199
|
+
|
|
200
|
+
# Remove a label
|
|
201
|
+
curl -s -X DELETE \
|
|
202
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
203
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42/labels/needs-triage
|
|
204
|
+
|
|
205
|
+
# List available labels in the repo
|
|
206
|
+
curl -s \
|
|
207
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
208
|
+
https://api.github.com/repos/$OWNER/$REPO/labels \
|
|
209
|
+
| python3 -c "
|
|
210
|
+
import sys, json
|
|
211
|
+
for l in json.load(sys.stdin):
|
|
212
|
+
print(f\" {l['name']:30} {l.get('description', '')}\")"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Assignment
|
|
216
|
+
|
|
217
|
+
**With gh:**
|
|
218
|
+
|
|
219
|
+
```bash
|
|
220
|
+
gh issue edit 42 --add-assignee username
|
|
221
|
+
gh issue edit 42 --add-assignee @me
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**With curl:**
|
|
225
|
+
|
|
226
|
+
```bash
|
|
227
|
+
curl -s -X POST \
|
|
228
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
229
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42/assignees \
|
|
230
|
+
-d '{"assignees": ["username"]}'
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
### Commenting
|
|
234
|
+
|
|
235
|
+
**With gh:**
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
gh issue comment 42 --body "Investigated — root cause is in auth middleware. Working on a fix."
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**With curl:**
|
|
242
|
+
|
|
243
|
+
```bash
|
|
244
|
+
curl -s -X POST \
|
|
245
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
246
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42/comments \
|
|
247
|
+
-d '{"body": "Investigated — root cause is in auth middleware. Working on a fix."}'
|
|
248
|
+
```
|
|
249
|
+
|
|
250
|
+
### Closing and Reopening
|
|
251
|
+
|
|
252
|
+
**With gh:**
|
|
253
|
+
|
|
254
|
+
```bash
|
|
255
|
+
gh issue close 42
|
|
256
|
+
gh issue close 42 --reason "not planned"
|
|
257
|
+
gh issue reopen 42
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
**With curl:**
|
|
261
|
+
|
|
262
|
+
```bash
|
|
263
|
+
# Close
|
|
264
|
+
curl -s -X PATCH \
|
|
265
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
266
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42 \
|
|
267
|
+
-d '{"state": "closed", "state_reason": "completed"}'
|
|
268
|
+
|
|
269
|
+
# Reopen
|
|
270
|
+
curl -s -X PATCH \
|
|
271
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
272
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/42 \
|
|
273
|
+
-d '{"state": "open"}'
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
### Linking Issues to PRs
|
|
277
|
+
|
|
278
|
+
Issues are automatically closed when a PR merges with the right keywords in the body:
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
Closes #42
|
|
282
|
+
Fixes #42
|
|
283
|
+
Resolves #42
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
To create a branch from an issue:
|
|
287
|
+
|
|
288
|
+
**With gh:**
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
gh issue develop 42 --checkout
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**With git (manual equivalent):**
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
git checkout main && git pull origin main
|
|
298
|
+
git checkout -b fix/issue-42-login-redirect
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
## 4. Issue Triage Workflow
|
|
302
|
+
|
|
303
|
+
When asked to triage issues:
|
|
304
|
+
|
|
305
|
+
1. **List untriaged issues:**
|
|
306
|
+
|
|
307
|
+
```bash
|
|
308
|
+
# With gh
|
|
309
|
+
gh issue list --label "needs-triage" --state open
|
|
310
|
+
|
|
311
|
+
# With curl
|
|
312
|
+
curl -s \
|
|
313
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
314
|
+
"https://api.github.com/repos/$OWNER/$REPO/issues?labels=needs-triage&state=open" \
|
|
315
|
+
| python3 -c "
|
|
316
|
+
import sys, json
|
|
317
|
+
for i in json.load(sys.stdin):
|
|
318
|
+
if 'pull_request' not in i:
|
|
319
|
+
print(f\"#{i['number']} {i['title']}\")"
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
2. **Read and categorize** each issue (view details, understand the bug/feature)
|
|
323
|
+
|
|
324
|
+
3. **Apply labels and priority** (see Managing Issues above)
|
|
325
|
+
|
|
326
|
+
4. **Assign** if the owner is clear
|
|
327
|
+
|
|
328
|
+
5. **Comment with triage notes** if needed
|
|
329
|
+
|
|
330
|
+
## 5. Bulk Operations
|
|
331
|
+
|
|
332
|
+
For batch operations, combine API calls with shell scripting:
|
|
333
|
+
|
|
334
|
+
**With gh:**
|
|
335
|
+
|
|
336
|
+
```bash
|
|
337
|
+
# Close all issues with a specific label
|
|
338
|
+
gh issue list --label "wontfix" --json number --jq '.[].number' | \
|
|
339
|
+
xargs -I {} gh issue close {} --reason "not planned"
|
|
340
|
+
```
|
|
341
|
+
|
|
342
|
+
**With curl:**
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
# List issue numbers with a label, then close each
|
|
346
|
+
curl -s \
|
|
347
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
348
|
+
"https://api.github.com/repos/$OWNER/$REPO/issues?labels=wontfix&state=open" \
|
|
349
|
+
| python3 -c "import sys,json; [print(i['number']) for i in json.load(sys.stdin)]" \
|
|
350
|
+
| while read num; do
|
|
351
|
+
curl -s -X PATCH \
|
|
352
|
+
-H "Authorization: token $GITHUB_TOKEN" \
|
|
353
|
+
https://api.github.com/repos/$OWNER/$REPO/issues/$num \
|
|
354
|
+
-d '{"state": "closed", "state_reason": "not_planned"}'
|
|
355
|
+
echo "Closed #$num"
|
|
356
|
+
done
|
|
357
|
+
```
|
|
358
|
+
|
|
359
|
+
## Quick Reference Table
|
|
360
|
+
|
|
361
|
+
| Action | gh | curl endpoint |
|
|
362
|
+
|--------|-----|--------------|
|
|
363
|
+
| List issues | `gh issue list` | `GET /repos/{o}/{r}/issues` |
|
|
364
|
+
| View issue | `gh issue view N` | `GET /repos/{o}/{r}/issues/N` |
|
|
365
|
+
| Create issue | `gh issue create ...` | `POST /repos/{o}/{r}/issues` |
|
|
366
|
+
| Add labels | `gh issue edit N --add-label ...` | `POST /repos/{o}/{r}/issues/N/labels` |
|
|
367
|
+
| Assign | `gh issue edit N --add-assignee ...` | `POST /repos/{o}/{r}/issues/N/assignees` |
|
|
368
|
+
| Comment | `gh issue comment N --body ...` | `POST /repos/{o}/{r}/issues/N/comments` |
|
|
369
|
+
| Close | `gh issue close N` | `PATCH /repos/{o}/{r}/issues/N` |
|
|
370
|
+
| Search | `gh issue list --search "..."` | `GET /search/issues?q=...` |
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
## Bug Description
|
|
2
|
+
|
|
3
|
+
<!-- Clear, concise description of the bug -->
|
|
4
|
+
|
|
5
|
+
## Steps to Reproduce
|
|
6
|
+
|
|
7
|
+
1.
|
|
8
|
+
2.
|
|
9
|
+
3.
|
|
10
|
+
|
|
11
|
+
## Expected Behavior
|
|
12
|
+
|
|
13
|
+
<!-- What should happen -->
|
|
14
|
+
|
|
15
|
+
## Actual Behavior
|
|
16
|
+
|
|
17
|
+
<!-- What actually happens -->
|
|
18
|
+
|
|
19
|
+
## Environment
|
|
20
|
+
|
|
21
|
+
- OS:
|
|
22
|
+
- Version/Commit:
|
|
23
|
+
- Python version:
|
|
24
|
+
- Browser (if applicable):
|
|
25
|
+
|
|
26
|
+
## Error Output
|
|
27
|
+
|
|
28
|
+
<!-- Paste relevant error messages, stack traces, or logs -->
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Additional Context
|
|
34
|
+
|
|
35
|
+
<!-- Screenshots, related issues, workarounds discovered, etc. -->
|
package/resources/local/hermes-agent-core/skills/github/github-issues/templates/feature-request.md
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
## Feature Description
|
|
2
|
+
|
|
3
|
+
<!-- What do you want? -->
|
|
4
|
+
|
|
5
|
+
## Motivation
|
|
6
|
+
|
|
7
|
+
<!-- Why would this be useful? What problem does it solve? -->
|
|
8
|
+
|
|
9
|
+
## Proposed Solution
|
|
10
|
+
|
|
11
|
+
<!-- How could it work? Include API sketches, CLI examples, or mockups if helpful -->
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
# Example usage
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Alternatives Considered
|
|
18
|
+
|
|
19
|
+
<!-- Other approaches and why they're less ideal -->
|
|
20
|
+
|
|
21
|
+
-
|
|
22
|
+
|
|
23
|
+
## Scope / Effort Estimate
|
|
24
|
+
|
|
25
|
+
<!-- How big is this? What areas of the codebase would it touch? -->
|
|
26
|
+
|
|
27
|
+
Small / Medium / Large — <!-- explanation -->
|
|
28
|
+
|
|
29
|
+
## Additional Context
|
|
30
|
+
|
|
31
|
+
<!-- Links to similar features in other tools, relevant discussions, etc. -->
|