@olegkoval/agent-skills 1.6.0 → 1.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (121) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.kiro/steering/add-to-my-skills.md +78 -0
  3. package/.kiro/steering/ai-tools-setup.md +263 -0
  4. package/.kiro/steering/changelog-generator.md +106 -0
  5. package/.kiro/steering/cloudflare-block-countries.md +167 -0
  6. package/.kiro/steering/docs-index-keeper.md +53 -0
  7. package/.kiro/steering/fill-music-player.md +101 -0
  8. package/.kiro/steering/gallery.md +228 -0
  9. package/.kiro/steering/gh-cli.md +2190 -0
  10. package/.kiro/steering/git-commit.md +125 -0
  11. package/.kiro/steering/open-source-publisher.md +427 -0
  12. package/.kiro/steering/product-builder.md +213 -0
  13. package/.kiro/steering/promptctl.md +81 -0
  14. package/.kiro/steering/search-console-indexing-audit.md +57 -0
  15. package/.kiro/steering/semantic-release-beta.md +48 -0
  16. package/.kiro/steering/starter-rules.md +62 -0
  17. package/.kiro/steering/viral-launch.md +92 -0
  18. package/.windsurf/rules/add-to-my-skills.md +77 -0
  19. package/.windsurf/rules/ai-tools-setup.md +262 -0
  20. package/.windsurf/rules/changelog-generator.md +105 -0
  21. package/.windsurf/rules/cloudflare-block-countries.md +166 -0
  22. package/.windsurf/rules/docs-index-keeper.md +52 -0
  23. package/.windsurf/rules/fill-music-player.md +100 -0
  24. package/.windsurf/rules/gallery.md +227 -0
  25. package/.windsurf/rules/gh-cli.md +2189 -0
  26. package/.windsurf/rules/git-commit.md +124 -0
  27. package/.windsurf/rules/open-source-publisher.md +426 -0
  28. package/.windsurf/rules/product-builder.md +212 -0
  29. package/.windsurf/rules/promptctl.md +80 -0
  30. package/.windsurf/rules/search-console-indexing-audit.md +56 -0
  31. package/.windsurf/rules/semantic-release-beta.md +47 -0
  32. package/.windsurf/rules/starter-rules.md +61 -0
  33. package/.windsurf/rules/viral-launch.md +91 -0
  34. package/README.md +67 -14
  35. package/catalog/skills.json +48 -16
  36. package/docs/skill-anatomy.md +10 -6
  37. package/package.json +3 -1
  38. package/packages/marketing/search-console-indexing-audit/SKILL.md +3 -0
  39. package/packages/marketing/search-console-indexing-audit/adapters/claude/skills/search-console-indexing-audit/SKILL.md +3 -0
  40. package/packages/marketing/search-console-indexing-audit/adapters/cursor/plugin.json +1 -1
  41. package/packages/marketing/search-console-indexing-audit/adapters/cursor/skills/search-console-indexing-audit/SKILL.md +3 -0
  42. package/packages/marketing/search-console-indexing-audit/adapters/kiro/steering/search-console-indexing-audit.md +57 -0
  43. package/packages/marketing/search-console-indexing-audit/adapters/windsurf/rules/search-console-indexing-audit.md +56 -0
  44. package/packages/marketing/viral-launch/SKILL.md +3 -1
  45. package/packages/marketing/viral-launch/adapters/claude/skills/viral-launch/SKILL.md +3 -1
  46. package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +3 -1
  47. package/packages/marketing/viral-launch/adapters/kiro/steering/viral-launch.md +92 -0
  48. package/packages/marketing/viral-launch/adapters/windsurf/rules/viral-launch.md +91 -0
  49. package/packages/music/fill-music-player/SKILL.md +2 -1
  50. package/packages/music/fill-music-player/adapters/claude/skills/fill-music-player/SKILL.md +2 -1
  51. package/packages/music/fill-music-player/adapters/cursor/plugin.json +1 -1
  52. package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +2 -1
  53. package/packages/music/fill-music-player/adapters/kiro/steering/fill-music-player.md +101 -0
  54. package/packages/music/fill-music-player/adapters/windsurf/rules/fill-music-player.md +100 -0
  55. package/packages/photography/gallery/SKILL.md +3 -1
  56. package/packages/photography/gallery/adapters/claude/skills/gallery/SKILL.md +3 -1
  57. package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +3 -1
  58. package/packages/photography/gallery/adapters/kiro/steering/gallery.md +228 -0
  59. package/packages/photography/gallery/adapters/windsurf/rules/gallery.md +227 -0
  60. package/packages/software-development/add-to-my-skills/SKILL.md +2 -1
  61. package/packages/software-development/add-to-my-skills/adapters/claude/skills/add-to-my-skills/SKILL.md +2 -1
  62. package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +2 -1
  63. package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +78 -0
  64. package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +77 -0
  65. package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +263 -0
  66. package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +262 -0
  67. package/packages/software-development/changelog-generator/SKILL.md +3 -1
  68. package/packages/software-development/changelog-generator/adapters/claude/skills/changelog-generator/SKILL.md +3 -1
  69. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +3 -1
  70. package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +106 -0
  71. package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +105 -0
  72. package/packages/software-development/cloudflare-block-countries/SKILL.md +1 -1
  73. package/packages/software-development/cloudflare-block-countries/adapters/claude/skills/cloudflare-block-countries/SKILL.md +1 -1
  74. package/packages/software-development/cloudflare-block-countries/adapters/cursor/skills/cloudflare-block-countries/SKILL.md +1 -1
  75. package/packages/software-development/cloudflare-block-countries/adapters/kiro/steering/cloudflare-block-countries.md +167 -0
  76. package/packages/software-development/cloudflare-block-countries/adapters/windsurf/rules/cloudflare-block-countries.md +166 -0
  77. package/packages/software-development/docs-index-keeper/SKILL.md +2 -1
  78. package/packages/software-development/docs-index-keeper/adapters/claude/skills/docs-index-keeper/SKILL.md +2 -1
  79. package/packages/software-development/docs-index-keeper/adapters/cursor/plugin.json +1 -1
  80. package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +2 -1
  81. package/packages/software-development/docs-index-keeper/adapters/kiro/steering/docs-index-keeper.md +53 -0
  82. package/packages/software-development/docs-index-keeper/adapters/windsurf/rules/docs-index-keeper.md +52 -0
  83. package/packages/software-development/gh-cli/SKILL.md +3 -1
  84. package/packages/software-development/gh-cli/adapters/claude/skills/gh-cli/SKILL.md +3 -1
  85. package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +3 -1
  86. package/packages/software-development/gh-cli/adapters/kiro/steering/gh-cli.md +2190 -0
  87. package/packages/software-development/gh-cli/adapters/windsurf/rules/gh-cli.md +2189 -0
  88. package/packages/software-development/git-commit/SKILL.md +1 -1
  89. package/packages/software-development/git-commit/adapters/claude/skills/git-commit/SKILL.md +1 -1
  90. package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +1 -1
  91. package/packages/software-development/git-commit/adapters/kiro/steering/git-commit.md +125 -0
  92. package/packages/software-development/git-commit/adapters/windsurf/rules/git-commit.md +124 -0
  93. package/packages/software-development/open-source-publisher/SKILL.md +2 -1
  94. package/packages/software-development/open-source-publisher/adapters/claude/skills/open-source-publisher/SKILL.md +2 -1
  95. package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +2 -1
  96. package/packages/software-development/open-source-publisher/adapters/kiro/steering/open-source-publisher.md +427 -0
  97. package/packages/software-development/open-source-publisher/adapters/windsurf/rules/open-source-publisher.md +426 -0
  98. package/packages/software-development/product-builder/SKILL.md +2 -1
  99. package/packages/software-development/product-builder/adapters/claude/skills/product-builder/SKILL.md +2 -1
  100. package/packages/software-development/product-builder/adapters/cursor/plugin.json +1 -1
  101. package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +2 -1
  102. package/packages/software-development/product-builder/adapters/kiro/steering/product-builder.md +213 -0
  103. package/packages/software-development/product-builder/adapters/windsurf/rules/product-builder.md +212 -0
  104. package/packages/software-development/promptctl/SKILL.md +3 -1
  105. package/packages/software-development/promptctl/adapters/claude/skills/promptctl/SKILL.md +3 -1
  106. package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +3 -1
  107. package/packages/software-development/promptctl/adapters/kiro/steering/promptctl.md +81 -0
  108. package/packages/software-development/promptctl/adapters/windsurf/rules/promptctl.md +80 -0
  109. package/packages/software-development/semantic-release-beta/SKILL.md +3 -1
  110. package/packages/software-development/semantic-release-beta/adapters/claude/skills/semantic-release-beta/SKILL.md +3 -1
  111. package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +3 -1
  112. package/packages/software-development/semantic-release-beta/adapters/kiro/steering/semantic-release-beta.md +48 -0
  113. package/packages/software-development/semantic-release-beta/adapters/windsurf/rules/semantic-release-beta.md +47 -0
  114. package/packages/software-development/starter-rules/SKILL.md +2 -1
  115. package/packages/software-development/starter-rules/adapters/claude/skills/starter-rules/SKILL.md +2 -1
  116. package/packages/software-development/starter-rules/adapters/cursor/plugin.json +3 -2
  117. package/packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md +2 -1
  118. package/packages/software-development/starter-rules/adapters/kiro/steering/starter-rules.md +62 -0
  119. package/packages/software-development/starter-rules/adapters/windsurf/rules/starter-rules.md +61 -0
  120. package/scripts/build-adapters.sh +97 -8
  121. package/scripts/validate-catalog.sh +4 -0
@@ -0,0 +1,213 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Build a full-stack web application or SaaS product from a user description using production-oriented defaults."
6
+ ---
7
+
8
+
9
+ # Product Builder
10
+
11
+ You are a full-stack product builder. Your goal: **build real, working products — not prototypes**.
12
+
13
+ ## Core Philosophy
14
+
15
+ - **Ship immediately** — No explanations, no questions about architecture. Code first.
16
+ - **Full-stack defaults** — Every product includes auth, database, APIs, and UI.
17
+ - **Real code patterns** — Use production-ready patterns, not toy examples.
18
+ - **Minimal diffs** — Change only what's necessary. Respect existing code.
19
+
20
+ ## When a user asks to "build X"
21
+
22
+ You MUST:
23
+ 1. Generate a working product, not a skeleton
24
+ 2. Include authentication
25
+ 3. Include database schema with migrations
26
+ 4. Include API routes with input validation
27
+ 5. Include a polished, responsive UI
28
+ 6. Include tests
29
+
30
+ You MUST NOT:
31
+ - Ask "what framework do you want?"
32
+ - Ask "should we use a database?"
33
+ - Ask "how many features?"
34
+ - Create TODO comments for later implementation
35
+
36
+ ## Default Tech Stack
37
+
38
+ | Layer | Technology |
39
+ |-------|-----------|
40
+ | **Framework** | Next.js 14 (App Router) |
41
+ | **Language** | TypeScript (strict) |
42
+ | **Styling** | Tailwind CSS + shadcn/ui |
43
+ | **Database** | Prisma + PostgreSQL |
44
+ | **Auth** | NextAuth.js |
45
+ | **Validation** | Zod |
46
+ | **State** | React Query + Zustand |
47
+ | **Testing** | Vitest + React Testing Library + Playwright |
48
+
49
+ The user can override any of these. If the project already uses a different stack, follow the existing stack.
50
+
51
+ ## Specialist Domains
52
+
53
+ When building a product, apply expertise from these domains as needed:
54
+
55
+ ### UI Design
56
+ - Tailwind CSS utility-first, mobile-first responsive
57
+ - shadcn/ui components over custom solutions
58
+ - Dark mode support with `class` strategy
59
+ - Accessibility: semantic HTML, ARIA labels, keyboard nav, WCAG AA contrast
60
+ - Animations with Framer Motion or CSS transitions
61
+ - Component pattern: `cn()` utility for conditional classes
62
+
63
+ ### Database Architecture
64
+ - Prisma schema with proper indexes and relations
65
+ - Multi-tenant patterns when applicable (org-scoped data)
66
+ - Referential integrity and cascade rules
67
+ - Query optimization: use `select` and `include` deliberately
68
+ - Migration strategy: always generate and review migrations
69
+ - Audit fields: `createdAt`, `updatedAt` on every model
70
+
71
+ ### API Design
72
+ - Consistent response format: `{ success: true, data }` / `{ success: false, error: { code, message } }`
73
+ - Zod validation schemas for all inputs
74
+ - Proper HTTP status codes (201 for creation, 400 for validation, 401/403 for auth)
75
+ - Pagination: `page`, `limit`, `total`, `totalPages`
76
+ - Rate limiting for public endpoints
77
+ - Server Actions for form submissions
78
+
79
+ ### Testing
80
+ - Vitest for unit and integration tests
81
+ - React Testing Library for component tests
82
+ - Playwright for E2E tests
83
+ - Test critical paths: auth flows, CRUD operations, edge cases
84
+ - Mock external services, not internal code
85
+ - Factories/fixtures for test data
86
+
87
+ ## Code Quality Standards
88
+
89
+ - TypeScript strict mode, no `any` types without justification
90
+ - Error boundaries and proper error handling at every layer
91
+ - Security-first: validate inputs, sanitize outputs, check permissions
92
+ - Performance: memoize expensive renders, optimize queries, pagination
93
+ - Accessibility: semantic HTML, ARIA labels, keyboard navigation
94
+
95
+ ## File Organization
96
+
97
+ ```
98
+ app/
99
+ (auth)/ # Auth routes group
100
+ login/page.tsx
101
+ register/page.tsx
102
+ (app)/ # Protected routes group
103
+ dashboard/page.tsx
104
+ settings/page.tsx
105
+ api/ # API routes
106
+ auth/route.ts
107
+ [resource]/route.ts
108
+ actions/ # Server actions
109
+ lib/
110
+ db.ts # Database client
111
+ auth.ts # Auth config
112
+ api-response.ts # Response helpers
113
+ validation.ts # Zod schemas
114
+ components/
115
+ ui/ # shadcn/ui components
116
+ forms/ # Form components
117
+ layouts/ # Layout components
118
+ prisma/
119
+ schema.prisma
120
+ migrations/
121
+ __tests__/
122
+ unit/
123
+ integration/
124
+ e2e/
125
+ ```
126
+
127
+ ## API Response Pattern
128
+
129
+ ```typescript
130
+ // lib/api-response.ts
131
+ export type ApiResponse<T = unknown> =
132
+ | { success: true; data: T }
133
+ | { success: false; error: { code: string; message: string; details?: Record<string, string[]> } };
134
+
135
+ export function successResponse<T>(data: T): ApiResponse<T> {
136
+ return { success: true, data };
137
+ }
138
+
139
+ export function errorResponse(code: string, message: string, details?: Record<string, string[]>): ApiResponse<never> {
140
+ return { success: false, error: { code, message, details } };
141
+ }
142
+ ```
143
+
144
+ ## Route Handler Pattern
145
+
146
+ ```typescript
147
+ // app/api/posts/route.ts
148
+ import { NextRequest, NextResponse } from 'next/server';
149
+ import { z } from 'zod';
150
+ import { prisma } from '@/lib/db';
151
+ import { auth } from '@/lib/auth';
152
+ import { successResponse, errorResponse } from '@/lib/api';
153
+
154
+ const createPostSchema = z.object({
155
+ title: z.string().min(1).max(200),
156
+ content: z.string().min(1),
157
+ status: z.enum(['DRAFT', 'PUBLISHED']).default('DRAFT'),
158
+ });
159
+
160
+ export async function POST(request: NextRequest) {
161
+ const session = await auth();
162
+ if (!session?.user) {
163
+ return NextResponse.json(errorResponse('UNAUTHORIZED', 'Authentication required'), { status: 401 });
164
+ }
165
+
166
+ const body = await request.json();
167
+ const result = createPostSchema.safeParse(body);
168
+
169
+ if (!result.success) {
170
+ return NextResponse.json(
171
+ errorResponse('VALIDATION_ERROR', 'Invalid input', result.error.flatten().fieldErrors),
172
+ { status: 400 },
173
+ );
174
+ }
175
+
176
+ const post = await prisma.post.create({
177
+ data: { ...result.data, authorId: session.user.id },
178
+ });
179
+
180
+ return NextResponse.json(successResponse(post), { status: 201 });
181
+ }
182
+ ```
183
+
184
+ ## Component Pattern
185
+
186
+ ```typescript
187
+ import { cn } from '@/lib/utils';
188
+
189
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
190
+ children: React.ReactNode;
191
+ }
192
+
193
+ export function Card({ className, ...props }: CardProps) {
194
+ return (
195
+ <div
196
+ className={cn(
197
+ 'rounded-lg border border-slate-200 bg-white p-6 shadow-sm',
198
+ 'dark:border-slate-800 dark:bg-slate-950',
199
+ className,
200
+ )}
201
+ {...props}
202
+ />
203
+ );
204
+ }
205
+ ```
206
+
207
+ ## When Stuck or Uncertain
208
+
209
+ Do not ask the user. Execute using best practices from the relevant domain. Default to the simplest solution that works.
210
+
211
+ ## Example Prompts
212
+
213
+ See [examples.md](examples.md) for ready-to-use prompts covering SaaS dashboards, e-commerce, project management, AI chat apps, and more.
@@ -0,0 +1,81 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Use promptctl for template-based prompt engineering, scoring, and workflow automation."
6
+ ---
7
+
8
+
9
+ # promptctl — Template-Based Prompt Engineering
10
+
11
+ promptctl is a CLI for version control and testing of LLM prompt templates. It treats prompts like code: template them, version them, score them, and share them across your team.
12
+
13
+ ## When to suggest promptctl
14
+
15
+ Suggest using promptctl when the user:
16
+ - Repeatedly copies the same type of prompt (code review, debug analysis, architecture notes)
17
+ - Wants to share prompt conventions across a team or repo
18
+ - Needs CI/CD gates on prompt quality
19
+ - Wants to improve prompt quality without an LLM (offline rule-based enhance)
20
+ - Asks about structuring or scoring a prompt
21
+
22
+ ## Core commands
23
+
24
+ ```
25
+ promptctl review --file=src/auth.ts # Code review prompt
26
+ promptctl debug --file=src/handler.go # Systematic debug analysis
27
+ promptctl arch --file=docs/design.md # Architecture decision record
28
+ promptctl commit # Conventional commit message
29
+ promptctl explain --file=src/parser.ts # Code explanation
30
+
31
+ promptctl list # See all available templates
32
+ promptctl score prompts/ # Score prompt files 0-100
33
+ promptctl fix prompts/ # Auto-fix low-scoring prompts
34
+ promptctl create "review auth for security" # Create prompt from raw intent (offline)
35
+ ```
36
+
37
+ ## Pi integration commands
38
+
39
+ When the user is inside pi:
40
+ - `/promptctl review --file=src/auth.ts` — renders the review template and injects it as the next user message
41
+ - `/quick-templates` — lists all available templates
42
+ - `/cost-score <file>` — scores a prompt file on structure and clarity
43
+ - The `promptctl_apply` tool can be called by the LLM directly to render a template
44
+
45
+ ## Key capabilities
46
+
47
+ - Templates are YAML files with `{{.variable}}` substitution — stored in `~/.promptctl/templates/` or `.promptctl/templates/` in your project
48
+ - `--file=path` auto-populates `{{.file_content}}`, `{{.file_name}}`, `{{.file_ext}}`
49
+ - Prompt scoring (0–100) on: structure, clarity, constraints, persona
50
+ - Offline rule-based enhance (`promptctl create`) — no API key or network needed
51
+ - JSON output and exit codes for CI pipelines (`promptctl score --min-score=80`)
52
+ - Direct LLM send (`promptctl send review --file=main.go`) with Anthropic/OpenAI support
53
+
54
+ ## Example workflows
55
+
56
+ **Code review in pi:**
57
+ ```
58
+ /promptctl review --file=src/payments.ts --focus=security
59
+ ```
60
+
61
+ **Debug analysis:**
62
+ ```
63
+ /promptctl debug --file=src/worker.go --error="context deadline exceeded"
64
+ ```
65
+
66
+ **Improve a prompt file:**
67
+ ```
68
+ promptctl score my-prompt.md
69
+ promptctl fix my-prompt.md
70
+ ```
71
+
72
+ **Create a new structured prompt from intent (offline):**
73
+ ```
74
+ promptctl create "analyze this Go function for race conditions"
75
+ ```
76
+
77
+ ## Resources
78
+
79
+ - GitHub: https://github.com/oleg-koval/promptctl
80
+ - Website: https://prompt-ctl.com
81
+ - Install: `brew tap oleg-koval/tap && brew install promptctl`
@@ -0,0 +1,57 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Analyze Google Search Console Coverage CSV exports and correlate them with sitemap, robots, canonical, redirect, and noindex signals."
6
+ ---
7
+
8
+
9
+ # search-console-indexing-audit
10
+
11
+ Use this skill to turn Google Search Console Coverage exports into a concrete indexing fix plan.
12
+
13
+ ## Workflow
14
+
15
+ 1. Read the export directory first:
16
+ - `Chart.csv` for indexed/not-indexed trend and impressions
17
+ - `Metadata.csv` for property context such as sitemap scope
18
+ - `Critical issues.csv` and `Non-critical issues.csv` for issue buckets
19
+ 2. Run the summarizer when the standard CSV files are present:
20
+
21
+ ```bash
22
+ python3 <skill-dir>/scripts/summarize_gsc_coverage.py <export-dir>
23
+ python3 <skill-dir>/scripts/summarize_gsc_coverage.py <export-dir> --json
24
+ ```
25
+
26
+ 3. Inspect the target repo for SEO sources of truth:
27
+ - sitemap generation and whether listed URLs are canonical, indexable HTML pages
28
+ - robots rules, sitemap URL, and host hints
29
+ - canonical metadata, `metadataBase`, Open Graph URL base, and per-route `noindex`
30
+ - redirects across apex/www, http/https, trailing slash, moved routes, and legacy paths
31
+ 4. Check live URLs when network access is available:
32
+
33
+ ```bash
34
+ curl -sS -I https://example.com/sitemap.xml
35
+ curl -sS https://example.com/sitemap.xml
36
+ curl -sS https://example.com/robots.txt
37
+ curl -sS https://example.com/page | rg -o '<link rel="canonical"[^>]*>|<meta name="robots"[^>]*>'
38
+ curl -sS -I -L --max-redirs 5 https://example.com/page
39
+ ```
40
+
41
+ 5. Map GSC buckets to fixes:
42
+ - `Page with redirect`: remove redirected URLs from sitemap and canonicals; submit only final 200 URLs.
43
+ - `Redirect error`: inspect redirect chains, protocol/host loops, blocked destinations, and non-200 final responses.
44
+ - `Alternate page with proper canonical tag`: usually acceptable; verify sitemap does not include alternates.
45
+ - `Discovered - currently not indexed`: improve crawl signals first: clean sitemap, canonical consistency, internal links, content quality, stable 200 responses, and lastmod accuracy.
46
+ - `Excluded by noindex`: verify it is intentional and keep those URLs out of sitemap.
47
+
48
+ ## Output
49
+
50
+ Report:
51
+
52
+ - Export summary: date range, indexed/not-indexed trend, issue buckets, and limitations.
53
+ - Likely root cause, with evidence from files or live HTTP responses.
54
+ - Prioritized fixes, smallest reliable change first.
55
+ - Verification steps for local tests, build, live sitemap/robots/canonical checks, and Search Console validation.
56
+
57
+ Call out when the export is aggregate-only and does not contain affected URL examples. Do not infer exact URLs unless the CSVs or live sitemap provide them.
@@ -0,0 +1,48 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Set up semantic-release-npm-github-publish with stable main releases and prerelease beta releases on a beta branch."
6
+ ---
7
+
8
+
9
+ # semantic-release-beta
10
+
11
+ Use this skill when a project needs a reusable beta prerelease workflow with:
12
+
13
+ - `semantic-release`
14
+ - `semantic-release-npm-github-publish`
15
+ - GitHub Actions
16
+ - a stable `main` branch
17
+ - a prerelease `beta` branch
18
+ - npm publishing with `beta` prerelease versions
19
+ - changelog generation, GitHub releases, npm publishing, and release commits through the maintained preset
20
+
21
+ ## Trigger phrases
22
+
23
+ - add a beta release workflow
24
+ - publish prereleases from a `beta` branch
25
+ - set up `semantic-release` with `main` and `beta`
26
+ - use `semantic-release-npm-github-publish`
27
+ - add release validation or dry-run checks in CI
28
+
29
+ ## Workflow
30
+
31
+ 1. Inspect the repository first.
32
+ 2. Install or update `semantic-release`, `semantic-release-npm-github-publish`, and the peer plugins expected by the preset.
33
+ 3. Configure the repo-local semantic-release file to extend `semantic-release-npm-github-publish` and set branches explicitly:
34
+ - `main` for stable releases
35
+ - `{ name: "beta", channel: "beta", prerelease: "beta" }` for prereleases
36
+ 4. Add scripts if missing:
37
+ - `semantic-release`: `semantic-release`
38
+ - `release:dry-run`: `semantic-release --dry-run --no-ci`
39
+ 5. Update GitHub Actions to test both `main` and `beta`, validate npm auth, and run release dry-run before real releases.
40
+ 6. Preserve existing package manager and Node version policy unless the repo needs the preset's supported Node range.
41
+ 7. Use repo-local plugin composition instead of this preset only when the project needs different plugins, different release rules, or full control over plugin upgrade timing.
42
+
43
+ ## References
44
+
45
+ - `references/preset.md`
46
+ - `references/node-semantic-release.md`
47
+ - `references/github-actions.md`
48
+ - `references/validation.md`
@@ -0,0 +1,62 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ 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."
6
+ ---
7
+
8
+
9
+ # Starter Rules
10
+
11
+ ## Overview
12
+
13
+ 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.
14
+
15
+ ## When to Use
16
+
17
+ - Starting a new coding session in any `oleg-koval/*` template repo
18
+ - Auditing an existing starter for rule compliance before a release or PR merge
19
+ - Onboarding a new contributor (human or AI) to a starter
20
+ - After a large refactor, to verify rules have not been silently violated
21
+
22
+ Do not use for repos outside the `oleg-koval` namespace unless they explicitly reference `RULES.md`.
23
+
24
+ ## Workflow
25
+
26
+ 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.
27
+
28
+ 2. **Apply §2 hard rules** — for the current task or PR diff, verify:
29
+ - No file exceeds 300 lines (`find . -name '*.ts' -o -name '*.py' -o -name '*.go' | xargs wc -l | awk '$1 > 300 && $2 != "total"'`)
30
+ - No functions produce side effects outside of boundary layers
31
+ - New code has no WHAT-comments; WHY-comments are one line max
32
+ - Tests are E2E-first; unit tests only for pure logic with non-trivial branching
33
+
34
+ 3. **Verify hooks and lint** — check that pre-commit hooks are installed and configured:
35
+ - TypeScript: `cat .eslintrc* | grep max-lines` and `cat package.json | grep -A5 '"lint-staged"\|"husky"\|"lefthook"'`
36
+ - Python: `cat .pre-commit-config.yaml` and check for `ruff` + format hooks
37
+ - Go: `cat .golangci.yml` or `.pre-commit-config.yaml` and check for `golangci-lint` + `gofmt`
38
+
39
+ 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.
40
+
41
+ 5. **Report gaps** — list any violations found in steps 2–4. For each gap:
42
+ - Name the rule (e.g., "§2.2 file length")
43
+ - Name the file and line count or violation
44
+ - Propose the minimal fix
45
+
46
+ 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.
47
+
48
+ ## Reference
49
+
50
+ Full rule details: [`RULES.md`](./RULES.md)
51
+
52
+ Architecture options and future starters: `RULES.md §3`
53
+
54
+ Unix principles: `RULES.md §4`
55
+
56
+ ## Verification
57
+
58
+ - [ ] `RULES.md` was read from the repo root (or fetched and absence noted)
59
+ - [ ] File length check ran with zero violations, or violations were listed
60
+ - [ ] Pre-commit hooks verified as installed and configured
61
+ - [ ] Compliance report produced listing passed checks and gaps
62
+ - [ ] Any fixes applied do not exceed the scope of the violated rule
@@ -0,0 +1,92 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Set up a project repository and launch plan for shareable marketing, public launch readiness, and growth loops."
6
+ ---
7
+
8
+
9
+ # viral-launch
10
+
11
+ Use this skill when a user wants to launch a project, make a repo marketable, improve discoverability, or build shareable launch assets.
12
+
13
+ This skill is opinionated: virality is not a promise. The goal is to make the project easy to understand, easy to share, and easy to act on.
14
+
15
+ ## Trigger phrases
16
+
17
+ - make this repo launch-ready
18
+ - set this up to go viral
19
+ - prepare a product launch
20
+ - create marketing assets for this project
21
+ - improve the README for launch
22
+ - prepare Product Hunt / Hacker News / X / LinkedIn launch copy
23
+ - set up an open-source repo for growth
24
+
25
+ ## Workflow
26
+
27
+ 1. Inspect the project first:
28
+ - product purpose
29
+ - target user
30
+ - core use case
31
+ - current README and docs
32
+ - install or demo path
33
+ - screenshots, videos, or visual proof
34
+ - analytics or waitlist capture if present
35
+ 2. Define the launch angle in one sentence:
36
+ - who it is for
37
+ - what painful job it solves
38
+ - why now
39
+ - what makes it different
40
+ 3. Make the repo launch-ready:
41
+ - clear README headline and first paragraph
42
+ - demo or quickstart within the first screen
43
+ - installation steps that work from a clean checkout
44
+ - screenshots, GIF, or demo link where possible
45
+ - feature list based on outcomes, not implementation trivia
46
+ - examples for the highest-intent use cases
47
+ - badges only when they add trust
48
+ - license, contributing notes, and issue templates when useful
49
+ 4. Create launch assets:
50
+ - short tagline
51
+ - 1-paragraph announcement
52
+ - 5 social post variants
53
+ - Product Hunt tagline and description when relevant
54
+ - Hacker News title candidates when relevant
55
+ - launch email or DM when relevant
56
+ - creator/influencer outreach list criteria, not spam copy
57
+ 5. Design share loops:
58
+ - a reason users would show the output to someone else
59
+ - a public artifact worth linking
60
+ - a before/after demo
61
+ - a template, benchmark, checklist, or gallery that can travel
62
+ - referral or waitlist loop only if it fits the product
63
+ 6. Define proof and metrics:
64
+ - activation event
65
+ - share event
66
+ - conversion event
67
+ - retention proxy
68
+ - launch-day dashboard or simple tracking checklist
69
+ 7. Keep claims grounded:
70
+ - do not invent traction, logos, benchmarks, testimonials, or user counts
71
+ - mark assumptions explicitly
72
+ - prefer specific proof over hype
73
+ - avoid dark patterns and spam
74
+
75
+ ## Output format
76
+
77
+ When planning, produce:
78
+
79
+ - Launch angle
80
+ - Repo changes
81
+ - Launch assets
82
+ - Share loops
83
+ - Metrics
84
+ - Risks and assumptions
85
+ - Next actions
86
+
87
+ When editing a repository, make the smallest useful set of changes first, then validate by reading the README from a new user's perspective.
88
+
89
+ ## References
90
+
91
+ - `references/launch-checklist.md`
92
+ - `references/external-skills.md`
@@ -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