@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.
- package/.claude-plugin/plugin.json +6 -2
- package/.cursor-plugin/index.json +20 -0
- package/.grok-plugin/index.json +20 -0
- package/.kiro/steering/add-to-my-skills.md +1 -2
- package/.kiro/steering/ai-tools-setup.md +1 -2
- package/.kiro/steering/changelog-generator.md +1 -2
- package/.kiro/steering/coderabbitloop.md +109 -0
- package/.windsurf/rules/add-to-my-skills.md +1 -2
- package/.windsurf/rules/ai-tools-setup.md +1 -2
- package/.windsurf/rules/changelog-generator.md +1 -2
- package/.windsurf/rules/coderabbitloop.md +108 -0
- package/README.md +5 -2
- package/catalog/skills.json +92 -0
- package/package.json +1 -1
- package/packages/software-development/add-to-my-skills/adapters/claude/plugin.json +1 -1
- package/packages/software-development/add-to-my-skills/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +1 -1
- package/packages/software-development/add-to-my-skills/adapters/grok/plugin.json +6 -0
- package/packages/software-development/add-to-my-skills/adapters/grok/skills/add-to-my-skills/SKILL.md +89 -0
- package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +1 -1
- package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +1 -1
- package/packages/software-development/ai-tools-setup/adapters/claude/plugin.json +1 -1
- package/packages/software-development/ai-tools-setup/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/ai-tools-setup/adapters/cursor/skills/ai-tools-setup/SKILL.md +1 -1
- package/packages/software-development/ai-tools-setup/adapters/grok/plugin.json +6 -0
- package/packages/software-development/ai-tools-setup/adapters/grok/skills/ai-tools-setup/SKILL.md +276 -0
- package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +1 -1
- package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +1 -1
- package/packages/software-development/changelog-generator/adapters/claude/plugin.json +1 -1
- package/packages/software-development/changelog-generator/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +1 -1
- package/packages/software-development/changelog-generator/adapters/grok/plugin.json +6 -0
- package/packages/software-development/changelog-generator/adapters/grok/skills/changelog-generator/SKILL.md +115 -0
- package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +1 -1
- package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +1 -1
- package/packages/software-development/coderabbitloop/SKILL.md +117 -0
- package/packages/software-development/coderabbitloop/adapters/claude/plugin.json +5 -0
- package/packages/software-development/coderabbitloop/adapters/claude/skills/coderabbitloop/SKILL.md +118 -0
- package/packages/software-development/coderabbitloop/adapters/claude/skills/coderabbitloop/references/graphql-queries.md +101 -0
- package/packages/software-development/coderabbitloop/adapters/codex/README.md +20 -0
- package/packages/software-development/coderabbitloop/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/coderabbitloop/adapters/cursor/skills/coderabbitloop/SKILL.md +119 -0
- package/packages/software-development/coderabbitloop/adapters/cursor/skills/coderabbitloop/references/graphql-queries.md +101 -0
- package/packages/software-development/coderabbitloop/adapters/grok/plugin.json +6 -0
- package/packages/software-development/coderabbitloop/adapters/grok/skills/coderabbitloop/SKILL.md +118 -0
- package/packages/software-development/coderabbitloop/adapters/grok/skills/coderabbitloop/references/graphql-queries.md +101 -0
- package/packages/software-development/coderabbitloop/adapters/kiro/steering/coderabbitloop.md +109 -0
- package/packages/software-development/coderabbitloop/adapters/windsurf/rules/coderabbitloop.md +108 -0
- package/packages/software-development/coderabbitloop/references/graphql-queries.md +101 -0
- 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.
|
|
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
|
}
|
package/.grok-plugin/index.json
CHANGED
|
@@ -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,
|
|
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: "
|
|
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: "
|
|
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,
|
|
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: "
|
|
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: "
|
|
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
|
|
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 (
|
|
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 |
|
package/catalog/skills.json
CHANGED
|
@@ -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,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,
|
|
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,
|
|
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: [
|
|
8
|
+
targets: ["cursor"]
|
|
9
9
|
author: Oleg Koval
|
|
10
10
|
tags:
|
|
11
11
|
- skills
|
|
@@ -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
|
package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
---
|
|
4
4
|
inclusion: manual
|
|
5
|
-
description: "Copy a newly created skill into this catalog, refresh manifests,
|
|
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
|