@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.
Files changed (34) hide show
  1. package/.claude-plugin/plugin.json +5 -2
  2. package/.cursor-plugin/index.json +15 -0
  3. package/.grok-plugin/index.json +15 -0
  4. package/.kiro/steering/add-to-my-skills.md +1 -2
  5. package/.kiro/steering/ai-tools-setup.md +1 -2
  6. package/.kiro/steering/changelog-generator.md +1 -2
  7. package/.windsurf/rules/add-to-my-skills.md +1 -2
  8. package/.windsurf/rules/ai-tools-setup.md +1 -2
  9. package/.windsurf/rules/changelog-generator.md +1 -2
  10. package/README.md +4 -2
  11. package/catalog/skills.json +68 -0
  12. package/package.json +1 -1
  13. package/packages/software-development/add-to-my-skills/adapters/claude/plugin.json +1 -1
  14. package/packages/software-development/add-to-my-skills/adapters/cursor/plugin.json +1 -1
  15. package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +1 -1
  16. package/packages/software-development/add-to-my-skills/adapters/grok/plugin.json +6 -0
  17. package/packages/software-development/add-to-my-skills/adapters/grok/skills/add-to-my-skills/SKILL.md +89 -0
  18. package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +1 -1
  19. package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +1 -1
  20. package/packages/software-development/ai-tools-setup/adapters/claude/plugin.json +1 -1
  21. package/packages/software-development/ai-tools-setup/adapters/cursor/plugin.json +1 -1
  22. package/packages/software-development/ai-tools-setup/adapters/cursor/skills/ai-tools-setup/SKILL.md +1 -1
  23. package/packages/software-development/ai-tools-setup/adapters/grok/plugin.json +6 -0
  24. package/packages/software-development/ai-tools-setup/adapters/grok/skills/ai-tools-setup/SKILL.md +276 -0
  25. package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +1 -1
  26. package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +1 -1
  27. package/packages/software-development/changelog-generator/adapters/claude/plugin.json +1 -1
  28. package/packages/software-development/changelog-generator/adapters/cursor/plugin.json +1 -1
  29. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +1 -1
  30. package/packages/software-development/changelog-generator/adapters/grok/plugin.json +6 -0
  31. package/packages/software-development/changelog-generator/adapters/grok/skills/changelog-generator/SKILL.md +115 -0
  32. package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +1 -1
  33. package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +1 -1
  34. 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.20.0",
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
  }
@@ -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, and publish the change."
5
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
6
6
  ---
7
7
 
8
-
9
8
  # Add to My Skills
10
9
 
11
10
  Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
@@ -2,10 +2,9 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
5
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
6
6
  ---
7
7
 
8
-
9
8
  # AI Tools Setup — RTK + ICM + Vox
10
9
 
11
10
  Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
@@ -2,10 +2,9 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Generate user-facing changelogs and release notes from git history."
5
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
6
6
  ---
7
7
 
8
-
9
8
  # Changelog Generator
10
9
 
11
10
  This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
4
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
5
5
  ---
6
6
 
7
-
8
7
  # Add to My Skills
9
8
 
10
9
  Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
4
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
5
5
  ---
6
6
 
7
-
8
7
  # AI Tools Setup — RTK + ICM + Vox
9
8
 
10
9
  Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
@@ -1,10 +1,9 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Generate user-facing changelogs and release notes from git history."
4
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
5
5
  ---
6
6
 
7
-
8
7
  # Changelog Generator
9
8
 
10
9
  This skill transforms technical git commits into polished, user-friendly changelogs that your customers and users will actually understand and appreciate.
package/README.md CHANGED
@@ -136,11 +136,11 @@ packages/{category}/{skill}/SKILL.md
136
136
 
137
137
  </details>
138
138
 
139
- ## All 26 Skills
139
+ ## All 29 Skills
140
140
 
141
141
  Each entry links to its `SKILL.md`. Reference any skill by its `olko:*` lookup name in a new agent session.
142
142
 
143
- ### Software development (21)
143
+ ### Software development (24)
144
144
 
145
145
  | Skill | What it does | Use when |
146
146
  |-------|-------------|----------|
@@ -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 |
@@ -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,6 +1,6 @@
1
1
  {
2
2
  "name": "@olegkoval/agent-skills",
3
- "version": "1.21.0",
3
+ "version": "1.21.1",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "olko-add-to-my-skills",
3
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change.",
3
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
4
4
  "skills": "./skills"
5
5
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olko:add-to-my-skills",
3
3
  "version": "0.1.0",
4
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change.",
4
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
5
5
  "skills": "skills/"
6
6
  }
@@ -5,7 +5,7 @@ license: MIT
5
5
  allowed-tools: Bash, Read, Write, Edit
6
6
  compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
7
  metadata:
8
- targets: [_source-only]
8
+ targets: ["cursor"]
9
9
  author: Oleg Koval
10
10
  tags:
11
11
  - skills
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:add-to-my-skills",
3
+ "version": "0.1.0",
4
+ "description": "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,89 @@
1
+ ---
2
+ name: add-to-my-skills
3
+ description: Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push the change. Use when the user wants to bring a skill they built elsewhere into this repository.
4
+ license: MIT
5
+ allowed-tools: Bash, Read, Write, Edit
6
+ compatibility: Codex, Claude Code, Cursor, GitHub Copilot, Windsurf, Kiro, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
+ metadata:
8
+ targets: [_source-only]
9
+ author: Oleg Koval
10
+ tags:
11
+ - skills
12
+ - skillshare
13
+ - catalog
14
+ - git
15
+ - commit
16
+ - push
17
+ ---
18
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
19
+
20
+ # Add to My Skills
21
+
22
+ Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
23
+
24
+ ## Outcome
25
+
26
+ Bring the source skill into `packages/software-development/`, register it in the catalog, refresh generated docs and adapters, and publish the change with a git commit and push.
27
+
28
+ ## When to Use
29
+
30
+ - The user created a new `SKILL.md` in another repo and wants it added here
31
+ - The user wants this catalog to become the canonical home for that skill
32
+ - The user wants the README, generated manifests, commit, and push handled in one pass
33
+
34
+ ## Clarify Before Acting
35
+
36
+ If any of these are unclear, ask up to 3 questions in one batch before editing:
37
+
38
+ - Source repo or source skill path
39
+ - Final skill name if it should differ from the source
40
+ - Destination branch or remote if the push target is unclear
41
+
42
+ Default assumptions when not specified:
43
+
44
+ - Copy the source skill as a new canonical package in `packages/software-development/<skill-name>/`
45
+ - Keep the source skill name unless the user asks to rename it
46
+ - Use this repository as the destination
47
+ - Commit with a conventional commit message and push to the current branch's upstream
48
+
49
+ ## Workflow
50
+
51
+ 1. Inspect the source skill:
52
+ - locate the source `SKILL.md`
53
+ - copy any supporting `references/`, `scripts/`, or `assets/` files that the skill needs
54
+ - note any repo-specific assumptions that need to be rewritten for this catalog
55
+ 2. Choose the package location:
56
+ - default to `packages/software-development/<skill-name>/`
57
+ - ensure the package directory name matches the `name` frontmatter value
58
+ 3. Create or update the canonical package:
59
+ - write `SKILL.md` first
60
+ - keep the frontmatter accurate and concise
61
+ - make the workflow explicit, actionable, and self-contained
62
+ 4. Register the package in the repository inventory:
63
+ - add the package to `catalog/skills.json`
64
+ - add it to the appropriate collection file if it belongs in a bundle
65
+ - update `README.md` so the package list, counts, and usage examples stay current
66
+ 5. Refresh generated outputs:
67
+ - run `./scripts/build-adapters.sh`
68
+ - run `./scripts/validate-catalog.sh`
69
+ 6. Verify the new package actually exists:
70
+ - confirm `packages/software-development/<skill-name>/SKILL.md`
71
+ - confirm generated adapter files and prompt files were created
72
+ 7. Commit and push:
73
+ - inspect `git status`
74
+ - commit the change with a conventional message
75
+ - push to the current upstream branch
76
+
77
+ ## Git Safety
78
+
79
+ - Never overwrite unrelated changes
80
+ - Never force push unless the user explicitly asks
81
+ - Never commit secrets copied from the source repo
82
+ - If the source skill is incomplete or ambiguous, stop and ask for clarification instead of guessing
83
+
84
+ ## Verification
85
+
86
+ - `./scripts/build-adapters.sh` completes successfully
87
+ - `./scripts/validate-catalog.sh` passes
88
+ - `git status` shows only the intended package, catalog, README, and generated files
89
+ - `git push` succeeds to the expected remote
@@ -2,7 +2,7 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
5
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
6
6
  ---
7
7
 
8
8
  # Add to My Skills
@@ -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, and publish the change."
4
+ description: "Copy a newly created skill from another repo into this catalog, refresh the README and generated manifests, then commit and push."
5
5
  ---
6
6
 
7
7
  # Add to My Skills
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "olko-ai-tools-setup",
3
- "description": "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health.",
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": "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health.",
4
+ "description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration.",
5
5
  "skills": "skills/"
6
6
  }
@@ -5,7 +5,7 @@ license: MIT
5
5
  allowed-tools: Bash, Read, Edit, Write
6
6
  compatibility: Claude Code on macOS (Homebrew required)
7
7
  metadata:
8
- targets: [_source-only]
8
+ targets: ["cursor"]
9
9
  author: Oleg Koval
10
10
  tags:
11
11
  - rtk
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:ai-tools-setup",
3
+ "version": "0.1.0",
4
+ "description": "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration.",
5
+ "skills": "skills/"
6
+ }
@@ -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 |
@@ -2,7 +2,7 @@
2
2
 
3
3
  ---
4
4
  inclusion: manual
5
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
5
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
6
6
  ---
7
7
 
8
8
  # AI Tools Setup — RTK + ICM + Vox
@@ -1,7 +1,7 @@
1
1
  <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
2
 
3
3
  ---
4
- description: "Install, repair, and measure the RTK+ICM+Vox AI development toolkit. Fixes missing hooks and MCP config, and shows a weekly effectiveness digest of token savings and memory health."
4
+ description: "Set up, repair, and report on the RTK+ICM+Vox AI development toolkit, including hooks and MCP configuration."
5
5
  ---
6
6
 
7
7
  # AI Tools Setup — RTK + ICM + Vox
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "olko-changelog-generator",
3
- "description": "Generate user-facing changelogs and release notes from git history.",
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": "Generate user-facing changelogs and release notes from git history.",
4
+ "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers.",
5
5
  "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: [_source-only]
8
+ targets: ["cursor"]
9
9
  author: Oleg Koval
10
10
  tags:
11
11
  - changelog
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:changelog-generator",
3
+ "version": "0.1.0",
4
+ "description": "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers.",
5
+ "skills": "skills/"
6
+ }
@@ -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: "Generate user-facing changelogs and release notes from git history."
5
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
6
6
  ---
7
7
 
8
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: "Generate user-facing changelogs and release notes from git history."
4
+ description: "Create user-facing changelogs from git history by categorising commits and rewriting them for readers rather than developers."
5
5
  ---
6
6
 
7
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 || []) {