@olegkoval/agent-skills 1.22.0 โ†’ 1.23.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 (22) hide show
  1. package/.claude-plugin/plugin.json +4 -2
  2. package/.cursor-plugin/index.json +10 -0
  3. package/.grok-plugin/index.json +10 -0
  4. package/README.md +3 -1
  5. package/catalog/skills.json +44 -0
  6. package/package.json +1 -1
  7. package/packages/software-development/ci-fix-loop/SKILL.md +202 -0
  8. package/packages/software-development/ci-fix-loop/adapters/claude/plugin.json +5 -0
  9. package/packages/software-development/ci-fix-loop/adapters/claude/skills/ci-fix-loop/SKILL.md +203 -0
  10. package/packages/software-development/ci-fix-loop/adapters/codex/README.md +20 -0
  11. package/packages/software-development/ci-fix-loop/adapters/cursor/plugin.json +6 -0
  12. package/packages/software-development/ci-fix-loop/adapters/cursor/skills/ci-fix-loop/SKILL.md +203 -0
  13. package/packages/software-development/ci-fix-loop/adapters/grok/plugin.json +6 -0
  14. package/packages/software-development/ci-fix-loop/adapters/grok/skills/ci-fix-loop/SKILL.md +203 -0
  15. package/packages/software-development/pr-description-writer/SKILL.md +152 -0
  16. package/packages/software-development/pr-description-writer/adapters/claude/plugin.json +5 -0
  17. package/packages/software-development/pr-description-writer/adapters/claude/skills/pr-description-writer/SKILL.md +153 -0
  18. package/packages/software-development/pr-description-writer/adapters/codex/README.md +19 -0
  19. package/packages/software-development/pr-description-writer/adapters/cursor/plugin.json +6 -0
  20. package/packages/software-development/pr-description-writer/adapters/cursor/skills/pr-description-writer/SKILL.md +153 -0
  21. package/packages/software-development/pr-description-writer/adapters/grok/plugin.json +6 -0
  22. package/packages/software-development/pr-description-writer/adapters/grok/skills/pr-description-writer/SKILL.md +153 -0
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: pr-description-writer
3
+ description: >
4
+ Draft and post a GitHub PR title and body from git diff and commit history. Use when
5
+ opening a new PR, when the user asks to "write a PR description", "draft a PR", "open
6
+ a PR for this branch", or after running the git-commit skill and pushing the branch.
7
+ Chains naturally after git-commit and before qodoloop / coderabbitloop.
8
+ license: MIT
9
+ allowed-tools: Bash, Read, Write
10
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated.
11
+ metadata:
12
+ targets: [_source-only]
13
+ author: Oleg Koval
14
+ tags:
15
+ - git
16
+ - github
17
+ - pull-request
18
+ - description
19
+ - pr
20
+ - workflow
21
+ source: weekly-pattern-learner
22
+ source_reason: "qodoloop and coderabbitloop both open with gh pr view โ€” the PR creation/description step was never codified as its own skill"
23
+ source_date: "2026-07-28"
24
+ ---
25
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
26
+
27
+ > ๐Ÿค– *Auto-generated by **weekly-pattern-learner** ยท qodoloop and coderabbitloop both open with `gh pr view` โ€” the PR creation/description step was never codified as its own skill*
28
+
29
+ # PR Description Writer
30
+
31
+ Draft a GitHub-ready PR title and body from the branch's commit history and diff, then
32
+ create or update the PR so reviewers and AI tools have full context.
33
+
34
+ ## Inputs
35
+
36
+ - **Base branch** (optional, default: `main` or `master` โ€” detect from `gh repo view`)
37
+ - **Draft mode** (optional, default: off)
38
+ - **Template** (optional): if `.github/pull_request_template.md` exists, use its section headings
39
+
40
+ ## Workflow
41
+
42
+ ### 1. Gather branch context
43
+
44
+ ```bash
45
+ # Current branch
46
+ git rev-parse --abbrev-ref HEAD
47
+
48
+ # Base branch
49
+ gh repo view --json defaultBranchRef -q '.defaultBranchRef.name'
50
+
51
+ # Commits since base
52
+ git log <base>..<head> --oneline --no-merges
53
+
54
+ # Diff summary (full diff for small PRs, stat-only for large)
55
+ git diff <base>..<head> --stat
56
+ git diff <base>..<head> # only if total changes < ~500 lines
57
+ ```
58
+
59
+ If the diff is large (>500 changed lines), read file-by-file rather than all at once.
60
+
61
+ ### 2. Check for existing PR
62
+
63
+ ```bash
64
+ gh pr view --json number,title,body,state 2>/dev/null
65
+ ```
66
+
67
+ - If a PR exists in `OPEN` state: update it with `gh pr edit`.
68
+ - If no PR exists: create one with `gh pr create`.
69
+
70
+ ### 3. Check for a PR template
71
+
72
+ ```bash
73
+ cat .github/pull_request_template.md 2>/dev/null \
74
+ || cat .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null \
75
+ || cat PULL_REQUEST_TEMPLATE.md 2>/dev/null
76
+ ```
77
+
78
+ If a template exists, mirror its section headings and populate them. Skip sections
79
+ that ask for credentials, tokens, internal hostnames, or content unrelated to the diff.
80
+
81
+ ### 4. Draft title and body
82
+
83
+ **Title rules:**
84
+ - Use Conventional Commits prefix when the branch/commits use it: `feat(scope):`, `fix:`, etc.
85
+ - โ‰ค 70 characters
86
+ - Imperative mood ("Add X", "Fix Y", not "Added X")
87
+ - Include ticket number if present in branch name (e.g. `LIN-123`, `GH-456`)
88
+
89
+ **Body sections (use the template if one was found, otherwise use this structure):**
90
+
91
+ ```markdown
92
+ ## Summary
93
+ - <bullet: what changed>
94
+ - <bullet: why>
95
+
96
+ ## Changes
97
+ - `<file or subsystem>`: <what changed and why>
98
+
99
+ ## Test plan
100
+ - [ ] <what to run and what result to expect>
101
+ - [ ] <manual steps if automated tests don't cover it>
102
+
103
+ ## Notes
104
+ <optional: anything a reviewer should watch for, known gaps, follow-up issues>
105
+ ```
106
+
107
+ Rules:
108
+ - Describe *intent*, not what the diff already shows line-by-line.
109
+ - If commits already have good conventional messages, use them as the skeleton.
110
+ - Skip any section that has nothing meaningful to say.
111
+ - Reference specific files, functions, or lines only when they aid navigation.
112
+
113
+ ### 5. Create or update the PR
114
+
115
+ Always pass the body via a heredoc or temp file โ€” never interpolate it into the command
116
+ string (quotes and newlines will break the shell):
117
+
118
+ ```bash
119
+ # Create new PR
120
+ gh pr create \
121
+ --title "<title>" \
122
+ --body "$(cat <<'PRBODY'
123
+ <body>
124
+ PRBODY
125
+ )" \
126
+ --base <base> \
127
+ [--draft]
128
+
129
+ # Update existing PR
130
+ gh pr edit <number> \
131
+ --title "<title>" \
132
+ --body "$(cat <<'PRBODY'
133
+ <body>
134
+ PRBODY
135
+ )"
136
+ ```
137
+
138
+ ### 6. Confirm and report
139
+
140
+ ```bash
141
+ gh pr view --json number,title,url -q '"PR #\(.number): \(.title)\n\(.url)"'
142
+ ```
143
+
144
+ Print the PR number, title, and URL. If the PR was newly created, note whether
145
+ CI triggered automatically.
146
+
147
+ ## Chaining
148
+
149
+ | Before this skill | After this skill |
150
+ |---|---|
151
+ | `olko:git-commit` + `git push` | `olko:qodoloop` |
152
+ | `git push -u origin <branch>` | `olko:coderabbitloop` |
153
+ | โ€” | `olko:open-source-publisher` (for new repos) |
@@ -0,0 +1,19 @@
1
+ # Codex Adapter for pr-description-writer
2
+
3
+ This is a Codex-specific adapter for the `olko:pr-description-writer` skill.
4
+ The canonical skill definition is in `../../SKILL.md`.
5
+
6
+ ## Usage
7
+
8
+ Invoke in a Codex session:
9
+
10
+ ```text
11
+ Use the olko:pr-description-writer skill to draft a PR description for this branch.
12
+ ```
13
+
14
+ ## Workflow
15
+
16
+ See `../../SKILL.md` for the full workflow: gather branch context (commits since base,
17
+ diff summary), check for an existing PR template, draft a structured title and body, then
18
+ create or update the GitHub PR using `gh pr create` / `gh pr edit`. The procedure is
19
+ plain `git`/`gh` and is agent-agnostic.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:pr-description-writer",
3
+ "version": "0.1.0",
4
+ "description": "Draft and post a GitHub PR title and body from git diff and commit history. Chains after git-commit and before qodoloop / coderabbitloop.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: pr-description-writer
3
+ description: >
4
+ Draft and post a GitHub PR title and body from git diff and commit history. Use when
5
+ opening a new PR, when the user asks to "write a PR description", "draft a PR", "open
6
+ a PR for this branch", or after running the git-commit skill and pushing the branch.
7
+ Chains naturally after git-commit and before qodoloop / coderabbitloop.
8
+ license: MIT
9
+ allowed-tools: Bash, Read, Write
10
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated.
11
+ metadata:
12
+ targets: ["cursor"]
13
+ author: Oleg Koval
14
+ tags:
15
+ - git
16
+ - github
17
+ - pull-request
18
+ - description
19
+ - pr
20
+ - workflow
21
+ source: weekly-pattern-learner
22
+ source_reason: "qodoloop and coderabbitloop both open with gh pr view โ€” the PR creation/description step was never codified as its own skill"
23
+ source_date: "2026-07-28"
24
+ ---
25
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
26
+
27
+ > ๐Ÿค– *Auto-generated by **weekly-pattern-learner** ยท qodoloop and coderabbitloop both open with `gh pr view` โ€” the PR creation/description step was never codified as its own skill*
28
+
29
+ # PR Description Writer
30
+
31
+ Draft a GitHub-ready PR title and body from the branch's commit history and diff, then
32
+ create or update the PR so reviewers and AI tools have full context.
33
+
34
+ ## Inputs
35
+
36
+ - **Base branch** (optional, default: `main` or `master` โ€” detect from `gh repo view`)
37
+ - **Draft mode** (optional, default: off)
38
+ - **Template** (optional): if `.github/pull_request_template.md` exists, use its section headings
39
+
40
+ ## Workflow
41
+
42
+ ### 1. Gather branch context
43
+
44
+ ```bash
45
+ # Current branch
46
+ git rev-parse --abbrev-ref HEAD
47
+
48
+ # Base branch
49
+ gh repo view --json defaultBranchRef -q '.defaultBranchRef.name'
50
+
51
+ # Commits since base
52
+ git log <base>..<head> --oneline --no-merges
53
+
54
+ # Diff summary (full diff for small PRs, stat-only for large)
55
+ git diff <base>..<head> --stat
56
+ git diff <base>..<head> # only if total changes < ~500 lines
57
+ ```
58
+
59
+ If the diff is large (>500 changed lines), read file-by-file rather than all at once.
60
+
61
+ ### 2. Check for existing PR
62
+
63
+ ```bash
64
+ gh pr view --json number,title,body,state 2>/dev/null
65
+ ```
66
+
67
+ - If a PR exists in `OPEN` state: update it with `gh pr edit`.
68
+ - If no PR exists: create one with `gh pr create`.
69
+
70
+ ### 3. Check for a PR template
71
+
72
+ ```bash
73
+ cat .github/pull_request_template.md 2>/dev/null \
74
+ || cat .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null \
75
+ || cat PULL_REQUEST_TEMPLATE.md 2>/dev/null
76
+ ```
77
+
78
+ If a template exists, mirror its section headings and populate them. Skip sections
79
+ that ask for credentials, tokens, internal hostnames, or content unrelated to the diff.
80
+
81
+ ### 4. Draft title and body
82
+
83
+ **Title rules:**
84
+ - Use Conventional Commits prefix when the branch/commits use it: `feat(scope):`, `fix:`, etc.
85
+ - โ‰ค 70 characters
86
+ - Imperative mood ("Add X", "Fix Y", not "Added X")
87
+ - Include ticket number if present in branch name (e.g. `LIN-123`, `GH-456`)
88
+
89
+ **Body sections (use the template if one was found, otherwise use this structure):**
90
+
91
+ ```markdown
92
+ ## Summary
93
+ - <bullet: what changed>
94
+ - <bullet: why>
95
+
96
+ ## Changes
97
+ - `<file or subsystem>`: <what changed and why>
98
+
99
+ ## Test plan
100
+ - [ ] <what to run and what result to expect>
101
+ - [ ] <manual steps if automated tests don't cover it>
102
+
103
+ ## Notes
104
+ <optional: anything a reviewer should watch for, known gaps, follow-up issues>
105
+ ```
106
+
107
+ Rules:
108
+ - Describe *intent*, not what the diff already shows line-by-line.
109
+ - If commits already have good conventional messages, use them as the skeleton.
110
+ - Skip any section that has nothing meaningful to say.
111
+ - Reference specific files, functions, or lines only when they aid navigation.
112
+
113
+ ### 5. Create or update the PR
114
+
115
+ Always pass the body via a heredoc or temp file โ€” never interpolate it into the command
116
+ string (quotes and newlines will break the shell):
117
+
118
+ ```bash
119
+ # Create new PR
120
+ gh pr create \
121
+ --title "<title>" \
122
+ --body "$(cat <<'PRBODY'
123
+ <body>
124
+ PRBODY
125
+ )" \
126
+ --base <base> \
127
+ [--draft]
128
+
129
+ # Update existing PR
130
+ gh pr edit <number> \
131
+ --title "<title>" \
132
+ --body "$(cat <<'PRBODY'
133
+ <body>
134
+ PRBODY
135
+ )"
136
+ ```
137
+
138
+ ### 6. Confirm and report
139
+
140
+ ```bash
141
+ gh pr view --json number,title,url -q '"PR #\(.number): \(.title)\n\(.url)"'
142
+ ```
143
+
144
+ Print the PR number, title, and URL. If the PR was newly created, note whether
145
+ CI triggered automatically.
146
+
147
+ ## Chaining
148
+
149
+ | Before this skill | After this skill |
150
+ |---|---|
151
+ | `olko:git-commit` + `git push` | `olko:qodoloop` |
152
+ | `git push -u origin <branch>` | `olko:coderabbitloop` |
153
+ | โ€” | `olko:open-source-publisher` (for new repos) |
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:pr-description-writer",
3
+ "version": "0.1.0",
4
+ "description": "Draft and post a GitHub PR title and body from git diff and commit history. Chains after git-commit and before qodoloop / coderabbitloop.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: pr-description-writer
3
+ description: >
4
+ Draft and post a GitHub PR title and body from git diff and commit history. Use when
5
+ opening a new PR, when the user asks to "write a PR description", "draft a PR", "open
6
+ a PR for this branch", or after running the git-commit skill and pushing the branch.
7
+ Chains naturally after git-commit and before qodoloop / coderabbitloop.
8
+ license: MIT
9
+ allowed-tools: Bash, Read, Write
10
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git and gh (GitHub CLI) authenticated.
11
+ metadata:
12
+ targets: [_source-only]
13
+ author: Oleg Koval
14
+ tags:
15
+ - git
16
+ - github
17
+ - pull-request
18
+ - description
19
+ - pr
20
+ - workflow
21
+ source: weekly-pattern-learner
22
+ source_reason: "qodoloop and coderabbitloop both open with gh pr view โ€” the PR creation/description step was never codified as its own skill"
23
+ source_date: "2026-07-28"
24
+ ---
25
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
26
+
27
+ > ๐Ÿค– *Auto-generated by **weekly-pattern-learner** ยท qodoloop and coderabbitloop both open with `gh pr view` โ€” the PR creation/description step was never codified as its own skill*
28
+
29
+ # PR Description Writer
30
+
31
+ Draft a GitHub-ready PR title and body from the branch's commit history and diff, then
32
+ create or update the PR so reviewers and AI tools have full context.
33
+
34
+ ## Inputs
35
+
36
+ - **Base branch** (optional, default: `main` or `master` โ€” detect from `gh repo view`)
37
+ - **Draft mode** (optional, default: off)
38
+ - **Template** (optional): if `.github/pull_request_template.md` exists, use its section headings
39
+
40
+ ## Workflow
41
+
42
+ ### 1. Gather branch context
43
+
44
+ ```bash
45
+ # Current branch
46
+ git rev-parse --abbrev-ref HEAD
47
+
48
+ # Base branch
49
+ gh repo view --json defaultBranchRef -q '.defaultBranchRef.name'
50
+
51
+ # Commits since base
52
+ git log <base>..<head> --oneline --no-merges
53
+
54
+ # Diff summary (full diff for small PRs, stat-only for large)
55
+ git diff <base>..<head> --stat
56
+ git diff <base>..<head> # only if total changes < ~500 lines
57
+ ```
58
+
59
+ If the diff is large (>500 changed lines), read file-by-file rather than all at once.
60
+
61
+ ### 2. Check for existing PR
62
+
63
+ ```bash
64
+ gh pr view --json number,title,body,state 2>/dev/null
65
+ ```
66
+
67
+ - If a PR exists in `OPEN` state: update it with `gh pr edit`.
68
+ - If no PR exists: create one with `gh pr create`.
69
+
70
+ ### 3. Check for a PR template
71
+
72
+ ```bash
73
+ cat .github/pull_request_template.md 2>/dev/null \
74
+ || cat .github/PULL_REQUEST_TEMPLATE.md 2>/dev/null \
75
+ || cat PULL_REQUEST_TEMPLATE.md 2>/dev/null
76
+ ```
77
+
78
+ If a template exists, mirror its section headings and populate them. Skip sections
79
+ that ask for credentials, tokens, internal hostnames, or content unrelated to the diff.
80
+
81
+ ### 4. Draft title and body
82
+
83
+ **Title rules:**
84
+ - Use Conventional Commits prefix when the branch/commits use it: `feat(scope):`, `fix:`, etc.
85
+ - โ‰ค 70 characters
86
+ - Imperative mood ("Add X", "Fix Y", not "Added X")
87
+ - Include ticket number if present in branch name (e.g. `LIN-123`, `GH-456`)
88
+
89
+ **Body sections (use the template if one was found, otherwise use this structure):**
90
+
91
+ ```markdown
92
+ ## Summary
93
+ - <bullet: what changed>
94
+ - <bullet: why>
95
+
96
+ ## Changes
97
+ - `<file or subsystem>`: <what changed and why>
98
+
99
+ ## Test plan
100
+ - [ ] <what to run and what result to expect>
101
+ - [ ] <manual steps if automated tests don't cover it>
102
+
103
+ ## Notes
104
+ <optional: anything a reviewer should watch for, known gaps, follow-up issues>
105
+ ```
106
+
107
+ Rules:
108
+ - Describe *intent*, not what the diff already shows line-by-line.
109
+ - If commits already have good conventional messages, use them as the skeleton.
110
+ - Skip any section that has nothing meaningful to say.
111
+ - Reference specific files, functions, or lines only when they aid navigation.
112
+
113
+ ### 5. Create or update the PR
114
+
115
+ Always pass the body via a heredoc or temp file โ€” never interpolate it into the command
116
+ string (quotes and newlines will break the shell):
117
+
118
+ ```bash
119
+ # Create new PR
120
+ gh pr create \
121
+ --title "<title>" \
122
+ --body "$(cat <<'PRBODY'
123
+ <body>
124
+ PRBODY
125
+ )" \
126
+ --base <base> \
127
+ [--draft]
128
+
129
+ # Update existing PR
130
+ gh pr edit <number> \
131
+ --title "<title>" \
132
+ --body "$(cat <<'PRBODY'
133
+ <body>
134
+ PRBODY
135
+ )"
136
+ ```
137
+
138
+ ### 6. Confirm and report
139
+
140
+ ```bash
141
+ gh pr view --json number,title,url -q '"PR #\(.number): \(.title)\n\(.url)"'
142
+ ```
143
+
144
+ Print the PR number, title, and URL. If the PR was newly created, note whether
145
+ CI triggered automatically.
146
+
147
+ ## Chaining
148
+
149
+ | Before this skill | After this skill |
150
+ |---|---|
151
+ | `olko:git-commit` + `git push` | `olko:qodoloop` |
152
+ | `git push -u origin <branch>` | `olko:coderabbitloop` |
153
+ | โ€” | `olko:open-source-publisher` (for new repos) |