@olegkoval/agent-skills 1.6.0 → 1.7.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 (121) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.kiro/steering/add-to-my-skills.md +78 -0
  3. package/.kiro/steering/ai-tools-setup.md +263 -0
  4. package/.kiro/steering/changelog-generator.md +106 -0
  5. package/.kiro/steering/cloudflare-block-countries.md +167 -0
  6. package/.kiro/steering/docs-index-keeper.md +53 -0
  7. package/.kiro/steering/fill-music-player.md +101 -0
  8. package/.kiro/steering/gallery.md +228 -0
  9. package/.kiro/steering/gh-cli.md +2190 -0
  10. package/.kiro/steering/git-commit.md +125 -0
  11. package/.kiro/steering/open-source-publisher.md +427 -0
  12. package/.kiro/steering/product-builder.md +213 -0
  13. package/.kiro/steering/promptctl.md +81 -0
  14. package/.kiro/steering/search-console-indexing-audit.md +57 -0
  15. package/.kiro/steering/semantic-release-beta.md +48 -0
  16. package/.kiro/steering/starter-rules.md +62 -0
  17. package/.kiro/steering/viral-launch.md +92 -0
  18. package/.windsurf/rules/add-to-my-skills.md +77 -0
  19. package/.windsurf/rules/ai-tools-setup.md +262 -0
  20. package/.windsurf/rules/changelog-generator.md +105 -0
  21. package/.windsurf/rules/cloudflare-block-countries.md +166 -0
  22. package/.windsurf/rules/docs-index-keeper.md +52 -0
  23. package/.windsurf/rules/fill-music-player.md +100 -0
  24. package/.windsurf/rules/gallery.md +227 -0
  25. package/.windsurf/rules/gh-cli.md +2189 -0
  26. package/.windsurf/rules/git-commit.md +124 -0
  27. package/.windsurf/rules/open-source-publisher.md +426 -0
  28. package/.windsurf/rules/product-builder.md +212 -0
  29. package/.windsurf/rules/promptctl.md +80 -0
  30. package/.windsurf/rules/search-console-indexing-audit.md +56 -0
  31. package/.windsurf/rules/semantic-release-beta.md +47 -0
  32. package/.windsurf/rules/starter-rules.md +61 -0
  33. package/.windsurf/rules/viral-launch.md +91 -0
  34. package/README.md +67 -14
  35. package/catalog/skills.json +48 -16
  36. package/docs/skill-anatomy.md +10 -6
  37. package/package.json +3 -1
  38. package/packages/marketing/search-console-indexing-audit/SKILL.md +3 -0
  39. package/packages/marketing/search-console-indexing-audit/adapters/claude/skills/search-console-indexing-audit/SKILL.md +3 -0
  40. package/packages/marketing/search-console-indexing-audit/adapters/cursor/plugin.json +1 -1
  41. package/packages/marketing/search-console-indexing-audit/adapters/cursor/skills/search-console-indexing-audit/SKILL.md +3 -0
  42. package/packages/marketing/search-console-indexing-audit/adapters/kiro/steering/search-console-indexing-audit.md +57 -0
  43. package/packages/marketing/search-console-indexing-audit/adapters/windsurf/rules/search-console-indexing-audit.md +56 -0
  44. package/packages/marketing/viral-launch/SKILL.md +3 -1
  45. package/packages/marketing/viral-launch/adapters/claude/skills/viral-launch/SKILL.md +3 -1
  46. package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +3 -1
  47. package/packages/marketing/viral-launch/adapters/kiro/steering/viral-launch.md +92 -0
  48. package/packages/marketing/viral-launch/adapters/windsurf/rules/viral-launch.md +91 -0
  49. package/packages/music/fill-music-player/SKILL.md +2 -1
  50. package/packages/music/fill-music-player/adapters/claude/skills/fill-music-player/SKILL.md +2 -1
  51. package/packages/music/fill-music-player/adapters/cursor/plugin.json +1 -1
  52. package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +2 -1
  53. package/packages/music/fill-music-player/adapters/kiro/steering/fill-music-player.md +101 -0
  54. package/packages/music/fill-music-player/adapters/windsurf/rules/fill-music-player.md +100 -0
  55. package/packages/photography/gallery/SKILL.md +3 -1
  56. package/packages/photography/gallery/adapters/claude/skills/gallery/SKILL.md +3 -1
  57. package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +3 -1
  58. package/packages/photography/gallery/adapters/kiro/steering/gallery.md +228 -0
  59. package/packages/photography/gallery/adapters/windsurf/rules/gallery.md +227 -0
  60. package/packages/software-development/add-to-my-skills/SKILL.md +2 -1
  61. package/packages/software-development/add-to-my-skills/adapters/claude/skills/add-to-my-skills/SKILL.md +2 -1
  62. package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +2 -1
  63. package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +78 -0
  64. package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +77 -0
  65. package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +263 -0
  66. package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +262 -0
  67. package/packages/software-development/changelog-generator/SKILL.md +3 -1
  68. package/packages/software-development/changelog-generator/adapters/claude/skills/changelog-generator/SKILL.md +3 -1
  69. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +3 -1
  70. package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +106 -0
  71. package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +105 -0
  72. package/packages/software-development/cloudflare-block-countries/SKILL.md +1 -1
  73. package/packages/software-development/cloudflare-block-countries/adapters/claude/skills/cloudflare-block-countries/SKILL.md +1 -1
  74. package/packages/software-development/cloudflare-block-countries/adapters/cursor/skills/cloudflare-block-countries/SKILL.md +1 -1
  75. package/packages/software-development/cloudflare-block-countries/adapters/kiro/steering/cloudflare-block-countries.md +167 -0
  76. package/packages/software-development/cloudflare-block-countries/adapters/windsurf/rules/cloudflare-block-countries.md +166 -0
  77. package/packages/software-development/docs-index-keeper/SKILL.md +2 -1
  78. package/packages/software-development/docs-index-keeper/adapters/claude/skills/docs-index-keeper/SKILL.md +2 -1
  79. package/packages/software-development/docs-index-keeper/adapters/cursor/plugin.json +1 -1
  80. package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +2 -1
  81. package/packages/software-development/docs-index-keeper/adapters/kiro/steering/docs-index-keeper.md +53 -0
  82. package/packages/software-development/docs-index-keeper/adapters/windsurf/rules/docs-index-keeper.md +52 -0
  83. package/packages/software-development/gh-cli/SKILL.md +3 -1
  84. package/packages/software-development/gh-cli/adapters/claude/skills/gh-cli/SKILL.md +3 -1
  85. package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +3 -1
  86. package/packages/software-development/gh-cli/adapters/kiro/steering/gh-cli.md +2190 -0
  87. package/packages/software-development/gh-cli/adapters/windsurf/rules/gh-cli.md +2189 -0
  88. package/packages/software-development/git-commit/SKILL.md +1 -1
  89. package/packages/software-development/git-commit/adapters/claude/skills/git-commit/SKILL.md +1 -1
  90. package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +1 -1
  91. package/packages/software-development/git-commit/adapters/kiro/steering/git-commit.md +125 -0
  92. package/packages/software-development/git-commit/adapters/windsurf/rules/git-commit.md +124 -0
  93. package/packages/software-development/open-source-publisher/SKILL.md +2 -1
  94. package/packages/software-development/open-source-publisher/adapters/claude/skills/open-source-publisher/SKILL.md +2 -1
  95. package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +2 -1
  96. package/packages/software-development/open-source-publisher/adapters/kiro/steering/open-source-publisher.md +427 -0
  97. package/packages/software-development/open-source-publisher/adapters/windsurf/rules/open-source-publisher.md +426 -0
  98. package/packages/software-development/product-builder/SKILL.md +2 -1
  99. package/packages/software-development/product-builder/adapters/claude/skills/product-builder/SKILL.md +2 -1
  100. package/packages/software-development/product-builder/adapters/cursor/plugin.json +1 -1
  101. package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +2 -1
  102. package/packages/software-development/product-builder/adapters/kiro/steering/product-builder.md +213 -0
  103. package/packages/software-development/product-builder/adapters/windsurf/rules/product-builder.md +212 -0
  104. package/packages/software-development/promptctl/SKILL.md +3 -1
  105. package/packages/software-development/promptctl/adapters/claude/skills/promptctl/SKILL.md +3 -1
  106. package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +3 -1
  107. package/packages/software-development/promptctl/adapters/kiro/steering/promptctl.md +81 -0
  108. package/packages/software-development/promptctl/adapters/windsurf/rules/promptctl.md +80 -0
  109. package/packages/software-development/semantic-release-beta/SKILL.md +3 -1
  110. package/packages/software-development/semantic-release-beta/adapters/claude/skills/semantic-release-beta/SKILL.md +3 -1
  111. package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +3 -1
  112. package/packages/software-development/semantic-release-beta/adapters/kiro/steering/semantic-release-beta.md +48 -0
  113. package/packages/software-development/semantic-release-beta/adapters/windsurf/rules/semantic-release-beta.md +47 -0
  114. package/packages/software-development/starter-rules/SKILL.md +2 -1
  115. package/packages/software-development/starter-rules/adapters/claude/skills/starter-rules/SKILL.md +2 -1
  116. package/packages/software-development/starter-rules/adapters/cursor/plugin.json +3 -2
  117. package/packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md +2 -1
  118. package/packages/software-development/starter-rules/adapters/kiro/steering/starter-rules.md +62 -0
  119. package/packages/software-development/starter-rules/adapters/windsurf/rules/starter-rules.md +61 -0
  120. package/scripts/build-adapters.sh +97 -8
  121. package/scripts/validate-catalog.sh +4 -0
@@ -0,0 +1,227 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ description: "Create photo galleries with AI-assisted layout curation and sequencing."
5
+ ---
6
+
7
+
8
+ # Gallery Workflow
9
+
10
+ Composed skill that creates photo galleries by orchestrating atomic scripts and sub-agents.
11
+
12
+ ## Philosophy
13
+
14
+ This skill applies principles from masters of photo sequencing and curation:
15
+
16
+ - **Keith Smith** — Group/Series/Sequence taxonomy; the gallery as a unified experience
17
+ - **Jörg Colberg** — Ruthless editing; visual rhythm; pacing
18
+ - **John Szarkowski** — The Five Characteristics for image assessment
19
+
20
+ > "The individual pages have to give up their independence in order to form a union." — Keith Smith
21
+
22
+ For detailed principles, see `docs/photo-layout-principles.md`.
23
+
24
+ ## Usage
25
+
26
+ `/gallery {folder} "{title}" {slug}`
27
+
28
+ Example: `/gallery cabo-2025 "CABO 2025" cabo`
29
+
30
+ **Important:** All paths are relative to the current project directory. The `{folder}` argument is a path within the project (e.g., `./photos/cabo-2025` or just `cabo-2025`). Do NOT search the filesystem for folders — assume the user's folder exists in the current working directory.
31
+
32
+ ## Gallery Modes
33
+
34
+ Before starting, identify the gallery's organizational mode:
35
+
36
+ | Mode | Definition | Implication |
37
+ |------|------------|-------------|
38
+ | **Series** | Chronological journey (default) | Respect timestamp order; adjust only within temporal clusters |
39
+ | **Group** | Thematic collection | Order is flexible; optimize for visual rhythm |
40
+ | **Sequence** | Strict order with meaning | Order is sacred; only adjust layout, not arrangement |
41
+
42
+ Most travel/event galleries are **Series**.
43
+
44
+ ## Architecture
45
+
46
+ ```
47
+ Atomic Scripts (reusable):
48
+ ├── init-gallery-manifest.ts Create manifest from EXIF
49
+ ├── merge-gallery-batches.ts Combine batch files
50
+ ├── validate-gallery-manifest.ts Fix common errors
51
+ └── generate-gallery-files.ts Generate .astro pages
52
+
53
+ Sub-Agent Skill:
54
+ └── review-image-batch AI reviews images → batch-NN.json
55
+ ```
56
+
57
+ ## Workflow
58
+
59
+ ### Phase 1: Initialize
60
+
61
+ ```bash
62
+ bun scripts/init-gallery-manifest.ts {folder} "{title}" {slug}
63
+ ```
64
+
65
+ Creates:
66
+ - `src/data/gallery-manifests/{folder}.json` (images array, empty blocks)
67
+ - `/tmp/gallery-batches/{folder}/` (clean directory for batch files)
68
+
69
+ ### Phase 2: Batch Review
70
+
71
+ Spawn sub-agents to review images. **Each writes to its own file** (parallel-safe).
72
+
73
+ ```
74
+ For batchIndex in 0..ceil(imageCount/8):
75
+ Task(
76
+ subagent_type: "general-purpose",
77
+ description: "Review gallery batch {batchIndex}",
78
+ prompt: <see below>
79
+ )
80
+ ```
81
+
82
+ **Sub-agent prompt template:**
83
+
84
+ ```
85
+ Review batch {batchIndex} for {folder} gallery.
86
+
87
+ Read:
88
+ - Manifest: src/data/gallery-manifests/{folder}.json
89
+ - Layout guide: {plugin_base_dir}/skills/review-image-batch/references/layout-guide.md
90
+ (The plugin base directory is provided in the skill invocation header)
91
+
92
+ Images to review: indices {startImage} to {endImage}
93
+ (Calculate: startImage = batchIndex * 8, endImage = min(startImage + 7, totalImages - 1))
94
+
95
+ Workflow:
96
+ 1. Read manifest to get image filenames
97
+ 2. Read layout guide for rules
98
+ 3. View each image file with Read tool
99
+ 4. Create layout blocks using your visual judgment
100
+ 5. Write JSON to: /tmp/gallery-batches/{folder}/batch-{NN}.json
101
+ where NN = batchIndex padded to 2 digits (00, 01, 02...)
102
+ 6. Return TEXT SUMMARY ONLY
103
+
104
+ Output file format:
105
+ {
106
+ "batchIndex": {batchIndex},
107
+ "startImage": {startImage},
108
+ "endImage": {endImage},
109
+ "blocks": [
110
+ { "layout": "WideImage", "images": ["DSCF1234.jpeg"], "props": {}, "notes": "..." }
111
+ ]
112
+ }
113
+
114
+ LAYOUT PHILOSOPHY:
115
+ Apply visual judgment, not mechanical rules. A gallery needs rhythm and variety.
116
+
117
+ Single-image (WideImage, OffsetImage, InsetImage, FullBleed):
118
+ - Strong standalones, portraits, quiet moments
119
+
120
+ Multi-image (TwoUp, ThreeUp):
121
+ - Use when juxtaposition creates meaning beyond either image alone
122
+ - Apply Lyons's test: Temporal? Spatial? Formal echo? Emotional pairing? Transformation?
123
+ - A good TwoUp is BETTER than two mediocre WideImages
124
+ - A true sequence (entering→through→emerging) deserves ThreeUp
125
+
126
+ Spacer: Add breathing room after powerful images
127
+ Chapter: Insert at location/theme changes
128
+ ```
129
+
130
+ **Parallel execution:** Sub-agents can run in parallel since each writes to its own file.
131
+
132
+ ### Phase 3: Merge & Validate
133
+
134
+ After all batches complete:
135
+
136
+ ```bash
137
+ bun scripts/merge-gallery-batches.ts {folder}
138
+ bun scripts/validate-gallery-manifest.ts src/data/gallery-manifests/{folder}.json
139
+ ```
140
+
141
+ This combines all batch files and validates the result.
142
+
143
+ ### Phase 4: Global Arc Review (NEW)
144
+
145
+ Before generating, review the merged manifest for overall coherence:
146
+
147
+ 1. **Count hero moments** — If >4 FullBleeds, demote some to WideImage
148
+ 2. **Check multi-image limits** — Max 2-3 TwoUp, 1-2 ThreeUp across entire gallery
149
+ 3. **Verify rhythm** — No consecutive high-weight blocks
150
+ 4. **Identify the climax** — One clear emotional peak, not many
151
+ 5. **Working backwards** — Does the final image provide satisfying closure?
152
+
153
+ ### Phase 5: Generate
154
+
155
+ ```bash
156
+ bun scripts/generate-gallery-files.ts {folder}
157
+ ```
158
+
159
+ Creates:
160
+ - `src/data/{folder}.ts` (data file with chapters)
161
+ - `src/pages/photographing/{slug}/index.astro`
162
+ - Additional `.astro` files for each chapter (if multi-chapter)
163
+
164
+ ## Resume Protocol
165
+
166
+ If interrupted, check `/tmp/gallery-batches/{folder}/` for existing batch files:
167
+
168
+ ```bash
169
+ ls /tmp/gallery-batches/{folder}/
170
+ ```
171
+
172
+ Only run missing batches, then merge.
173
+
174
+ ## Layout Philosophy
175
+
176
+ A gallery needs **rhythm and variety** — loud moments, quiet moments, pairings that create meaning.
177
+
178
+ | Layout | Purpose |
179
+ |--------|---------|
180
+ | WideImage | Strong standalone landscapes |
181
+ | OffsetImage | Portraits, quiet moments, breathing room |
182
+ | FullBleed | Hero shots, climactic moments |
183
+ | InsetImage | Intimate details, visual whispers |
184
+ | Spacer | Pacing, section breaks |
185
+ | TwoUp | Images that speak to each other |
186
+ | ThreeUp | True sequences (entering→through→emerging) |
187
+ | SplitLayout | Asymmetric pairs, one frames the other |
188
+ | Chapter | Location/theme breaks |
189
+
190
+ ### Lyons's Juxtaposition Test
191
+
192
+ Pair images when juxtaposition creates meaning beyond either image alone:
193
+
194
+ 1. **Temporal** — Same moment, different angles
195
+ 2. **Spatial** — Same scene, complementary views
196
+ 3. **Formal echo** — Compositional rhyme (lines, shapes, colors)
197
+ 4. **Emotional** — Contrast or reinforcement
198
+ 5. **Transformation** — Together they say something neither says alone
199
+
200
+ A strong TwoUp is better than two mediocre WideImages.
201
+
202
+ ## Output
203
+
204
+ When complete:
205
+ - Gallery URL: `/photographing/{slug}/`
206
+ - Files:
207
+ - `src/data/gallery-manifests/{folder}.json`
208
+ - `src/data/{folder}.ts`
209
+ - `src/pages/photographing/{slug}/*.astro`
210
+
211
+ ## Composability
212
+
213
+ Each piece is reusable:
214
+
215
+ ```bash
216
+ # Just extract EXIF
217
+ bun scripts/init-gallery-manifest.ts photos "Photos" photos
218
+
219
+ # Just merge existing batches
220
+ bun scripts/merge-gallery-batches.ts photos
221
+
222
+ # Just regenerate pages from manifest
223
+ bun scripts/generate-gallery-files.ts photos
224
+
225
+ # Validate any manifest
226
+ bun scripts/validate-gallery-manifest.ts src/data/gallery-manifests/photos.json
227
+ ```
@@ -2,7 +2,8 @@
2
2
  name: add-to-my-skills
3
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
4
  license: MIT
5
- compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
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.
6
7
  metadata:
7
8
  author: Oleg Koval
8
9
  tags:
@@ -4,7 +4,8 @@
4
4
  name: add-to-my-skills
5
5
  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.
6
6
  license: MIT
7
- compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
+ allowed-tools: Bash, Read, Write, Edit
8
+ 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.
8
9
  metadata:
9
10
  author: Oleg Koval
10
11
  tags:
@@ -4,7 +4,8 @@
4
4
  name: add-to-my-skills
5
5
  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.
6
6
  license: MIT
7
- compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository and access to the source skill repo.
7
+ allowed-tools: Bash, Read, Write, Edit
8
+ 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.
8
9
  metadata:
9
10
  author: Oleg Koval
10
11
  tags:
@@ -0,0 +1,78 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
6
+ ---
7
+
8
+
9
+ # Add to My Skills
10
+
11
+ Use this skill when a skill was created in another repository and needs to be copied into this catalog as a first-class package.
12
+
13
+ ## Outcome
14
+
15
+ 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.
16
+
17
+ ## When to Use
18
+
19
+ - The user created a new `SKILL.md` in another repo and wants it added here
20
+ - The user wants this catalog to become the canonical home for that skill
21
+ - The user wants the README, generated manifests, commit, and push handled in one pass
22
+
23
+ ## Clarify Before Acting
24
+
25
+ If any of these are unclear, ask up to 3 questions in one batch before editing:
26
+
27
+ - Source repo or source skill path
28
+ - Final skill name if it should differ from the source
29
+ - Destination branch or remote if the push target is unclear
30
+
31
+ Default assumptions when not specified:
32
+
33
+ - Copy the source skill as a new canonical package in `packages/software-development/<skill-name>/`
34
+ - Keep the source skill name unless the user asks to rename it
35
+ - Use this repository as the destination
36
+ - Commit with a conventional commit message and push to the current branch's upstream
37
+
38
+ ## Workflow
39
+
40
+ 1. Inspect the source skill:
41
+ - locate the source `SKILL.md`
42
+ - copy any supporting `references/`, `scripts/`, or `assets/` files that the skill needs
43
+ - note any repo-specific assumptions that need to be rewritten for this catalog
44
+ 2. Choose the package location:
45
+ - default to `packages/software-development/<skill-name>/`
46
+ - ensure the package directory name matches the `name` frontmatter value
47
+ 3. Create or update the canonical package:
48
+ - write `SKILL.md` first
49
+ - keep the frontmatter accurate and concise
50
+ - make the workflow explicit, actionable, and self-contained
51
+ 4. Register the package in the repository inventory:
52
+ - add the package to `catalog/skills.json`
53
+ - add it to the appropriate collection file if it belongs in a bundle
54
+ - update `README.md` so the package list, counts, and usage examples stay current
55
+ 5. Refresh generated outputs:
56
+ - run `./scripts/build-adapters.sh`
57
+ - run `./scripts/validate-catalog.sh`
58
+ 6. Verify the new package actually exists:
59
+ - confirm `packages/software-development/<skill-name>/SKILL.md`
60
+ - confirm generated adapter files and prompt files were created
61
+ 7. Commit and push:
62
+ - inspect `git status`
63
+ - commit the change with a conventional message
64
+ - push to the current upstream branch
65
+
66
+ ## Git Safety
67
+
68
+ - Never overwrite unrelated changes
69
+ - Never force push unless the user explicitly asks
70
+ - Never commit secrets copied from the source repo
71
+ - If the source skill is incomplete or ambiguous, stop and ask for clarification instead of guessing
72
+
73
+ ## Verification
74
+
75
+ - `./scripts/build-adapters.sh` completes successfully
76
+ - `./scripts/validate-catalog.sh` passes
77
+ - `git status` shows only the intended package, catalog, README, and generated files
78
+ - `git push` succeeds to the expected remote
@@ -0,0 +1,77 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ description: "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
5
+ ---
6
+
7
+
8
+ # Add to My Skills
9
+
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.
11
+
12
+ ## Outcome
13
+
14
+ 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.
15
+
16
+ ## When to Use
17
+
18
+ - The user created a new `SKILL.md` in another repo and wants it added here
19
+ - The user wants this catalog to become the canonical home for that skill
20
+ - The user wants the README, generated manifests, commit, and push handled in one pass
21
+
22
+ ## Clarify Before Acting
23
+
24
+ If any of these are unclear, ask up to 3 questions in one batch before editing:
25
+
26
+ - Source repo or source skill path
27
+ - Final skill name if it should differ from the source
28
+ - Destination branch or remote if the push target is unclear
29
+
30
+ Default assumptions when not specified:
31
+
32
+ - Copy the source skill as a new canonical package in `packages/software-development/<skill-name>/`
33
+ - Keep the source skill name unless the user asks to rename it
34
+ - Use this repository as the destination
35
+ - Commit with a conventional commit message and push to the current branch's upstream
36
+
37
+ ## Workflow
38
+
39
+ 1. Inspect the source skill:
40
+ - locate the source `SKILL.md`
41
+ - copy any supporting `references/`, `scripts/`, or `assets/` files that the skill needs
42
+ - note any repo-specific assumptions that need to be rewritten for this catalog
43
+ 2. Choose the package location:
44
+ - default to `packages/software-development/<skill-name>/`
45
+ - ensure the package directory name matches the `name` frontmatter value
46
+ 3. Create or update the canonical package:
47
+ - write `SKILL.md` first
48
+ - keep the frontmatter accurate and concise
49
+ - make the workflow explicit, actionable, and self-contained
50
+ 4. Register the package in the repository inventory:
51
+ - add the package to `catalog/skills.json`
52
+ - add it to the appropriate collection file if it belongs in a bundle
53
+ - update `README.md` so the package list, counts, and usage examples stay current
54
+ 5. Refresh generated outputs:
55
+ - run `./scripts/build-adapters.sh`
56
+ - run `./scripts/validate-catalog.sh`
57
+ 6. Verify the new package actually exists:
58
+ - confirm `packages/software-development/<skill-name>/SKILL.md`
59
+ - confirm generated adapter files and prompt files were created
60
+ 7. Commit and push:
61
+ - inspect `git status`
62
+ - commit the change with a conventional message
63
+ - push to the current upstream branch
64
+
65
+ ## Git Safety
66
+
67
+ - Never overwrite unrelated changes
68
+ - Never force push unless the user explicitly asks
69
+ - Never commit secrets copied from the source repo
70
+ - If the source skill is incomplete or ambiguous, stop and ask for clarification instead of guessing
71
+
72
+ ## Verification
73
+
74
+ - `./scripts/build-adapters.sh` completes successfully
75
+ - `./scripts/validate-catalog.sh` passes
76
+ - `git status` shows only the intended package, catalog, README, and generated files
77
+ - `git push` succeeds to the expected remote
@@ -0,0 +1,263 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
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."
6
+ ---
7
+
8
+
9
+ # AI Tools Setup — RTK + ICM + Vox
10
+
11
+ Install, repair, and measure the RTK+ICM+Vox toolkit for Claude Code.
12
+
13
+ ## What This Skill Does
14
+
15
+ | Mode | When to use |
16
+ |------|-------------|
17
+ | **Setup** | First install on a new machine |
18
+ | **Repair** | Something broke — hooks missing, MCP not loading |
19
+ | **Digest** | Weekly check: token savings, memory health, voice stats |
20
+
21
+ ## Tools in the Bundle
22
+
23
+ | Tool | Version | Purpose |
24
+ |------|---------|---------|
25
+ | **RTK** | latest | Compresses CLI output by ~89% before it reaches the model |
26
+ | **ICM** | latest | Persistent SQLite memory across sessions (knowledge graph + hybrid search) |
27
+ | **Vox** | latest | Spoken task notifications via local TTS — zero API calls |
28
+
29
+ ---
30
+
31
+ ## Step 1: Detect Current State
32
+
33
+ Run this to see what is installed and what is missing:
34
+
35
+ ```bash
36
+ echo "=== Binary check ===" && \
37
+ (rtk --version 2>/dev/null && echo "RTK: ok") || echo "RTK: MISSING" && \
38
+ (icm --version 2>/dev/null && echo "ICM: ok") || echo "ICM: MISSING" && \
39
+ (vox --version 2>/dev/null && echo "Vox: ok") || echo "Vox: MISSING"
40
+
41
+ echo "=== RTK hook ===" && \
42
+ grep -c '"rtk hook claude"' ~/.claude/settings.json 2>/dev/null \
43
+ && echo "RTK hook: ok" || echo "RTK hook: MISSING"
44
+
45
+ echo "=== ICM hooks ===" && \
46
+ grep -c '"icm hook' ~/.claude/settings.json 2>/dev/null \
47
+ && echo "ICM hooks: ok" || echo "ICM hooks: MISSING"
48
+
49
+ echo "=== ICM MCP ===" && \
50
+ 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"
51
+
52
+ echo "=== Vox MCP ===" && \
53
+ 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"
54
+
55
+ echo "=== ICM CLAUDE.md ===" && \
56
+ grep -c 'icm:start' ~/.claude/CLAUDE.md 2>/dev/null \
57
+ && echo "ICM CLAUDE.md: ok" || echo "ICM CLAUDE.md: MISSING"
58
+ ```
59
+
60
+ Read the output and determine which of the following repair steps are needed.
61
+
62
+ ---
63
+
64
+ ## Step 2: Install Missing Binaries
65
+
66
+ Only run for tools that showed MISSING above.
67
+
68
+ **RTK:**
69
+ ```bash
70
+ brew install rtk
71
+ rtk --version
72
+ ```
73
+
74
+ **ICM:**
75
+ ```bash
76
+ brew install rtk-ai/tap/icm
77
+ icm --version
78
+ ```
79
+
80
+ **Vox:**
81
+ ```bash
82
+ brew install rtk-ai/tap/vox
83
+ vox --version
84
+ ```
85
+
86
+ ---
87
+
88
+ ## Step 3: Repair Hooks
89
+
90
+ ### RTK hook missing
91
+
92
+ Add the `PreToolUse` RTK hook to `~/.claude/settings.json`. Read the file first, then add inside the existing `"hooks"` block (or create one):
93
+
94
+ ```json
95
+ "PreToolUse": [
96
+ {
97
+ "matcher": "Bash",
98
+ "hooks": [{ "type": "command", "command": "rtk hook claude" }]
99
+ }
100
+ ]
101
+ ```
102
+
103
+ Then verify: `grep -c '"rtk hook claude"' ~/.claude/settings.json`
104
+
105
+ ### ICM hooks missing
106
+
107
+ Run:
108
+ ```bash
109
+ icm init --mode hook
110
+ ```
111
+
112
+ This adds `PreToolUse`, `PostToolUse`, `PreCompact`, `UserPromptSubmit`, `SessionStart`, `SessionEnd` hooks automatically.
113
+
114
+ ### Vox Stop hook missing
115
+
116
+ Run:
117
+ ```bash
118
+ vox init --mode cli
119
+ ```
120
+
121
+ ---
122
+
123
+ ## Step 4: Repair MCP Servers
124
+
125
+ ### ICM MCP missing
126
+
127
+ ```bash
128
+ icm init --mode mcp
129
+ ```
130
+
131
+ ### Vox MCP missing
132
+
133
+ ```bash
134
+ vox init --mode mcp
135
+ ```
136
+
137
+ Verify both by checking `~/.claude.json`:
138
+ ```bash
139
+ python3 -c "import json; d=json.load(open('$HOME/.claude.json')); print(list(d.get('mcpServers',{}).keys()))"
140
+ ```
141
+
142
+ ---
143
+
144
+ ## Step 5: Repair CLAUDE.md Instructions
145
+
146
+ If ICM instructions are missing from `~/.claude/CLAUDE.md`:
147
+
148
+ ```bash
149
+ icm init --mode cli
150
+ ```
151
+
152
+ 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.
153
+
154
+ ---
155
+
156
+ ## Step 6: Effectiveness Digest
157
+
158
+ Run this report to see how the toolkit is performing. Good to run weekly.
159
+
160
+ ```bash
161
+ echo "=============================="
162
+ echo " AI TOOLS EFFECTIVENESS"
163
+ echo "=============================="
164
+ echo ""
165
+ echo "--- RTK: Token Savings ---"
166
+ rtk gain 2>/dev/null || echo "No data yet (run some commands first)"
167
+ echo ""
168
+ echo "--- ICM: Memory Health ---"
169
+ icm health 2>/dev/null || echo "No memories yet"
170
+ echo ""
171
+ echo "--- ICM: Topics ---"
172
+ icm topics 2>/dev/null || echo "No topics yet"
173
+ echo ""
174
+ echo "--- Vox: Usage ---"
175
+ vox stats 2>/dev/null || echo "No stats yet"
176
+ echo ""
177
+ echo "=============================="
178
+ ```
179
+
180
+ ### What healthy output looks like
181
+
182
+ - **RTK**: `Tokens saved: 5M+ (85%+)` across `500+ commands` — if savings are low, run `rtk discover` to find uncovered commands
183
+ - **ICM**: Topics like `decisions-*`, `errors-resolved`, `preferences` with recent timestamps — if empty, start storing manually with `icm store`
184
+ - **Vox**: Non-zero speak count means the Stop hook fired
185
+
186
+ ---
187
+
188
+ ## Step 7 (Optional): Schedule a Weekly Digest
189
+
190
+ To get a weekly automated report without having to remember to run this skill:
191
+
192
+ ```bash
193
+ # Create a weekly digest script
194
+ cat > ~/ai-tools-digest.sh << 'EOF'
195
+ #!/bin/bash
196
+ echo "=== Weekly AI Tools Digest — $(date) ===" | tee -a ~/ai-tools-digest.log
197
+ echo "" | tee -a ~/ai-tools-digest.log
198
+ rtk gain 2>/dev/null | tee -a ~/ai-tools-digest.log
199
+ echo "" | tee -a ~/ai-tools-digest.log
200
+ icm health 2>/dev/null | tee -a ~/ai-tools-digest.log
201
+ echo "" | tee -a ~/ai-tools-digest.log
202
+ icm topics 2>/dev/null | tee -a ~/ai-tools-digest.log
203
+ # Speak the summary if Vox is available
204
+ vox "Weekly digest complete. Check your log." 2>/dev/null || true
205
+ EOF
206
+ chmod +x ~/ai-tools-digest.sh
207
+ ```
208
+
209
+ Then set up a weekly launchd job (macOS):
210
+
211
+ ```bash
212
+ cat > ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist << 'EOF'
213
+ <?xml version="1.0" encoding="UTF-8"?>
214
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
215
+ <plist version="1.0">
216
+ <dict>
217
+ <key>Label</key>
218
+ <string>com.oleg.ai-tools-digest</string>
219
+ <key>ProgramArguments</key>
220
+ <array>
221
+ <string>/bin/bash</string>
222
+ <string>/Users/oleg.koval/ai-tools-digest.sh</string>
223
+ </array>
224
+ <key>StartCalendarInterval</key>
225
+ <dict>
226
+ <key>Weekday</key>
227
+ <integer>1</integer>
228
+ <key>Hour</key>
229
+ <integer>9</integer>
230
+ <key>Minute</key>
231
+ <integer>0</integer>
232
+ </dict>
233
+ <key>StandardOutPath</key>
234
+ <string>/tmp/ai-tools-digest.log</string>
235
+ <key>StandardErrorPath</key>
236
+ <string>/tmp/ai-tools-digest.err</string>
237
+ </dict>
238
+ </plist>
239
+ EOF
240
+
241
+ launchctl load ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist
242
+ echo "Weekly digest scheduled for Mondays at 9am"
243
+ ```
244
+
245
+ To view the digest log anytime: `cat ~/ai-tools-digest.log`
246
+
247
+ To unload: `launchctl unload ~/Library/LaunchAgents/com.oleg.ai-tools-digest.plist`
248
+
249
+ ---
250
+
251
+ ## Quick Reference
252
+
253
+ | Command | What it does |
254
+ |---------|-------------|
255
+ | `rtk gain` | Total tokens saved to date |
256
+ | `rtk discover` | Find commands not yet covered by RTK |
257
+ | `icm topics` | List all memory topic buckets |
258
+ | `icm health` | Memory hygiene — stale, redundant, decay stats |
259
+ | `icm recall "query"` | Search memories semantically |
260
+ | `icm store -t topic -c "content" -i high` | Store a memory manually |
261
+ | `vox "text"` | Speak text immediately |
262
+ | `vox stats` | Usage stats for the Vox backend |
263
+ | `cat ~/ai-tools-digest.log` | View scheduled digest history |