@olegkoval/agent-skills 1.0.0-beta.1

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 (79) hide show
  1. package/.claude-plugin/marketplace.json +58 -0
  2. package/.cursor-plugin/index.json +55 -0
  3. package/LICENSE +21 -0
  4. package/README.md +181 -0
  5. package/catalog/skills.json +202 -0
  6. package/collections/creative-tools.json +5 -0
  7. package/collections/docs-tools.json +5 -0
  8. package/collections/git-tools.json +5 -0
  9. package/collections/marketing.json +5 -0
  10. package/collections/music.json +5 -0
  11. package/collections/photography.json +5 -0
  12. package/collections/product-tools.json +5 -0
  13. package/collections/prompt-tools.json +5 -0
  14. package/collections/release-tools.json +5 -0
  15. package/collections/software-development.json +13 -0
  16. package/package.json +47 -0
  17. package/packages/marketing/viral-launch/SKILL.md +101 -0
  18. package/packages/marketing/viral-launch/adapters/claude/plugin.json +10 -0
  19. package/packages/marketing/viral-launch/adapters/codex/README.md +3 -0
  20. package/packages/marketing/viral-launch/adapters/cursor/plugin.json +6 -0
  21. package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +103 -0
  22. package/packages/marketing/viral-launch/references/external-skills.md +12 -0
  23. package/packages/marketing/viral-launch/references/launch-checklist.md +42 -0
  24. package/packages/music/fill-music-player/LICENSE +21 -0
  25. package/packages/music/fill-music-player/SKILL.md +108 -0
  26. package/packages/music/fill-music-player/adapters/claude/plugin.json +10 -0
  27. package/packages/music/fill-music-player/adapters/codex/README.md +3 -0
  28. package/packages/music/fill-music-player/adapters/cursor/plugin.json +6 -0
  29. package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +110 -0
  30. package/packages/photography/gallery/.skillfish.json +10 -0
  31. package/packages/photography/gallery/SKILL.md +233 -0
  32. package/packages/photography/gallery/adapters/claude/plugin.json +10 -0
  33. package/packages/photography/gallery/adapters/codex/README.md +3 -0
  34. package/packages/photography/gallery/adapters/cursor/plugin.json +6 -0
  35. package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +235 -0
  36. package/packages/software-development/changelog-generator/SKILL.md +111 -0
  37. package/packages/software-development/changelog-generator/adapters/claude/plugin.json +10 -0
  38. package/packages/software-development/changelog-generator/adapters/codex/README.md +3 -0
  39. package/packages/software-development/changelog-generator/adapters/cursor/plugin.json +6 -0
  40. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +113 -0
  41. package/packages/software-development/docs-index-keeper/SKILL.md +62 -0
  42. package/packages/software-development/docs-index-keeper/adapters/claude/plugin.json +10 -0
  43. package/packages/software-development/docs-index-keeper/adapters/codex/README.md +5 -0
  44. package/packages/software-development/docs-index-keeper/adapters/cursor/plugin.json +6 -0
  45. package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +64 -0
  46. package/packages/software-development/gh-cli/SKILL.md +2196 -0
  47. package/packages/software-development/gh-cli/adapters/claude/plugin.json +10 -0
  48. package/packages/software-development/gh-cli/adapters/codex/README.md +3 -0
  49. package/packages/software-development/gh-cli/adapters/cursor/plugin.json +6 -0
  50. package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +2198 -0
  51. package/packages/software-development/git-commit/SKILL.md +131 -0
  52. package/packages/software-development/git-commit/adapters/claude/plugin.json +10 -0
  53. package/packages/software-development/git-commit/adapters/codex/README.md +3 -0
  54. package/packages/software-development/git-commit/adapters/cursor/plugin.json +6 -0
  55. package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +133 -0
  56. package/packages/software-development/product-builder/LICENSE +21 -0
  57. package/packages/software-development/product-builder/SKILL.md +221 -0
  58. package/packages/software-development/product-builder/adapters/claude/plugin.json +10 -0
  59. package/packages/software-development/product-builder/adapters/codex/README.md +3 -0
  60. package/packages/software-development/product-builder/adapters/cursor/plugin.json +6 -0
  61. package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +223 -0
  62. package/packages/software-development/promptctl/SKILL.md +86 -0
  63. package/packages/software-development/promptctl/adapters/claude/plugin.json +10 -0
  64. package/packages/software-development/promptctl/adapters/codex/README.md +3 -0
  65. package/packages/software-development/promptctl/adapters/cursor/plugin.json +6 -0
  66. package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +88 -0
  67. package/packages/software-development/semantic-release-beta/SKILL.md +55 -0
  68. package/packages/software-development/semantic-release-beta/adapters/claude/plugin.json +10 -0
  69. package/packages/software-development/semantic-release-beta/adapters/codex/README.md +3 -0
  70. package/packages/software-development/semantic-release-beta/adapters/cursor/plugin.json +6 -0
  71. package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +57 -0
  72. package/packages/software-development/semantic-release-beta/references/github-actions.md +16 -0
  73. package/packages/software-development/semantic-release-beta/references/node-semantic-release.md +13 -0
  74. package/packages/software-development/semantic-release-beta/references/preset.md +47 -0
  75. package/packages/software-development/semantic-release-beta/references/validation.md +17 -0
  76. package/scripts/build-adapters.sh +115 -0
  77. package/scripts/install-codex-symlinks.sh +37 -0
  78. package/scripts/sync-from-sources.sh +44 -0
  79. package/scripts/validate-catalog.sh +90 -0
@@ -0,0 +1,223 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ name: product-builder
5
+ description: Use when a user asks to build a full-stack web application, SaaS product, dashboard, or any complete working app from a description. Generates production-ready code with auth, database, API, UI, and tests instead of asking clarifying questions. Activates on "build me X", "create an app that", or any product-building request.
6
+ license: MIT
7
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable application repository and a stack compatible with the generated implementation.
8
+ metadata:
9
+ author: Oleg Koval
10
+ tags:
11
+ - product
12
+ - full-stack
13
+ - saas
14
+ - web-app
15
+ - builder
16
+ - nextjs
17
+ ---
18
+
19
+ # Product Builder
20
+
21
+ You are a full-stack product builder. Your goal: **build real, working products — not prototypes**.
22
+
23
+ ## Core Philosophy
24
+
25
+ - **Ship immediately** — No explanations, no questions about architecture. Code first.
26
+ - **Full-stack defaults** — Every product includes auth, database, APIs, and UI.
27
+ - **Real code patterns** — Use production-ready patterns, not toy examples.
28
+ - **Minimal diffs** — Change only what's necessary. Respect existing code.
29
+
30
+ ## When a user asks to "build X"
31
+
32
+ You MUST:
33
+ 1. Generate a working product, not a skeleton
34
+ 2. Include authentication
35
+ 3. Include database schema with migrations
36
+ 4. Include API routes with input validation
37
+ 5. Include a polished, responsive UI
38
+ 6. Include tests
39
+
40
+ You MUST NOT:
41
+ - Ask "what framework do you want?"
42
+ - Ask "should we use a database?"
43
+ - Ask "how many features?"
44
+ - Create TODO comments for later implementation
45
+
46
+ ## Default Tech Stack
47
+
48
+ | Layer | Technology |
49
+ |-------|-----------|
50
+ | **Framework** | Next.js 14 (App Router) |
51
+ | **Language** | TypeScript (strict) |
52
+ | **Styling** | Tailwind CSS + shadcn/ui |
53
+ | **Database** | Prisma + PostgreSQL |
54
+ | **Auth** | NextAuth.js |
55
+ | **Validation** | Zod |
56
+ | **State** | React Query + Zustand |
57
+ | **Testing** | Vitest + React Testing Library + Playwright |
58
+
59
+ The user can override any of these. If the project already uses a different stack, follow the existing stack.
60
+
61
+ ## Specialist Domains
62
+
63
+ When building a product, apply expertise from these domains as needed:
64
+
65
+ ### UI Design
66
+ - Tailwind CSS utility-first, mobile-first responsive
67
+ - shadcn/ui components over custom solutions
68
+ - Dark mode support with `class` strategy
69
+ - Accessibility: semantic HTML, ARIA labels, keyboard nav, WCAG AA contrast
70
+ - Animations with Framer Motion or CSS transitions
71
+ - Component pattern: `cn()` utility for conditional classes
72
+
73
+ ### Database Architecture
74
+ - Prisma schema with proper indexes and relations
75
+ - Multi-tenant patterns when applicable (org-scoped data)
76
+ - Referential integrity and cascade rules
77
+ - Query optimization: use `select` and `include` deliberately
78
+ - Migration strategy: always generate and review migrations
79
+ - Audit fields: `createdAt`, `updatedAt` on every model
80
+
81
+ ### API Design
82
+ - Consistent response format: `{ success: true, data }` / `{ success: false, error: { code, message } }`
83
+ - Zod validation schemas for all inputs
84
+ - Proper HTTP status codes (201 for creation, 400 for validation, 401/403 for auth)
85
+ - Pagination: `page`, `limit`, `total`, `totalPages`
86
+ - Rate limiting for public endpoints
87
+ - Server Actions for form submissions
88
+
89
+ ### Testing
90
+ - Vitest for unit and integration tests
91
+ - React Testing Library for component tests
92
+ - Playwright for E2E tests
93
+ - Test critical paths: auth flows, CRUD operations, edge cases
94
+ - Mock external services, not internal code
95
+ - Factories/fixtures for test data
96
+
97
+ ## Code Quality Standards
98
+
99
+ - TypeScript strict mode, no `any` types without justification
100
+ - Error boundaries and proper error handling at every layer
101
+ - Security-first: validate inputs, sanitize outputs, check permissions
102
+ - Performance: memoize expensive renders, optimize queries, pagination
103
+ - Accessibility: semantic HTML, ARIA labels, keyboard navigation
104
+
105
+ ## File Organization
106
+
107
+ ```
108
+ app/
109
+ (auth)/ # Auth routes group
110
+ login/page.tsx
111
+ register/page.tsx
112
+ (app)/ # Protected routes group
113
+ dashboard/page.tsx
114
+ settings/page.tsx
115
+ api/ # API routes
116
+ auth/route.ts
117
+ [resource]/route.ts
118
+ actions/ # Server actions
119
+ lib/
120
+ db.ts # Database client
121
+ auth.ts # Auth config
122
+ api-response.ts # Response helpers
123
+ validation.ts # Zod schemas
124
+ components/
125
+ ui/ # shadcn/ui components
126
+ forms/ # Form components
127
+ layouts/ # Layout components
128
+ prisma/
129
+ schema.prisma
130
+ migrations/
131
+ __tests__/
132
+ unit/
133
+ integration/
134
+ e2e/
135
+ ```
136
+
137
+ ## API Response Pattern
138
+
139
+ ```typescript
140
+ // lib/api-response.ts
141
+ export type ApiResponse<T = unknown> =
142
+ | { success: true; data: T }
143
+ | { success: false; error: { code: string; message: string; details?: Record<string, string[]> } };
144
+
145
+ export function successResponse<T>(data: T): ApiResponse<T> {
146
+ return { success: true, data };
147
+ }
148
+
149
+ export function errorResponse(code: string, message: string, details?: Record<string, string[]>): ApiResponse<never> {
150
+ return { success: false, error: { code, message, details } };
151
+ }
152
+ ```
153
+
154
+ ## Route Handler Pattern
155
+
156
+ ```typescript
157
+ // app/api/posts/route.ts
158
+ import { NextRequest, NextResponse } from 'next/server';
159
+ import { z } from 'zod';
160
+ import { prisma } from '@/lib/db';
161
+ import { auth } from '@/lib/auth';
162
+ import { successResponse, errorResponse } from '@/lib/api';
163
+
164
+ const createPostSchema = z.object({
165
+ title: z.string().min(1).max(200),
166
+ content: z.string().min(1),
167
+ status: z.enum(['DRAFT', 'PUBLISHED']).default('DRAFT'),
168
+ });
169
+
170
+ export async function POST(request: NextRequest) {
171
+ const session = await auth();
172
+ if (!session?.user) {
173
+ return NextResponse.json(errorResponse('UNAUTHORIZED', 'Authentication required'), { status: 401 });
174
+ }
175
+
176
+ const body = await request.json();
177
+ const result = createPostSchema.safeParse(body);
178
+
179
+ if (!result.success) {
180
+ return NextResponse.json(
181
+ errorResponse('VALIDATION_ERROR', 'Invalid input', result.error.flatten().fieldErrors),
182
+ { status: 400 },
183
+ );
184
+ }
185
+
186
+ const post = await prisma.post.create({
187
+ data: { ...result.data, authorId: session.user.id },
188
+ });
189
+
190
+ return NextResponse.json(successResponse(post), { status: 201 });
191
+ }
192
+ ```
193
+
194
+ ## Component Pattern
195
+
196
+ ```typescript
197
+ import { cn } from '@/lib/utils';
198
+
199
+ interface CardProps extends React.HTMLAttributes<HTMLDivElement> {
200
+ children: React.ReactNode;
201
+ }
202
+
203
+ export function Card({ className, ...props }: CardProps) {
204
+ return (
205
+ <div
206
+ className={cn(
207
+ 'rounded-lg border border-slate-200 bg-white p-6 shadow-sm',
208
+ 'dark:border-slate-800 dark:bg-slate-950',
209
+ className,
210
+ )}
211
+ {...props}
212
+ />
213
+ );
214
+ }
215
+ ```
216
+
217
+ ## When Stuck or Uncertain
218
+
219
+ Do not ask the user. Execute using best practices from the relevant domain. Default to the simplest solution that works.
220
+
221
+ ## Example Prompts
222
+
223
+ 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,86 @@
1
+ ---
2
+ name: promptctl
3
+ description: Use promptctl for template-based prompt engineering, prompt scoring, prompt generation, and reusable prompt workflows across repositories and teams.
4
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires promptctl to be installed when the workflow depends on the CLI.
5
+ metadata:
6
+ author: Oleg Koval
7
+ tags:
8
+ - prompts
9
+ - prompt-engineering
10
+ - templates
11
+ - cli
12
+ ---
13
+
14
+ # promptctl — Template-Based Prompt Engineering
15
+
16
+ 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.
17
+
18
+ ## When to suggest promptctl
19
+
20
+ Suggest using promptctl when the user:
21
+ - Repeatedly copies the same type of prompt (code review, debug analysis, architecture notes)
22
+ - Wants to share prompt conventions across a team or repo
23
+ - Needs CI/CD gates on prompt quality
24
+ - Wants to improve prompt quality without an LLM (offline rule-based enhance)
25
+ - Asks about structuring or scoring a prompt
26
+
27
+ ## Core commands
28
+
29
+ ```
30
+ promptctl review --file=src/auth.ts # Code review prompt
31
+ promptctl debug --file=src/handler.go # Systematic debug analysis
32
+ promptctl arch --file=docs/design.md # Architecture decision record
33
+ promptctl commit # Conventional commit message
34
+ promptctl explain --file=src/parser.ts # Code explanation
35
+
36
+ promptctl list # See all available templates
37
+ promptctl score prompts/ # Score prompt files 0-100
38
+ promptctl fix prompts/ # Auto-fix low-scoring prompts
39
+ promptctl create "review auth for security" # Create prompt from raw intent (offline)
40
+ ```
41
+
42
+ ## Pi integration commands
43
+
44
+ When the user is inside pi:
45
+ - `/promptctl review --file=src/auth.ts` — renders the review template and injects it as the next user message
46
+ - `/quick-templates` — lists all available templates
47
+ - `/cost-score <file>` — scores a prompt file on structure and clarity
48
+ - The `promptctl_apply` tool can be called by the LLM directly to render a template
49
+
50
+ ## Key capabilities
51
+
52
+ - Templates are YAML files with `{{.variable}}` substitution — stored in `~/.promptctl/templates/` or `.promptctl/templates/` in your project
53
+ - `--file=path` auto-populates `{{.file_content}}`, `{{.file_name}}`, `{{.file_ext}}`
54
+ - Prompt scoring (0–100) on: structure, clarity, constraints, persona
55
+ - Offline rule-based enhance (`promptctl create`) — no API key or network needed
56
+ - JSON output and exit codes for CI pipelines (`promptctl score --min-score=80`)
57
+ - Direct LLM send (`promptctl send review --file=main.go`) with Anthropic/OpenAI support
58
+
59
+ ## Example workflows
60
+
61
+ **Code review in pi:**
62
+ ```
63
+ /promptctl review --file=src/payments.ts --focus=security
64
+ ```
65
+
66
+ **Debug analysis:**
67
+ ```
68
+ /promptctl debug --file=src/worker.go --error="context deadline exceeded"
69
+ ```
70
+
71
+ **Improve a prompt file:**
72
+ ```
73
+ promptctl score my-prompt.md
74
+ promptctl fix my-prompt.md
75
+ ```
76
+
77
+ **Create a new structured prompt from intent (offline):**
78
+ ```
79
+ promptctl create "analyze this Go function for race conditions"
80
+ ```
81
+
82
+ ## Resources
83
+
84
+ - GitHub: https://github.com/oleg-koval/promptctl
85
+ - Website: https://prompt-ctl.com
86
+ - Install: `brew tap oleg-koval/tap && brew install promptctl`
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "olko:promptctl",
3
+ "description": "Use promptctl for template-based prompt engineering, scoring, and workflow automation.",
4
+ "skills": [
5
+ {
6
+ "name": "olko:promptctl",
7
+ "source": "../../SKILL.md"
8
+ }
9
+ ]
10
+ }
@@ -0,0 +1,3 @@
1
+ # Codex adapter
2
+
3
+ Use the canonical skill directly from `packages/software-development/promptctl/SKILL.md`.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:promptctl",
3
+ "version": "0.1.0",
4
+ "description": "Use promptctl for template-based prompt engineering, scoring, and workflow automation.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,88 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ name: promptctl
5
+ description: Use promptctl for template-based prompt engineering, prompt scoring, prompt generation, and reusable prompt workflows across repositories and teams.
6
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires promptctl to be installed when the workflow depends on the CLI.
7
+ metadata:
8
+ author: Oleg Koval
9
+ tags:
10
+ - prompts
11
+ - prompt-engineering
12
+ - templates
13
+ - cli
14
+ ---
15
+
16
+ # promptctl — Template-Based Prompt Engineering
17
+
18
+ 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.
19
+
20
+ ## When to suggest promptctl
21
+
22
+ Suggest using promptctl when the user:
23
+ - Repeatedly copies the same type of prompt (code review, debug analysis, architecture notes)
24
+ - Wants to share prompt conventions across a team or repo
25
+ - Needs CI/CD gates on prompt quality
26
+ - Wants to improve prompt quality without an LLM (offline rule-based enhance)
27
+ - Asks about structuring or scoring a prompt
28
+
29
+ ## Core commands
30
+
31
+ ```
32
+ promptctl review --file=src/auth.ts # Code review prompt
33
+ promptctl debug --file=src/handler.go # Systematic debug analysis
34
+ promptctl arch --file=docs/design.md # Architecture decision record
35
+ promptctl commit # Conventional commit message
36
+ promptctl explain --file=src/parser.ts # Code explanation
37
+
38
+ promptctl list # See all available templates
39
+ promptctl score prompts/ # Score prompt files 0-100
40
+ promptctl fix prompts/ # Auto-fix low-scoring prompts
41
+ promptctl create "review auth for security" # Create prompt from raw intent (offline)
42
+ ```
43
+
44
+ ## Pi integration commands
45
+
46
+ When the user is inside pi:
47
+ - `/promptctl review --file=src/auth.ts` — renders the review template and injects it as the next user message
48
+ - `/quick-templates` — lists all available templates
49
+ - `/cost-score <file>` — scores a prompt file on structure and clarity
50
+ - The `promptctl_apply` tool can be called by the LLM directly to render a template
51
+
52
+ ## Key capabilities
53
+
54
+ - Templates are YAML files with `{{.variable}}` substitution — stored in `~/.promptctl/templates/` or `.promptctl/templates/` in your project
55
+ - `--file=path` auto-populates `{{.file_content}}`, `{{.file_name}}`, `{{.file_ext}}`
56
+ - Prompt scoring (0–100) on: structure, clarity, constraints, persona
57
+ - Offline rule-based enhance (`promptctl create`) — no API key or network needed
58
+ - JSON output and exit codes for CI pipelines (`promptctl score --min-score=80`)
59
+ - Direct LLM send (`promptctl send review --file=main.go`) with Anthropic/OpenAI support
60
+
61
+ ## Example workflows
62
+
63
+ **Code review in pi:**
64
+ ```
65
+ /promptctl review --file=src/payments.ts --focus=security
66
+ ```
67
+
68
+ **Debug analysis:**
69
+ ```
70
+ /promptctl debug --file=src/worker.go --error="context deadline exceeded"
71
+ ```
72
+
73
+ **Improve a prompt file:**
74
+ ```
75
+ promptctl score my-prompt.md
76
+ promptctl fix my-prompt.md
77
+ ```
78
+
79
+ **Create a new structured prompt from intent (offline):**
80
+ ```
81
+ promptctl create "analyze this Go function for race conditions"
82
+ ```
83
+
84
+ ## Resources
85
+
86
+ - GitHub: https://github.com/oleg-koval/promptctl
87
+ - Website: https://prompt-ctl.com
88
+ - Install: `brew tap oleg-koval/tap && brew install promptctl`
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: semantic-release-beta
3
+ description: Set up or update a Node.js release pipeline that uses semantic-release-npm-github-publish with a stable main channel and a prerelease beta channel on a beta branch, including GitHub Actions validation and npm publishing behavior.
4
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a Node.js package repository that uses git and GitHub Actions.
5
+ metadata:
6
+ author: Oleg Koval
7
+ tags:
8
+ - semantic-release
9
+ - semantic-release-npm-github-publish
10
+ - release
11
+ - beta
12
+ - github-actions
13
+ - npm
14
+ ---
15
+
16
+ # semantic-release-beta
17
+
18
+ Use this skill when a project needs a reusable beta prerelease workflow with:
19
+
20
+ - `semantic-release`
21
+ - `semantic-release-npm-github-publish`
22
+ - GitHub Actions
23
+ - a stable `main` branch
24
+ - a prerelease `beta` branch
25
+ - npm publishing with `beta` prerelease versions
26
+ - changelog generation, GitHub releases, npm publishing, and release commits through the maintained preset
27
+
28
+ ## Trigger phrases
29
+
30
+ - add a beta release workflow
31
+ - publish prereleases from a `beta` branch
32
+ - set up `semantic-release` with `main` and `beta`
33
+ - use `semantic-release-npm-github-publish`
34
+ - add release validation or dry-run checks in CI
35
+
36
+ ## Workflow
37
+
38
+ 1. Inspect the repository first.
39
+ 2. Install or update `semantic-release`, `semantic-release-npm-github-publish`, and the peer plugins expected by the preset.
40
+ 3. Configure the repo-local semantic-release file to extend `semantic-release-npm-github-publish` and set branches explicitly:
41
+ - `main` for stable releases
42
+ - `{ name: "beta", channel: "beta", prerelease: "beta" }` for prereleases
43
+ 4. Add scripts if missing:
44
+ - `semantic-release`: `semantic-release`
45
+ - `release:dry-run`: `semantic-release --dry-run --no-ci`
46
+ 5. Update GitHub Actions to test both `main` and `beta`, validate npm auth, and run release dry-run before real releases.
47
+ 6. Preserve existing package manager and Node version policy unless the repo needs the preset's supported Node range.
48
+ 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.
49
+
50
+ ## References
51
+
52
+ - `references/preset.md`
53
+ - `references/node-semantic-release.md`
54
+ - `references/github-actions.md`
55
+ - `references/validation.md`
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "olko:semantic-release-beta",
3
+ "description": "Set up semantic-release-npm-github-publish with stable main releases and prerelease beta releases.",
4
+ "skills": [
5
+ {
6
+ "name": "olko:semantic-release-beta",
7
+ "source": "../../SKILL.md"
8
+ }
9
+ ]
10
+ }
@@ -0,0 +1,3 @@
1
+ # Codex adapter
2
+
3
+ Use the canonical skill directly from `packages/software-development/semantic-release-beta/SKILL.md`.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "olko:semantic-release-beta",
3
+ "version": "0.1.0",
4
+ "description": "Set up semantic-release-npm-github-publish with stable main releases and prerelease beta releases on a beta branch.",
5
+ "skills": "skills/"
6
+ }
@@ -0,0 +1,57 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ name: semantic-release-beta
5
+ description: Set up or update a Node.js release pipeline that uses semantic-release-npm-github-publish with a stable main channel and a prerelease beta channel on a beta branch, including GitHub Actions validation and npm publishing behavior.
6
+ compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a Node.js package repository that uses git and GitHub Actions.
7
+ metadata:
8
+ author: Oleg Koval
9
+ tags:
10
+ - semantic-release
11
+ - semantic-release-npm-github-publish
12
+ - release
13
+ - beta
14
+ - github-actions
15
+ - npm
16
+ ---
17
+
18
+ # semantic-release-beta
19
+
20
+ Use this skill when a project needs a reusable beta prerelease workflow with:
21
+
22
+ - `semantic-release`
23
+ - `semantic-release-npm-github-publish`
24
+ - GitHub Actions
25
+ - a stable `main` branch
26
+ - a prerelease `beta` branch
27
+ - npm publishing with `beta` prerelease versions
28
+ - changelog generation, GitHub releases, npm publishing, and release commits through the maintained preset
29
+
30
+ ## Trigger phrases
31
+
32
+ - add a beta release workflow
33
+ - publish prereleases from a `beta` branch
34
+ - set up `semantic-release` with `main` and `beta`
35
+ - use `semantic-release-npm-github-publish`
36
+ - add release validation or dry-run checks in CI
37
+
38
+ ## Workflow
39
+
40
+ 1. Inspect the repository first.
41
+ 2. Install or update `semantic-release`, `semantic-release-npm-github-publish`, and the peer plugins expected by the preset.
42
+ 3. Configure the repo-local semantic-release file to extend `semantic-release-npm-github-publish` and set branches explicitly:
43
+ - `main` for stable releases
44
+ - `{ name: "beta", channel: "beta", prerelease: "beta" }` for prereleases
45
+ 4. Add scripts if missing:
46
+ - `semantic-release`: `semantic-release`
47
+ - `release:dry-run`: `semantic-release --dry-run --no-ci`
48
+ 5. Update GitHub Actions to test both `main` and `beta`, validate npm auth, and run release dry-run before real releases.
49
+ 6. Preserve existing package manager and Node version policy unless the repo needs the preset's supported Node range.
50
+ 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.
51
+
52
+ ## References
53
+
54
+ - `references/preset.md`
55
+ - `references/node-semantic-release.md`
56
+ - `references/github-actions.md`
57
+ - `references/validation.md`
@@ -0,0 +1,16 @@
1
+ # GitHub Actions layout
2
+
3
+ Recommended jobs:
4
+
5
+ - `test`
6
+ - `release-readiness`
7
+ - `release`
8
+
9
+ Core behavior:
10
+
11
+ - run on `push` and `pull_request` for `main` and `beta`
12
+ - use `fetch-depth: 0` for semantic-release jobs
13
+ - validate `NPM_TOKEN`
14
+ - run `npm run release:dry-run` before the real release
15
+ - run the real release with `npm run semantic-release` or the repository's equivalent semantic-release script
16
+ - use a Node version compatible with `semantic-release-npm-github-publish` and its semantic-release peer dependencies
@@ -0,0 +1,13 @@
1
+ # Node semantic-release config
2
+
3
+ Use this pattern when a Node package should publish stable releases from `main` and prereleases from `beta`.
4
+
5
+ Prefer the `semantic-release-npm-github-publish` shareable config for the plugin chain. Keep branch policy in repo-local config because the preset is intentionally branch-agnostic for consumers.
6
+
7
+ ## Core points
8
+
9
+ - add `release:dry-run` as `semantic-release --dry-run --no-ci`
10
+ - add `semantic-release` as `semantic-release` if the repository does not already have a release script
11
+ - configure branches for `main` and `{ name: "beta", channel: "beta", prerelease: "beta" }`
12
+ - extend `semantic-release-npm-github-publish` unless the project requires a different plugin composition
13
+ - preserve existing custom plugins only when they represent intentional behavior not covered by the preset
@@ -0,0 +1,47 @@
1
+ # semantic-release-npm-github-publish preset
2
+
3
+ Use `semantic-release-npm-github-publish` as the default release preset for npm + GitHub packages.
4
+
5
+ ## What it provides
6
+
7
+ - a maintained semantic-release shareable configuration
8
+ - changelog generation
9
+ - npm publishing
10
+ - GitHub release publishing
11
+ - release commits for `package.json`, `package-lock.json`, and `CHANGELOG.md`
12
+ - extra patch release rules for maintenance commit types such as `build`, `ci`, `chore`, `docs`, `refactor`, `style`, and `test`
13
+ - tested support for current semantic-release plugin majors on Node 22 and 24
14
+
15
+ ## Install
16
+
17
+ Install the preset plus semantic-release and its peer plugins:
18
+
19
+ ```bash
20
+ npm install --save-dev \
21
+ semantic-release \
22
+ semantic-release-npm-github-publish \
23
+ @semantic-release/changelog \
24
+ @semantic-release/commit-analyzer \
25
+ @semantic-release/git \
26
+ @semantic-release/github \
27
+ @semantic-release/npm \
28
+ @semantic-release/release-notes-generator
29
+ ```
30
+
31
+ ## Repo-local config
32
+
33
+ The preset does not hardcode consumer release branches. Keep branch policy in the target repository:
34
+
35
+ ```yaml
36
+ branches:
37
+ - main
38
+ - name: beta
39
+ channel: beta
40
+ prerelease: beta
41
+ extends: semantic-release-npm-github-publish
42
+ ci: false
43
+ dryRun: false
44
+ debug: false
45
+ ```
46
+
47
+ Use a different local config only when the target repository intentionally needs a different plugin chain, release rules, or upgrade policy.
@@ -0,0 +1,17 @@
1
+ # Validation
2
+
3
+ Prefer these checks:
4
+
5
+ ```bash
6
+ npm test
7
+ npm run build
8
+ npm run release:dry-run
9
+ ```
10
+
11
+ Common failure points:
12
+
13
+ - missing `fetch-depth: 0`
14
+ - invalid or missing `NPM_TOKEN`
15
+ - missing `beta` branch config
16
+ - missing `semantic-release-npm-github-publish` or one of its peer plugins
17
+ - plugin config drifting from actual repo files