@olegkoval/agent-skills 1.3.1 → 1.4.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.
@@ -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.3.0",
4
+ "version": "1.3.2",
5
5
  "author": {
6
6
  "name": "Oleg Koval"
7
7
  },
@@ -19,6 +19,7 @@
19
19
  "./packages/music/fill-music-player",
20
20
  "./packages/software-development/product-builder",
21
21
  "./packages/software-development/add-to-my-skills",
22
+ "./packages/software-development/starter-rules",
22
23
  "./packages/software-development/open-source-publisher",
23
24
  "./packages/marketing/viral-launch",
24
25
  "./packages/marketing/search-console-indexing-audit"
@@ -51,6 +51,11 @@
51
51
  "source": "./packages/software-development/add-to-my-skills/adapters/cursor",
52
52
  "description": "Copy a newly created skill into this catalog, refresh manifests, and publish the change."
53
53
  },
54
+ {
55
+ "name": "olko:starter-rules",
56
+ "source": "./packages/software-development/starter-rules/adapters/cursor",
57
+ "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."
58
+ },
54
59
  {
55
60
  "name": "olko:open-source-publisher",
56
61
  "source": "./packages/software-development/open-source-publisher/adapters/cursor",
@@ -197,6 +197,28 @@
197
197
  "copilot"
198
198
  ]
199
199
  },
200
+ {
201
+ "name": "starter-rules",
202
+ "lookupName": "olko:starter-rules",
203
+ "category": "software-development",
204
+ "path": "packages/software-development/starter-rules",
205
+ "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.",
206
+ "tags": [
207
+ "starters",
208
+ "rules",
209
+ "architecture",
210
+ "vertical-slice",
211
+ "linting",
212
+ "pre-commit",
213
+ "testing"
214
+ ],
215
+ "adapters": [
216
+ "codex",
217
+ "claude",
218
+ "cursor",
219
+ "copilot"
220
+ ]
221
+ },
200
222
  {
201
223
  "name": "open-source-publisher",
202
224
  "lookupName": "olko:open-source-publisher",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@olegkoval/agent-skills",
3
- "version": "1.3.1",
3
+ "version": "1.4.0",
4
4
  "private": false,
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -34,24 +34,29 @@ Use this skill to audit whether an OSS repository is ready to publish, then help
34
34
  3. Classify the repository type before recommending changes:
35
35
  - `library`, `CLI`, `web app`, `framework`, `docs site`, or `other`
36
36
  - use the type to decide whether governance, packaging, or presentation work should come first
37
- 4. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
37
+ 4. Identify maintainer identity and public home information when they affect publishing:
38
+ - Ask for the GitHub handle or org name if the repo will have a public owner/maintainer identity, funding links, release notes, or badges
39
+ - Ask for a canonical website/homepage URL if the project needs a homepage, docs site, or public project URL
40
+ - If `homepage`, `author`, or org metadata already exists and looks current, do not ask again
41
+ 5. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
38
42
  - "You already have a terminal-style GitHub Pages site. Do you want to keep it or restyle it?"
39
43
  - "You already have an icon and social card. Do you want a refresh, or should I leave them as-is?"
40
44
  - "You already have release automation. Do you want me to audit only, or also tighten it?"
41
- 5. Ask only for choices needed to fix missing or weak pieces:
45
+ 6. Ask only for choices needed to fix missing or weak pieces:
42
46
  - If GitHub Pages is missing or weak, ask for style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or custom.
43
47
  - If donation wiring is missing, ask whether to enable it: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
44
48
  - If the repo has no clear product essence, ask for a one-sentence positioning statement.
45
- 6. Implement only approved, missing, or weak work in this order:
49
+ 7. Implement only approved, missing, or weak work in this order:
46
50
  - OSS governance and support files
47
51
  - minimal icon
48
52
  - social preview image
49
53
  - README standard
50
54
  - GitHub Pages landing page
55
+ - GitHub Pages analytics setup, if requested
51
56
  - CI/CD and release audit/fixes
52
57
  - donation wiring, if requested
53
- 7. Validate locally and with browser/screenshots when possible.
54
- 8. Commit/push only when the user asks or the current task explicitly requires it.
58
+ 8. Validate locally and with browser/screenshots when possible.
59
+ 9. Commit/push only when the user asks or the current task explicitly requires it.
55
60
 
56
61
  ## Readiness Audit
57
62
 
@@ -61,11 +66,15 @@ Publish-critical checklist:
61
66
 
62
67
  - repository identity: clear project name, description, topic/keywords, author, license
63
68
  - install path: package manager, release assets, source build, or direct download instructions
69
+ - maintainer identity: GitHub handle or org name when public identity is relevant
70
+ - public home: canonical website/homepage URL when the project needs one
71
+ - if either field does not exist, proceed without it and mark it as absent
64
72
  - OSS governance: `LICENSE`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, support policy, issue/PR templates, changelog or release notes path
65
73
  - README standard: centered shields, icon, title, short description, horizontal rule, essential sections
66
- - icon: simple SVG mark, renders at small sizes, committed in a predictable path
67
- - social image: 1200x630 image with matching metadata, committed source when practical
74
+ - icon: simple SVG mark plus rendered PNG, both committed in predictable paths
75
+ - social image: 1200x630 image with matching metadata, with both SVG source and rendered PNG committed when practical
68
76
  - GitHub Pages or docs site: essential install/examples/links/SEO/Open Graph metadata
77
+ - GitHub Pages analytics: optional setup to track visitor patterns and engagement
69
78
  - CI quality gates: formatter, linter/static analysis, tests, build/package check
70
79
  - release automation: tags/releases/artifacts/package update flow, docs-only changes excluded where needed
71
80
  - security posture: license, security notes or policy, OpenSSF Scorecard or equivalent when appropriate
@@ -89,6 +98,8 @@ Missing
89
98
 
90
99
  Questions
91
100
  - You already have a terminal-style GitHub Pages site. Keep it, or restyle it?
101
+ - What is the GitHub handle or org name for public attribution?
102
+ - What is the canonical website or homepage URL, if any?
92
103
  - Donations are not configured. Enable them or leave them off?
93
104
  ```
94
105
 
@@ -102,7 +113,7 @@ Rules:
102
113
 
103
114
  ## Minimal Icon
104
115
 
105
- Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
116
+ Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg` and also render `logo.png` so the icon can be reused in README assets, release artifacts, and platform-specific previews.
106
117
 
107
118
  Icon rules:
108
119
 
@@ -112,6 +123,7 @@ Icon rules:
112
123
  - Use a simple rounded tile only when it improves favicon readability.
113
124
  - Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
114
125
  - Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
126
+ - If the repo has a website or homepage, ensure the icon fits that visual system.
115
127
 
116
128
  Good icon pattern for sync/migration tools:
117
129
 
@@ -150,6 +162,7 @@ Recommended files:
150
162
 
151
163
  - `social-card.svg` as the editable source
152
164
  - `social-card.png` rendered from the SVG when render tooling is available
165
+ - keep both files in the repo when practical so the preview can be updated without redrawing the whole asset
153
166
 
154
167
  Social image rules:
155
168
 
@@ -159,6 +172,7 @@ Social image rules:
159
172
  - Match the icon color system.
160
173
  - Keep all text inside a safe margin of at least 64px.
161
174
  - Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
175
+ - If the repo has a homepage or canonical website, make the social card and metadata point to that URL consistently.
162
176
 
163
177
  Render checks:
164
178
 
@@ -292,6 +306,49 @@ Implementation defaults:
292
306
  - Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
293
307
  - Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
294
308
 
309
+ ## GitHub Pages Analytics
310
+
311
+ Add basic analytics to track site visitor patterns and user behavior when the project has a GitHub Pages site.
312
+
313
+ Setup options:
314
+
315
+ - **Google Analytics** (free, detailed): Add UA or GA4 tracking ID to site `<head>`
316
+ - **Plausible** (simple, privacy-first, paid): Lightweight script alternative
317
+ - **Simple counter** (basic): Visitor count badge using Shields.io or statically-generated endpoint
318
+
319
+ Minimal Google Analytics setup for static sites:
320
+
321
+ ```html
322
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR_ID"></script>
323
+ <script>
324
+ window.dataLayer = window.dataLayer || [];
325
+ function gtag(){dataLayer.push(arguments);}
326
+ gtag('js', new Date());
327
+ gtag('config', 'G-YOUR_ID');
328
+ </script>
329
+ ```
330
+
331
+ Track these essential events:
332
+
333
+ - **pageview** (automatic): Site visitors and page sections
334
+ - **download_release**: Clicks on install/download links (track each platform/format)
335
+ - **view_docs**: Navigation to documentation pages
336
+ - **github_click**: Click through to GitHub repo
337
+ - **copy_command**: Code snippet copies in examples
338
+
339
+ Optional custom events for OSS projects:
340
+
341
+ - **search_docs**: If docs site has search
342
+ - **view_example**: Specific example/use-case sections viewed
343
+ - **support_click**: Link clicks to issues, discussions, or support channels
344
+
345
+ Rules:
346
+
347
+ - Add analytics after publishing the site; do not gate site launch on analytics.
348
+ - If the user prefers privacy-first or no analytics, skip this step.
349
+ - Store analytics credentials as GitHub Pages environment secret or site config, never in git.
350
+ - Review monthly to catch unusual patterns or broken tracking links.
351
+
295
352
  ## CI/CD And Release Audit
296
353
 
297
354
  Check whether the repository has:
@@ -36,24 +36,29 @@ Use this skill to audit whether an OSS repository is ready to publish, then help
36
36
  3. Classify the repository type before recommending changes:
37
37
  - `library`, `CLI`, `web app`, `framework`, `docs site`, or `other`
38
38
  - use the type to decide whether governance, packaging, or presentation work should come first
39
- 4. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
39
+ 4. Identify maintainer identity and public home information when they affect publishing:
40
+ - Ask for the GitHub handle or org name if the repo will have a public owner/maintainer identity, funding links, release notes, or badges
41
+ - Ask for a canonical website/homepage URL if the project needs a homepage, docs site, or public project URL
42
+ - If `homepage`, `author`, or org metadata already exists and looks current, do not ask again
43
+ 5. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
40
44
  - "You already have a terminal-style GitHub Pages site. Do you want to keep it or restyle it?"
41
45
  - "You already have an icon and social card. Do you want a refresh, or should I leave them as-is?"
42
46
  - "You already have release automation. Do you want me to audit only, or also tighten it?"
43
- 5. Ask only for choices needed to fix missing or weak pieces:
47
+ 6. Ask only for choices needed to fix missing or weak pieces:
44
48
  - If GitHub Pages is missing or weak, ask for style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or custom.
45
49
  - If donation wiring is missing, ask whether to enable it: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
46
50
  - If the repo has no clear product essence, ask for a one-sentence positioning statement.
47
- 6. Implement only approved, missing, or weak work in this order:
51
+ 7. Implement only approved, missing, or weak work in this order:
48
52
  - OSS governance and support files
49
53
  - minimal icon
50
54
  - social preview image
51
55
  - README standard
52
56
  - GitHub Pages landing page
57
+ - GitHub Pages analytics setup, if requested
53
58
  - CI/CD and release audit/fixes
54
59
  - donation wiring, if requested
55
- 7. Validate locally and with browser/screenshots when possible.
56
- 8. Commit/push only when the user asks or the current task explicitly requires it.
60
+ 8. Validate locally and with browser/screenshots when possible.
61
+ 9. Commit/push only when the user asks or the current task explicitly requires it.
57
62
 
58
63
  ## Readiness Audit
59
64
 
@@ -63,11 +68,15 @@ Publish-critical checklist:
63
68
 
64
69
  - repository identity: clear project name, description, topic/keywords, author, license
65
70
  - install path: package manager, release assets, source build, or direct download instructions
71
+ - maintainer identity: GitHub handle or org name when public identity is relevant
72
+ - public home: canonical website/homepage URL when the project needs one
73
+ - if either field does not exist, proceed without it and mark it as absent
66
74
  - OSS governance: `LICENSE`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, support policy, issue/PR templates, changelog or release notes path
67
75
  - README standard: centered shields, icon, title, short description, horizontal rule, essential sections
68
- - icon: simple SVG mark, renders at small sizes, committed in a predictable path
69
- - social image: 1200x630 image with matching metadata, committed source when practical
76
+ - icon: simple SVG mark plus rendered PNG, both committed in predictable paths
77
+ - social image: 1200x630 image with matching metadata, with both SVG source and rendered PNG committed when practical
70
78
  - GitHub Pages or docs site: essential install/examples/links/SEO/Open Graph metadata
79
+ - GitHub Pages analytics: optional setup to track visitor patterns and engagement
71
80
  - CI quality gates: formatter, linter/static analysis, tests, build/package check
72
81
  - release automation: tags/releases/artifacts/package update flow, docs-only changes excluded where needed
73
82
  - security posture: license, security notes or policy, OpenSSF Scorecard or equivalent when appropriate
@@ -91,6 +100,8 @@ Missing
91
100
 
92
101
  Questions
93
102
  - You already have a terminal-style GitHub Pages site. Keep it, or restyle it?
103
+ - What is the GitHub handle or org name for public attribution?
104
+ - What is the canonical website or homepage URL, if any?
94
105
  - Donations are not configured. Enable them or leave them off?
95
106
  ```
96
107
 
@@ -104,7 +115,7 @@ Rules:
104
115
 
105
116
  ## Minimal Icon
106
117
 
107
- Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
118
+ Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg` and also render `logo.png` so the icon can be reused in README assets, release artifacts, and platform-specific previews.
108
119
 
109
120
  Icon rules:
110
121
 
@@ -114,6 +125,7 @@ Icon rules:
114
125
  - Use a simple rounded tile only when it improves favicon readability.
115
126
  - Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
116
127
  - Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
128
+ - If the repo has a website or homepage, ensure the icon fits that visual system.
117
129
 
118
130
  Good icon pattern for sync/migration tools:
119
131
 
@@ -152,6 +164,7 @@ Recommended files:
152
164
 
153
165
  - `social-card.svg` as the editable source
154
166
  - `social-card.png` rendered from the SVG when render tooling is available
167
+ - keep both files in the repo when practical so the preview can be updated without redrawing the whole asset
155
168
 
156
169
  Social image rules:
157
170
 
@@ -161,6 +174,7 @@ Social image rules:
161
174
  - Match the icon color system.
162
175
  - Keep all text inside a safe margin of at least 64px.
163
176
  - Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
177
+ - If the repo has a homepage or canonical website, make the social card and metadata point to that URL consistently.
164
178
 
165
179
  Render checks:
166
180
 
@@ -294,6 +308,49 @@ Implementation defaults:
294
308
  - Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
295
309
  - Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
296
310
 
311
+ ## GitHub Pages Analytics
312
+
313
+ Add basic analytics to track site visitor patterns and user behavior when the project has a GitHub Pages site.
314
+
315
+ Setup options:
316
+
317
+ - **Google Analytics** (free, detailed): Add UA or GA4 tracking ID to site `<head>`
318
+ - **Plausible** (simple, privacy-first, paid): Lightweight script alternative
319
+ - **Simple counter** (basic): Visitor count badge using Shields.io or statically-generated endpoint
320
+
321
+ Minimal Google Analytics setup for static sites:
322
+
323
+ ```html
324
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR_ID"></script>
325
+ <script>
326
+ window.dataLayer = window.dataLayer || [];
327
+ function gtag(){dataLayer.push(arguments);}
328
+ gtag('js', new Date());
329
+ gtag('config', 'G-YOUR_ID');
330
+ </script>
331
+ ```
332
+
333
+ Track these essential events:
334
+
335
+ - **pageview** (automatic): Site visitors and page sections
336
+ - **download_release**: Clicks on install/download links (track each platform/format)
337
+ - **view_docs**: Navigation to documentation pages
338
+ - **github_click**: Click through to GitHub repo
339
+ - **copy_command**: Code snippet copies in examples
340
+
341
+ Optional custom events for OSS projects:
342
+
343
+ - **search_docs**: If docs site has search
344
+ - **view_example**: Specific example/use-case sections viewed
345
+ - **support_click**: Link clicks to issues, discussions, or support channels
346
+
347
+ Rules:
348
+
349
+ - Add analytics after publishing the site; do not gate site launch on analytics.
350
+ - If the user prefers privacy-first or no analytics, skip this step.
351
+ - Store analytics credentials as GitHub Pages environment secret or site config, never in git.
352
+ - Review monthly to catch unusual patterns or broken tracking links.
353
+
297
354
  ## CI/CD And Release Audit
298
355
 
299
356
  Check whether the repository has:
@@ -36,24 +36,29 @@ Use this skill to audit whether an OSS repository is ready to publish, then help
36
36
  3. Classify the repository type before recommending changes:
37
37
  - `library`, `CLI`, `web app`, `framework`, `docs site`, or `other`
38
38
  - use the type to decide whether governance, packaging, or presentation work should come first
39
- 4. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
39
+ 4. Identify maintainer identity and public home information when they affect publishing:
40
+ - Ask for the GitHub handle or org name if the repo will have a public owner/maintainer identity, funding links, release notes, or badges
41
+ - Ask for a canonical website/homepage URL if the project needs a homepage, docs site, or public project URL
42
+ - If `homepage`, `author`, or org metadata already exists and looks current, do not ask again
43
+ 5. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
40
44
  - "You already have a terminal-style GitHub Pages site. Do you want to keep it or restyle it?"
41
45
  - "You already have an icon and social card. Do you want a refresh, or should I leave them as-is?"
42
46
  - "You already have release automation. Do you want me to audit only, or also tighten it?"
43
- 5. Ask only for choices needed to fix missing or weak pieces:
47
+ 6. Ask only for choices needed to fix missing or weak pieces:
44
48
  - If GitHub Pages is missing or weak, ask for style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or custom.
45
49
  - If donation wiring is missing, ask whether to enable it: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
46
50
  - If the repo has no clear product essence, ask for a one-sentence positioning statement.
47
- 6. Implement only approved, missing, or weak work in this order:
51
+ 7. Implement only approved, missing, or weak work in this order:
48
52
  - OSS governance and support files
49
53
  - minimal icon
50
54
  - social preview image
51
55
  - README standard
52
56
  - GitHub Pages landing page
57
+ - GitHub Pages analytics setup, if requested
53
58
  - CI/CD and release audit/fixes
54
59
  - donation wiring, if requested
55
- 7. Validate locally and with browser/screenshots when possible.
56
- 8. Commit/push only when the user asks or the current task explicitly requires it.
60
+ 8. Validate locally and with browser/screenshots when possible.
61
+ 9. Commit/push only when the user asks or the current task explicitly requires it.
57
62
 
58
63
  ## Readiness Audit
59
64
 
@@ -63,11 +68,15 @@ Publish-critical checklist:
63
68
 
64
69
  - repository identity: clear project name, description, topic/keywords, author, license
65
70
  - install path: package manager, release assets, source build, or direct download instructions
71
+ - maintainer identity: GitHub handle or org name when public identity is relevant
72
+ - public home: canonical website/homepage URL when the project needs one
73
+ - if either field does not exist, proceed without it and mark it as absent
66
74
  - OSS governance: `LICENSE`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, support policy, issue/PR templates, changelog or release notes path
67
75
  - README standard: centered shields, icon, title, short description, horizontal rule, essential sections
68
- - icon: simple SVG mark, renders at small sizes, committed in a predictable path
69
- - social image: 1200x630 image with matching metadata, committed source when practical
76
+ - icon: simple SVG mark plus rendered PNG, both committed in predictable paths
77
+ - social image: 1200x630 image with matching metadata, with both SVG source and rendered PNG committed when practical
70
78
  - GitHub Pages or docs site: essential install/examples/links/SEO/Open Graph metadata
79
+ - GitHub Pages analytics: optional setup to track visitor patterns and engagement
71
80
  - CI quality gates: formatter, linter/static analysis, tests, build/package check
72
81
  - release automation: tags/releases/artifacts/package update flow, docs-only changes excluded where needed
73
82
  - security posture: license, security notes or policy, OpenSSF Scorecard or equivalent when appropriate
@@ -91,6 +100,8 @@ Missing
91
100
 
92
101
  Questions
93
102
  - You already have a terminal-style GitHub Pages site. Keep it, or restyle it?
103
+ - What is the GitHub handle or org name for public attribution?
104
+ - What is the canonical website or homepage URL, if any?
94
105
  - Donations are not configured. Enable them or leave them off?
95
106
  ```
96
107
 
@@ -104,7 +115,7 @@ Rules:
104
115
 
105
116
  ## Minimal Icon
106
117
 
107
- Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
118
+ Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg` and also render `logo.png` so the icon can be reused in README assets, release artifacts, and platform-specific previews.
108
119
 
109
120
  Icon rules:
110
121
 
@@ -114,6 +125,7 @@ Icon rules:
114
125
  - Use a simple rounded tile only when it improves favicon readability.
115
126
  - Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
116
127
  - Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
128
+ - If the repo has a website or homepage, ensure the icon fits that visual system.
117
129
 
118
130
  Good icon pattern for sync/migration tools:
119
131
 
@@ -152,6 +164,7 @@ Recommended files:
152
164
 
153
165
  - `social-card.svg` as the editable source
154
166
  - `social-card.png` rendered from the SVG when render tooling is available
167
+ - keep both files in the repo when practical so the preview can be updated without redrawing the whole asset
155
168
 
156
169
  Social image rules:
157
170
 
@@ -161,6 +174,7 @@ Social image rules:
161
174
  - Match the icon color system.
162
175
  - Keep all text inside a safe margin of at least 64px.
163
176
  - Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
177
+ - If the repo has a homepage or canonical website, make the social card and metadata point to that URL consistently.
164
178
 
165
179
  Render checks:
166
180
 
@@ -294,6 +308,49 @@ Implementation defaults:
294
308
  - Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
295
309
  - Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
296
310
 
311
+ ## GitHub Pages Analytics
312
+
313
+ Add basic analytics to track site visitor patterns and user behavior when the project has a GitHub Pages site.
314
+
315
+ Setup options:
316
+
317
+ - **Google Analytics** (free, detailed): Add UA or GA4 tracking ID to site `<head>`
318
+ - **Plausible** (simple, privacy-first, paid): Lightweight script alternative
319
+ - **Simple counter** (basic): Visitor count badge using Shields.io or statically-generated endpoint
320
+
321
+ Minimal Google Analytics setup for static sites:
322
+
323
+ ```html
324
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR_ID"></script>
325
+ <script>
326
+ window.dataLayer = window.dataLayer || [];
327
+ function gtag(){dataLayer.push(arguments);}
328
+ gtag('js', new Date());
329
+ gtag('config', 'G-YOUR_ID');
330
+ </script>
331
+ ```
332
+
333
+ Track these essential events:
334
+
335
+ - **pageview** (automatic): Site visitors and page sections
336
+ - **download_release**: Clicks on install/download links (track each platform/format)
337
+ - **view_docs**: Navigation to documentation pages
338
+ - **github_click**: Click through to GitHub repo
339
+ - **copy_command**: Code snippet copies in examples
340
+
341
+ Optional custom events for OSS projects:
342
+
343
+ - **search_docs**: If docs site has search
344
+ - **view_example**: Specific example/use-case sections viewed
345
+ - **support_click**: Link clicks to issues, discussions, or support channels
346
+
347
+ Rules:
348
+
349
+ - Add analytics after publishing the site; do not gate site launch on analytics.
350
+ - If the user prefers privacy-first or no analytics, skip this step.
351
+ - Store analytics credentials as GitHub Pages environment secret or site config, never in git.
352
+ - Review monthly to catch unusual patterns or broken tracking links.
353
+
297
354
  ## CI/CD And Release Audit
298
355
 
299
356
  Check whether the repository has:
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: starter-rules
3
+ description: Load and enforce the hard rules every oleg-koval/* starter must obey. Use when starting or auditing work in saas-init, ts-npm-starter, go-starter, py-starter, or any future oleg-koval template repo. Covers functional style, 300-line file cap, E2E > unit tests, pre-commit hooks, no-comment policy, KISS/DRY/SOLID, and Vertical Slice as default architecture for SaaS/app starters.
4
+ license: MIT
5
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
6
+ metadata:
7
+ author: Oleg Koval
8
+ tags:
9
+ - starters
10
+ - rules
11
+ - architecture
12
+ - vertical-slice
13
+ - linting
14
+ - pre-commit
15
+ ---
16
+
17
+ # Starter Rules
18
+
19
+ ## Overview
20
+
21
+ Load the canonical hard rules for every `oleg-koval/*` starter repo and verify the current repo complies with them. Produces a compliance report and a list of gaps to fix.
22
+
23
+ ## When to Use
24
+
25
+ - Starting a new coding session in any `oleg-koval/*` template repo
26
+ - Auditing an existing starter for rule compliance before a release or PR merge
27
+ - Onboarding a new contributor (human or AI) to a starter
28
+ - After a large refactor, to verify rules have not been silently violated
29
+
30
+ Do not use for repos outside the `oleg-koval` namespace unless they explicitly reference `RULES.md`.
31
+
32
+ ## Workflow
33
+
34
+ 1. **Load the rules** — read `RULES.md` from the repo root. If absent, fetch it from `https://github.com/oleg-koval/starters/blob/main/RULES.md` and note that the starter is missing a local copy.
35
+
36
+ 2. **Apply §2 hard rules** — for the current task or PR diff, verify:
37
+ - No file exceeds 300 lines (`find . -name '*.ts' -o -name '*.py' -o -name '*.go' | xargs wc -l | awk '$1 > 300 && $2 != "total"'`)
38
+ - No functions produce side effects outside of boundary layers
39
+ - New code has no WHAT-comments; WHY-comments are one line max
40
+ - Tests are E2E-first; unit tests only for pure logic with non-trivial branching
41
+
42
+ 3. **Verify hooks and lint** — check that pre-commit hooks are installed and configured:
43
+ - TypeScript: `cat .eslintrc* | grep max-lines` and `cat package.json | grep -A5 '"lint-staged"\|"husky"\|"lefthook"'`
44
+ - Python: `cat .pre-commit-config.yaml` and check for `ruff` + format hooks
45
+ - Go: `cat .golangci.yml` or `.pre-commit-config.yaml` and check for `golangci-lint` + `gofmt`
46
+
47
+ 4. **Check architecture** — for app/SaaS starters: confirm feature code is organized as vertical slices (feature directory contains handler + DTO + service + tests together). For library starters: skip.
48
+
49
+ 5. **Report gaps** — list any violations found in steps 2–4. For each gap:
50
+ - Name the rule (e.g., "§2.2 file length")
51
+ - Name the file and line count or violation
52
+ - Propose the minimal fix
53
+
54
+ 6. **Fix on request** — if the user asks to fix the gaps, apply them one at a time, smallest change first. Do not refactor beyond what the rule requires.
55
+
56
+ ## Reference
57
+
58
+ Full rule details: [`RULES.md`](./RULES.md)
59
+
60
+ Architecture options and future starters: `RULES.md §3`
61
+
62
+ Unix principles: `RULES.md §4`
63
+
64
+ ## Verification
65
+
66
+ - [ ] `RULES.md` was read from the repo root (or fetched and absence noted)
67
+ - [ ] File length check ran with zero violations, or violations were listed
68
+ - [ ] Pre-commit hooks verified as installed and configured
69
+ - [ ] Compliance report produced listing passed checks and gaps
70
+ - [ ] Any fixes applied do not exceed the scope of the violated rule
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "olko-starter-rules",
3
+ "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.",
4
+ "skills": "./skills"
5
+ }
@@ -0,0 +1,72 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ name: starter-rules
5
+ description: Load and enforce the hard rules every oleg-koval/* starter must obey. Use when starting or auditing work in saas-init, ts-npm-starter, go-starter, py-starter, or any future oleg-koval template repo. Covers functional style, 300-line file cap, E2E > unit tests, pre-commit hooks, no-comment policy, KISS/DRY/SOLID, and Vertical Slice as default architecture for SaaS/app starters.
6
+ license: MIT
7
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
8
+ metadata:
9
+ author: Oleg Koval
10
+ tags:
11
+ - starters
12
+ - rules
13
+ - architecture
14
+ - vertical-slice
15
+ - linting
16
+ - pre-commit
17
+ ---
18
+
19
+ # Starter Rules
20
+
21
+ ## Overview
22
+
23
+ Load the canonical hard rules for every `oleg-koval/*` starter repo and verify the current repo complies with them. Produces a compliance report and a list of gaps to fix.
24
+
25
+ ## When to Use
26
+
27
+ - Starting a new coding session in any `oleg-koval/*` template repo
28
+ - Auditing an existing starter for rule compliance before a release or PR merge
29
+ - Onboarding a new contributor (human or AI) to a starter
30
+ - After a large refactor, to verify rules have not been silently violated
31
+
32
+ Do not use for repos outside the `oleg-koval` namespace unless they explicitly reference `RULES.md`.
33
+
34
+ ## Workflow
35
+
36
+ 1. **Load the rules** — read `RULES.md` from the repo root. If absent, fetch it from `https://github.com/oleg-koval/starters/blob/main/RULES.md` and note that the starter is missing a local copy.
37
+
38
+ 2. **Apply §2 hard rules** — for the current task or PR diff, verify:
39
+ - No file exceeds 300 lines (`find . -name '*.ts' -o -name '*.py' -o -name '*.go' | xargs wc -l | awk '$1 > 300 && $2 != "total"'`)
40
+ - No functions produce side effects outside of boundary layers
41
+ - New code has no WHAT-comments; WHY-comments are one line max
42
+ - Tests are E2E-first; unit tests only for pure logic with non-trivial branching
43
+
44
+ 3. **Verify hooks and lint** — check that pre-commit hooks are installed and configured:
45
+ - TypeScript: `cat .eslintrc* | grep max-lines` and `cat package.json | grep -A5 '"lint-staged"\|"husky"\|"lefthook"'`
46
+ - Python: `cat .pre-commit-config.yaml` and check for `ruff` + format hooks
47
+ - Go: `cat .golangci.yml` or `.pre-commit-config.yaml` and check for `golangci-lint` + `gofmt`
48
+
49
+ 4. **Check architecture** — for app/SaaS starters: confirm feature code is organized as vertical slices (feature directory contains handler + DTO + service + tests together). For library starters: skip.
50
+
51
+ 5. **Report gaps** — list any violations found in steps 2–4. For each gap:
52
+ - Name the rule (e.g., "§2.2 file length")
53
+ - Name the file and line count or violation
54
+ - Propose the minimal fix
55
+
56
+ 6. **Fix on request** — if the user asks to fix the gaps, apply them one at a time, smallest change first. Do not refactor beyond what the rule requires.
57
+
58
+ ## Reference
59
+
60
+ Full rule details: [`RULES.md`](./RULES.md)
61
+
62
+ Architecture options and future starters: `RULES.md §3`
63
+
64
+ Unix principles: `RULES.md §4`
65
+
66
+ ## Verification
67
+
68
+ - [ ] `RULES.md` was read from the repo root (or fetched and absence noted)
69
+ - [ ] File length check ran with zero violations, or violations were listed
70
+ - [ ] Pre-commit hooks verified as installed and configured
71
+ - [ ] Compliance report produced listing passed checks and gaps
72
+ - [ ] Any fixes applied do not exceed the scope of the violated rule
@@ -0,0 +1,16 @@
1
+ # Codex Adapter for starter-rules
2
+
3
+ This is a Codex-specific adapter for the `olko:starter-rules` skill.
4
+ The canonical skill definition is in `../../../SKILL.md`.
5
+
6
+ ## Usage
7
+
8
+ Invoke in a Codex session:
9
+
10
+ ```
11
+ Use the olko:starter-rules skill to load and enforce hard rules in this starter repo.
12
+ ```
13
+
14
+ ## Workflow
15
+
16
+ See `../../../SKILL.md` for the full workflow.
@@ -0,0 +1,5 @@
1
+ {
2
+ "name": "starter-rules",
3
+ "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.",
4
+ "rules": ["packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md"]
5
+ }
@@ -0,0 +1,72 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ name: starter-rules
5
+ description: Load and enforce the hard rules every oleg-koval/* starter must obey. Use when starting or auditing work in saas-init, ts-npm-starter, go-starter, py-starter, or any future oleg-koval template repo. Covers functional style, 300-line file cap, E2E > unit tests, pre-commit hooks, no-comment policy, KISS/DRY/SOLID, and Vertical Slice as default architecture for SaaS/app starters.
6
+ license: MIT
7
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools.
8
+ metadata:
9
+ author: Oleg Koval
10
+ tags:
11
+ - starters
12
+ - rules
13
+ - architecture
14
+ - vertical-slice
15
+ - linting
16
+ - pre-commit
17
+ ---
18
+
19
+ # Starter Rules
20
+
21
+ ## Overview
22
+
23
+ Load the canonical hard rules for every `oleg-koval/*` starter repo and verify the current repo complies with them. Produces a compliance report and a list of gaps to fix.
24
+
25
+ ## When to Use
26
+
27
+ - Starting a new coding session in any `oleg-koval/*` template repo
28
+ - Auditing an existing starter for rule compliance before a release or PR merge
29
+ - Onboarding a new contributor (human or AI) to a starter
30
+ - After a large refactor, to verify rules have not been silently violated
31
+
32
+ Do not use for repos outside the `oleg-koval` namespace unless they explicitly reference `RULES.md`.
33
+
34
+ ## Workflow
35
+
36
+ 1. **Load the rules** — read `RULES.md` from the repo root. If absent, fetch it from `https://github.com/oleg-koval/starters/blob/main/RULES.md` and note that the starter is missing a local copy.
37
+
38
+ 2. **Apply §2 hard rules** — for the current task or PR diff, verify:
39
+ - No file exceeds 300 lines (`find . -name '*.ts' -o -name '*.py' -o -name '*.go' | xargs wc -l | awk '$1 > 300 && $2 != "total"'`)
40
+ - No functions produce side effects outside of boundary layers
41
+ - New code has no WHAT-comments; WHY-comments are one line max
42
+ - Tests are E2E-first; unit tests only for pure logic with non-trivial branching
43
+
44
+ 3. **Verify hooks and lint** — check that pre-commit hooks are installed and configured:
45
+ - TypeScript: `cat .eslintrc* | grep max-lines` and `cat package.json | grep -A5 '"lint-staged"\|"husky"\|"lefthook"'`
46
+ - Python: `cat .pre-commit-config.yaml` and check for `ruff` + format hooks
47
+ - Go: `cat .golangci.yml` or `.pre-commit-config.yaml` and check for `golangci-lint` + `gofmt`
48
+
49
+ 4. **Check architecture** — for app/SaaS starters: confirm feature code is organized as vertical slices (feature directory contains handler + DTO + service + tests together). For library starters: skip.
50
+
51
+ 5. **Report gaps** — list any violations found in steps 2–4. For each gap:
52
+ - Name the rule (e.g., "§2.2 file length")
53
+ - Name the file and line count or violation
54
+ - Propose the minimal fix
55
+
56
+ 6. **Fix on request** — if the user asks to fix the gaps, apply them one at a time, smallest change first. Do not refactor beyond what the rule requires.
57
+
58
+ ## Reference
59
+
60
+ Full rule details: [`RULES.md`](./RULES.md)
61
+
62
+ Architecture options and future starters: `RULES.md §3`
63
+
64
+ Unix principles: `RULES.md §4`
65
+
66
+ ## Verification
67
+
68
+ - [ ] `RULES.md` was read from the repo root (or fetched and absence noted)
69
+ - [ ] File length check ran with zero violations, or violations were listed
70
+ - [ ] Pre-commit hooks verified as installed and configured
71
+ - [ ] Compliance report produced listing passed checks and gaps
72
+ - [ ] Any fixes applied do not exceed the scope of the violated rule