@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.
- package/.claude-plugin/plugin.json +1 -1
- package/.kiro/steering/add-to-my-skills.md +78 -0
- package/.kiro/steering/ai-tools-setup.md +263 -0
- package/.kiro/steering/changelog-generator.md +106 -0
- package/.kiro/steering/cloudflare-block-countries.md +167 -0
- package/.kiro/steering/docs-index-keeper.md +53 -0
- package/.kiro/steering/fill-music-player.md +101 -0
- package/.kiro/steering/gallery.md +228 -0
- package/.kiro/steering/gh-cli.md +2190 -0
- package/.kiro/steering/git-commit.md +125 -0
- package/.kiro/steering/open-source-publisher.md +427 -0
- package/.kiro/steering/product-builder.md +213 -0
- package/.kiro/steering/promptctl.md +81 -0
- package/.kiro/steering/search-console-indexing-audit.md +57 -0
- package/.kiro/steering/semantic-release-beta.md +48 -0
- package/.kiro/steering/starter-rules.md +62 -0
- package/.kiro/steering/viral-launch.md +92 -0
- package/.windsurf/rules/add-to-my-skills.md +77 -0
- package/.windsurf/rules/ai-tools-setup.md +262 -0
- package/.windsurf/rules/changelog-generator.md +105 -0
- package/.windsurf/rules/cloudflare-block-countries.md +166 -0
- package/.windsurf/rules/docs-index-keeper.md +52 -0
- package/.windsurf/rules/fill-music-player.md +100 -0
- package/.windsurf/rules/gallery.md +227 -0
- package/.windsurf/rules/gh-cli.md +2189 -0
- package/.windsurf/rules/git-commit.md +124 -0
- package/.windsurf/rules/open-source-publisher.md +426 -0
- package/.windsurf/rules/product-builder.md +212 -0
- package/.windsurf/rules/promptctl.md +80 -0
- package/.windsurf/rules/search-console-indexing-audit.md +56 -0
- package/.windsurf/rules/semantic-release-beta.md +47 -0
- package/.windsurf/rules/starter-rules.md +61 -0
- package/.windsurf/rules/viral-launch.md +91 -0
- package/README.md +67 -14
- package/catalog/skills.json +48 -16
- package/docs/skill-anatomy.md +10 -6
- package/package.json +3 -1
- package/packages/marketing/search-console-indexing-audit/SKILL.md +3 -0
- package/packages/marketing/search-console-indexing-audit/adapters/claude/skills/search-console-indexing-audit/SKILL.md +3 -0
- package/packages/marketing/search-console-indexing-audit/adapters/cursor/plugin.json +1 -1
- package/packages/marketing/search-console-indexing-audit/adapters/cursor/skills/search-console-indexing-audit/SKILL.md +3 -0
- package/packages/marketing/search-console-indexing-audit/adapters/kiro/steering/search-console-indexing-audit.md +57 -0
- package/packages/marketing/search-console-indexing-audit/adapters/windsurf/rules/search-console-indexing-audit.md +56 -0
- package/packages/marketing/viral-launch/SKILL.md +3 -1
- package/packages/marketing/viral-launch/adapters/claude/skills/viral-launch/SKILL.md +3 -1
- package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +3 -1
- package/packages/marketing/viral-launch/adapters/kiro/steering/viral-launch.md +92 -0
- package/packages/marketing/viral-launch/adapters/windsurf/rules/viral-launch.md +91 -0
- package/packages/music/fill-music-player/SKILL.md +2 -1
- package/packages/music/fill-music-player/adapters/claude/skills/fill-music-player/SKILL.md +2 -1
- package/packages/music/fill-music-player/adapters/cursor/plugin.json +1 -1
- package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +2 -1
- package/packages/music/fill-music-player/adapters/kiro/steering/fill-music-player.md +101 -0
- package/packages/music/fill-music-player/adapters/windsurf/rules/fill-music-player.md +100 -0
- package/packages/photography/gallery/SKILL.md +3 -1
- package/packages/photography/gallery/adapters/claude/skills/gallery/SKILL.md +3 -1
- package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +3 -1
- package/packages/photography/gallery/adapters/kiro/steering/gallery.md +228 -0
- package/packages/photography/gallery/adapters/windsurf/rules/gallery.md +227 -0
- package/packages/software-development/add-to-my-skills/SKILL.md +2 -1
- package/packages/software-development/add-to-my-skills/adapters/claude/skills/add-to-my-skills/SKILL.md +2 -1
- package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +2 -1
- package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +78 -0
- package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +77 -0
- package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +263 -0
- package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +262 -0
- package/packages/software-development/changelog-generator/SKILL.md +3 -1
- package/packages/software-development/changelog-generator/adapters/claude/skills/changelog-generator/SKILL.md +3 -1
- package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +3 -1
- package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +106 -0
- package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +105 -0
- package/packages/software-development/cloudflare-block-countries/SKILL.md +1 -1
- package/packages/software-development/cloudflare-block-countries/adapters/claude/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/packages/software-development/cloudflare-block-countries/adapters/cursor/skills/cloudflare-block-countries/SKILL.md +1 -1
- package/packages/software-development/cloudflare-block-countries/adapters/kiro/steering/cloudflare-block-countries.md +167 -0
- package/packages/software-development/cloudflare-block-countries/adapters/windsurf/rules/cloudflare-block-countries.md +166 -0
- package/packages/software-development/docs-index-keeper/SKILL.md +2 -1
- package/packages/software-development/docs-index-keeper/adapters/claude/skills/docs-index-keeper/SKILL.md +2 -1
- package/packages/software-development/docs-index-keeper/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +2 -1
- package/packages/software-development/docs-index-keeper/adapters/kiro/steering/docs-index-keeper.md +53 -0
- package/packages/software-development/docs-index-keeper/adapters/windsurf/rules/docs-index-keeper.md +52 -0
- package/packages/software-development/gh-cli/SKILL.md +3 -1
- package/packages/software-development/gh-cli/adapters/claude/skills/gh-cli/SKILL.md +3 -1
- package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +3 -1
- package/packages/software-development/gh-cli/adapters/kiro/steering/gh-cli.md +2190 -0
- package/packages/software-development/gh-cli/adapters/windsurf/rules/gh-cli.md +2189 -0
- package/packages/software-development/git-commit/SKILL.md +1 -1
- package/packages/software-development/git-commit/adapters/claude/skills/git-commit/SKILL.md +1 -1
- package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +1 -1
- package/packages/software-development/git-commit/adapters/kiro/steering/git-commit.md +125 -0
- package/packages/software-development/git-commit/adapters/windsurf/rules/git-commit.md +124 -0
- package/packages/software-development/open-source-publisher/SKILL.md +2 -1
- package/packages/software-development/open-source-publisher/adapters/claude/skills/open-source-publisher/SKILL.md +2 -1
- package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +2 -1
- package/packages/software-development/open-source-publisher/adapters/kiro/steering/open-source-publisher.md +427 -0
- package/packages/software-development/open-source-publisher/adapters/windsurf/rules/open-source-publisher.md +426 -0
- package/packages/software-development/product-builder/SKILL.md +2 -1
- package/packages/software-development/product-builder/adapters/claude/skills/product-builder/SKILL.md +2 -1
- package/packages/software-development/product-builder/adapters/cursor/plugin.json +1 -1
- package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +2 -1
- package/packages/software-development/product-builder/adapters/kiro/steering/product-builder.md +213 -0
- package/packages/software-development/product-builder/adapters/windsurf/rules/product-builder.md +212 -0
- package/packages/software-development/promptctl/SKILL.md +3 -1
- package/packages/software-development/promptctl/adapters/claude/skills/promptctl/SKILL.md +3 -1
- package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +3 -1
- package/packages/software-development/promptctl/adapters/kiro/steering/promptctl.md +81 -0
- package/packages/software-development/promptctl/adapters/windsurf/rules/promptctl.md +80 -0
- package/packages/software-development/semantic-release-beta/SKILL.md +3 -1
- package/packages/software-development/semantic-release-beta/adapters/claude/skills/semantic-release-beta/SKILL.md +3 -1
- package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +3 -1
- package/packages/software-development/semantic-release-beta/adapters/kiro/steering/semantic-release-beta.md +48 -0
- package/packages/software-development/semantic-release-beta/adapters/windsurf/rules/semantic-release-beta.md +47 -0
- package/packages/software-development/starter-rules/SKILL.md +2 -1
- package/packages/software-development/starter-rules/adapters/claude/skills/starter-rules/SKILL.md +2 -1
- package/packages/software-development/starter-rules/adapters/cursor/plugin.json +3 -2
- package/packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md +2 -1
- package/packages/software-development/starter-rules/adapters/kiro/steering/starter-rules.md +62 -0
- package/packages/software-development/starter-rules/adapters/windsurf/rules/starter-rules.md +61 -0
- package/scripts/build-adapters.sh +97 -8
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md
ADDED
|
@@ -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
|
package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md
ADDED
|
@@ -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 |
|