@olegkoval/agent-skills 1.10.0 → 1.11.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 (34) hide show
  1. package/.claude-plugin/plugin.json +2 -4
  2. package/.cursor-plugin/index.json +5 -15
  3. package/.kiro/steering/review-past-performance.md +202 -0
  4. package/.windsurf/rules/review-past-performance.md +201 -0
  5. package/README.md +3 -12
  6. package/catalog/skills.json +20 -65
  7. package/collections/docs-tools.json +1 -1
  8. package/collections/git-tools.json +1 -1
  9. package/collections/software-development.json +0 -2
  10. package/package.json +1 -1
  11. package/packages/marketing/search-console-indexing-audit/adapters/cursor/skills/search-console-indexing-audit/SKILL.md +1 -1
  12. package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +1 -1
  13. package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +1 -1
  14. package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +1 -1
  15. package/packages/software-development/cloudflare-block-countries/adapters/cursor/skills/cloudflare-block-countries/SKILL.md +1 -1
  16. package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +1 -1
  17. package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +1 -1
  18. package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +1 -1
  19. package/packages/software-development/obsidian-pr-sync/adapters/cursor/skills/obsidian-pr-sync/SKILL.md +1 -1
  20. package/packages/software-development/obsidian-task-rollover/adapters/cursor/skills/obsidian-task-rollover/SKILL.md +1 -1
  21. package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +1 -1
  22. package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +1 -1
  23. package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +1 -1
  24. package/packages/software-development/review-past-performance/SKILL.md +211 -0
  25. package/packages/software-development/review-past-performance/adapters/claude/plugin.json +5 -0
  26. package/packages/software-development/review-past-performance/adapters/claude/skills/review-past-performance/SKILL.md +212 -0
  27. package/packages/software-development/review-past-performance/adapters/codex/README.md +3 -0
  28. package/packages/software-development/review-past-performance/adapters/cursor/plugin.json +6 -0
  29. package/packages/software-development/review-past-performance/adapters/cursor/skills/review-past-performance/SKILL.md +213 -0
  30. package/packages/software-development/review-past-performance/adapters/kiro/steering/review-past-performance.md +201 -0
  31. package/packages/software-development/review-past-performance/adapters/windsurf/rules/review-past-performance.md +200 -0
  32. package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +1 -1
  33. package/packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md +1 -1
  34. package/scripts/build-adapters.sh +13 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "olko-agent-skills",
3
3
  "description": "Agent-agnostic skill catalog for Codex, Claude, Cursor, and other skill-aware tools.",
4
- "version": "1.9.2",
4
+ "version": "1.10.1",
5
5
  "author": {
6
6
  "name": "Oleg Koval"
7
7
  },
@@ -11,16 +11,14 @@
11
11
  "skills": [
12
12
  "./packages/software-development/docs-index-keeper",
13
13
  "./packages/software-development/semantic-release-beta",
14
- "./packages/software-development/changelog-generator",
15
14
  "./packages/software-development/gh-cli",
16
15
  "./packages/software-development/git-commit",
17
16
  "./packages/photography/gallery",
18
17
  "./packages/software-development/promptctl",
19
18
  "./packages/music/fill-music-player",
20
19
  "./packages/software-development/product-builder",
21
- "./packages/software-development/ai-tools-setup",
22
- "./packages/software-development/add-to-my-skills",
23
20
  "./packages/software-development/starter-rules",
21
+ "./packages/software-development/review-past-performance",
24
22
  "./packages/software-development/open-source-publisher",
25
23
  "./packages/marketing/viral-launch",
26
24
  "./packages/marketing/search-console-indexing-audit",
@@ -11,11 +11,6 @@
11
11
  "source": "./packages/software-development/semantic-release-beta/adapters/cursor",
12
12
  "description": "Set up semantic-release-npm-github-publish with stable main releases and prerelease beta releases on a beta branch."
13
13
  },
14
- {
15
- "name": "olko:changelog-generator",
16
- "source": "./packages/software-development/changelog-generator/adapters/cursor",
17
- "description": "Generate user-facing changelogs and release notes from git history."
18
- },
19
14
  {
20
15
  "name": "olko:gh-cli",
21
16
  "source": "./packages/software-development/gh-cli/adapters/cursor",
@@ -46,21 +41,16 @@
46
41
  "source": "./packages/software-development/product-builder/adapters/cursor",
47
42
  "description": "Build a full-stack web application or SaaS product from a user description using production-oriented defaults."
48
43
  },
49
- {
50
- "name": "olko:ai-tools-setup",
51
- "source": "./packages/software-development/ai-tools-setup/adapters/cursor",
52
- "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."
53
- },
54
- {
55
- "name": "olko:add-to-my-skills",
56
- "source": "./packages/software-development/add-to-my-skills/adapters/cursor",
57
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
58
- },
59
44
  {
60
45
  "name": "olko:starter-rules",
61
46
  "source": "./packages/software-development/starter-rules/adapters/cursor",
62
47
  "description": "Load and enforce hard rules for every oleg-koval/* starter: 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, no comments, KISS/DRY/SOLID."
63
48
  },
49
+ {
50
+ "name": "olko:review-past-performance",
51
+ "source": "./packages/software-development/review-past-performance/adapters/cursor",
52
+ "description": "Self-improvement loop that pulls the last 24h of ICM memories, git history, and skill analytics to detect repeated mistakes, slow workflows, and missing coverage, then proposes 1-3 concrete improvements."
53
+ },
64
54
  {
65
55
  "name": "olko:open-source-publisher",
66
56
  "source": "./packages/software-development/open-source-publisher/adapters/cursor",
@@ -0,0 +1,202 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Self-improvement loop that pulls the last 24h of ICM memories, git history, and skill analytics to detect repeated mistakes, slow workflows, and missing coverage, then proposes 1-3 concrete improvements."
6
+ ---
7
+
8
+
9
+ # /review-past-performance
10
+
11
+ Self-improvement loop. Analyze recent sessions, find durable patterns, propose fixes.
12
+
13
+ ## Step 1 — Gather raw signals (run in parallel)
14
+
15
+ ```bash
16
+ # A: ICM memories from last 24h
17
+ icm recall "mistakes errors repeated workflow" --limit 10 2>/dev/null || echo "ICM_UNAVAILABLE"
18
+ icm recall "completed task feature fix" --limit 10 2>/dev/null || echo "ICM_UNAVAILABLE"
19
+ ```
20
+
21
+ ```bash
22
+ # B: Git activity last 24h across all repos the user works in
23
+ git log --all --since="24 hours ago" --oneline --author="$(git config user.email 2>/dev/null)" 2>/dev/null | head -30 || echo "NO_GIT"
24
+ ```
25
+
26
+ ```bash
27
+ # C: ICM transcripts (last 3 sessions)
28
+ icm transcript search "" --limit 3 2>/dev/null || echo "TRANSCRIPTS_UNAVAILABLE"
29
+ ```
30
+
31
+ ```bash
32
+ # D: Skill usage from gstack analytics (what skills were run, outcomes)
33
+ tail -50 ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null | jq -c 'select(.ts > (now - 86400 | todate))' 2>/dev/null || \
34
+ tail -50 ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null | head -20 || echo "NO_ANALYTICS"
35
+ ```
36
+
37
+ ```bash
38
+ # E: ICM errors-resolved topic (what broke and was fixed)
39
+ icm recall "error" -t "errors-resolved" --limit 5 2>/dev/null || echo "NO_ERROR_MEMORIES"
40
+ ```
41
+
42
+ ```bash
43
+ # F: Recent learnings (gstack)
44
+ _GSTACK_HOME="${GSTACK_HOME:-$HOME/.gstack}"
45
+ eval "$($HOME/.slate/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true
46
+ _LEARN_FILE="$_GSTACK_HOME/projects/${SLUG:-unknown}/learnings.jsonl"
47
+ [ -f "$_LEARN_FILE" ] && tail -20 "$_LEARN_FILE" || echo "NO_LEARNINGS"
48
+ ```
49
+
50
+ ## Step 2 — Synthesize patterns
51
+
52
+ Read all signals. Classify findings into these categories:
53
+
54
+ **Repeated mistakes** — same error, same fix, same confusion appearing more than once in the signals. E.g., always forgetting to handle null on a specific field, always hitting the same linting error.
55
+
56
+ **Slow workflows** — multi-step sequences that took many tool calls but could be a single skill. E.g., always doing manual `git log` + `grep` + read 3 files before every PR review.
57
+
58
+ **Missing coverage** — areas where work was done but no test was written or no memory was stored.
59
+
60
+ **Underused skills** — skills that would have applied but were not invoked (check skill-usage.jsonl gaps vs. git activity).
61
+
62
+ **Knowledge gaps** — concepts that came up repeatedly as questions or confusion.
63
+
64
+ Score each finding:
65
+ - **Frequency**: how many times it appeared (1 = once, 3 = three or more)
66
+ - **Time cost**: rough estimate per occurrence (minutes)
67
+ - **Fixability**: easy (a new skill/memory fixes it), medium (needs a process change), hard (structural)
68
+
69
+ Pick the top 1-3 findings by `frequency × time_cost × fixability_inverse`.
70
+
71
+ ## Step 3 — Formulate proposals
72
+
73
+ For each finding, produce exactly one proposal. Proposal types:
74
+
75
+ **Type A — New skill**: The repeated sequence can be codified. Provide:
76
+ - Proposed skill name (lowercase, dashes, ≤32 chars)
77
+ - Trigger phrases (3-5)
78
+ - 5-8 line SKILL.md workflow skeleton
79
+ - Estimated time savings per occurrence
80
+
81
+ **Type B — Skill tweak**: An existing skill is close but missing a step or check. Provide:
82
+ - Which skill (`/skill-name`)
83
+ - What specific text to add/change (before/after diff)
84
+ - Why this covers the gap
85
+
86
+ **Type C — ICM memory / eval criteria**: A pattern should be captured as a durable memory or eval rule. Provide:
87
+ - `icm store` command (with topic, content, importance)
88
+ - Or: a yes/no eval question to add to an existing skill
89
+
90
+ ## Step 4 — Present findings (D1)
91
+
92
+ Use AskUserQuestion:
93
+
94
+ ```
95
+ D1 — Performance review: N patterns found, N proposals
96
+ Project/branch/task: 24h session review — git, ICM memories, skill analytics.
97
+ ELI10: I looked at your last 24 hours of work: git commits, ICM memories,
98
+ skill runs, and resolved errors. Here's what I found repeating and what
99
+ I'd do about it. Approve proposals individually or skip any.
100
+ Stakes if we pick wrong: skipping a proposal leaves the pattern unfixed;
101
+ approving a bad proposal adds noise. You can always /skillify or rm a skill later.
102
+ Recommendation: A — review each proposal and approve what resonates.
103
+ Note: options differ in kind, not coverage — no completeness score.
104
+ A) Walk me through each proposal (recommended)
105
+ B) Show summary only, I'll decide what to dig into
106
+ C) Abort — nothing to act on today
107
+ ```
108
+
109
+ If B: print a one-line summary table (proposal number, type, finding, estimated savings). Stop.
110
+
111
+ If C: print "No changes made. Run /review-past-performance again anytime." Stop.
112
+
113
+ If A: proceed to Step 5.
114
+
115
+ ## Step 5 — Proposal gate (one per proposal)
116
+
117
+ For each proposal (D2, D3, D4 ...):
118
+
119
+ Print:
120
+ ```
121
+ --- Proposal N of N ---
122
+ Finding: <one sentence>
123
+ Pattern evidence: <which signals showed this>
124
+ Proposal type: <A/B/C>
125
+ <full proposal detail from Step 3>
126
+ Estimated savings: ~X min/occurrence
127
+ ```
128
+
129
+ Then AskUserQuestion:
130
+
131
+ ```
132
+ D<N> — Apply proposal N: <short title>?
133
+ Project/branch/task: <finding in one sentence>
134
+ ELI10: <plain English: what this proposes, what changes, what you gain>
135
+ Stakes if we pick wrong: <what happens if you apply a bad one, or skip a good one>
136
+ Recommendation: A — apply it — the evidence is clear enough to try it.
137
+ Note: options differ in kind, not coverage — no completeness score.
138
+ A) Apply this proposal (recommended)
139
+ B) Skip this one
140
+ C) Modify before applying (describe what to change)
141
+ ```
142
+
143
+ If C: ask what to change, update the proposal in-memory, re-show, re-ask A/B only.
144
+
145
+ ## Step 6 — Execute approved proposals
146
+
147
+ For each approved proposal:
148
+
149
+ **Type A (new skill):**
150
+ ```bash
151
+ mkdir -p ~/.claude/skills/<name>
152
+ ```
153
+ Write `~/.claude/skills/<name>/SKILL.md` with the skeleton from Step 3.
154
+ Print: "Skill /<name> created at ~/.claude/skills/<name>/SKILL.md — invoke it with /<name>."
155
+
156
+ **Type B (skill tweak):**
157
+ Read the target skill file. Apply the diff. Print the before/after. Do NOT commit.
158
+
159
+ **Type C (ICM memory):**
160
+ ```bash
161
+ icm store -t "<topic>" -c "<content>" -i <importance> -k "<keywords>"
162
+ ```
163
+ Print the stored memory ID.
164
+
165
+ ## Step 7 — Summary
166
+
167
+ After all proposals are processed, print a compact summary:
168
+
169
+ ```
170
+ /review-past-performance complete
171
+ Applied: N proposals
172
+ Skipped: N proposals
173
+
174
+ What changed:
175
+ - [list each applied change with one line]
176
+
177
+ Run again tomorrow: /review-past-performance
178
+ ```
179
+
180
+ Then:
181
+ ```bash
182
+ # Store this review run as an ICM memory so future reviews have continuity
183
+ icm store -t "context-workflow" \
184
+ -c "Performance review $(date +%Y-%m-%d): found [N] patterns, applied [N] proposals. Key findings: [one-line summary]" \
185
+ -i medium \
186
+ -k "performance-review,self-improvement" 2>/dev/null || true
187
+ ```
188
+
189
+ ```bash
190
+ # Log to gstack timeline if available
191
+ ~/.slate/skills/gstack/bin/gstack-timeline-log \
192
+ '{"skill":"review-past-performance","event":"completed","outcome":"success"}' 2>/dev/null || true
193
+ ```
194
+
195
+ ---
196
+
197
+ ## Notes
198
+
199
+ - This skill reads only — no git mutations, no PR actions, no Notion/Linear writes.
200
+ - Type A skills created here are skeletons. Run them once and tune before relying on them.
201
+ - If ICM is unavailable (`ICM_UNAVAILABLE`), fall back to git log + gstack analytics only; note the limitation in findings.
202
+ - If there are fewer than 3 signals available, say so and offer to run again after more sessions.
@@ -0,0 +1,201 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ description: "Self-improvement loop that pulls the last 24h of ICM memories, git history, and skill analytics to detect repeated mistakes, slow workflows, and missing coverage, then proposes 1-3 concrete improvements."
5
+ ---
6
+
7
+
8
+ # /review-past-performance
9
+
10
+ Self-improvement loop. Analyze recent sessions, find durable patterns, propose fixes.
11
+
12
+ ## Step 1 — Gather raw signals (run in parallel)
13
+
14
+ ```bash
15
+ # A: ICM memories from last 24h
16
+ icm recall "mistakes errors repeated workflow" --limit 10 2>/dev/null || echo "ICM_UNAVAILABLE"
17
+ icm recall "completed task feature fix" --limit 10 2>/dev/null || echo "ICM_UNAVAILABLE"
18
+ ```
19
+
20
+ ```bash
21
+ # B: Git activity last 24h across all repos the user works in
22
+ git log --all --since="24 hours ago" --oneline --author="$(git config user.email 2>/dev/null)" 2>/dev/null | head -30 || echo "NO_GIT"
23
+ ```
24
+
25
+ ```bash
26
+ # C: ICM transcripts (last 3 sessions)
27
+ icm transcript search "" --limit 3 2>/dev/null || echo "TRANSCRIPTS_UNAVAILABLE"
28
+ ```
29
+
30
+ ```bash
31
+ # D: Skill usage from gstack analytics (what skills were run, outcomes)
32
+ tail -50 ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null | jq -c 'select(.ts > (now - 86400 | todate))' 2>/dev/null || \
33
+ tail -50 ~/.gstack/analytics/skill-usage.jsonl 2>/dev/null | head -20 || echo "NO_ANALYTICS"
34
+ ```
35
+
36
+ ```bash
37
+ # E: ICM errors-resolved topic (what broke and was fixed)
38
+ icm recall "error" -t "errors-resolved" --limit 5 2>/dev/null || echo "NO_ERROR_MEMORIES"
39
+ ```
40
+
41
+ ```bash
42
+ # F: Recent learnings (gstack)
43
+ _GSTACK_HOME="${GSTACK_HOME:-$HOME/.gstack}"
44
+ eval "$($HOME/.slate/skills/gstack/bin/gstack-slug 2>/dev/null)" 2>/dev/null || true
45
+ _LEARN_FILE="$_GSTACK_HOME/projects/${SLUG:-unknown}/learnings.jsonl"
46
+ [ -f "$_LEARN_FILE" ] && tail -20 "$_LEARN_FILE" || echo "NO_LEARNINGS"
47
+ ```
48
+
49
+ ## Step 2 — Synthesize patterns
50
+
51
+ Read all signals. Classify findings into these categories:
52
+
53
+ **Repeated mistakes** — same error, same fix, same confusion appearing more than once in the signals. E.g., always forgetting to handle null on a specific field, always hitting the same linting error.
54
+
55
+ **Slow workflows** — multi-step sequences that took many tool calls but could be a single skill. E.g., always doing manual `git log` + `grep` + read 3 files before every PR review.
56
+
57
+ **Missing coverage** — areas where work was done but no test was written or no memory was stored.
58
+
59
+ **Underused skills** — skills that would have applied but were not invoked (check skill-usage.jsonl gaps vs. git activity).
60
+
61
+ **Knowledge gaps** — concepts that came up repeatedly as questions or confusion.
62
+
63
+ Score each finding:
64
+ - **Frequency**: how many times it appeared (1 = once, 3 = three or more)
65
+ - **Time cost**: rough estimate per occurrence (minutes)
66
+ - **Fixability**: easy (a new skill/memory fixes it), medium (needs a process change), hard (structural)
67
+
68
+ Pick the top 1-3 findings by `frequency × time_cost × fixability_inverse`.
69
+
70
+ ## Step 3 — Formulate proposals
71
+
72
+ For each finding, produce exactly one proposal. Proposal types:
73
+
74
+ **Type A — New skill**: The repeated sequence can be codified. Provide:
75
+ - Proposed skill name (lowercase, dashes, ≤32 chars)
76
+ - Trigger phrases (3-5)
77
+ - 5-8 line SKILL.md workflow skeleton
78
+ - Estimated time savings per occurrence
79
+
80
+ **Type B — Skill tweak**: An existing skill is close but missing a step or check. Provide:
81
+ - Which skill (`/skill-name`)
82
+ - What specific text to add/change (before/after diff)
83
+ - Why this covers the gap
84
+
85
+ **Type C — ICM memory / eval criteria**: A pattern should be captured as a durable memory or eval rule. Provide:
86
+ - `icm store` command (with topic, content, importance)
87
+ - Or: a yes/no eval question to add to an existing skill
88
+
89
+ ## Step 4 — Present findings (D1)
90
+
91
+ Use AskUserQuestion:
92
+
93
+ ```
94
+ D1 — Performance review: N patterns found, N proposals
95
+ Project/branch/task: 24h session review — git, ICM memories, skill analytics.
96
+ ELI10: I looked at your last 24 hours of work: git commits, ICM memories,
97
+ skill runs, and resolved errors. Here's what I found repeating and what
98
+ I'd do about it. Approve proposals individually or skip any.
99
+ Stakes if we pick wrong: skipping a proposal leaves the pattern unfixed;
100
+ approving a bad proposal adds noise. You can always /skillify or rm a skill later.
101
+ Recommendation: A — review each proposal and approve what resonates.
102
+ Note: options differ in kind, not coverage — no completeness score.
103
+ A) Walk me through each proposal (recommended)
104
+ B) Show summary only, I'll decide what to dig into
105
+ C) Abort — nothing to act on today
106
+ ```
107
+
108
+ If B: print a one-line summary table (proposal number, type, finding, estimated savings). Stop.
109
+
110
+ If C: print "No changes made. Run /review-past-performance again anytime." Stop.
111
+
112
+ If A: proceed to Step 5.
113
+
114
+ ## Step 5 — Proposal gate (one per proposal)
115
+
116
+ For each proposal (D2, D3, D4 ...):
117
+
118
+ Print:
119
+ ```
120
+ --- Proposal N of N ---
121
+ Finding: <one sentence>
122
+ Pattern evidence: <which signals showed this>
123
+ Proposal type: <A/B/C>
124
+ <full proposal detail from Step 3>
125
+ Estimated savings: ~X min/occurrence
126
+ ```
127
+
128
+ Then AskUserQuestion:
129
+
130
+ ```
131
+ D<N> — Apply proposal N: <short title>?
132
+ Project/branch/task: <finding in one sentence>
133
+ ELI10: <plain English: what this proposes, what changes, what you gain>
134
+ Stakes if we pick wrong: <what happens if you apply a bad one, or skip a good one>
135
+ Recommendation: A — apply it — the evidence is clear enough to try it.
136
+ Note: options differ in kind, not coverage — no completeness score.
137
+ A) Apply this proposal (recommended)
138
+ B) Skip this one
139
+ C) Modify before applying (describe what to change)
140
+ ```
141
+
142
+ If C: ask what to change, update the proposal in-memory, re-show, re-ask A/B only.
143
+
144
+ ## Step 6 — Execute approved proposals
145
+
146
+ For each approved proposal:
147
+
148
+ **Type A (new skill):**
149
+ ```bash
150
+ mkdir -p ~/.claude/skills/<name>
151
+ ```
152
+ Write `~/.claude/skills/<name>/SKILL.md` with the skeleton from Step 3.
153
+ Print: "Skill /<name> created at ~/.claude/skills/<name>/SKILL.md — invoke it with /<name>."
154
+
155
+ **Type B (skill tweak):**
156
+ Read the target skill file. Apply the diff. Print the before/after. Do NOT commit.
157
+
158
+ **Type C (ICM memory):**
159
+ ```bash
160
+ icm store -t "<topic>" -c "<content>" -i <importance> -k "<keywords>"
161
+ ```
162
+ Print the stored memory ID.
163
+
164
+ ## Step 7 — Summary
165
+
166
+ After all proposals are processed, print a compact summary:
167
+
168
+ ```
169
+ /review-past-performance complete
170
+ Applied: N proposals
171
+ Skipped: N proposals
172
+
173
+ What changed:
174
+ - [list each applied change with one line]
175
+
176
+ Run again tomorrow: /review-past-performance
177
+ ```
178
+
179
+ Then:
180
+ ```bash
181
+ # Store this review run as an ICM memory so future reviews have continuity
182
+ icm store -t "context-workflow" \
183
+ -c "Performance review $(date +%Y-%m-%d): found [N] patterns, applied [N] proposals. Key findings: [one-line summary]" \
184
+ -i medium \
185
+ -k "performance-review,self-improvement" 2>/dev/null || true
186
+ ```
187
+
188
+ ```bash
189
+ # Log to gstack timeline if available
190
+ ~/.slate/skills/gstack/bin/gstack-timeline-log \
191
+ '{"skill":"review-past-performance","event":"completed","outcome":"success"}' 2>/dev/null || true
192
+ ```
193
+
194
+ ---
195
+
196
+ ## Notes
197
+
198
+ - This skill reads only — no git mutations, no PR actions, no Notion/Linear writes.
199
+ - Type A skills created here are skeletons. Run them once and tune before relying on them.
200
+ - If ICM is unavailable (`ICM_UNAVAILABLE`), fall back to git log + gstack analytics only; note the limitation in findings.
201
+ - If there are fewer than 3 signals available, say so and offer to run again after more sessions.
package/README.md CHANGED
@@ -3,7 +3,7 @@
3
3
  <p><strong>Agent-agnostic skill catalog for Codex, Claude, Cursor, Copilot, Windsurf, Kiro, and other skill-aware tools.</strong></p>
4
4
  <p>
5
5
  <img src="https://img.shields.io/badge/license-MIT-16a34a" alt="MIT license">
6
- <img src="https://img.shields.io/badge/skills-18-2563eb" alt="18 skills">
6
+ <img src="https://img.shields.io/badge/skills-19-2563eb" alt="19 skills">
7
7
  <img src="https://img.shields.io/badge/platforms-Codex%20%7C%20Claude%20%7C%20Cursor%20%7C%20Copilot%20%7C%20Windsurf%20%7C%20Kiro-111827" alt="Codex Claude Cursor Copilot Windsurf Kiro">
8
8
  <img src="https://img.shields.io/badge/status-public%20catalog-16a34a" alt="Public catalog">
9
9
  </p>
@@ -174,7 +174,7 @@ packages/{category}/{skill}/adapters/
174
174
 
175
175
  </details>
176
176
 
177
- ## All 18 Skills
177
+ ## All 19 Skills
178
178
 
179
179
  These packages are the entry points. Each one is a structured workflow with concrete trigger conditions and execution steps. You can reference any skill directly by its `olko:*` lookup name.
180
180
 
@@ -184,18 +184,16 @@ These packages are the entry points. Each one is a structured workflow with conc
184
184
  |-------|-------------|----------|
185
185
  | [docs-index-keeper](packages/software-development/docs-index-keeper/SKILL.md) | Keeps a Markdown docs index in sync through pre-commit, CI, or one-off maintenance flows | A repo has `docs/` and needs `docs/README.md` or another Markdown index updated automatically |
186
186
  | [semantic-release-beta](packages/software-development/semantic-release-beta/SKILL.md) | Sets up `semantic-release-npm-github-publish` with stable `main` releases and beta prereleases | A Node package needs stable npm publishing plus beta prereleases from a `beta` branch |
187
- | [changelog-generator](packages/software-development/changelog-generator/SKILL.md) | Generates user-facing changelogs and release notes from git history | Preparing release notes, app store update text, customer changelogs, or internal release summaries |
188
187
  | [gh-cli](packages/software-development/gh-cli/SKILL.md) | Guides GitHub CLI usage for repos, PRs, Actions, releases, issues, and related GitHub operations | Working with GitHub from the command line and needing reliable `gh` commands |
189
188
  | [git-commit](packages/software-development/git-commit/SKILL.md) | Creates conventional commits with diff-aware staging and message generation | The user asks to commit changes or wants a conventional commit message from the current diff |
190
- | [add-to-my-skills](packages/software-development/add-to-my-skills/SKILL.md) | Copies a skill from another repo into this catalog, then refreshes docs, manifests, commit, and push | Bringing a newly created skill into this repository |
191
189
  | [promptctl](packages/software-development/promptctl/SKILL.md) | Uses `promptctl` for reusable prompt templates, scoring, and workflow automation | A project needs prompt conventions, prompt review, prompt scoring, or reusable prompt workflows |
192
190
  | [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 | The user asks to build a complete app, SaaS, dashboard, or product rather than a prototype |
193
191
  | [cloudflare-block-countries](packages/software-development/cloudflare-block-countries/SKILL.md) | Blocks specific countries via Cloudflare WAF Custom Rules using the API | Geo-blocking traffic, setting up WAF country rules, or blocking regions across single or multiple zones |
194
- | [ai-tools-setup](packages/software-development/ai-tools-setup/SKILL.md) | Installs, repairs, and measures the RTK+ICM+Vox AI development toolkit | Setting up or repairing AI dev tooling hooks, MCP config, or reviewing a weekly token savings digest |
195
192
  | [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 |
196
193
  | [open-source-publisher](packages/software-development/open-source-publisher/SKILL.md) | Prepares an open-source repository for public publishing with branding, CI/CD, and release hygiene | Releasing a private project publicly with proper GitHub Pages, README, and social preview |
197
194
  | [obsidian-pr-sync](packages/software-development/obsidian-pr-sync/SKILL.md) | Fetches open GitHub PRs assigned to you or requesting review, and writes a grouped age-sorted section into today's Obsidian daily note | Syncing GitHub review queue to Obsidian at the start of the day or on demand |
198
195
  | [obsidian-task-rollover](packages/software-development/obsidian-task-rollover/SKILL.md) | Migrates unchecked tasks from today's Obsidian daily note to the next workday under `## Carried over`, marking source tasks as `[>]` | End-of-day bullet-journal task migration, rolling unfinished work to the next workday |
196
+ | [review-past-performance](packages/software-development/review-past-performance/SKILL.md) | Self-improvement loop: pulls 24h of ICM memories, git history, and skill analytics; detects repeated mistakes, slow workflows, and missing coverage; proposes 1-3 concrete fixes | Reviewing a day's coding sessions for patterns, wanting to codify a repeated workflow, or running a daily self-improvement loop |
199
197
 
200
198
  ### Music
201
199
 
@@ -297,10 +295,8 @@ agent-skills/
297
295
  │ ├── software-development/
298
296
  │ │ ├── docs-index-keeper/
299
297
  │ │ ├── semantic-release-beta/
300
- │ │ ├── changelog-generator/
301
298
  │ │ ├── gh-cli/
302
299
  │ │ ├── git-commit/
303
- │ │ ├── add-to-my-skills/
304
300
  │ │ ├── promptctl/
305
301
  │ │ └── product-builder/
306
302
  │ ├── music/
@@ -490,11 +486,6 @@ The following package workflows have been smoke-tested locally before first push
490
486
  - ran `semantic-release --dry-run --no-ci` on `beta`
491
487
  - verified prerelease calculation to `1.0.0-beta.1`
492
488
 
493
- - `add-to-my-skills`
494
- - copied a source skill into `packages/software-development/`
495
- - refreshed generated manifests with `./scripts/build-adapters.sh`
496
- - validated catalog and generated files with `./scripts/validate-catalog.sh`
497
-
498
489
  The semantic-release smoke test was intentionally self-contained and used a local bare git remote plus a valid `file://` repository URL so dry-run behavior could be validated without real npm or GitHub publishing credentials.
499
490
 
500
491
  ## Licensing notes
@@ -46,27 +46,6 @@
46
46
  "kiro"
47
47
  ]
48
48
  },
49
- {
50
- "name": "changelog-generator",
51
- "lookupName": "olko:changelog-generator",
52
- "category": "software-development",
53
- "path": "packages/software-development/changelog-generator",
54
- "description": "Generate user-facing changelogs and release notes from git history.",
55
- "tags": [
56
- "changelog",
57
- "release-notes",
58
- "git",
59
- "docs"
60
- ],
61
- "adapters": [
62
- "codex",
63
- "claude",
64
- "cursor",
65
- "copilot",
66
- "windsurf",
67
- "kiro"
68
- ]
69
- },
70
49
  {
71
50
  "name": "gh-cli",
72
51
  "lookupName": "olko:gh-cli",
@@ -196,20 +175,19 @@
196
175
  ]
197
176
  },
198
177
  {
199
- "name": "ai-tools-setup",
200
- "lookupName": "olko:ai-tools-setup",
178
+ "name": "starter-rules",
179
+ "lookupName": "olko:starter-rules",
201
180
  "category": "software-development",
202
- "path": "packages/software-development/ai-tools-setup",
203
- "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.",
181
+ "path": "packages/software-development/starter-rules",
182
+ "description": "Load and enforce hard rules for every oleg-koval/* starter: 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, no comments, KISS/DRY/SOLID.",
204
183
  "tags": [
205
- "rtk",
206
- "icm",
207
- "vox",
208
- "setup",
209
- "hooks",
210
- "digest",
211
- "ai-tools",
212
- "productivity"
184
+ "starters",
185
+ "rules",
186
+ "architecture",
187
+ "vertical-slice",
188
+ "linting",
189
+ "pre-commit",
190
+ "testing"
213
191
  ],
214
192
  "adapters": [
215
193
  "codex",
@@ -221,41 +199,18 @@
221
199
  ]
222
200
  },
223
201
  {
224
- "name": "add-to-my-skills",
225
- "lookupName": "olko:add-to-my-skills",
202
+ "name": "review-past-performance",
203
+ "lookupName": "olko:review-past-performance",
226
204
  "category": "software-development",
227
- "path": "packages/software-development/add-to-my-skills",
228
- "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change.",
205
+ "path": "packages/software-development/review-past-performance",
206
+ "description": "Self-improvement loop that pulls the last 24h of ICM memories, git history, and skill analytics to detect repeated mistakes, slow workflows, and missing coverage, then proposes 1-3 concrete improvements.",
229
207
  "tags": [
208
+ "self-improvement",
209
+ "performance-review",
210
+ "icm",
230
211
  "skills",
231
- "skillshare",
232
- "catalog",
233
- "git",
234
- "push"
235
- ],
236
- "adapters": [
237
- "codex",
238
- "claude",
239
- "cursor",
240
- "copilot",
241
- "windsurf",
242
- "kiro"
243
- ]
244
- },
245
- {
246
- "name": "starter-rules",
247
- "lookupName": "olko:starter-rules",
248
- "category": "software-development",
249
- "path": "packages/software-development/starter-rules",
250
- "description": "Load and enforce hard rules for every oleg-koval/* starter: 300-line files, E2E tests, pre-commit hooks, Vertical Slice architecture, no comments, KISS/DRY/SOLID.",
251
- "tags": [
252
- "starters",
253
- "rules",
254
- "architecture",
255
- "vertical-slice",
256
- "linting",
257
- "pre-commit",
258
- "testing"
212
+ "workflow",
213
+ "ai-tools"
259
214
  ],
260
215
  "adapters": [
261
216
  "codex",
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "docs-tools",
3
3
  "description": "Skills for documentation maintenance and docs automation.",
4
- "packages": ["docs-index-keeper", "changelog-generator"]
4
+ "packages": ["docs-index-keeper"]
5
5
  }
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "git-tools",
3
3
  "description": "Skills for git workflows, commits, GitHub CLI usage, and related automation.",
4
- "packages": ["gh-cli", "git-commit", "changelog-generator"]
4
+ "packages": ["gh-cli", "git-commit"]
5
5
  }