@olegkoval/agent-skills 1.1.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/plugin.json +2 -1
- package/.cursor-plugin/index.json +5 -0
- package/catalog/skills.json +23 -0
- package/collections/software-development.json +1 -0
- package/package.json +1 -1
- package/packages/software-development/open-source-publisher/SKILL.md +289 -0
- package/packages/software-development/open-source-publisher/adapters/claude/plugin.json +5 -0
- package/packages/software-development/open-source-publisher/adapters/claude/skills/open-source-publisher/SKILL.md +291 -0
- package/packages/software-development/open-source-publisher/adapters/codex/README.md +3 -0
- package/packages/software-development/open-source-publisher/adapters/cursor/plugin.json +6 -0
- package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +291 -0
- package/packages/software-development/open-source-publisher/agents/openai.yaml +4 -0
|
@@ -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.0
|
|
4
|
+
"version": "1.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Oleg Koval"
|
|
7
7
|
},
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"./packages/software-development/promptctl",
|
|
19
19
|
"./packages/music/fill-music-player",
|
|
20
20
|
"./packages/software-development/product-builder",
|
|
21
|
+
"./packages/software-development/open-source-publisher",
|
|
21
22
|
"./packages/marketing/viral-launch",
|
|
22
23
|
"./packages/marketing/search-console-indexing-audit"
|
|
23
24
|
]
|
|
@@ -46,6 +46,11 @@
|
|
|
46
46
|
"source": "./packages/software-development/product-builder/adapters/cursor",
|
|
47
47
|
"description": "Build a full-stack web application or SaaS product from a user description using production-oriented defaults."
|
|
48
48
|
},
|
|
49
|
+
{
|
|
50
|
+
"name": "olko:open-source-publisher",
|
|
51
|
+
"source": "./packages/software-development/open-source-publisher/adapters/cursor",
|
|
52
|
+
"description": "Prepare an open-source repository for public publishing with a minimal icon, social preview image, GitHub Pages site, README standardization, CI/CD checks, release hygiene, and optional donation setup."
|
|
53
|
+
},
|
|
49
54
|
{
|
|
50
55
|
"name": "olko:viral-launch",
|
|
51
56
|
"source": "./packages/marketing/viral-launch/adapters/cursor",
|
package/catalog/skills.json
CHANGED
|
@@ -177,6 +177,29 @@
|
|
|
177
177
|
"copilot"
|
|
178
178
|
]
|
|
179
179
|
},
|
|
180
|
+
{
|
|
181
|
+
"name": "open-source-publisher",
|
|
182
|
+
"lookupName": "olko:open-source-publisher",
|
|
183
|
+
"category": "software-development",
|
|
184
|
+
"path": "packages/software-development/open-source-publisher",
|
|
185
|
+
"description": "Prepare an open-source repository for public publishing with a minimal icon, social preview image, GitHub Pages site, README standardization, CI/CD checks, release hygiene, and optional donation setup.",
|
|
186
|
+
"tags": [
|
|
187
|
+
"open-source",
|
|
188
|
+
"github",
|
|
189
|
+
"readme",
|
|
190
|
+
"branding",
|
|
191
|
+
"github-pages",
|
|
192
|
+
"ci",
|
|
193
|
+
"release",
|
|
194
|
+
"social-image"
|
|
195
|
+
],
|
|
196
|
+
"adapters": [
|
|
197
|
+
"codex",
|
|
198
|
+
"claude",
|
|
199
|
+
"cursor",
|
|
200
|
+
"copilot"
|
|
201
|
+
]
|
|
202
|
+
},
|
|
180
203
|
{
|
|
181
204
|
"name": "viral-launch",
|
|
182
205
|
"lookupName": "olko:viral-launch",
|
package/package.json
CHANGED
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: open-source-publisher
|
|
3
|
+
description: Prepare an open-source repository for polished public publishing. Use when a user asks to publish, open-source, launch, polish, package, brand, or make a GitHub project presentable with a minimal project icon, social preview image, GitHub Pages landing page, standardized README, essential shields, CI/CD quality gates, release automation checks, and optional donation setup.
|
|
4
|
+
license: MIT
|
|
5
|
+
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository; browser or image rendering tools are useful for visual validation.
|
|
6
|
+
metadata:
|
|
7
|
+
author: Oleg Koval
|
|
8
|
+
tags:
|
|
9
|
+
- open-source
|
|
10
|
+
- github
|
|
11
|
+
- readme
|
|
12
|
+
- branding
|
|
13
|
+
- github-pages
|
|
14
|
+
- ci
|
|
15
|
+
- release
|
|
16
|
+
- social-image
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# open-source-publisher
|
|
20
|
+
|
|
21
|
+
Use this skill to turn a useful OSS repository into a clean public package: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
|
|
22
|
+
|
|
23
|
+
## Workflow
|
|
24
|
+
|
|
25
|
+
1. Inspect the repository before editing:
|
|
26
|
+
- package/tooling files: `go.mod`, `package.json`, `pyproject.toml`, `Cargo.toml`, `Makefile`, etc.
|
|
27
|
+
- current README, docs, website files, images, workflows, releases, license, funding files
|
|
28
|
+
- existing product purpose, author, install paths, examples, and public URLs
|
|
29
|
+
2. Ask only the choices that cannot be inferred:
|
|
30
|
+
- GitHub Pages style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or a custom style.
|
|
31
|
+
- Donations: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
|
|
32
|
+
- If the repo has no clear product essence, ask for a one-sentence positioning statement.
|
|
33
|
+
3. Implement in this order:
|
|
34
|
+
- minimal icon
|
|
35
|
+
- social preview image
|
|
36
|
+
- README standard
|
|
37
|
+
- GitHub Pages landing page
|
|
38
|
+
- CI/CD and release audit/fixes
|
|
39
|
+
- donation wiring, if requested
|
|
40
|
+
4. Validate locally and with browser/screenshots when possible.
|
|
41
|
+
5. Commit/push only when the user asks or the current task explicitly requires it.
|
|
42
|
+
|
|
43
|
+
## Minimal Icon
|
|
44
|
+
|
|
45
|
+
Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
|
|
46
|
+
|
|
47
|
+
Icon rules:
|
|
48
|
+
|
|
49
|
+
- Use one clear metaphor from the project domain, not a collage.
|
|
50
|
+
- Keep the mark readable at 32px.
|
|
51
|
+
- Prefer 1-2 shapes and 1-2 accent colors.
|
|
52
|
+
- Use a simple rounded tile only when it improves favicon readability.
|
|
53
|
+
- Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
|
|
54
|
+
- Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
|
|
55
|
+
|
|
56
|
+
Good icon pattern for sync/migration tools:
|
|
57
|
+
|
|
58
|
+
```svg
|
|
59
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
|
60
|
+
<title id="title">Project logo</title>
|
|
61
|
+
<desc id="desc">Clean sync icon made from two circular arrows.</desc>
|
|
62
|
+
<defs>
|
|
63
|
+
<linearGradient id="topArrow" x1="142" y1="118" x2="392" y2="250" gradientUnits="userSpaceOnUse">
|
|
64
|
+
<stop offset="0%" stop-color="#22c55e"/>
|
|
65
|
+
<stop offset="100%" stop-color="#38bdf8"/>
|
|
66
|
+
</linearGradient>
|
|
67
|
+
<linearGradient id="bottomArrow" x1="370" y1="394" x2="120" y2="262" gradientUnits="userSpaceOnUse">
|
|
68
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
69
|
+
<stop offset="100%" stop-color="#f59e0b"/>
|
|
70
|
+
</linearGradient>
|
|
71
|
+
</defs>
|
|
72
|
+
<rect width="512" height="512" rx="112" fill="#0d1117"/>
|
|
73
|
+
<rect x="42" y="42" width="428" height="428" rx="96" fill="#111827" stroke="#1f2937" stroke-width="8"/>
|
|
74
|
+
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
75
|
+
<path d="M142 234c13-70 74-122 147-122 52 0 99 27 126 69" stroke="url(#topArrow)" stroke-width="42"/>
|
|
76
|
+
<path d="M389 118l35 67-75 4" stroke="url(#topArrow)" stroke-width="42"/>
|
|
77
|
+
<path d="M370 278c-13 70-74 122-147 122-52 0-99-27-126-69" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
78
|
+
<path d="M123 394l-35-67 75-4" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
79
|
+
</g>
|
|
80
|
+
</svg>
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Adapt the geometry and metaphor. Do not reuse the sync arrows for unrelated projects.
|
|
84
|
+
|
|
85
|
+
## Social Image
|
|
86
|
+
|
|
87
|
+
Create a 1200x630 social preview image for GitHub, Twitter/X, Slack, and link unfurls.
|
|
88
|
+
|
|
89
|
+
Recommended files:
|
|
90
|
+
|
|
91
|
+
- `social-card.svg` as the editable source
|
|
92
|
+
- `social-card.png` rendered from the SVG when render tooling is available
|
|
93
|
+
|
|
94
|
+
Social image rules:
|
|
95
|
+
|
|
96
|
+
- Include project name, one clear value proposition, and 2-3 concrete capabilities.
|
|
97
|
+
- Keep the composition simple and calm. Large readable type beats dense feature lists.
|
|
98
|
+
- Use actual project language: commands, package name, supported platform, or primary workflow.
|
|
99
|
+
- Match the icon color system.
|
|
100
|
+
- Keep all text inside a safe margin of at least 64px.
|
|
101
|
+
- Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
|
|
102
|
+
|
|
103
|
+
Render checks:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png
|
|
107
|
+
file social-card.png
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Use `magick` or another renderer when `rsvg-convert` is unavailable.
|
|
111
|
+
|
|
112
|
+
## README Standard
|
|
113
|
+
|
|
114
|
+
Shape the README like the house standard used for Go packages such as `slow-query-detector` and `dcli`.
|
|
115
|
+
|
|
116
|
+
Top block:
|
|
117
|
+
|
|
118
|
+
```html
|
|
119
|
+
<p align="center">
|
|
120
|
+
<a href="..."><img src="..." alt="tests"></a>
|
|
121
|
+
<a href="..."><img src="..." alt="Go Report Card"></a>
|
|
122
|
+
<a href="..."><img src="..." alt="OpenSSF Scorecard"></a>
|
|
123
|
+
</p>
|
|
124
|
+
|
|
125
|
+
<p align="center">
|
|
126
|
+
<img src="./logo.svg" width="120" height="120" alt="project icon">
|
|
127
|
+
</p>
|
|
128
|
+
|
|
129
|
+
<h1 align="center">project-name</h1>
|
|
130
|
+
|
|
131
|
+
<p align="center">
|
|
132
|
+
Short product description<br>
|
|
133
|
+
<strong>One-line promise</strong>
|
|
134
|
+
</p>
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Choose shields from the repo's tech:
|
|
140
|
+
|
|
141
|
+
- always: test workflow badge if a test workflow exists
|
|
142
|
+
- Go: Go Report Card, OpenSSF Scorecard
|
|
143
|
+
- Node/npm: npm version, npm downloads, test workflow, OpenSSF Scorecard
|
|
144
|
+
- Python: PyPI version, Python versions, test workflow, OpenSSF Scorecard
|
|
145
|
+
- coverage: only include if coverage service is configured
|
|
146
|
+
- release: only include if releases are automated and meaningful
|
|
147
|
+
|
|
148
|
+
Recommended README sections:
|
|
149
|
+
|
|
150
|
+
1. Features
|
|
151
|
+
2. Installation
|
|
152
|
+
3. Quick Start
|
|
153
|
+
4. Configuration
|
|
154
|
+
5. Commands Reference or API Reference
|
|
155
|
+
6. System Requirements
|
|
156
|
+
7. Documentation
|
|
157
|
+
8. Use Cases
|
|
158
|
+
9. Architecture
|
|
159
|
+
10. Project Status
|
|
160
|
+
11. Security Notes
|
|
161
|
+
12. Contributing
|
|
162
|
+
13. License
|
|
163
|
+
14. Author
|
|
164
|
+
15. centered footer links
|
|
165
|
+
|
|
166
|
+
Rules:
|
|
167
|
+
|
|
168
|
+
- Keep badges centered and compact.
|
|
169
|
+
- Keep the icon centered below shields.
|
|
170
|
+
- Put a horizontal rule after the centered intro.
|
|
171
|
+
- Use current release/download URLs; prefer `/releases/latest/download/...` when stable asset names exist.
|
|
172
|
+
- Do not claim coverage, license, support, CI, or releases that are not actually present.
|
|
173
|
+
- Add or fix `LICENSE` before saying MIT/Apache/etc.
|
|
174
|
+
|
|
175
|
+
## GitHub Pages
|
|
176
|
+
|
|
177
|
+
Create a simple essential GitHub Pages site when the project lacks one or the existing one is weak.
|
|
178
|
+
|
|
179
|
+
Ask the user to choose one style first:
|
|
180
|
+
|
|
181
|
+
- `oldschool linux`
|
|
182
|
+
- `terminal`
|
|
183
|
+
- `modern`
|
|
184
|
+
- `brutalist`
|
|
185
|
+
- `glassmorphism`
|
|
186
|
+
- `y2k`
|
|
187
|
+
- `hacker`
|
|
188
|
+
- custom style
|
|
189
|
+
|
|
190
|
+
Required page content:
|
|
191
|
+
|
|
192
|
+
- project name and icon
|
|
193
|
+
- one-sentence value proposition
|
|
194
|
+
- author link
|
|
195
|
+
- install/download instructions
|
|
196
|
+
- 2-4 short examples
|
|
197
|
+
- feature summary
|
|
198
|
+
- links to GitHub, README, releases, issues
|
|
199
|
+
- SEO meta description and keywords
|
|
200
|
+
- Open Graph and Twitter meta tags
|
|
201
|
+
- social image reference
|
|
202
|
+
- footer with license and optional donation/badge links
|
|
203
|
+
|
|
204
|
+
Implementation defaults:
|
|
205
|
+
|
|
206
|
+
- Use a static `index.html` unless the repo already has a site framework.
|
|
207
|
+
- Add `CNAME` only when the user gives a domain.
|
|
208
|
+
- Add `.github/workflows/pages.yml` when Pages uses GitHub Actions or no deploy path exists.
|
|
209
|
+
- Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
|
|
210
|
+
- Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
|
|
211
|
+
|
|
212
|
+
## CI/CD And Release Audit
|
|
213
|
+
|
|
214
|
+
Check whether the repository has:
|
|
215
|
+
|
|
216
|
+
- formatter check
|
|
217
|
+
- linter/static analysis
|
|
218
|
+
- tests
|
|
219
|
+
- build/package check
|
|
220
|
+
- security scan or OpenSSF Scorecard where appropriate
|
|
221
|
+
- release automation
|
|
222
|
+
- docs/site-only path filters when release runs on `main`
|
|
223
|
+
|
|
224
|
+
For Go projects, prefer:
|
|
225
|
+
|
|
226
|
+
```yaml
|
|
227
|
+
- go test ./... -race
|
|
228
|
+
- go vet ./...
|
|
229
|
+
- gofmt check
|
|
230
|
+
- staticcheck ./...
|
|
231
|
+
- go build ./...
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
For Node projects, prefer existing package manager scripts:
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
npm ci
|
|
238
|
+
npm run lint
|
|
239
|
+
npm test
|
|
240
|
+
npm run build
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
Release automation rules:
|
|
244
|
+
|
|
245
|
+
- Inspect existing release flow before changing it.
|
|
246
|
+
- Do not create releases for docs/site-only changes.
|
|
247
|
+
- Make Homebrew/package formulas update from real release artifacts and checksums.
|
|
248
|
+
- Use least-privilege secrets and document required secret names.
|
|
249
|
+
- If automation pushes tags, guard against rerun/version reuse.
|
|
250
|
+
|
|
251
|
+
## Donations
|
|
252
|
+
|
|
253
|
+
Ask whether the user wants donations enabled.
|
|
254
|
+
|
|
255
|
+
If yes:
|
|
256
|
+
|
|
257
|
+
1. Ask for provider and URL/handle if not inferable.
|
|
258
|
+
2. Add `.github/FUNDING.yml` for GitHub-supported providers.
|
|
259
|
+
3. Add a short README Support section or footer link.
|
|
260
|
+
4. Add site footer/link only if the project has a site.
|
|
261
|
+
5. Do not invent payment handles.
|
|
262
|
+
|
|
263
|
+
Provider hints:
|
|
264
|
+
|
|
265
|
+
```yaml
|
|
266
|
+
github: username
|
|
267
|
+
ko_fi: handle
|
|
268
|
+
custom:
|
|
269
|
+
- https://example.com/support
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
## Validation
|
|
273
|
+
|
|
274
|
+
Run the checks that match the edits:
|
|
275
|
+
|
|
276
|
+
- SVG syntax: `xmllint --noout logo.svg social-card.svg`
|
|
277
|
+
- Render social image: `rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png`
|
|
278
|
+
- README links and badge URLs where practical: `curl -I`
|
|
279
|
+
- Site render: local static server plus browser/screenshot when available
|
|
280
|
+
- Repo tests/build/lint
|
|
281
|
+
- Workflow YAML parse, for example with Ruby: `ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'`
|
|
282
|
+
- `git diff --check`
|
|
283
|
+
|
|
284
|
+
Before final response, state:
|
|
285
|
+
|
|
286
|
+
- files changed
|
|
287
|
+
- validation commands run
|
|
288
|
+
- release/donation caveats
|
|
289
|
+
- any secrets the user must configure
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "olko-open-source-publisher",
|
|
3
|
+
"description": "Prepare an open-source repository for public publishing with a minimal icon, social preview image, GitHub Pages site, README standardization, CI/CD checks, release hygiene, and optional donation setup.",
|
|
4
|
+
"skills": "./skills"
|
|
5
|
+
}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: open-source-publisher
|
|
5
|
+
description: Prepare an open-source repository for polished public publishing. Use when a user asks to publish, open-source, launch, polish, package, brand, or make a GitHub project presentable with a minimal project icon, social preview image, GitHub Pages landing page, standardized README, essential shields, CI/CD quality gates, release automation checks, and optional donation setup.
|
|
6
|
+
license: MIT
|
|
7
|
+
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository; browser or image rendering tools are useful for visual validation.
|
|
8
|
+
metadata:
|
|
9
|
+
author: Oleg Koval
|
|
10
|
+
tags:
|
|
11
|
+
- open-source
|
|
12
|
+
- github
|
|
13
|
+
- readme
|
|
14
|
+
- branding
|
|
15
|
+
- github-pages
|
|
16
|
+
- ci
|
|
17
|
+
- release
|
|
18
|
+
- social-image
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# open-source-publisher
|
|
22
|
+
|
|
23
|
+
Use this skill to turn a useful OSS repository into a clean public package: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. Inspect the repository before editing:
|
|
28
|
+
- package/tooling files: `go.mod`, `package.json`, `pyproject.toml`, `Cargo.toml`, `Makefile`, etc.
|
|
29
|
+
- current README, docs, website files, images, workflows, releases, license, funding files
|
|
30
|
+
- existing product purpose, author, install paths, examples, and public URLs
|
|
31
|
+
2. Ask only the choices that cannot be inferred:
|
|
32
|
+
- GitHub Pages style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or a custom style.
|
|
33
|
+
- Donations: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
|
|
34
|
+
- If the repo has no clear product essence, ask for a one-sentence positioning statement.
|
|
35
|
+
3. Implement in this order:
|
|
36
|
+
- minimal icon
|
|
37
|
+
- social preview image
|
|
38
|
+
- README standard
|
|
39
|
+
- GitHub Pages landing page
|
|
40
|
+
- CI/CD and release audit/fixes
|
|
41
|
+
- donation wiring, if requested
|
|
42
|
+
4. Validate locally and with browser/screenshots when possible.
|
|
43
|
+
5. Commit/push only when the user asks or the current task explicitly requires it.
|
|
44
|
+
|
|
45
|
+
## Minimal Icon
|
|
46
|
+
|
|
47
|
+
Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
|
|
48
|
+
|
|
49
|
+
Icon rules:
|
|
50
|
+
|
|
51
|
+
- Use one clear metaphor from the project domain, not a collage.
|
|
52
|
+
- Keep the mark readable at 32px.
|
|
53
|
+
- Prefer 1-2 shapes and 1-2 accent colors.
|
|
54
|
+
- Use a simple rounded tile only when it improves favicon readability.
|
|
55
|
+
- Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
|
|
56
|
+
- Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
|
|
57
|
+
|
|
58
|
+
Good icon pattern for sync/migration tools:
|
|
59
|
+
|
|
60
|
+
```svg
|
|
61
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
|
62
|
+
<title id="title">Project logo</title>
|
|
63
|
+
<desc id="desc">Clean sync icon made from two circular arrows.</desc>
|
|
64
|
+
<defs>
|
|
65
|
+
<linearGradient id="topArrow" x1="142" y1="118" x2="392" y2="250" gradientUnits="userSpaceOnUse">
|
|
66
|
+
<stop offset="0%" stop-color="#22c55e"/>
|
|
67
|
+
<stop offset="100%" stop-color="#38bdf8"/>
|
|
68
|
+
</linearGradient>
|
|
69
|
+
<linearGradient id="bottomArrow" x1="370" y1="394" x2="120" y2="262" gradientUnits="userSpaceOnUse">
|
|
70
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
71
|
+
<stop offset="100%" stop-color="#f59e0b"/>
|
|
72
|
+
</linearGradient>
|
|
73
|
+
</defs>
|
|
74
|
+
<rect width="512" height="512" rx="112" fill="#0d1117"/>
|
|
75
|
+
<rect x="42" y="42" width="428" height="428" rx="96" fill="#111827" stroke="#1f2937" stroke-width="8"/>
|
|
76
|
+
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
77
|
+
<path d="M142 234c13-70 74-122 147-122 52 0 99 27 126 69" stroke="url(#topArrow)" stroke-width="42"/>
|
|
78
|
+
<path d="M389 118l35 67-75 4" stroke="url(#topArrow)" stroke-width="42"/>
|
|
79
|
+
<path d="M370 278c-13 70-74 122-147 122-52 0-99-27-126-69" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
80
|
+
<path d="M123 394l-35-67 75-4" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
81
|
+
</g>
|
|
82
|
+
</svg>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Adapt the geometry and metaphor. Do not reuse the sync arrows for unrelated projects.
|
|
86
|
+
|
|
87
|
+
## Social Image
|
|
88
|
+
|
|
89
|
+
Create a 1200x630 social preview image for GitHub, Twitter/X, Slack, and link unfurls.
|
|
90
|
+
|
|
91
|
+
Recommended files:
|
|
92
|
+
|
|
93
|
+
- `social-card.svg` as the editable source
|
|
94
|
+
- `social-card.png` rendered from the SVG when render tooling is available
|
|
95
|
+
|
|
96
|
+
Social image rules:
|
|
97
|
+
|
|
98
|
+
- Include project name, one clear value proposition, and 2-3 concrete capabilities.
|
|
99
|
+
- Keep the composition simple and calm. Large readable type beats dense feature lists.
|
|
100
|
+
- Use actual project language: commands, package name, supported platform, or primary workflow.
|
|
101
|
+
- Match the icon color system.
|
|
102
|
+
- Keep all text inside a safe margin of at least 64px.
|
|
103
|
+
- Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
|
|
104
|
+
|
|
105
|
+
Render checks:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png
|
|
109
|
+
file social-card.png
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Use `magick` or another renderer when `rsvg-convert` is unavailable.
|
|
113
|
+
|
|
114
|
+
## README Standard
|
|
115
|
+
|
|
116
|
+
Shape the README like the house standard used for Go packages such as `slow-query-detector` and `dcli`.
|
|
117
|
+
|
|
118
|
+
Top block:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<p align="center">
|
|
122
|
+
<a href="..."><img src="..." alt="tests"></a>
|
|
123
|
+
<a href="..."><img src="..." alt="Go Report Card"></a>
|
|
124
|
+
<a href="..."><img src="..." alt="OpenSSF Scorecard"></a>
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
<p align="center">
|
|
128
|
+
<img src="./logo.svg" width="120" height="120" alt="project icon">
|
|
129
|
+
</p>
|
|
130
|
+
|
|
131
|
+
<h1 align="center">project-name</h1>
|
|
132
|
+
|
|
133
|
+
<p align="center">
|
|
134
|
+
Short product description<br>
|
|
135
|
+
<strong>One-line promise</strong>
|
|
136
|
+
</p>
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Choose shields from the repo's tech:
|
|
142
|
+
|
|
143
|
+
- always: test workflow badge if a test workflow exists
|
|
144
|
+
- Go: Go Report Card, OpenSSF Scorecard
|
|
145
|
+
- Node/npm: npm version, npm downloads, test workflow, OpenSSF Scorecard
|
|
146
|
+
- Python: PyPI version, Python versions, test workflow, OpenSSF Scorecard
|
|
147
|
+
- coverage: only include if coverage service is configured
|
|
148
|
+
- release: only include if releases are automated and meaningful
|
|
149
|
+
|
|
150
|
+
Recommended README sections:
|
|
151
|
+
|
|
152
|
+
1. Features
|
|
153
|
+
2. Installation
|
|
154
|
+
3. Quick Start
|
|
155
|
+
4. Configuration
|
|
156
|
+
5. Commands Reference or API Reference
|
|
157
|
+
6. System Requirements
|
|
158
|
+
7. Documentation
|
|
159
|
+
8. Use Cases
|
|
160
|
+
9. Architecture
|
|
161
|
+
10. Project Status
|
|
162
|
+
11. Security Notes
|
|
163
|
+
12. Contributing
|
|
164
|
+
13. License
|
|
165
|
+
14. Author
|
|
166
|
+
15. centered footer links
|
|
167
|
+
|
|
168
|
+
Rules:
|
|
169
|
+
|
|
170
|
+
- Keep badges centered and compact.
|
|
171
|
+
- Keep the icon centered below shields.
|
|
172
|
+
- Put a horizontal rule after the centered intro.
|
|
173
|
+
- Use current release/download URLs; prefer `/releases/latest/download/...` when stable asset names exist.
|
|
174
|
+
- Do not claim coverage, license, support, CI, or releases that are not actually present.
|
|
175
|
+
- Add or fix `LICENSE` before saying MIT/Apache/etc.
|
|
176
|
+
|
|
177
|
+
## GitHub Pages
|
|
178
|
+
|
|
179
|
+
Create a simple essential GitHub Pages site when the project lacks one or the existing one is weak.
|
|
180
|
+
|
|
181
|
+
Ask the user to choose one style first:
|
|
182
|
+
|
|
183
|
+
- `oldschool linux`
|
|
184
|
+
- `terminal`
|
|
185
|
+
- `modern`
|
|
186
|
+
- `brutalist`
|
|
187
|
+
- `glassmorphism`
|
|
188
|
+
- `y2k`
|
|
189
|
+
- `hacker`
|
|
190
|
+
- custom style
|
|
191
|
+
|
|
192
|
+
Required page content:
|
|
193
|
+
|
|
194
|
+
- project name and icon
|
|
195
|
+
- one-sentence value proposition
|
|
196
|
+
- author link
|
|
197
|
+
- install/download instructions
|
|
198
|
+
- 2-4 short examples
|
|
199
|
+
- feature summary
|
|
200
|
+
- links to GitHub, README, releases, issues
|
|
201
|
+
- SEO meta description and keywords
|
|
202
|
+
- Open Graph and Twitter meta tags
|
|
203
|
+
- social image reference
|
|
204
|
+
- footer with license and optional donation/badge links
|
|
205
|
+
|
|
206
|
+
Implementation defaults:
|
|
207
|
+
|
|
208
|
+
- Use a static `index.html` unless the repo already has a site framework.
|
|
209
|
+
- Add `CNAME` only when the user gives a domain.
|
|
210
|
+
- Add `.github/workflows/pages.yml` when Pages uses GitHub Actions or no deploy path exists.
|
|
211
|
+
- Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
|
|
212
|
+
- Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
|
|
213
|
+
|
|
214
|
+
## CI/CD And Release Audit
|
|
215
|
+
|
|
216
|
+
Check whether the repository has:
|
|
217
|
+
|
|
218
|
+
- formatter check
|
|
219
|
+
- linter/static analysis
|
|
220
|
+
- tests
|
|
221
|
+
- build/package check
|
|
222
|
+
- security scan or OpenSSF Scorecard where appropriate
|
|
223
|
+
- release automation
|
|
224
|
+
- docs/site-only path filters when release runs on `main`
|
|
225
|
+
|
|
226
|
+
For Go projects, prefer:
|
|
227
|
+
|
|
228
|
+
```yaml
|
|
229
|
+
- go test ./... -race
|
|
230
|
+
- go vet ./...
|
|
231
|
+
- gofmt check
|
|
232
|
+
- staticcheck ./...
|
|
233
|
+
- go build ./...
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
For Node projects, prefer existing package manager scripts:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
npm ci
|
|
240
|
+
npm run lint
|
|
241
|
+
npm test
|
|
242
|
+
npm run build
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Release automation rules:
|
|
246
|
+
|
|
247
|
+
- Inspect existing release flow before changing it.
|
|
248
|
+
- Do not create releases for docs/site-only changes.
|
|
249
|
+
- Make Homebrew/package formulas update from real release artifacts and checksums.
|
|
250
|
+
- Use least-privilege secrets and document required secret names.
|
|
251
|
+
- If automation pushes tags, guard against rerun/version reuse.
|
|
252
|
+
|
|
253
|
+
## Donations
|
|
254
|
+
|
|
255
|
+
Ask whether the user wants donations enabled.
|
|
256
|
+
|
|
257
|
+
If yes:
|
|
258
|
+
|
|
259
|
+
1. Ask for provider and URL/handle if not inferable.
|
|
260
|
+
2. Add `.github/FUNDING.yml` for GitHub-supported providers.
|
|
261
|
+
3. Add a short README Support section or footer link.
|
|
262
|
+
4. Add site footer/link only if the project has a site.
|
|
263
|
+
5. Do not invent payment handles.
|
|
264
|
+
|
|
265
|
+
Provider hints:
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
github: username
|
|
269
|
+
ko_fi: handle
|
|
270
|
+
custom:
|
|
271
|
+
- https://example.com/support
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Validation
|
|
275
|
+
|
|
276
|
+
Run the checks that match the edits:
|
|
277
|
+
|
|
278
|
+
- SVG syntax: `xmllint --noout logo.svg social-card.svg`
|
|
279
|
+
- Render social image: `rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png`
|
|
280
|
+
- README links and badge URLs where practical: `curl -I`
|
|
281
|
+
- Site render: local static server plus browser/screenshot when available
|
|
282
|
+
- Repo tests/build/lint
|
|
283
|
+
- Workflow YAML parse, for example with Ruby: `ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'`
|
|
284
|
+
- `git diff --check`
|
|
285
|
+
|
|
286
|
+
Before final response, state:
|
|
287
|
+
|
|
288
|
+
- files changed
|
|
289
|
+
- validation commands run
|
|
290
|
+
- release/donation caveats
|
|
291
|
+
- any secrets the user must configure
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "olko:open-source-publisher",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Prepare an open-source repository for public publishing with a minimal icon, social preview image, GitHub Pages site, README standardization, CI/CD checks, release hygiene, and optional donation setup.",
|
|
5
|
+
"skills": "skills/"
|
|
6
|
+
}
|
|
@@ -0,0 +1,291 @@
|
|
|
1
|
+
<!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
|
|
2
|
+
|
|
3
|
+
---
|
|
4
|
+
name: open-source-publisher
|
|
5
|
+
description: Prepare an open-source repository for polished public publishing. Use when a user asks to publish, open-source, launch, polish, package, brand, or make a GitHub project presentable with a minimal project icon, social preview image, GitHub Pages landing page, standardized README, essential shields, CI/CD quality gates, release automation checks, and optional donation setup.
|
|
6
|
+
license: MIT
|
|
7
|
+
compatibility: Codex, Claude Code, Cursor, and other Agent Skills compatible tools. Requires a writable git repository; browser or image rendering tools are useful for visual validation.
|
|
8
|
+
metadata:
|
|
9
|
+
author: Oleg Koval
|
|
10
|
+
tags:
|
|
11
|
+
- open-source
|
|
12
|
+
- github
|
|
13
|
+
- readme
|
|
14
|
+
- branding
|
|
15
|
+
- github-pages
|
|
16
|
+
- ci
|
|
17
|
+
- release
|
|
18
|
+
- social-image
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
# open-source-publisher
|
|
22
|
+
|
|
23
|
+
Use this skill to turn a useful OSS repository into a clean public package: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
|
|
24
|
+
|
|
25
|
+
## Workflow
|
|
26
|
+
|
|
27
|
+
1. Inspect the repository before editing:
|
|
28
|
+
- package/tooling files: `go.mod`, `package.json`, `pyproject.toml`, `Cargo.toml`, `Makefile`, etc.
|
|
29
|
+
- current README, docs, website files, images, workflows, releases, license, funding files
|
|
30
|
+
- existing product purpose, author, install paths, examples, and public URLs
|
|
31
|
+
2. Ask only the choices that cannot be inferred:
|
|
32
|
+
- GitHub Pages style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or a custom style.
|
|
33
|
+
- Donations: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
|
|
34
|
+
- If the repo has no clear product essence, ask for a one-sentence positioning statement.
|
|
35
|
+
3. Implement in this order:
|
|
36
|
+
- minimal icon
|
|
37
|
+
- social preview image
|
|
38
|
+
- README standard
|
|
39
|
+
- GitHub Pages landing page
|
|
40
|
+
- CI/CD and release audit/fixes
|
|
41
|
+
- donation wiring, if requested
|
|
42
|
+
4. Validate locally and with browser/screenshots when possible.
|
|
43
|
+
5. Commit/push only when the user asks or the current task explicitly requires it.
|
|
44
|
+
|
|
45
|
+
## Minimal Icon
|
|
46
|
+
|
|
47
|
+
Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg`; add `logo.png` only when a platform requires raster output.
|
|
48
|
+
|
|
49
|
+
Icon rules:
|
|
50
|
+
|
|
51
|
+
- Use one clear metaphor from the project domain, not a collage.
|
|
52
|
+
- Keep the mark readable at 32px.
|
|
53
|
+
- Prefer 1-2 shapes and 1-2 accent colors.
|
|
54
|
+
- Use a simple rounded tile only when it improves favicon readability.
|
|
55
|
+
- Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
|
|
56
|
+
- Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
|
|
57
|
+
|
|
58
|
+
Good icon pattern for sync/migration tools:
|
|
59
|
+
|
|
60
|
+
```svg
|
|
61
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
|
|
62
|
+
<title id="title">Project logo</title>
|
|
63
|
+
<desc id="desc">Clean sync icon made from two circular arrows.</desc>
|
|
64
|
+
<defs>
|
|
65
|
+
<linearGradient id="topArrow" x1="142" y1="118" x2="392" y2="250" gradientUnits="userSpaceOnUse">
|
|
66
|
+
<stop offset="0%" stop-color="#22c55e"/>
|
|
67
|
+
<stop offset="100%" stop-color="#38bdf8"/>
|
|
68
|
+
</linearGradient>
|
|
69
|
+
<linearGradient id="bottomArrow" x1="370" y1="394" x2="120" y2="262" gradientUnits="userSpaceOnUse">
|
|
70
|
+
<stop offset="0%" stop-color="#fb7185"/>
|
|
71
|
+
<stop offset="100%" stop-color="#f59e0b"/>
|
|
72
|
+
</linearGradient>
|
|
73
|
+
</defs>
|
|
74
|
+
<rect width="512" height="512" rx="112" fill="#0d1117"/>
|
|
75
|
+
<rect x="42" y="42" width="428" height="428" rx="96" fill="#111827" stroke="#1f2937" stroke-width="8"/>
|
|
76
|
+
<g fill="none" stroke-linecap="round" stroke-linejoin="round">
|
|
77
|
+
<path d="M142 234c13-70 74-122 147-122 52 0 99 27 126 69" stroke="url(#topArrow)" stroke-width="42"/>
|
|
78
|
+
<path d="M389 118l35 67-75 4" stroke="url(#topArrow)" stroke-width="42"/>
|
|
79
|
+
<path d="M370 278c-13 70-74 122-147 122-52 0-99-27-126-69" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
80
|
+
<path d="M123 394l-35-67 75-4" stroke="url(#bottomArrow)" stroke-width="42"/>
|
|
81
|
+
</g>
|
|
82
|
+
</svg>
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Adapt the geometry and metaphor. Do not reuse the sync arrows for unrelated projects.
|
|
86
|
+
|
|
87
|
+
## Social Image
|
|
88
|
+
|
|
89
|
+
Create a 1200x630 social preview image for GitHub, Twitter/X, Slack, and link unfurls.
|
|
90
|
+
|
|
91
|
+
Recommended files:
|
|
92
|
+
|
|
93
|
+
- `social-card.svg` as the editable source
|
|
94
|
+
- `social-card.png` rendered from the SVG when render tooling is available
|
|
95
|
+
|
|
96
|
+
Social image rules:
|
|
97
|
+
|
|
98
|
+
- Include project name, one clear value proposition, and 2-3 concrete capabilities.
|
|
99
|
+
- Keep the composition simple and calm. Large readable type beats dense feature lists.
|
|
100
|
+
- Use actual project language: commands, package name, supported platform, or primary workflow.
|
|
101
|
+
- Match the icon color system.
|
|
102
|
+
- Keep all text inside a safe margin of at least 64px.
|
|
103
|
+
- Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
|
|
104
|
+
|
|
105
|
+
Render checks:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png
|
|
109
|
+
file social-card.png
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Use `magick` or another renderer when `rsvg-convert` is unavailable.
|
|
113
|
+
|
|
114
|
+
## README Standard
|
|
115
|
+
|
|
116
|
+
Shape the README like the house standard used for Go packages such as `slow-query-detector` and `dcli`.
|
|
117
|
+
|
|
118
|
+
Top block:
|
|
119
|
+
|
|
120
|
+
```html
|
|
121
|
+
<p align="center">
|
|
122
|
+
<a href="..."><img src="..." alt="tests"></a>
|
|
123
|
+
<a href="..."><img src="..." alt="Go Report Card"></a>
|
|
124
|
+
<a href="..."><img src="..." alt="OpenSSF Scorecard"></a>
|
|
125
|
+
</p>
|
|
126
|
+
|
|
127
|
+
<p align="center">
|
|
128
|
+
<img src="./logo.svg" width="120" height="120" alt="project icon">
|
|
129
|
+
</p>
|
|
130
|
+
|
|
131
|
+
<h1 align="center">project-name</h1>
|
|
132
|
+
|
|
133
|
+
<p align="center">
|
|
134
|
+
Short product description<br>
|
|
135
|
+
<strong>One-line promise</strong>
|
|
136
|
+
</p>
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Choose shields from the repo's tech:
|
|
142
|
+
|
|
143
|
+
- always: test workflow badge if a test workflow exists
|
|
144
|
+
- Go: Go Report Card, OpenSSF Scorecard
|
|
145
|
+
- Node/npm: npm version, npm downloads, test workflow, OpenSSF Scorecard
|
|
146
|
+
- Python: PyPI version, Python versions, test workflow, OpenSSF Scorecard
|
|
147
|
+
- coverage: only include if coverage service is configured
|
|
148
|
+
- release: only include if releases are automated and meaningful
|
|
149
|
+
|
|
150
|
+
Recommended README sections:
|
|
151
|
+
|
|
152
|
+
1. Features
|
|
153
|
+
2. Installation
|
|
154
|
+
3. Quick Start
|
|
155
|
+
4. Configuration
|
|
156
|
+
5. Commands Reference or API Reference
|
|
157
|
+
6. System Requirements
|
|
158
|
+
7. Documentation
|
|
159
|
+
8. Use Cases
|
|
160
|
+
9. Architecture
|
|
161
|
+
10. Project Status
|
|
162
|
+
11. Security Notes
|
|
163
|
+
12. Contributing
|
|
164
|
+
13. License
|
|
165
|
+
14. Author
|
|
166
|
+
15. centered footer links
|
|
167
|
+
|
|
168
|
+
Rules:
|
|
169
|
+
|
|
170
|
+
- Keep badges centered and compact.
|
|
171
|
+
- Keep the icon centered below shields.
|
|
172
|
+
- Put a horizontal rule after the centered intro.
|
|
173
|
+
- Use current release/download URLs; prefer `/releases/latest/download/...` when stable asset names exist.
|
|
174
|
+
- Do not claim coverage, license, support, CI, or releases that are not actually present.
|
|
175
|
+
- Add or fix `LICENSE` before saying MIT/Apache/etc.
|
|
176
|
+
|
|
177
|
+
## GitHub Pages
|
|
178
|
+
|
|
179
|
+
Create a simple essential GitHub Pages site when the project lacks one or the existing one is weak.
|
|
180
|
+
|
|
181
|
+
Ask the user to choose one style first:
|
|
182
|
+
|
|
183
|
+
- `oldschool linux`
|
|
184
|
+
- `terminal`
|
|
185
|
+
- `modern`
|
|
186
|
+
- `brutalist`
|
|
187
|
+
- `glassmorphism`
|
|
188
|
+
- `y2k`
|
|
189
|
+
- `hacker`
|
|
190
|
+
- custom style
|
|
191
|
+
|
|
192
|
+
Required page content:
|
|
193
|
+
|
|
194
|
+
- project name and icon
|
|
195
|
+
- one-sentence value proposition
|
|
196
|
+
- author link
|
|
197
|
+
- install/download instructions
|
|
198
|
+
- 2-4 short examples
|
|
199
|
+
- feature summary
|
|
200
|
+
- links to GitHub, README, releases, issues
|
|
201
|
+
- SEO meta description and keywords
|
|
202
|
+
- Open Graph and Twitter meta tags
|
|
203
|
+
- social image reference
|
|
204
|
+
- footer with license and optional donation/badge links
|
|
205
|
+
|
|
206
|
+
Implementation defaults:
|
|
207
|
+
|
|
208
|
+
- Use a static `index.html` unless the repo already has a site framework.
|
|
209
|
+
- Add `CNAME` only when the user gives a domain.
|
|
210
|
+
- Add `.github/workflows/pages.yml` when Pages uses GitHub Actions or no deploy path exists.
|
|
211
|
+
- Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
|
|
212
|
+
- Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
|
|
213
|
+
|
|
214
|
+
## CI/CD And Release Audit
|
|
215
|
+
|
|
216
|
+
Check whether the repository has:
|
|
217
|
+
|
|
218
|
+
- formatter check
|
|
219
|
+
- linter/static analysis
|
|
220
|
+
- tests
|
|
221
|
+
- build/package check
|
|
222
|
+
- security scan or OpenSSF Scorecard where appropriate
|
|
223
|
+
- release automation
|
|
224
|
+
- docs/site-only path filters when release runs on `main`
|
|
225
|
+
|
|
226
|
+
For Go projects, prefer:
|
|
227
|
+
|
|
228
|
+
```yaml
|
|
229
|
+
- go test ./... -race
|
|
230
|
+
- go vet ./...
|
|
231
|
+
- gofmt check
|
|
232
|
+
- staticcheck ./...
|
|
233
|
+
- go build ./...
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
For Node projects, prefer existing package manager scripts:
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
npm ci
|
|
240
|
+
npm run lint
|
|
241
|
+
npm test
|
|
242
|
+
npm run build
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Release automation rules:
|
|
246
|
+
|
|
247
|
+
- Inspect existing release flow before changing it.
|
|
248
|
+
- Do not create releases for docs/site-only changes.
|
|
249
|
+
- Make Homebrew/package formulas update from real release artifacts and checksums.
|
|
250
|
+
- Use least-privilege secrets and document required secret names.
|
|
251
|
+
- If automation pushes tags, guard against rerun/version reuse.
|
|
252
|
+
|
|
253
|
+
## Donations
|
|
254
|
+
|
|
255
|
+
Ask whether the user wants donations enabled.
|
|
256
|
+
|
|
257
|
+
If yes:
|
|
258
|
+
|
|
259
|
+
1. Ask for provider and URL/handle if not inferable.
|
|
260
|
+
2. Add `.github/FUNDING.yml` for GitHub-supported providers.
|
|
261
|
+
3. Add a short README Support section or footer link.
|
|
262
|
+
4. Add site footer/link only if the project has a site.
|
|
263
|
+
5. Do not invent payment handles.
|
|
264
|
+
|
|
265
|
+
Provider hints:
|
|
266
|
+
|
|
267
|
+
```yaml
|
|
268
|
+
github: username
|
|
269
|
+
ko_fi: handle
|
|
270
|
+
custom:
|
|
271
|
+
- https://example.com/support
|
|
272
|
+
```
|
|
273
|
+
|
|
274
|
+
## Validation
|
|
275
|
+
|
|
276
|
+
Run the checks that match the edits:
|
|
277
|
+
|
|
278
|
+
- SVG syntax: `xmllint --noout logo.svg social-card.svg`
|
|
279
|
+
- Render social image: `rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png`
|
|
280
|
+
- README links and badge URLs where practical: `curl -I`
|
|
281
|
+
- Site render: local static server plus browser/screenshot when available
|
|
282
|
+
- Repo tests/build/lint
|
|
283
|
+
- Workflow YAML parse, for example with Ruby: `ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'`
|
|
284
|
+
- `git diff --check`
|
|
285
|
+
|
|
286
|
+
Before final response, state:
|
|
287
|
+
|
|
288
|
+
- files changed
|
|
289
|
+
- validation commands run
|
|
290
|
+
- release/donation caveats
|
|
291
|
+
- any secrets the user must configure
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
interface:
|
|
2
|
+
display_name: "Open Source Publisher"
|
|
3
|
+
short_description: "Prepare an OSS repository for polished public publishing."
|
|
4
|
+
default_prompt: "Use open-source-publisher to prepare this repository for public release with a minimal icon, social image, GitHub Pages site, README standardization, CI/CD checks, and optional donation setup."
|