@olegkoval/agent-skills 1.21.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 +5 -2
- package/.cursor-plugin/index.json +15 -0
- package/.grok-plugin/index.json +15 -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/.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/README.md +4 -2
- package/catalog/skills.json +68 -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/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
|
},
|
|
@@ -34,6 +34,9 @@
|
|
|
34
34
|
"./packages/software-development/crash-course",
|
|
35
35
|
"./packages/software-development/qodoloop",
|
|
36
36
|
"./packages/wearables/garmin-watchface",
|
|
37
|
-
"./packages/software-development/coderabbitloop"
|
|
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"
|
|
38
41
|
]
|
|
39
42
|
}
|
|
@@ -120,6 +120,21 @@
|
|
|
120
120
|
"name": "olko:coderabbitloop",
|
|
121
121
|
"source": "./packages/software-development/coderabbitloop/adapters/cursor",
|
|
122
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."
|
|
123
138
|
}
|
|
124
139
|
]
|
|
125
140
|
}
|
package/.grok-plugin/index.json
CHANGED
|
@@ -130,6 +130,21 @@
|
|
|
130
130
|
"name": "olko:coderabbitloop",
|
|
131
131
|
"source": "./packages/software-development/coderabbitloop/adapters/grok",
|
|
132
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."
|
|
133
148
|
}
|
|
134
149
|
]
|
|
135
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.
|
|
@@ -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.
|
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
|
|-------|-------------|----------|
|
|
@@ -162,7 +162,9 @@ Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup n
|
|
|
162
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 |
|
|
163
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 |
|
|
164
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 |
|
|
165
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 |
|
|
166
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 |
|
|
167
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 |
|
|
168
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
|
@@ -604,6 +604,74 @@
|
|
|
604
604
|
"windsurf",
|
|
605
605
|
"kiro"
|
|
606
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
|
+
]
|
|
607
675
|
}
|
|
608
676
|
]
|
|
609
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
|
package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
7
|
# Add to My Skills
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko-ai-tools-setup",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration.",
|
|
4
4
|
"skills": "./skills"
|
|
5
5
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko:ai-tools-setup",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration.",
|
|
5
5
|
"skills": "skills/"
|
|
6
6
|
}
|
package/packages/software-development/ai-tools-setup/adapters/grok/skills/ai-tools-setup/SKILL.md
ADDED
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-tools-setup
|
|
3
|
+
description: 'Set up, repair, and report on the RTK+ICM+Vox AI development toolkit. Installs missing tools, fixes broken hooks and MCP config, and shows an effectiveness digest — token savings, memory accumulation, voice health — on demand or as a scheduled weekly report.'
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash, Read, Edit, Write
|
|
6
|
+
compatibility: Claude Code on macOS (Homebrew required)
|
|
7
|
+
metadata:
|
|
8
|
+
targets: [_source-only]
|
|
9
|
+
author: Oleg Koval
|
|
10
|
+
tags:
|
|
11
|
+
- rtk
|
|
12
|
+
- icm
|
|
13
|
+
- vox
|
|
14
|
+
- setup
|
|
15
|
+
- hooks
|
|
16
|
+
- digest
|
|
17
|
+
- ai-tools
|
|
18
|
+
- productivity
|
|
19
|
+
---
|
|
20
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
21
|
+
|
|
22
|
+
# AI Tools Setup — RTK + ICM + Vox
|
|
23
|
+
|
|
24
|
+
Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
|
|
25
|
+
|
|
26
|
+
## What This Skill Does
|
|
27
|
+
|
|
28
|
+
| Mode | When to use |
|
|
29
|
+
|------|-------------|
|
|
30
|
+
| **Setup** | First install on a new machine |
|
|
31
|
+
| **Repair** | Something broke — hooks missing, MCP not loading |
|
|
32
|
+
| **Digest** | Weekly check: token savings, memory health, voice stats |
|
|
33
|
+
|
|
34
|
+
## Tools in the Bundle
|
|
35
|
+
|
|
36
|
+
| Tool | Version | Purpose |
|
|
37
|
+
|------|---------|---------|
|
|
38
|
+
| **RTK** | latest | Compresses CLI output by ~89% before it reaches the model |
|
|
39
|
+
| **ICM** | latest | Persistent SQLite memory across sessions (knowledge graph + hybrid search) |
|
|
40
|
+
| **Vox** | latest | Spoken task notifications via local TTS — zero API calls |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## Step 1: Detect Current State
|
|
45
|
+
|
|
46
|
+
Run this to see what is installed and what is missing:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
echo "=== Binary check ===" && \
|
|
50
|
+
(rtk --version 2>/dev/null && echo "RTK: ok") || echo "RTK: MISSING" && \
|
|
51
|
+
(icm --version 2>/dev/null && echo "ICM: ok") || echo "ICM: MISSING" && \
|
|
52
|
+
(vox --version 2>/dev/null && echo "Vox: ok") || echo "Vox: MISSING"
|
|
53
|
+
|
|
54
|
+
echo "=== RTK hook ===" && \
|
|
55
|
+
grep -c '"rtk hook claude"' ~/.claude/settings.json 2>/dev/null \
|
|
56
|
+
&& echo "RTK hook: ok" || echo "RTK hook: MISSING"
|
|
57
|
+
|
|
58
|
+
echo "=== ICM hooks ===" && \
|
|
59
|
+
grep -c '"icm hook' ~/.claude/settings.json 2>/dev/null \
|
|
60
|
+
&& echo "ICM hooks: ok" || echo "ICM hooks: MISSING"
|
|
61
|
+
|
|
62
|
+
echo "=== ICM MCP ===" && \
|
|
63
|
+
python3 -c "import json; d=json.load(open(open('$HOME/.claude.json').name)); print('ICM MCP: ok' if 'icm' in d.get('mcpServers',{}) else 'ICM MCP: MISSING')" 2>/dev/null || echo "ICM MCP: MISSING"
|
|
64
|
+
|
|
65
|
+
echo "=== Vox MCP ===" && \
|
|
66
|
+
python3 -c "import json; d=json.load(open(open('$HOME/.claude.json').name)); print('Vox MCP: ok' if 'vox' in d.get('mcpServers',{}) else 'Vox MCP: MISSING')" 2>/dev/null || echo "Vox MCP: MISSING"
|
|
67
|
+
|
|
68
|
+
echo "=== ICM CLAUDE.md ===" && \
|
|
69
|
+
grep -c 'icm:start' ~/.claude/CLAUDE.md 2>/dev/null \
|
|
70
|
+
&& echo "ICM CLAUDE.md: ok" || echo "ICM CLAUDE.md: MISSING"
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Read the output and determine which of the following repair steps are needed.
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Step 2: Install Missing Binaries
|
|
78
|
+
|
|
79
|
+
Only run for tools that showed MISSING above.
|
|
80
|
+
|
|
81
|
+
**RTK:**
|
|
82
|
+
```bash
|
|
83
|
+
brew install rtk
|
|
84
|
+
rtk --version
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
**ICM:**
|
|
88
|
+
```bash
|
|
89
|
+
brew install rtk-ai/tap/icm
|
|
90
|
+
icm --version
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Vox:**
|
|
94
|
+
```bash
|
|
95
|
+
brew install rtk-ai/tap/vox
|
|
96
|
+
vox --version
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## Step 3: Repair Hooks
|
|
102
|
+
|
|
103
|
+
### RTK hook missing
|
|
104
|
+
|
|
105
|
+
Add the `PreToolUse` RTK hook to `~/.claude/settings.json`. Read the file first, then add inside the existing `"hooks"` block (or create one):
|
|
106
|
+
|
|
107
|
+
```json
|
|
108
|
+
"PreToolUse": [
|
|
109
|
+
{
|
|
110
|
+
"matcher": "Bash",
|
|
111
|
+
"hooks": [{ "type": "command", "command": "rtk hook claude" }]
|
|
112
|
+
}
|
|
113
|
+
]
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Then verify: `grep -c '"rtk hook claude"' ~/.claude/settings.json`
|
|
117
|
+
|
|
118
|
+
### ICM hooks missing
|
|
119
|
+
|
|
120
|
+
Run:
|
|
121
|
+
```bash
|
|
122
|
+
icm init --mode hook
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This adds `PreToolUse`, `PostToolUse`, `PreCompact`, `UserPromptSubmit`, `SessionStart`, `SessionEnd` hooks automatically.
|
|
126
|
+
|
|
127
|
+
### Vox Stop hook missing
|
|
128
|
+
|
|
129
|
+
Run:
|
|
130
|
+
```bash
|
|
131
|
+
vox init --mode cli
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## Step 4: Repair MCP Servers
|
|
137
|
+
|
|
138
|
+
### ICM MCP missing
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
icm init --mode mcp
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Vox MCP missing
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
vox init --mode mcp
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
Verify both by checking `~/.claude.json`:
|
|
151
|
+
```bash
|
|
152
|
+
python3 -c "import json; d=json.load(open('$HOME/.claude.json')); print(list(d.get('mcpServers',{}).keys()))"
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Step 5: Repair CLAUDE.md Instructions
|
|
158
|
+
|
|
159
|
+
If ICM instructions are missing from `~/.claude/CLAUDE.md`:
|
|
160
|
+
|
|
161
|
+
```bash
|
|
162
|
+
icm init --mode cli
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
Then move the block from wherever `icm init` placed it into `~/.claude/CLAUDE.md` (the global file), and remove it from any project-local files.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Step 6: Effectiveness Digest
|
|
170
|
+
|
|
171
|
+
Run this report to see how the toolkit is performing. Good to run weekly.
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
echo "=============================="
|
|
175
|
+
echo " AI TOOLS EFFECTIVENESS"
|
|
176
|
+
echo "=============================="
|
|
177
|
+
echo ""
|
|
178
|
+
echo "--- RTK: Token Savings ---"
|
|
179
|
+
rtk gain 2>/dev/null || echo "No data yet (run some commands first)"
|
|
180
|
+
echo ""
|
|
181
|
+
echo "--- ICM: Memory Health ---"
|
|
182
|
+
icm health 2>/dev/null || echo "No memories yet"
|
|
183
|
+
echo ""
|
|
184
|
+
echo "--- ICM: Topics ---"
|
|
185
|
+
icm topics 2>/dev/null || echo "No topics yet"
|
|
186
|
+
echo ""
|
|
187
|
+
echo "--- Vox: Usage ---"
|
|
188
|
+
vox stats 2>/dev/null || echo "No stats yet"
|
|
189
|
+
echo ""
|
|
190
|
+
echo "=============================="
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
### What healthy output looks like
|
|
194
|
+
|
|
195
|
+
- **RTK**: `Tokens saved: 5M+ (85%+)` across `500+ commands` — if savings are low, run `rtk discover` to find uncovered commands
|
|
196
|
+
- **ICM**: Topics like `decisions-*`, `errors-resolved`, `preferences` with recent timestamps — if empty, start storing manually with `icm store`
|
|
197
|
+
- **Vox**: Non-zero speak count means the Stop hook fired
|
|
198
|
+
|
|
199
|
+
---
|
|
200
|
+
|
|
201
|
+
## Step 7 (Optional): Schedule a Weekly Digest
|
|
202
|
+
|
|
203
|
+
To get a weekly automated report without having to remember to run this skill:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
# Create a weekly digest script
|
|
207
|
+
cat > ~/ai-tools-digest.sh << 'EOF'
|
|
208
|
+
#!/bin/bash
|
|
209
|
+
echo "=== Weekly AI Tools Digest — $(date) ===" | tee -a ~/ai-tools-digest.log
|
|
210
|
+
echo "" | tee -a ~/ai-tools-digest.log
|
|
211
|
+
rtk gain 2>/dev/null | tee -a ~/ai-tools-digest.log
|
|
212
|
+
echo "" | tee -a ~/ai-tools-digest.log
|
|
213
|
+
icm health 2>/dev/null | tee -a ~/ai-tools-digest.log
|
|
214
|
+
echo "" | tee -a ~/ai-tools-digest.log
|
|
215
|
+
icm topics 2>/dev/null | tee -a ~/ai-tools-digest.log
|
|
216
|
+
# Speak the summary if Vox is available
|
|
217
|
+
vox "Weekly digest complete. Check your log." 2>/dev/null || true
|
|
218
|
+
EOF
|
|
219
|
+
chmod +x ~/ai-tools-digest.sh
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Then set up a weekly launchd job (macOS):
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
cat > ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist << 'EOF'
|
|
226
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
227
|
+
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
228
|
+
<plist version="1.0">
|
|
229
|
+
<dict>
|
|
230
|
+
<key>Label</key>
|
|
231
|
+
<string>com.oleg.ai-tools-digest</string>
|
|
232
|
+
<key>ProgramArguments</key>
|
|
233
|
+
<array>
|
|
234
|
+
<string>/bin/bash</string>
|
|
235
|
+
<string>/Users/oleg.koval/ai-tools-digest.sh</string>
|
|
236
|
+
</array>
|
|
237
|
+
<key>StartCalendarInterval</key>
|
|
238
|
+
<dict>
|
|
239
|
+
<key>Weekday</key>
|
|
240
|
+
<integer>1</integer>
|
|
241
|
+
<key>Hour</key>
|
|
242
|
+
<integer>9</integer>
|
|
243
|
+
<key>Minute</key>
|
|
244
|
+
<integer>0</integer>
|
|
245
|
+
</dict>
|
|
246
|
+
<key>StandardOutPath</key>
|
|
247
|
+
<string>/tmp/ai-tools-digest.log</string>
|
|
248
|
+
<key>StandardErrorPath</key>
|
|
249
|
+
<string>/tmp/ai-tools-digest.err</string>
|
|
250
|
+
</dict>
|
|
251
|
+
</plist>
|
|
252
|
+
EOF
|
|
253
|
+
|
|
254
|
+
launchctl load ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist
|
|
255
|
+
echo "Weekly digest scheduled for Mondays at 9am"
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
To view the digest log anytime: `cat ~/ai-tools-digest.log`
|
|
259
|
+
|
|
260
|
+
To unload: `launchctl unload ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist`
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## Quick Reference
|
|
265
|
+
|
|
266
|
+
| Command | What it does |
|
|
267
|
+
|---------|-------------|
|
|
268
|
+
| `rtk gain` | Total tokens saved to date |
|
|
269
|
+
| `rtk discover` | Find commands not yet covered by RTK |
|
|
270
|
+
| `icm topics` | List all memory topic buckets |
|
|
271
|
+
| `icm health` | Memory hygiene — stale, redundant, decay stats |
|
|
272
|
+
| `icm recall "query"` | Search memories semantically |
|
|
273
|
+
| `icm store -t topic -c "content" -i high` | Store a memory manually |
|
|
274
|
+
| `vox "text"` | Speak text immediately |
|
|
275
|
+
| `vox stats` | Usage stats for the Vox backend |
|
|
276
|
+
| `cat ~/ai-tools-digest.log` | View scheduled digest history |
|
package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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
8
|
# AI Tools Setup — RTK + ICM + Vox
|
package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
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
7
|
# AI Tools Setup — RTK + ICM + Vox
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko-changelog-generator",
|
|
3
|
-
"description": "
|
|
3
|
+
"description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers.",
|
|
4
4
|
"skills": "./skills"
|
|
5
5
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "olko:changelog-generator",
|
|
3
3
|
"version": "0.1.0",
|
|
4
|
-
"description": "
|
|
4
|
+
"description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers.",
|
|
5
5
|
"skills": "skills/"
|
|
6
6
|
}
|
|
@@ -5,7 +5,7 @@ license: MIT
|
|
|
5
5
|
allowed-tools: Bash, Read, Write
|
|
6
6
|
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git history access in the target repository.
|
|
7
7
|
metadata:
|
|
8
|
-
targets: [
|
|
8
|
+
targets: ["cursor"]
|
|
9
9
|
author: Oleg Koval
|
|
10
10
|
tags:
|
|
11
11
|
- changelog
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: changelog-generator
|
|
3
|
+
description: Automatically creates user-facing changelogs from git commits by analyzing commit history, categorizing changes, and transforming technical commits into clear, customer-friendly release notes. Turns hours of manual changelog writing into minutes of automated generation.
|
|
4
|
+
license: MIT
|
|
5
|
+
allowed-tools: Bash, Read, Write
|
|
6
|
+
compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires git history access in the target repository.
|
|
7
|
+
metadata:
|
|
8
|
+
targets: [_source-only]
|
|
9
|
+
author: Oleg Koval
|
|
10
|
+
tags:
|
|
11
|
+
- changelog
|
|
12
|
+
- release-notes
|
|
13
|
+
- git
|
|
14
|
+
- docs
|
|
15
|
+
---
|
|
16
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
17
|
+
|
|
18
|
+
# Changelog Generator
|
|
19
|
+
|
|
20
|
+
This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Preparing release notes for a new version
|
|
25
|
+
- Creating weekly or monthly product update summaries
|
|
26
|
+
- Documenting changes for customers
|
|
27
|
+
- Writing changelog entries for app store submissions
|
|
28
|
+
- Generating update notifications
|
|
29
|
+
- Creating internal release documentation
|
|
30
|
+
- Maintaining a public changelog/product updates page
|
|
31
|
+
|
|
32
|
+
## What This Skill Does
|
|
33
|
+
|
|
34
|
+
1. **Scans Git History**: Analyzes commits from a specific time period or between versions
|
|
35
|
+
2. **Categorizes Changes**: Groups commits into logical categories (features, improvements, bug fixes, breaking changes, security)
|
|
36
|
+
3. **Translates Technical → User-Friendly**: Converts developer commits into customer language
|
|
37
|
+
4. **Formats Professionally**: Creates clean, structured changelog entries
|
|
38
|
+
5. **Filters Noise**: Excludes internal commits (refactoring, tests, etc.)
|
|
39
|
+
6. **Follows Best Practices**: Applies changelog guidelines and your brand voice
|
|
40
|
+
|
|
41
|
+
## How to Use
|
|
42
|
+
|
|
43
|
+
### Basic Usage
|
|
44
|
+
|
|
45
|
+
From your project repository:
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
Create a changelog from commits since last release
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Generate changelog for all commits from the past week
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
Create release notes for version 2.5.0
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
### With Specific Date Range
|
|
60
|
+
|
|
61
|
+
```
|
|
62
|
+
Create a changelog for all commits between March 1 and March 15
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### With Custom Guidelines
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
Create a changelog for commits since v2.4.0, using my changelog
|
|
69
|
+
guidelines from CHANGELOG_STYLE.md
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
## Example
|
|
73
|
+
|
|
74
|
+
**User**: "Create a changelog for commits from the past 7 days"
|
|
75
|
+
|
|
76
|
+
**Output**:
|
|
77
|
+
```markdown
|
|
78
|
+
# Updates - Week of March 10, 2024
|
|
79
|
+
|
|
80
|
+
## ✨ New Features
|
|
81
|
+
|
|
82
|
+
- **Team Workspaces**: Create separate workspaces for different
|
|
83
|
+
projects. Invite team members and keep everything organized.
|
|
84
|
+
|
|
85
|
+
- **Keyboard Shortcuts**: Press ? to see all available shortcuts.
|
|
86
|
+
Navigate faster without touching your mouse.
|
|
87
|
+
|
|
88
|
+
## 🔧 Improvements
|
|
89
|
+
|
|
90
|
+
- **Faster Sync**: Files now sync 2x faster across devices
|
|
91
|
+
- **Better Search**: Search now includes file contents, not just titles
|
|
92
|
+
|
|
93
|
+
## 🐛 Fixes
|
|
94
|
+
|
|
95
|
+
- Fixed issue where large images wouldn't upload
|
|
96
|
+
- Resolved timezone confusion in scheduled posts
|
|
97
|
+
- Corrected notification badge count
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
**Inspired by:** Manik Aggarwal's use case from Lenny's Newsletter
|
|
101
|
+
|
|
102
|
+
## Tips
|
|
103
|
+
|
|
104
|
+
- Run from your git repository root
|
|
105
|
+
- Specify date ranges for focused changelogs
|
|
106
|
+
- Use your CHANGELOG_STYLE.md for consistent formatting
|
|
107
|
+
- Review and adjust the generated changelog before publishing
|
|
108
|
+
- Save output directly to CHANGELOG.md
|
|
109
|
+
|
|
110
|
+
## Related Use Cases
|
|
111
|
+
|
|
112
|
+
- Creating GitHub release notes
|
|
113
|
+
- Writing app store update descriptions
|
|
114
|
+
- Generating email updates for users
|
|
115
|
+
- Creating social media announcement posts
|
|
@@ -2,7 +2,7 @@
|
|
|
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
8
|
# Changelog Generator
|
|
@@ -1,7 +1,7 @@
|
|
|
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
7
|
# Changelog Generator
|
|
@@ -84,6 +84,44 @@ for (const pkg of catalog.packages) {
|
|
|
84
84
|
}
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
+
// Reverse check: every skill on disk must be registered in the catalog.
|
|
88
|
+
// Everything else in this file walks outward FROM the catalog, so a package the
|
|
89
|
+
// catalog does not know about was invisible to validation -- which is how
|
|
90
|
+
// add-to-my-skills, ai-tools-setup and changelog-generator sat unregistered
|
|
91
|
+
// while still appearing in the README. Unregistered skills are absent from every
|
|
92
|
+
// plugin manifest, so they cannot be installed from any marketplace.
|
|
93
|
+
const registeredPaths = new Set(catalog.packages.map((pkg) => pkg.path))
|
|
94
|
+
for (const category of fs.readdirSync('packages')) {
|
|
95
|
+
const categoryDir = path.join('packages', category)
|
|
96
|
+
if (!fs.statSync(categoryDir).isDirectory()) {
|
|
97
|
+
continue
|
|
98
|
+
}
|
|
99
|
+
for (const skill of fs.readdirSync(categoryDir)) {
|
|
100
|
+
const skillDir = path.join(categoryDir, skill)
|
|
101
|
+
if (!fs.statSync(skillDir).isDirectory()) {
|
|
102
|
+
continue
|
|
103
|
+
}
|
|
104
|
+
if (!fs.existsSync(path.join(skillDir, 'SKILL.md'))) {
|
|
105
|
+
continue
|
|
106
|
+
}
|
|
107
|
+
if (!registeredPaths.has(skillDir)) {
|
|
108
|
+
throw new Error(
|
|
109
|
+
`skill on disk is not registered in catalog/skills.json: ${skillDir}\n` +
|
|
110
|
+
' Unregistered skills are missing from every plugin manifest and cannot be installed.'
|
|
111
|
+
)
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
// Every catalog package must appear in the README table, so the two inventories
|
|
117
|
+
// cannot drift apart in the other direction either.
|
|
118
|
+
const readme = fs.readFileSync('README.md', 'utf8')
|
|
119
|
+
for (const pkg of catalog.packages) {
|
|
120
|
+
if (!readme.includes(`${pkg.path}/SKILL.md`)) {
|
|
121
|
+
throw new Error(`catalog package is missing from the README table: ${pkg.name}`)
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
87
125
|
for (const collectionPath of fs.readdirSync('collections').map((name) => path.join('collections', name))) {
|
|
88
126
|
const collection = JSON.parse(fs.readFileSync(collectionPath, 'utf8'))
|
|
89
127
|
for (const packageName of collection.packages || []) {
|