@olegkoval/agent-skills 1.20.0 → 1.21.1

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 (50) hide show
  1. package/.claude-plugin/plugin.json +6 -2
  2. package/.cursor-plugin/index.json +20 -0
  3. package/.grok-plugin/index.json +20 -0
  4. package/.kiro/steering/add-to-my-skills.md +1 -2
  5. package/.kiro/steering/ai-tools-setup.md +1 -2
  6. package/.kiro/steering/changelog-generator.md +1 -2
  7. package/.kiro/steering/coderabbitloop.md +109 -0
  8. package/.windsurf/rules/add-to-my-skills.md +1 -2
  9. package/.windsurf/rules/ai-tools-setup.md +1 -2
  10. package/.windsurf/rules/changelog-generator.md +1 -2
  11. package/.windsurf/rules/coderabbitloop.md +108 -0
  12. package/README.md +5 -2
  13. package/catalog/skills.json +92 -0
  14. package/package.json +1 -1
  15. package/packages/software-development/add-to-my-skills/adapters/claude/plugin.json +1 -1
  16. package/packages/software-development/add-to-my-skills/adapters/cursor/plugin.json +1 -1
  17. package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +1 -1
  18. package/packages/software-development/add-to-my-skills/adapters/grok/plugin.json +6 -0
  19. package/packages/software-development/add-to-my-skills/adapters/grok/skills/add-to-my-skills/SKILL.md +89 -0
  20. package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +1 -1
  21. package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +1 -1
  22. package/packages/software-development/ai-tools-setup/adapters/claude/plugin.json +1 -1
  23. package/packages/software-development/ai-tools-setup/adapters/cursor/plugin.json +1 -1
  24. package/packages/software-development/ai-tools-setup/adapters/cursor/skills/ai-tools-setup/SKILL.md +1 -1
  25. package/packages/software-development/ai-tools-setup/adapters/grok/plugin.json +6 -0
  26. package/packages/software-development/ai-tools-setup/adapters/grok/skills/ai-tools-setup/SKILL.md +276 -0
  27. package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +1 -1
  28. package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +1 -1
  29. package/packages/software-development/changelog-generator/adapters/claude/plugin.json +1 -1
  30. package/packages/software-development/changelog-generator/adapters/cursor/plugin.json +1 -1
  31. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +1 -1
  32. package/packages/software-development/changelog-generator/adapters/grok/plugin.json +6 -0
  33. package/packages/software-development/changelog-generator/adapters/grok/skills/changelog-generator/SKILL.md +115 -0
  34. package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +1 -1
  35. package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +1 -1
  36. package/packages/software-development/coderabbitloop/SKILL.md +117 -0
  37. package/packages/software-development/coderabbitloop/adapters/claude/plugin.json +5 -0
  38. package/packages/software-development/coderabbitloop/adapters/claude/skills/coderabbitloop/SKILL.md +118 -0
  39. package/packages/software-development/coderabbitloop/adapters/claude/skills/coderabbitloop/references/graphql-queries.md +101 -0
  40. package/packages/software-development/coderabbitloop/adapters/codex/README.md +20 -0
  41. package/packages/software-development/coderabbitloop/adapters/cursor/plugin.json +6 -0
  42. package/packages/software-development/coderabbitloop/adapters/cursor/skills/coderabbitloop/SKILL.md +119 -0
  43. package/packages/software-development/coderabbitloop/adapters/cursor/skills/coderabbitloop/references/graphql-queries.md +101 -0
  44. package/packages/software-development/coderabbitloop/adapters/grok/plugin.json +6 -0
  45. package/packages/software-development/coderabbitloop/adapters/grok/skills/coderabbitloop/SKILL.md +118 -0
  46. package/packages/software-development/coderabbitloop/adapters/grok/skills/coderabbitloop/references/graphql-queries.md +101 -0
  47. package/packages/software-development/coderabbitloop/adapters/kiro/steering/coderabbitloop.md +109 -0
  48. package/packages/software-development/coderabbitloop/adapters/windsurf/rules/coderabbitloop.md +108 -0
  49. package/packages/software-development/coderabbitloop/references/graphql-queries.md +101 -0
  50. package/scripts/validate-catalog.sh +38 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "olko-agent-skills",
3
3
  "description": "Agent-agnostic skill catalog for Codex, Claude, Cursor, Grok, Copilot, Windsurf, Kiro, and other skill-aware tools.",
4
- "version": "1.19.1",
4
+ "version": "1.21.0",
5
5
  "author": {
6
6
  "name": "Oleg Koval"
7
7
  },
@@ -33,6 +33,10 @@
33
33
  "./packages/software-development/skill-budget-audit",
34
34
  "./packages/software-development/crash-course",
35
35
  "./packages/software-development/qodoloop",
36
- "./packages/wearables/garmin-watchface"
36
+ "./packages/wearables/garmin-watchface",
37
+ "./packages/software-development/coderabbitloop",
38
+ "./packages/software-development/add-to-my-skills",
39
+ "./packages/software-development/ai-tools-setup",
40
+ "./packages/software-development/changelog-generator"
37
41
  ]
38
42
  }
@@ -115,6 +115,26 @@
115
115
  "name": "olko:garmin-watchface",
116
116
  "source": "./packages/wearables/garmin-watchface/adapters/cursor",
117
117
  "description": "Build, test, screenshot and publish Garmin Connect IQ watch faces in Monkey C."
118
+ },
119
+ {
120
+ "name": "olko:coderabbitloop",
121
+ "source": "./packages/software-development/coderabbitloop/adapters/cursor",
122
+ "description": "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings — reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit."
123
+ },
124
+ {
125
+ "name": "olko:add-to-my-skills",
126
+ "source": "./packages/software-development/add-to-my-skills/adapters/cursor",
127
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
128
+ },
129
+ {
130
+ "name": "olko:ai-tools-setup",
131
+ "source": "./packages/software-development/ai-tools-setup/adapters/cursor",
132
+ "description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
133
+ },
134
+ {
135
+ "name": "olko:changelog-generator",
136
+ "source": "./packages/software-development/changelog-generator/adapters/cursor",
137
+ "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
118
138
  }
119
139
  ]
120
140
  }
@@ -125,6 +125,26 @@
125
125
  "name": "olko:garmin-watchface",
126
126
  "source": "./packages/wearables/garmin-watchface/adapters/grok",
127
127
  "description": "Build, test, screenshot and publish Garmin Connect IQ watch faces in Monkey C."
128
+ },
129
+ {
130
+ "name": "olko:coderabbitloop",
131
+ "source": "./packages/software-development/coderabbitloop/adapters/grok",
132
+ "description": "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings — reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit."
133
+ },
134
+ {
135
+ "name": "olko:add-to-my-skills",
136
+ "source": "./packages/software-development/add-to-my-skills/adapters/grok",
137
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
138
+ },
139
+ {
140
+ "name": "olko:ai-tools-setup",
141
+ "source": "./packages/software-development/ai-tools-setup/adapters/grok",
142
+ "description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
143
+ },
144
+ {
145
+ "name": "olko:changelog-generator",
146
+ "source": "./packages/software-development/changelog-generator/adapters/grok",
147
+ "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
128
148
  }
129
149
  ]
130
150
  }
@@ -2,10 +2,9 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
5
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
6
6
  ---
7
7
 
8
-
9
8
  # Add to My Skills
10
9
 
11
10
  Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
@@ -2,10 +2,9 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
5
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
6
6
  ---
7
7
 
8
-
9
8
  # AI Tools Setup — RTK + ICM + Vox
10
9
 
11
10
  Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
@@ -2,10 +2,9 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Generate user-facing changelogs and release notes from git history."
5
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
6
6
  ---
7
7
 
8
-
9
8
  # Changelog Generator
10
9
 
11
10
  This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
@@ -0,0 +1,109 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings — reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit."
6
+ ---
7
+
8
+ # Coderabbitloop
9
+
10
+ Fix every actionable CodeRabbit finding on a PR, answer each thread, resolve it, and keep going until CodeRabbit has nothing left to say (or a finding needs a human call).
11
+
12
+ ## Inputs
13
+
14
+ - **PR number** (optional): detect from the current branch if not given.
15
+
16
+ ## How CodeRabbit actually posts (verified against docs.coderabbit.ai and a live install — don't assume otherwise)
17
+
18
+ CodeRabbit runs as `coderabbitai[bot]` and posts **two independent things**, not one:
19
+
20
+ 1. An auto-generated **walkthrough/summary issue comment** — body starts with the HTML marker `<!-- This is an auto-generated comment: summarize by coderabbit.ai -->`. This is a description, not a review — use it for context only, never as a source of fixable findings.
21
+ 2. A **formal PR review** carrying one **inline review comment per finding**, each a real, resolvable GitHub review thread at the finding's file/line. Each one contains a `<details><summary>🤖 Prompt for AI Agents</summary>` block: a ready-made fix spec, CodeRabbit's own words, meant to be handed straight to an agent.
22
+
23
+ **Use the inline threads as the source of truth**, exactly like Greptile/Qodo — fetch via GraphQL `reviewThreads`, which carries native `isResolved` state (see `references/graphql-queries.md`, shared with `qodoloop`; only the bot login and the prompt-heading text differ).
24
+
25
+ CodeRabbit has slash commands (official, `docs.coderabbit.ai/reference/review-commands`) — the ones this loop actually uses:
26
+ - `@coderabbitai review` — incremental review of new changes (use this to re-trigger after a push, if automatic review-on-push is off for this repo).
27
+ - `@coderabbitai resolve` — marks **all** CodeRabbit threads resolved in one shot. This is a bulk escape hatch, not the default path: this loop resolves threads one at a time, right after replying to each, so the reply-then-resolve record stays intact per finding.
28
+ - CodeRabbit also has its own built-in `@coderabbitai autofix`, which commits fixes directly without a model in the loop. Mention it to the user as an alternative if they'd rather skip the loop entirely, but this skill's whole point is the Claude-orchestrated version — don't default to autofix instead of doing the work.
29
+
30
+ **Rate limit is a real terminal state, not a bug.** A comment reading "you've reached your PR review limit" (confirmed live wording) means CodeRabbit will not review again this cycle — stop and report it, don't loop waiting for something that isn't coming.
31
+
32
+ ## Instructions
33
+
34
+ ### 1. Identify the PR
35
+
36
+ ```bash
37
+ gh pr view --json number,headRefName,headRefOid -q '{number, branch: .headRefName, sha: .headRefOid}'
38
+ ```
39
+
40
+ Check out the branch if not already on it.
41
+
42
+ ### 2. Loop (max 5 iterations)
43
+
44
+ #### A. Push and wait
45
+
46
+ ```bash
47
+ git push
48
+ ```
49
+
50
+ If this repo doesn't auto-review on push, nudge it:
51
+
52
+ ```bash
53
+ gh pr comment <PR_NUMBER> --body "@coderabbitai review"
54
+ ```
55
+
56
+ Poll (every ~10s, timeout ~5min) for CodeRabbit's next formal review to land — a new entry in `gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/reviews` from `coderabbitai[bot]` created after this push. If you instead see a rate-limit comment ("review limit"), **stop the loop now** and go to Report with `blocked: rate-limited`.
57
+
58
+ #### B. Fetch unresolved findings
59
+
60
+ Run the `unresolvedQodoThreads`-shaped query in `references/graphql-queries.md` (filter `author.login == "coderabbitai[bot]"` instead of Qodo's login). For each unresolved thread, parse the finding text and the **Prompt for AI Agents** block (heading text is `🤖 Prompt for AI Agents`, not `Agent Prompt` — match case/emoji-insensitively).
61
+
62
+ #### C. Check exit conditions
63
+
64
+ Stop if there are zero unresolved CodeRabbit threads, or max iterations reached.
65
+
66
+ #### D. Fix each finding
67
+
68
+ For each thread, in order: read the Prompt for AI Agents block in full — it names the issue and the fix. Apply it, staying inside its stated scope. If the suggestion is wrong, unsafe, or needs a product decision, don't force it — note that in step E instead.
69
+
70
+ #### E. Answer and resolve
71
+
72
+ **Reply to the thread first, then resolve it** — the "answer to the comments" half of the job:
73
+
74
+ ```bash
75
+ gh api graphql -f query='mutation { addPullRequestReviewThreadReply(input: {pullRequestReviewThreadId: "<THREAD_ID>", body: "<REPLY>"}) { comment { id } } }'
76
+ ```
77
+
78
+ Reply body: one or two sentences — what you changed and why, or exactly why you didn't fix it. Then resolve (`resolveReviewThread`). A finding you deliberately skip still gets a reply and gets resolved.
79
+
80
+ #### F. Commit and push
81
+
82
+ ```bash
83
+ git add -A
84
+ git commit -m "address CodeRabbit review feedback (coderabbitloop iteration N)"
85
+ git push
86
+ ```
87
+
88
+ Go back to step A.
89
+
90
+ ### 3. Report
91
+
92
+ | Field | Value |
93
+ |--------------------|-------|
94
+ | Iterations | N |
95
+ | Findings resolved | N |
96
+ | Findings skipped | N (with reasons) |
97
+ | Remaining | N (if any) |
98
+ | Blocked | rate-limited / max-iterations / none |
99
+
100
+ ```
101
+ Coderabbitloop complete.
102
+ Iterations: 2
103
+ Resolved: 4 (3 fixed, 1 false-positive, replied + resolved)
104
+ Remaining: 0
105
+ ```
106
+
107
+ ## References
108
+
109
+ - `references/graphql-queries.md` — shared with `qodoloop`: the exact `reviewThreads` query and the `resolveReviewThread` / `addPullRequestReviewThreadReply` mutations. Swap the author-login filter to `coderabbitai[bot]` and the prompt-heading match to `Prompt for AI Agents`.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
4
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
5
5
  ---
6
6
 
7
-
8
7
  # Add to My Skills
9
8
 
10
9
  Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
4
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
5
5
  ---
6
6
 
7
-
8
7
  # AI Tools Setup — RTK + ICM + Vox
9
8
 
10
9
  Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Generate user-facing changelogs and release notes from git history."
4
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
5
5
  ---
6
6
 
7
-
8
7
  # Changelog Generator
9
8
 
10
9
  This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
@@ -0,0 +1,108 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ description: "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings — reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit."
5
+ ---
6
+
7
+ # Coderabbitloop
8
+
9
+ Fix every actionable CodeRabbit finding on a PR, answer each thread, resolve it, and keep going until CodeRabbit has nothing left to say (or a finding needs a human call).
10
+
11
+ ## Inputs
12
+
13
+ - **PR number** (optional): detect from the current branch if not given.
14
+
15
+ ## How CodeRabbit actually posts (verified against docs.coderabbit.ai and a live install — don't assume otherwise)
16
+
17
+ CodeRabbit runs as `coderabbitai[bot]` and posts **two independent things**, not one:
18
+
19
+ 1. An auto-generated **walkthrough/summary issue comment** — body starts with the HTML marker `<!-- This is an auto-generated comment: summarize by coderabbit.ai -->`. This is a description, not a review — use it for context only, never as a source of fixable findings.
20
+ 2. A **formal PR review** carrying one **inline review comment per finding**, each a real, resolvable GitHub review thread at the finding's file/line. Each one contains a `<details><summary>🤖 Prompt for AI Agents</summary>` block: a ready-made fix spec, CodeRabbit's own words, meant to be handed straight to an agent.
21
+
22
+ **Use the inline threads as the source of truth**, exactly like Greptile/Qodo — fetch via GraphQL `reviewThreads`, which carries native `isResolved` state (see `references/graphql-queries.md`, shared with `qodoloop`; only the bot login and the prompt-heading text differ).
23
+
24
+ CodeRabbit has slash commands (official, `docs.coderabbit.ai/reference/review-commands`) — the ones this loop actually uses:
25
+ - `@coderabbitai review` — incremental review of new changes (use this to re-trigger after a push, if automatic review-on-push is off for this repo).
26
+ - `@coderabbitai resolve` — marks **all** CodeRabbit threads resolved in one shot. This is a bulk escape hatch, not the default path: this loop resolves threads one at a time, right after replying to each, so the reply-then-resolve record stays intact per finding.
27
+ - CodeRabbit also has its own built-in `@coderabbitai autofix`, which commits fixes directly without a model in the loop. Mention it to the user as an alternative if they'd rather skip the loop entirely, but this skill's whole point is the Claude-orchestrated version — don't default to autofix instead of doing the work.
28
+
29
+ **Rate limit is a real terminal state, not a bug.** A comment reading "you've reached your PR review limit" (confirmed live wording) means CodeRabbit will not review again this cycle — stop and report it, don't loop waiting for something that isn't coming.
30
+
31
+ ## Instructions
32
+
33
+ ### 1. Identify the PR
34
+
35
+ ```bash
36
+ gh pr view --json number,headRefName,headRefOid -q '{number, branch: .headRefName, sha: .headRefOid}'
37
+ ```
38
+
39
+ Check out the branch if not already on it.
40
+
41
+ ### 2. Loop (max 5 iterations)
42
+
43
+ #### A. Push and wait
44
+
45
+ ```bash
46
+ git push
47
+ ```
48
+
49
+ If this repo doesn't auto-review on push, nudge it:
50
+
51
+ ```bash
52
+ gh pr comment <PR_NUMBER> --body "@coderabbitai review"
53
+ ```
54
+
55
+ Poll (every ~10s, timeout ~5min) for CodeRabbit's next formal review to land — a new entry in `gh api repos/{owner}/{repo}/pulls/<PR_NUMBER>/reviews` from `coderabbitai[bot]` created after this push. If you instead see a rate-limit comment ("review limit"), **stop the loop now** and go to Report with `blocked: rate-limited`.
56
+
57
+ #### B. Fetch unresolved findings
58
+
59
+ Run the `unresolvedQodoThreads`-shaped query in `references/graphql-queries.md` (filter `author.login == "coderabbitai[bot]"` instead of Qodo's login). For each unresolved thread, parse the finding text and the **Prompt for AI Agents** block (heading text is `🤖 Prompt for AI Agents`, not `Agent Prompt` — match case/emoji-insensitively).
60
+
61
+ #### C. Check exit conditions
62
+
63
+ Stop if there are zero unresolved CodeRabbit threads, or max iterations reached.
64
+
65
+ #### D. Fix each finding
66
+
67
+ For each thread, in order: read the Prompt for AI Agents block in full — it names the issue and the fix. Apply it, staying inside its stated scope. If the suggestion is wrong, unsafe, or needs a product decision, don't force it — note that in step E instead.
68
+
69
+ #### E. Answer and resolve
70
+
71
+ **Reply to the thread first, then resolve it** — the "answer to the comments" half of the job:
72
+
73
+ ```bash
74
+ gh api graphql -f query='mutation { addPullRequestReviewThreadReply(input: {pullRequestReviewThreadId: "<THREAD_ID>", body: "<REPLY>"}) { comment { id } } }'
75
+ ```
76
+
77
+ Reply body: one or two sentences — what you changed and why, or exactly why you didn't fix it. Then resolve (`resolveReviewThread`). A finding you deliberately skip still gets a reply and gets resolved.
78
+
79
+ #### F. Commit and push
80
+
81
+ ```bash
82
+ git add -A
83
+ git commit -m "address CodeRabbit review feedback (coderabbitloop iteration N)"
84
+ git push
85
+ ```
86
+
87
+ Go back to step A.
88
+
89
+ ### 3. Report
90
+
91
+ | Field | Value |
92
+ |--------------------|-------|
93
+ | Iterations | N |
94
+ | Findings resolved | N |
95
+ | Findings skipped | N (with reasons) |
96
+ | Remaining | N (if any) |
97
+ | Blocked | rate-limited / max-iterations / none |
98
+
99
+ ```
100
+ Coderabbitloop complete.
101
+ Iterations: 2
102
+ Resolved: 4 (3 fixed, 1 false-positive, replied + resolved)
103
+ Remaining: 0
104
+ ```
105
+
106
+ ## References
107
+
108
+ - `references/graphql-queries.md` — shared with `qodoloop`: the exact `reviewThreads` query and the `resolveReviewThread` / `addPullRequestReviewThreadReply` mutations. Swap the author-login filter to `coderabbitai[bot]` and the prompt-heading match to `Prompt for AI Agents`.
package/README.md CHANGED
@@ -136,11 +136,11 @@ packages/{category}/{skill}/SKILL.md
136
136
 
137
137
  </details>
138
138
 
139
- ## All 25 Skills
139
+ ## All 29 Skills
140
140
 
141
141
  Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup name in a new agent session.
142
142
 
143
- ### Software development (21)
143
+ ### Software development (24)
144
144
 
145
145
  | Skill | What it does | Use when |
146
146
  |-------|-------------|----------|
@@ -149,6 +149,7 @@ Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup n
149
149
  | [apple-store-submit](packages/software-development/apple-store-submit/SKILL.md) | Handles App Store rejection emails end-to-end — parses rejection reasons, creates a fix plan, implements code changes, and prepares resubmission | Responding to App Store rejections for privacy strings, entitlements, or guideline violations |
150
150
  | [changelog-generator](packages/software-development/changelog-generator/SKILL.md) | Transforms git commits into polished user-facing changelogs by categorising changes and rewriting technical commit messages | Preparing release notes, app store update descriptions, or a public changelog |
151
151
  | [cloudflare-block-countries](packages/software-development/cloudflare-block-countries/SKILL.md) | Blocks specific countries via Cloudflare WAF Custom Rules using the API | Geo-blocking traffic or setting up WAF country rules across single or multiple zones |
152
+ | [coderabbitloop](packages/software-development/coderabbitloop/SKILL.md) | Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings, reading each inline comment's own Prompt for AI Agents block, replying to the thread, and resolving it | Fully addressing a PR against CodeRabbit's review before merging |
152
153
  | [crash-course](packages/software-development/crash-course/SKILL.md) | Expert tutor for rapid, source-grounded learning of any topic: a timed 4-hour sprint plus cheat-sheet, learning-ladder, quiz-me, Feynman, and resource-curation modes | Ramping up on an unfamiliar codebase, project, or concept under time pressure |
153
154
  | [docs-index-keeper](packages/software-development/docs-index-keeper/SKILL.md) | Keeps a Markdown docs index in sync through pre-commit, CI, or one-off maintenance flows | A repo has `docs/` and needs `docs/README.md` updated automatically |
154
155
  | [gh-cli](packages/software-development/gh-cli/SKILL.md) | Guides GitHub CLI usage for repos, PRs, Actions, releases, issues, and all related GitHub operations | Working with GitHub from the command line and needing reliable `gh` commands |
@@ -161,7 +162,9 @@ Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup n
161
162
  | [product-builder](packages/software-development/product-builder/SKILL.md) | Builds a full-stack web app or SaaS product from a user description using production-oriented defaults | Building a complete app, SaaS, dashboard, or product rather than a prototype |
162
163
  | [promptctl](packages/software-development/promptctl/SKILL.md) | Uses `promptctl` for reusable prompt templates, scoring, and workflow automation | A project needs prompt conventions, review, scoring, or reusable prompt workflows |
163
164
  | [qodoloop](packages/software-development/qodoloop/SKILL.md) | Iteratively drives a GitHub PR to zero unresolved Qodo findings, reading each finding's own Agent Prompt, replying to the thread, and resolving it | Fully addressing a PR against Qodo's code review before merging |
165
+ | [relay](packages/software-development/relay/SKILL.md) | Uses `claude-relay` to run long or rate-limit-prone tasks autonomously across subscription accounts | A task will outlive one session or hit rate limits partway through |
164
166
  | [review-past-performance](packages/software-development/review-past-performance/SKILL.md) | Pulls 24h of ICM memories, git history, and skill analytics; detects repeated mistakes and slow workflows; proposes 1-3 concrete fixes | Daily self-improvement loop or codifying a repeated workflow |
167
+ | [self-critique](packages/software-development/self-critique/SKILL.md) | Adversarially critiques your own last answer: spawns a critic agent that verifies claims against live sources, then loops until satisfied and reports where you were wrong | Checking a substantial answer before the user has to |
165
168
  | [semantic-release-beta](packages/software-development/semantic-release-beta/SKILL.md) | Sets up `semantic-release` with stable `main` releases and beta prereleases on a `beta` branch | A Node package needs stable npm publishing plus beta prereleases |
166
169
  | [skill-budget-audit](packages/software-development/skill-budget-audit/SKILL.md) | Diagnoses and fixes Claude Code's skill context budget overflow — identifies heavy plugin bundles that exceed the 2% budget | Skills failing to load or Claude hitting context limits from plugin bundles |
167
170
  | [starter-rules](packages/software-development/starter-rules/SKILL.md) | Loads and enforces hard rules for every oleg-koval/* starter | Ensuring 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, and KISS/DRY/SOLID |
@@ -580,6 +580,98 @@
580
580
  "kiro",
581
581
  "grok"
582
582
  ]
583
+ },
584
+ {
585
+ "name": "coderabbitloop",
586
+ "lookupName": "olko:coderabbitloop",
587
+ "category": "software-development",
588
+ "path": "packages/software-development/coderabbitloop",
589
+ "description": "Iteratively drives a GitHub PR to zero unresolved CodeRabbit findings \u2014 reads each inline comment's own Prompt for AI Agents block, applies the fix, replies to the thread, resolves it, pushes, and re-triggers CodeRabbit.",
590
+ "tags": [
591
+ "code-review",
592
+ "coderabbit",
593
+ "github",
594
+ "pull-requests",
595
+ "automation",
596
+ "agents"
597
+ ],
598
+ "adapters": [
599
+ "claude",
600
+ "codex",
601
+ "cursor",
602
+ "copilot",
603
+ "grok",
604
+ "windsurf",
605
+ "kiro"
606
+ ]
607
+ },
608
+ {
609
+ "name": "add-to-my-skills",
610
+ "lookupName": "olko:add-to-my-skills",
611
+ "category": "software-development",
612
+ "path": "packages/software-development/add-to-my-skills",
613
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
614
+ "tags": [
615
+ "skills",
616
+ "catalog",
617
+ "automation",
618
+ "git",
619
+ "maintenance"
620
+ ],
621
+ "adapters": [
622
+ "codex",
623
+ "claude",
624
+ "cursor",
625
+ "copilot",
626
+ "windsurf",
627
+ "kiro",
628
+ "grok"
629
+ ]
630
+ },
631
+ {
632
+ "name": "ai-tools-setup",
633
+ "lookupName": "olko:ai-tools-setup",
634
+ "category": "software-development",
635
+ "path": "packages/software-development/ai-tools-setup",
636
+ "description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration.",
637
+ "tags": [
638
+ "setup",
639
+ "tooling",
640
+ "mcp",
641
+ "hooks",
642
+ "developer-experience"
643
+ ],
644
+ "adapters": [
645
+ "codex",
646
+ "claude",
647
+ "cursor",
648
+ "copilot",
649
+ "windsurf",
650
+ "kiro",
651
+ "grok"
652
+ ]
653
+ },
654
+ {
655
+ "name": "changelog-generator",
656
+ "lookupName": "olko:changelog-generator",
657
+ "category": "software-development",
658
+ "path": "packages/software-development/changelog-generator",
659
+ "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers.",
660
+ "tags": [
661
+ "changelog",
662
+ "git",
663
+ "release",
664
+ "documentation"
665
+ ],
666
+ "adapters": [
667
+ "codex",
668
+ "claude",
669
+ "cursor",
670
+ "copilot",
671
+ "windsurf",
672
+ "kiro",
673
+ "grok"
674
+ ]
583
675
  }
584
676
  ]
585
677
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olegkoval/agent-skills",
3
- "version": "1.20.0",
3
+ "version": "1.21.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "olko-add-to-my-skills",
3
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change.",
3
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
4
4
  "skills": "./skills"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olko:add-to-my-skills",
3
3
  "version": "0.1.0",
4
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change.",
4
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
5
5
  "skills": "skills/"
6
6
  }
@@ -5,7 +5,7 @@ license: MIT
5
5
  allowed-tools: Bash, Read, Write, Edit
6
6
  compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
7
  metadata:
8
- targets: [_source-only]
8
+ targets: ["cursor"]
9
9
  author: Oleg Koval
10
10
  tags:
11
11
  - skills
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:add-to-my-skills",
3
+ "version": "0.1.0",
4
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: add-to-my-skills
3
+ description: Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push the change. Use when the user wants to bring a skill they built elsewhere into this repository.
4
+ license: MIT
5
+ allowed-tools: Bash, Read, Write, Edit
6
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
+ metadata:
8
+ targets: [_source-only]
9
+ author: Oleg Koval
10
+ tags:
11
+ - skills
12
+ - skillshare
13
+ - catalog
14
+ - git
15
+ - commit
16
+ - push
17
+ ---
18
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
19
+
20
+ # Add to My Skills
21
+
22
+ Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
23
+
24
+ ## Outcome
25
+
26
+ Bring the source skill into `packages/software-development/`, register it in the catalog, refresh generated docs and adapters, and publish the change with a git commit and push.
27
+
28
+ ## When to Use
29
+
30
+ - The user created a new `SKILL.md` in another repo and wants it added here
31
+ - The user wants this catalog to become the canonical home for that skill
32
+ - The user wants the README, generated manifests, commit, and push handled in one pass
33
+
34
+ ## Clarify Before Acting
35
+
36
+ If any of these are unclear, ask up to 3 questions in one batch before editing:
37
+
38
+ - Source repo or source skill path
39
+ - Final skill name if it should differ from the source
40
+ - Destination branch or remote if the push target is unclear
41
+
42
+ Default assumptions when not specified:
43
+
44
+ - Copy the source skill as a new canonical package in `packages/software-development/<skill-name>/`
45
+ - Keep the source skill name unless the user asks to rename it
46
+ - Use this repository as the destination
47
+ - Commit with a conventional commit message and push to the current branch's upstream
48
+
49
+ ## Workflow
50
+
51
+ 1. Inspect the source skill:
52
+ - locate the source `SKILL.md`
53
+ - copy any supporting `references/`, `scripts/`, or `assets/` files that the skill needs
54
+ - note any repo-specific assumptions that need to be rewritten for this catalog
55
+ 2. Choose the package location:
56
+ - default to `packages/software-development/<skill-name>/`
57
+ - ensure the package directory name matches the `name` frontmatter value
58
+ 3. Create or update the canonical package:
59
+ - write `SKILL.md` first
60
+ - keep the frontmatter accurate and concise
61
+ - make the workflow explicit, actionable, and self-contained
62
+ 4. Register the package in the repository inventory:
63
+ - add the package to `catalog/skills.json`
64
+ - add it to the appropriate collection file if it belongs in a bundle
65
+ - update `README.md` so the package list, counts, and usage examples stay current
66
+ 5. Refresh generated outputs:
67
+ - run `./scripts/build-adapters.sh`
68
+ - run `./scripts/validate-catalog.sh`
69
+ 6. Verify the new package actually exists:
70
+ - confirm `packages/software-development/<skill-name>/SKILL.md`
71
+ - confirm generated adapter files and prompt files were created
72
+ 7. Commit and push:
73
+ - inspect `git status`
74
+ - commit the change with a conventional message
75
+ - push to the current upstream branch
76
+
77
+ ## Git Safety
78
+
79
+ - Never overwrite unrelated changes
80
+ - Never force push unless the user explicitly asks
81
+ - Never commit secrets copied from the source repo
82
+ - If the source skill is incomplete or ambiguous, stop and ask for clarification instead of guessing
83
+
84
+ ## Verification
85
+
86
+ - `./scripts/build-adapters.sh` completes successfully
87
+ - `./scripts/validate-catalog.sh` passes
88
+ - `git status` shows only the intended package, catalog, README, and generated files
89
+ - `git push` succeeds to the expected remote
@@ -2,7 +2,7 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
5
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
6
6
  ---
7
7
 
8
8
  # Add to My Skills