mindforge-cc 11.5.1 → 11.6.0

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.
Files changed (170) hide show
  1. package/.agent/mindforge/skill-tdd.md +53 -0
  2. package/.agent/mindforge/skills-index.md +118 -0
  3. package/.agent/mindforge/systematic-debug.md +60 -0
  4. package/.agent/skills/1password-skill/SKILL.md +156 -0
  5. package/.agent/skills/1password-skill/references/cli-examples.md +31 -0
  6. package/.agent/skills/1password-skill/references/get-started.md +21 -0
  7. package/.agent/skills/article-illustrator/SKILL.md +199 -0
  8. package/.agent/skills/article-illustrator/references/prompt-construction.md +426 -0
  9. package/.agent/skills/article-illustrator/references/style-presets.md +80 -0
  10. package/.agent/skills/article-illustrator/references/styles.md +224 -0
  11. package/.agent/skills/article-illustrator/references/usage.md +50 -0
  12. package/.agent/skills/article-illustrator/references/workflow.md +332 -0
  13. package/.agent/skills/arxiv/SKILL.md +275 -0
  14. package/.agent/skills/blogwatcher/SKILL.md +130 -0
  15. package/.agent/skills/code-wiki/SKILL.md +438 -0
  16. package/.agent/skills/code-wiki/templates/README.md +31 -0
  17. package/.agent/skills/code-wiki/templates/architecture.md +30 -0
  18. package/.agent/skills/code-wiki/templates/getting-started.md +47 -0
  19. package/.agent/skills/code-wiki/templates/module.md +38 -0
  20. package/.agent/skills/codebase-inspection/SKILL.md +109 -0
  21. package/.agent/skills/comic-creator/SKILL.md +240 -0
  22. package/.agent/skills/comic-creator/references/analysis-framework.md +176 -0
  23. package/.agent/skills/comic-creator/references/auto-selection.md +71 -0
  24. package/.agent/skills/comic-creator/references/base-prompt.md +98 -0
  25. package/.agent/skills/comic-creator/references/character-template.md +180 -0
  26. package/.agent/skills/comic-creator/references/ohmsha-guide.md +85 -0
  27. package/.agent/skills/comic-creator/references/partial-workflows.md +106 -0
  28. package/.agent/skills/comic-creator/references/storyboard-template.md +143 -0
  29. package/.agent/skills/comic-creator/references/workflow.md +401 -0
  30. package/.agent/skills/concept-diagrams/SKILL.md +355 -0
  31. package/.agent/skills/concept-diagrams/references/dashboard-patterns.md +43 -0
  32. package/.agent/skills/concept-diagrams/references/infrastructure-patterns.md +144 -0
  33. package/.agent/skills/concept-diagrams/references/physical-shape-cookbook.md +42 -0
  34. package/.agent/skills/creative-ideation/SKILL.md +144 -0
  35. package/.agent/skills/creative-ideation/references/full-prompt-library.md +110 -0
  36. package/.agent/skills/devops-cli/SKILL.md +149 -0
  37. package/.agent/skills/devops-cli/references/app-discovery.md +112 -0
  38. package/.agent/skills/devops-cli/references/authentication.md +59 -0
  39. package/.agent/skills/devops-cli/references/cli-reference.md +104 -0
  40. package/.agent/skills/devops-cli/references/running-apps.md +171 -0
  41. package/.agent/skills/devops-watchers/SKILL.md +103 -0
  42. package/.agent/skills/docker-management/SKILL.md +273 -0
  43. package/.agent/skills/domain-intel/SKILL.md +96 -0
  44. package/.agent/skills/duckduckgo-search/SKILL.md +230 -0
  45. package/.agent/skills/github-auth/SKILL.md +240 -0
  46. package/.agent/skills/github-code-review/SKILL.md +474 -0
  47. package/.agent/skills/github-code-review/references/review-output-template.md +74 -0
  48. package/.agent/skills/github-issues/SKILL.md +363 -0
  49. package/.agent/skills/github-issues/templates/bug-report.md +35 -0
  50. package/.agent/skills/github-issues/templates/feature-request.md +31 -0
  51. package/.agent/skills/github-pr-workflow/SKILL.md +360 -0
  52. package/.agent/skills/github-pr-workflow/references/ci-troubleshooting.md +183 -0
  53. package/.agent/skills/github-pr-workflow/references/conventional-commits.md +71 -0
  54. package/.agent/skills/github-pr-workflow/templates/pr-body-bugfix.md +35 -0
  55. package/.agent/skills/github-pr-workflow/templates/pr-body-feature.md +33 -0
  56. package/.agent/skills/github-repo-management/SKILL.md +509 -0
  57. package/.agent/skills/github-repo-management/references/github-api-cheatsheet.md +161 -0
  58. package/.agent/skills/godmode/SKILL.md +396 -0
  59. package/.agent/skills/godmode/references/jailbreak-templates.md +128 -0
  60. package/.agent/skills/godmode/references/refusal-detection.md +142 -0
  61. package/.agent/skills/hyperframes/SKILL.md +182 -0
  62. package/.agent/skills/hyperframes/references/cli.md +185 -0
  63. package/.agent/skills/hyperframes/references/composition.md +129 -0
  64. package/.agent/skills/hyperframes/references/features.md +289 -0
  65. package/.agent/skills/hyperframes/references/gsap.md +136 -0
  66. package/.agent/skills/hyperframes/references/troubleshooting.md +137 -0
  67. package/.agent/skills/hyperframes/references/website-to-video.md +145 -0
  68. package/.agent/skills/jupyter-live-kernel/SKILL.md +160 -0
  69. package/.agent/skills/kanban-orchestrator/SKILL.md +209 -0
  70. package/.agent/skills/kanban-worker/SKILL.md +188 -0
  71. package/.agent/skills/llm-wiki/SKILL.md +499 -0
  72. package/.agent/skills/meme-generation/SKILL.md +122 -0
  73. package/.agent/skills/node-inspect-debugger/SKILL.md +312 -0
  74. package/.agent/skills/obsidian/SKILL.md +60 -0
  75. package/.agent/skills/osint-investigation/SKILL.md +269 -0
  76. package/.agent/skills/osint-investigation/templates/source-template.md +59 -0
  77. package/.agent/skills/oss-forensics/SKILL.md +422 -0
  78. package/.agent/skills/oss-forensics/references/evidence-types.md +89 -0
  79. package/.agent/skills/oss-forensics/references/github-archive-guide.md +184 -0
  80. package/.agent/skills/oss-forensics/references/investigation-templates.md +131 -0
  81. package/.agent/skills/oss-forensics/references/recovery-techniques.md +164 -0
  82. package/.agent/skills/oss-forensics/templates/forensic-report.md +151 -0
  83. package/.agent/skills/oss-forensics/templates/malicious-package-report.md +43 -0
  84. package/.agent/skills/parallel-cli/SKILL.md +384 -0
  85. package/.agent/skills/pinggy-tunnel/SKILL.md +302 -0
  86. package/.agent/skills/pixel-art/SKILL.md +209 -0
  87. package/.agent/skills/pixel-art/references/palettes.md +49 -0
  88. package/.agent/skills/plan/SKILL.md +331 -0
  89. package/.agent/skills/polymarket/SKILL.md +75 -0
  90. package/.agent/skills/polymarket/references/api-endpoints.md +220 -0
  91. package/.agent/skills/python-debugpy/SKILL.md +368 -0
  92. package/.agent/skills/requesting-code-review/SKILL.md +273 -0
  93. package/.agent/skills/research-paper-writing/SKILL.md +2367 -0
  94. package/.agent/skills/research-paper-writing/references/autoreason-methodology.md +394 -0
  95. package/.agent/skills/research-paper-writing/references/checklists.md +434 -0
  96. package/.agent/skills/research-paper-writing/references/citation-workflow.md +563 -0
  97. package/.agent/skills/research-paper-writing/references/experiment-patterns.md +728 -0
  98. package/.agent/skills/research-paper-writing/references/human-evaluation.md +476 -0
  99. package/.agent/skills/research-paper-writing/references/paper-types.md +481 -0
  100. package/.agent/skills/research-paper-writing/references/reviewer-guidelines.md +433 -0
  101. package/.agent/skills/research-paper-writing/references/sources.md +191 -0
  102. package/.agent/skills/research-paper-writing/references/writing-guide.md +474 -0
  103. package/.agent/skills/research-paper-writing/templates/README.md +251 -0
  104. package/.agent/skills/rest-graphql-debug/SKILL.md +507 -0
  105. package/.agent/skills/s6-container-supervision/SKILL.md +171 -0
  106. package/.agent/skills/scrapling/SKILL.md +328 -0
  107. package/.agent/skills/sherlock/SKILL.md +186 -0
  108. package/.agent/skills/simplify-code/SKILL.md +168 -0
  109. package/.agent/skills/skill-authoring/SKILL.md +158 -0
  110. package/.agent/skills/spike/SKILL.md +190 -0
  111. package/.agent/skills/subagent-driven-development/SKILL.md +345 -0
  112. package/.agent/skills/subagent-driven-development/references/context-budget-discipline.md +53 -0
  113. package/.agent/skills/subagent-driven-development/references/gates-taxonomy.md +93 -0
  114. package/.agent/skills/systematic-debugging/SKILL.md +360 -0
  115. package/.agent/skills/test-driven-development/SKILL.md +336 -0
  116. package/.agent/skills/video-orchestrator/SKILL.md +194 -0
  117. package/.agent/skills/video-orchestrator/references/examples.md +227 -0
  118. package/.agent/skills/video-orchestrator/references/intake.md +166 -0
  119. package/.agent/skills/video-orchestrator/references/kanban-setup.md +278 -0
  120. package/.agent/skills/video-orchestrator/references/monitoring.md +180 -0
  121. package/.agent/skills/video-orchestrator/references/role-archetypes.md +298 -0
  122. package/.agent/skills/video-orchestrator/references/tool-matrix.md +317 -0
  123. package/.agent/skills/web-pentest/SKILL.md +332 -0
  124. package/.agent/skills/web-pentest/references/bypass-techniques.md +133 -0
  125. package/.agent/skills/web-pentest/references/exploitation-techniques.md +204 -0
  126. package/.agent/skills/web-pentest/references/scope-enforcement.md +110 -0
  127. package/.agent/skills/web-pentest/references/vuln-taxonomy.md +81 -0
  128. package/.agent/skills/web-pentest/templates/authorization.md +69 -0
  129. package/.agent/skills/web-pentest/templates/pentest-report.md +178 -0
  130. package/.claude/commands/mindforge/skill-tdd.md +53 -0
  131. package/.claude/commands/mindforge/skills-index.md +118 -0
  132. package/.claude/commands/mindforge/systematic-debug.md +60 -0
  133. package/.mindforge/config.json +2 -2
  134. package/.mindforge/memory/sync-manifest.json +1 -1
  135. package/.mindforge/skills/arxiv/SKILL.md +294 -0
  136. package/.mindforge/skills/blogwatcher/SKILL.md +147 -0
  137. package/.mindforge/skills/code-wiki/SKILL.md +457 -0
  138. package/.mindforge/skills/codebase-inspection/SKILL.md +126 -0
  139. package/.mindforge/skills/concept-diagrams/SKILL.md +373 -0
  140. package/.mindforge/skills/creative-ideation/SKILL.md +162 -0
  141. package/.mindforge/skills/domain-intel/SKILL.md +116 -0
  142. package/.mindforge/skills/duckduckgo-search/SKILL.md +249 -0
  143. package/.mindforge/skills/github-code-review/SKILL.md +493 -0
  144. package/.mindforge/skills/github-issues/SKILL.md +382 -0
  145. package/.mindforge/skills/github-pr-workflow/SKILL.md +379 -0
  146. package/.mindforge/skills/jupyter-live-kernel/SKILL.md +179 -0
  147. package/.mindforge/skills/kanban-orchestrator/SKILL.md +227 -0
  148. package/.mindforge/skills/kanban-worker/SKILL.md +206 -0
  149. package/.mindforge/skills/meme-generation/SKILL.md +141 -0
  150. package/.mindforge/skills/obsidian/SKILL.md +80 -0
  151. package/.mindforge/skills/osint-investigation/SKILL.md +288 -0
  152. package/.mindforge/skills/oss-forensics/SKILL.md +421 -0
  153. package/.mindforge/skills/pixel-art/SKILL.md +228 -0
  154. package/.mindforge/skills/plan/SKILL.md +350 -0
  155. package/.mindforge/skills/requesting-code-review/SKILL.md +292 -0
  156. package/.mindforge/skills/research-paper-writing/SKILL.md +2384 -0
  157. package/.mindforge/skills/scrapling/SKILL.md +345 -0
  158. package/.mindforge/skills/sherlock/SKILL.md +203 -0
  159. package/.mindforge/skills/simplify-code/SKILL.md +187 -0
  160. package/.mindforge/skills/spike/SKILL.md +209 -0
  161. package/.mindforge/skills/subagent-driven-development/SKILL.md +364 -0
  162. package/.mindforge/skills/systematic-debugging/SKILL.md +379 -0
  163. package/.mindforge/skills/test-driven-development/SKILL.md +355 -0
  164. package/.mindforge/skills/web-pentest/SKILL.md +327 -0
  165. package/CHANGELOG.md +43 -0
  166. package/MINDFORGE.md +2 -2
  167. package/README.md +39 -3
  168. package/RELEASENOTES.md +55 -0
  169. package/docs/getting-started.md +42 -5
  170. package/package.json +1 -1
@@ -0,0 +1,382 @@
1
+ ---
2
+ name: github-issues
3
+ description: "Create, triage, label, assign GitHub issues via gh or REST."
4
+ version: 1.1.0
5
+ status: stable
6
+ min_mindforge_version: 11.5.1
7
+ triggers: github issues, create issue, manage issues, issue triage, file a bug, open github issue, github bug report, create github issue, issue management, triage issues, label issues, github issue workflow
8
+ ---
9
+
10
+ # GitHub Issues Management
11
+
12
+ Create, search, triage, and manage GitHub issues. Each section shows `gh` first, then the `curl` fallback.
13
+
14
+ ## Prerequisites
15
+
16
+ - Authenticated with GitHub (see `github-auth` skill)
17
+ - Inside a git repo with a GitHub remote, or specify the repo explicitly
18
+
19
+ ### Setup
20
+
21
+ ```bash
22
+ if command -v gh &>/dev/null && gh auth status &>/dev/null; then
23
+ AUTH="gh"
24
+ else
25
+ AUTH="git"
26
+ if [ -z "$GITHUB_TOKEN" ]; then
27
+ if _agent_env="${AGENT_HOME:-$HOME/.agent}/.env"; [ -f "$_agent_env" ] && grep -q "^GITHUB_TOKEN=" "$_agent_env"; then
28
+ GITHUB_TOKEN=$(grep "^GITHUB_TOKEN=" "$_agent_env" | head -1 | cut -d= -f2 | tr -d '\n\r')
29
+ elif grep -q "github.com" ~/.git-credentials 2>/dev/null; then
30
+ GITHUB_TOKEN=$(grep "github.com" ~/.git-credentials 2>/dev/null | head -1 | sed 's|https://[^:]*:\([^@]*\)@.*|\1|')
31
+ fi
32
+ fi
33
+ fi
34
+
35
+ REMOTE_URL=$(git remote get-url origin)
36
+ OWNER_REPO=$(echo "$REMOTE_URL" | sed -E 's|.*github\.com[:/]||; s|\.git$||')
37
+ OWNER=$(echo "$OWNER_REPO" | cut -d/ -f1)
38
+ REPO=$(echo "$OWNER_REPO" | cut -d/ -f2)
39
+ ```
40
+
41
+ ---
42
+
43
+ ## 1. Viewing Issues
44
+
45
+ **With gh:**
46
+
47
+ ```bash
48
+ gh issue list
49
+ gh issue list --state open --label "bug"
50
+ gh issue list --assignee @me
51
+ gh issue list --search "authentication error" --state all
52
+ gh issue view 42
53
+ ```
54
+
55
+ **With curl:**
56
+
57
+ ```bash
58
+ # List open issues
59
+ curl -s \
60
+ -H "Authorization: token $GITHUB_TOKEN" \
61
+ "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&per_page=20" \
62
+ | python3 -c "
63
+ import sys, json
64
+ for i in json.load(sys.stdin):
65
+ if 'pull_request' not in i: # GitHub API returns PRs in /issues too
66
+ labels = ', '.join(l['name'] for l in i['labels'])
67
+ print(f\"#{i['number']:5} {i['state']:6} {labels:30} {i['title']}\")"
68
+
69
+ # Filter by label
70
+ curl -s \
71
+ -H "Authorization: token $GITHUB_TOKEN" \
72
+ "https://api.github.com/repos/$OWNER/$REPO/issues?state=open&labels=bug&per_page=20" \
73
+ | python3 -c "
74
+ import sys, json
75
+ for i in json.load(sys.stdin):
76
+ if 'pull_request' not in i:
77
+ print(f\"#{i['number']} {i['title']}\")"
78
+
79
+ # View a specific issue
80
+ curl -s \
81
+ -H "Authorization: token $GITHUB_TOKEN" \
82
+ https://api.github.com/repos/$OWNER/$REPO/issues/42 \
83
+ | python3 -c "
84
+ import sys, json
85
+ i = json.load(sys.stdin)
86
+ labels = ', '.join(l['name'] for l in i['labels'])
87
+ assignees = ', '.join(a['login'] for a in i['assignees'])
88
+ print(f\"#{i['number']}: {i['title']}\")
89
+ print(f\"State: {i['state']} Labels: {labels} Assignees: {assignees}\")
90
+ print(f\"Author: {i['user']['login']} Created: {i['created_at']}\")
91
+ print(f\"\n{i['body']}\")"
92
+
93
+ # Search issues
94
+ curl -s \
95
+ -H "Authorization: token $GITHUB_TOKEN" \
96
+ "https://api.github.com/search/issues?q=authentication+error+repo:$OWNER/$REPO" \
97
+ | python3 -c "
98
+ import sys, json
99
+ for i in json.load(sys.stdin)['items']:
100
+ print(f\"#{i['number']} {i['state']:6} {i['title']}\")"
101
+ ```
102
+
103
+ ## 2. Creating Issues
104
+
105
+ **With gh:**
106
+
107
+ ```bash
108
+ gh issue create \
109
+ --title "Login redirect ignores ?next= parameter" \
110
+ --body "## Description
111
+ After logging in, users always land on /dashboard.
112
+
113
+ ## Steps to Reproduce
114
+ 1. Navigate to /settings while logged out
115
+ 2. Get redirected to /login?next=/settings
116
+ 3. Log in
117
+ 4. Actual: redirected to /dashboard (should go to /settings)
118
+
119
+ ## Expected Behavior
120
+ Respect the ?next= query parameter." \
121
+ --label "bug,backend" \
122
+ --assignee "username"
123
+ ```
124
+
125
+ **With curl:**
126
+
127
+ ```bash
128
+ curl -s -X POST \
129
+ -H "Authorization: token $GITHUB_TOKEN" \
130
+ https://api.github.com/repos/$OWNER/$REPO/issues \
131
+ -d '{
132
+ "title": "Login redirect ignores ?next= parameter",
133
+ "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.",
134
+ "labels": ["bug", "backend"],
135
+ "assignees": ["username"]
136
+ }'
137
+ ```
138
+
139
+ ### Bug Report Template
140
+
141
+ ```
142
+ ## Bug Description
143
+ <What's happening>
144
+
145
+ ## Steps to Reproduce
146
+ 1. <step>
147
+ 2. <step>
148
+
149
+ ## Expected Behavior
150
+ <What should happen>
151
+
152
+ ## Actual Behavior
153
+ <What actually happens>
154
+
155
+ ## Environment
156
+ - OS: <os>
157
+ - Version: <version>
158
+ ```
159
+
160
+ ### Feature Request Template
161
+
162
+ ```
163
+ ## Feature Description
164
+ <What you want>
165
+
166
+ ## Motivation
167
+ <Why this would be useful>
168
+
169
+ ## Proposed Solution
170
+ <How it could work>
171
+
172
+ ## Alternatives Considered
173
+ <Other approaches>
174
+ ```
175
+
176
+ ## 3. Managing Issues
177
+
178
+ ### Add/Remove Labels
179
+
180
+ **With gh:**
181
+
182
+ ```bash
183
+ gh issue edit 42 --add-label "priority:high,bug"
184
+ gh issue edit 42 --remove-label "needs-triage"
185
+ ```
186
+
187
+ **With curl:**
188
+
189
+ ```bash
190
+ # Add labels
191
+ curl -s -X POST \
192
+ -H "Authorization: token $GITHUB_TOKEN" \
193
+ https://api.github.com/repos/$OWNER/$REPO/issues/42/labels \
194
+ -d '{"labels": ["priority:high", "bug"]}'
195
+
196
+ # Remove a label
197
+ curl -s -X DELETE \
198
+ -H "Authorization: token $GITHUB_TOKEN" \
199
+ https://api.github.com/repos/$OWNER/$REPO/issues/42/labels/needs-triage
200
+
201
+ # List available labels in the repo
202
+ curl -s \
203
+ -H "Authorization: token $GITHUB_TOKEN" \
204
+ https://api.github.com/repos/$OWNER/$REPO/labels \
205
+ | python3 -c "
206
+ import sys, json
207
+ for l in json.load(sys.stdin):
208
+ print(f\" {l['name']:30} {l.get('description', '')}\")"
209
+ ```
210
+
211
+ ### Assignment
212
+
213
+ **With gh:**
214
+
215
+ ```bash
216
+ gh issue edit 42 --add-assignee username
217
+ gh issue edit 42 --add-assignee @me
218
+ ```
219
+
220
+ **With curl:**
221
+
222
+ ```bash
223
+ curl -s -X POST \
224
+ -H "Authorization: token $GITHUB_TOKEN" \
225
+ https://api.github.com/repos/$OWNER/$REPO/issues/42/assignees \
226
+ -d '{"assignees": ["username"]}'
227
+ ```
228
+
229
+ ### Commenting
230
+
231
+ **With gh:**
232
+
233
+ ```bash
234
+ gh issue comment 42 --body "Investigated — root cause is in auth middleware. Working on a fix."
235
+ ```
236
+
237
+ **With curl:**
238
+
239
+ ```bash
240
+ curl -s -X POST \
241
+ -H "Authorization: token $GITHUB_TOKEN" \
242
+ https://api.github.com/repos/$OWNER/$REPO/issues/42/comments \
243
+ -d '{"body": "Investigated — root cause is in auth middleware. Working on a fix."}'
244
+ ```
245
+
246
+ ### Closing and Reopening
247
+
248
+ **With gh:**
249
+
250
+ ```bash
251
+ gh issue close 42
252
+ gh issue close 42 --reason "not planned"
253
+ gh issue reopen 42
254
+ ```
255
+
256
+ **With curl:**
257
+
258
+ ```bash
259
+ # Close
260
+ curl -s -X PATCH \
261
+ -H "Authorization: token $GITHUB_TOKEN" \
262
+ https://api.github.com/repos/$OWNER/$REPO/issues/42 \
263
+ -d '{"state": "closed", "state_reason": "completed"}'
264
+
265
+ # Reopen
266
+ curl -s -X PATCH \
267
+ -H "Authorization: token $GITHUB_TOKEN" \
268
+ https://api.github.com/repos/$OWNER/$REPO/issues/42 \
269
+ -d '{"state": "open"}'
270
+ ```
271
+
272
+ ### Linking Issues to PRs
273
+
274
+ Issues are automatically closed when a PR merges with the right keywords in the body:
275
+
276
+ ```
277
+ Closes #42
278
+ Fixes #42
279
+ Resolves #42
280
+ ```
281
+
282
+ To create a branch from an issue:
283
+
284
+ **With gh:**
285
+
286
+ ```bash
287
+ gh issue develop 42 --checkout
288
+ ```
289
+
290
+ **With git (manual equivalent):**
291
+
292
+ ```bash
293
+ git checkout main && git pull origin main
294
+ git checkout -b fix/issue-42-login-redirect
295
+ ```
296
+
297
+ ## 4. Issue Triage Workflow
298
+
299
+ When asked to triage issues:
300
+
301
+ 1. **List untriaged issues:**
302
+
303
+ ```bash
304
+ # With gh
305
+ gh issue list --label "needs-triage" --state open
306
+
307
+ # With curl
308
+ curl -s \
309
+ -H "Authorization: token $GITHUB_TOKEN" \
310
+ "https://api.github.com/repos/$OWNER/$REPO/issues?labels=needs-triage&state=open" \
311
+ | python3 -c "
312
+ import sys, json
313
+ for i in json.load(sys.stdin):
314
+ if 'pull_request' not in i:
315
+ print(f\"#{i['number']} {i['title']}\")"
316
+ ```
317
+
318
+ 2. **Read and categorize** each issue (view details, understand the bug/feature)
319
+
320
+ 3. **Apply labels and priority** (see Managing Issues above)
321
+
322
+ 4. **Assign** if the owner is clear
323
+
324
+ 5. **Comment with triage notes** if needed
325
+
326
+ ## 5. Bulk Operations
327
+
328
+ For batch operations, combine API calls with shell scripting:
329
+
330
+ **With gh:**
331
+
332
+ ```bash
333
+ # Close all issues with a specific label
334
+ gh issue list --label "wontfix" --json number --jq '.[].number' | \
335
+ xargs -I {} gh issue close {} --reason "not planned"
336
+ ```
337
+
338
+ **With curl:**
339
+
340
+ ```bash
341
+ # List issue numbers with a label, then close each
342
+ curl -s \
343
+ -H "Authorization: token $GITHUB_TOKEN" \
344
+ "https://api.github.com/repos/$OWNER/$REPO/issues?labels=wontfix&state=open" \
345
+ | python3 -c "import sys,json; [print(i['number']) for i in json.load(sys.stdin)]" \
346
+ | while read num; do
347
+ curl -s -X PATCH \
348
+ -H "Authorization: token $GITHUB_TOKEN" \
349
+ https://api.github.com/repos/$OWNER/$REPO/issues/$num \
350
+ -d '{"state": "closed", "state_reason": "not_planned"}'
351
+ echo "Closed #$num"
352
+ done
353
+ ```
354
+
355
+ ## Quick Reference Table
356
+
357
+ | Action | gh | curl endpoint |
358
+ |--------|-----|--------------|
359
+ | List issues | `gh issue list` | `GET /repos/{o}/{r}/issues` |
360
+ | View issue | `gh issue view N` | `GET /repos/{o}/{r}/issues/N` |
361
+ | Create issue | `gh issue create ...` | `POST /repos/{o}/{r}/issues` |
362
+ | Add labels | `gh issue edit N --add-label ...` | `POST /repos/{o}/{r}/issues/N/labels` |
363
+ | Assign | `gh issue edit N --add-assignee ...` | `POST /repos/{o}/{r}/issues/N/assignees` |
364
+ | Comment | `gh issue comment N --body ...` | `POST /repos/{o}/{r}/issues/N/comments` |
365
+ | Close | `gh issue close N` | `PATCH /repos/{o}/{r}/issues/N` |
366
+ | Search | `gh issue list --search "..."` | `GET /search/issues?q=...` |
367
+
368
+ ## Mandatory actions when this skill is active
369
+
370
+ Before applying this skill:
371
+ - [ ] Read the task requirements fully before acting
372
+ - [ ] Confirm you understand the goal and constraints
373
+ - [ ] Check for existing work or prior context in the codebase
374
+
375
+ While working:
376
+ - [ ] Follow the methodology described above step by step
377
+ - [ ] Document any decisions or findings as you go
378
+
379
+ After completing:
380
+ - [ ] Self-check: does the output satisfy the original requirement?
381
+ - [ ] Verify no regressions or unintended side effects
382
+