@olegkoval/agent-skills 1.5.1 → 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 (125) hide show
  1. package/.claude-plugin/plugin.json +3 -2
  2. package/.cursor-plugin/index.json +5 -0
  3. package/.kiro/steering/add-to-my-skills.md +78 -0
  4. package/.kiro/steering/ai-tools-setup.md +263 -0
  5. package/.kiro/steering/changelog-generator.md +106 -0
  6. package/.kiro/steering/cloudflare-block-countries.md +167 -0
  7. package/.kiro/steering/docs-index-keeper.md +53 -0
  8. package/.kiro/steering/fill-music-player.md +101 -0
  9. package/.kiro/steering/gallery.md +228 -0
  10. package/.kiro/steering/gh-cli.md +2190 -0
  11. package/.kiro/steering/git-commit.md +125 -0
  12. package/.kiro/steering/open-source-publisher.md +427 -0
  13. package/.kiro/steering/product-builder.md +213 -0
  14. package/.kiro/steering/promptctl.md +81 -0
  15. package/.kiro/steering/search-console-indexing-audit.md +57 -0
  16. package/.kiro/steering/semantic-release-beta.md +48 -0
  17. package/.kiro/steering/starter-rules.md +62 -0
  18. package/.kiro/steering/viral-launch.md +92 -0
  19. package/.windsurf/rules/add-to-my-skills.md +77 -0
  20. package/.windsurf/rules/ai-tools-setup.md +262 -0
  21. package/.windsurf/rules/changelog-generator.md +105 -0
  22. package/.windsurf/rules/cloudflare-block-countries.md +166 -0
  23. package/.windsurf/rules/docs-index-keeper.md +52 -0
  24. package/.windsurf/rules/fill-music-player.md +100 -0
  25. package/.windsurf/rules/gallery.md +227 -0
  26. package/.windsurf/rules/gh-cli.md +2189 -0
  27. package/.windsurf/rules/git-commit.md +124 -0
  28. package/.windsurf/rules/open-source-publisher.md +426 -0
  29. package/.windsurf/rules/product-builder.md +212 -0
  30. package/.windsurf/rules/promptctl.md +80 -0
  31. package/.windsurf/rules/search-console-indexing-audit.md +56 -0
  32. package/.windsurf/rules/semantic-release-beta.md +47 -0
  33. package/.windsurf/rules/starter-rules.md +61 -0
  34. package/.windsurf/rules/viral-launch.md +91 -0
  35. package/README.md +67 -14
  36. package/catalog/skills.json +67 -15
  37. package/docs/skill-anatomy.md +10 -6
  38. package/package.json +3 -1
  39. package/packages/marketing/search-console-indexing-audit/SKILL.md +3 -0
  40. package/packages/marketing/search-console-indexing-audit/adapters/claude/skills/search-console-indexing-audit/SKILL.md +3 -0
  41. package/packages/marketing/search-console-indexing-audit/adapters/cursor/plugin.json +1 -1
  42. package/packages/marketing/search-console-indexing-audit/adapters/cursor/skills/search-console-indexing-audit/SKILL.md +3 -0
  43. package/packages/marketing/search-console-indexing-audit/adapters/kiro/steering/search-console-indexing-audit.md +57 -0
  44. package/packages/marketing/search-console-indexing-audit/adapters/windsurf/rules/search-console-indexing-audit.md +56 -0
  45. package/packages/marketing/viral-launch/SKILL.md +3 -1
  46. package/packages/marketing/viral-launch/adapters/claude/skills/viral-launch/SKILL.md +3 -1
  47. package/packages/marketing/viral-launch/adapters/cursor/skills/viral-launch/SKILL.md +3 -1
  48. package/packages/marketing/viral-launch/adapters/kiro/steering/viral-launch.md +92 -0
  49. package/packages/marketing/viral-launch/adapters/windsurf/rules/viral-launch.md +91 -0
  50. package/packages/music/fill-music-player/SKILL.md +2 -1
  51. package/packages/music/fill-music-player/adapters/claude/skills/fill-music-player/SKILL.md +2 -1
  52. package/packages/music/fill-music-player/adapters/cursor/plugin.json +1 -1
  53. package/packages/music/fill-music-player/adapters/cursor/skills/fill-music-player/SKILL.md +2 -1
  54. package/packages/music/fill-music-player/adapters/kiro/steering/fill-music-player.md +101 -0
  55. package/packages/music/fill-music-player/adapters/windsurf/rules/fill-music-player.md +100 -0
  56. package/packages/photography/gallery/SKILL.md +3 -1
  57. package/packages/photography/gallery/adapters/claude/skills/gallery/SKILL.md +3 -1
  58. package/packages/photography/gallery/adapters/cursor/skills/gallery/SKILL.md +3 -1
  59. package/packages/photography/gallery/adapters/kiro/steering/gallery.md +228 -0
  60. package/packages/photography/gallery/adapters/windsurf/rules/gallery.md +227 -0
  61. package/packages/software-development/add-to-my-skills/SKILL.md +2 -1
  62. package/packages/software-development/add-to-my-skills/adapters/claude/skills/add-to-my-skills/SKILL.md +2 -1
  63. package/packages/software-development/add-to-my-skills/adapters/cursor/skills/add-to-my-skills/SKILL.md +2 -1
  64. package/packages/software-development/add-to-my-skills/adapters/kiro/steering/add-to-my-skills.md +78 -0
  65. package/packages/software-development/add-to-my-skills/adapters/windsurf/rules/add-to-my-skills.md +77 -0
  66. package/packages/software-development/ai-tools-setup/adapters/kiro/steering/ai-tools-setup.md +263 -0
  67. package/packages/software-development/ai-tools-setup/adapters/windsurf/rules/ai-tools-setup.md +262 -0
  68. package/packages/software-development/changelog-generator/SKILL.md +3 -1
  69. package/packages/software-development/changelog-generator/adapters/claude/skills/changelog-generator/SKILL.md +3 -1
  70. package/packages/software-development/changelog-generator/adapters/cursor/skills/changelog-generator/SKILL.md +3 -1
  71. package/packages/software-development/changelog-generator/adapters/kiro/steering/changelog-generator.md +106 -0
  72. package/packages/software-development/changelog-generator/adapters/windsurf/rules/changelog-generator.md +105 -0
  73. package/packages/software-development/cloudflare-block-countries/SKILL.md +175 -0
  74. package/packages/software-development/cloudflare-block-countries/adapters/claude/plugin.json +5 -0
  75. package/packages/software-development/cloudflare-block-countries/adapters/claude/skills/cloudflare-block-countries/SKILL.md +177 -0
  76. package/packages/software-development/cloudflare-block-countries/adapters/codex/README.md +3 -0
  77. package/packages/software-development/cloudflare-block-countries/adapters/cursor/plugin.json +6 -0
  78. package/packages/software-development/cloudflare-block-countries/adapters/cursor/skills/cloudflare-block-countries/SKILL.md +177 -0
  79. package/packages/software-development/cloudflare-block-countries/adapters/kiro/steering/cloudflare-block-countries.md +167 -0
  80. package/packages/software-development/cloudflare-block-countries/adapters/windsurf/rules/cloudflare-block-countries.md +166 -0
  81. package/packages/software-development/docs-index-keeper/SKILL.md +2 -1
  82. package/packages/software-development/docs-index-keeper/adapters/claude/skills/docs-index-keeper/SKILL.md +2 -1
  83. package/packages/software-development/docs-index-keeper/adapters/cursor/plugin.json +1 -1
  84. package/packages/software-development/docs-index-keeper/adapters/cursor/skills/docs-index-keeper/SKILL.md +2 -1
  85. package/packages/software-development/docs-index-keeper/adapters/kiro/steering/docs-index-keeper.md +53 -0
  86. package/packages/software-development/docs-index-keeper/adapters/windsurf/rules/docs-index-keeper.md +52 -0
  87. package/packages/software-development/gh-cli/SKILL.md +3 -1
  88. package/packages/software-development/gh-cli/adapters/claude/skills/gh-cli/SKILL.md +3 -1
  89. package/packages/software-development/gh-cli/adapters/cursor/skills/gh-cli/SKILL.md +3 -1
  90. package/packages/software-development/gh-cli/adapters/kiro/steering/gh-cli.md +2190 -0
  91. package/packages/software-development/gh-cli/adapters/windsurf/rules/gh-cli.md +2189 -0
  92. package/packages/software-development/git-commit/SKILL.md +1 -1
  93. package/packages/software-development/git-commit/adapters/claude/skills/git-commit/SKILL.md +1 -1
  94. package/packages/software-development/git-commit/adapters/cursor/skills/git-commit/SKILL.md +1 -1
  95. package/packages/software-development/git-commit/adapters/kiro/steering/git-commit.md +125 -0
  96. package/packages/software-development/git-commit/adapters/windsurf/rules/git-commit.md +124 -0
  97. package/packages/software-development/open-source-publisher/SKILL.md +2 -1
  98. package/packages/software-development/open-source-publisher/adapters/claude/skills/open-source-publisher/SKILL.md +2 -1
  99. package/packages/software-development/open-source-publisher/adapters/cursor/skills/open-source-publisher/SKILL.md +2 -1
  100. package/packages/software-development/open-source-publisher/adapters/kiro/steering/open-source-publisher.md +427 -0
  101. package/packages/software-development/open-source-publisher/adapters/windsurf/rules/open-source-publisher.md +426 -0
  102. package/packages/software-development/product-builder/SKILL.md +2 -1
  103. package/packages/software-development/product-builder/adapters/claude/skills/product-builder/SKILL.md +2 -1
  104. package/packages/software-development/product-builder/adapters/cursor/plugin.json +1 -1
  105. package/packages/software-development/product-builder/adapters/cursor/skills/product-builder/SKILL.md +2 -1
  106. package/packages/software-development/product-builder/adapters/kiro/steering/product-builder.md +213 -0
  107. package/packages/software-development/product-builder/adapters/windsurf/rules/product-builder.md +212 -0
  108. package/packages/software-development/promptctl/SKILL.md +3 -1
  109. package/packages/software-development/promptctl/adapters/claude/skills/promptctl/SKILL.md +3 -1
  110. package/packages/software-development/promptctl/adapters/cursor/skills/promptctl/SKILL.md +3 -1
  111. package/packages/software-development/promptctl/adapters/kiro/steering/promptctl.md +81 -0
  112. package/packages/software-development/promptctl/adapters/windsurf/rules/promptctl.md +80 -0
  113. package/packages/software-development/semantic-release-beta/SKILL.md +3 -1
  114. package/packages/software-development/semantic-release-beta/adapters/claude/skills/semantic-release-beta/SKILL.md +3 -1
  115. package/packages/software-development/semantic-release-beta/adapters/cursor/skills/semantic-release-beta/SKILL.md +3 -1
  116. package/packages/software-development/semantic-release-beta/adapters/kiro/steering/semantic-release-beta.md +48 -0
  117. package/packages/software-development/semantic-release-beta/adapters/windsurf/rules/semantic-release-beta.md +47 -0
  118. package/packages/software-development/starter-rules/SKILL.md +2 -1
  119. package/packages/software-development/starter-rules/adapters/claude/skills/starter-rules/SKILL.md +2 -1
  120. package/packages/software-development/starter-rules/adapters/cursor/plugin.json +3 -2
  121. package/packages/software-development/starter-rules/adapters/cursor/skills/starter-rules/SKILL.md +2 -1
  122. package/packages/software-development/starter-rules/adapters/kiro/steering/starter-rules.md +62 -0
  123. package/packages/software-development/starter-rules/adapters/windsurf/rules/starter-rules.md +61 -0
  124. package/scripts/build-adapters.sh +97 -8
  125. package/scripts/validate-catalog.sh +4 -0
@@ -0,0 +1,125 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ description: "Create conventional commits with diff-aware staging and message generation."
6
+ ---
7
+
8
+
9
+ # Git Commit with Conventional Commits
10
+
11
+ ## Overview
12
+
13
+ Create standardized, semantic git commits using the Conventional Commits specification. Analyze the actual diff to determine appropriate type, scope, and message.
14
+
15
+ ## Conventional Commit Format
16
+
17
+ ```
18
+ <type>[optional scope]: <description>
19
+
20
+ [optional body]
21
+
22
+ [optional footer(s)]
23
+ ```
24
+
25
+ ## Commit Types
26
+
27
+ | Type | Purpose |
28
+ | ---------- | ------------------------------ |
29
+ | `feat` | New feature |
30
+ | `fix` | Bug fix |
31
+ | `docs` | Documentation only |
32
+ | `style` | Formatting/style (no logic) |
33
+ | `refactor` | Code refactor (no feature/fix) |
34
+ | `perf` | Performance improvement |
35
+ | `test` | Add/update tests |
36
+ | `build` | Build system/dependencies |
37
+ | `ci` | CI/config changes |
38
+ | `chore` | Maintenance/misc |
39
+ | `revert` | Revert commit |
40
+
41
+ ## Breaking Changes
42
+
43
+ ```
44
+ # Exclamation mark after type/scope
45
+ feat!: remove deprecated endpoint
46
+
47
+ # BREAKING CHANGE footer
48
+ feat: allow config to extend other configs
49
+
50
+ BREAKING CHANGE: `extends` key behavior changed
51
+ ```
52
+
53
+ ## Workflow
54
+
55
+ ### 1. Analyze Diff
56
+
57
+ ```bash
58
+ # If files are staged, use staged diff
59
+ git diff --staged
60
+
61
+ # If nothing staged, use working tree diff
62
+ git diff
63
+
64
+ # Also check status
65
+ git status --porcelain
66
+ ```
67
+
68
+ ### 2. Stage Files (if needed)
69
+
70
+ If nothing is staged or you want to group changes differently:
71
+
72
+ ```bash
73
+ # Stage specific files
74
+ git add path/to/file1 path/to/file2
75
+
76
+ # Stage by pattern
77
+ git add *.test.*
78
+ git add src/components/*
79
+
80
+ # Interactive staging
81
+ git add -p
82
+ ```
83
+
84
+ **Never commit secrets** (.env, credentials.json, private keys).
85
+
86
+ ### 3. Generate Commit Message
87
+
88
+ Analyze the diff to determine:
89
+
90
+ - **Type**: What kind of change is this?
91
+ - **Scope**: What area/module is affected?
92
+ - **Description**: One-line summary of what changed (present tense, imperative mood, <72 chars)
93
+
94
+ ### 4. Execute Commit
95
+
96
+ ```bash
97
+ # Single line
98
+ git commit -m "<type>[scope]: <description>"
99
+
100
+ # Multi-line with body/footer
101
+ git commit -m "$(cat <<'EOF'
102
+ <type>[scope]: <description>
103
+
104
+ <optional body>
105
+
106
+ <optional footer>
107
+ EOF
108
+ )"
109
+ ```
110
+
111
+ ## Best Practices
112
+
113
+ - One logical change per commit
114
+ - Present tense: "add" not "added"
115
+ - Imperative mood: "fix bug" not "fixes bug"
116
+ - Reference issues: `Closes #123`, `Refs #456`
117
+ - Keep description under 72 characters
118
+
119
+ ## Git Safety Protocol
120
+
121
+ - NEVER update git config
122
+ - NEVER run destructive commands (--force, hard reset) without explicit request
123
+ - NEVER skip hooks (--no-verify) unless user asks
124
+ - NEVER force push to main/master
125
+ - If commit fails due to hooks, fix and create NEW commit (don't amend)
@@ -0,0 +1,427 @@
1
+ <!-- Generated by scripts/build-adapters.sh. Do not edit directly. -->
2
+
3
+ ---
4
+ inclusion: manual
5
+ 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."
6
+ ---
7
+
8
+
9
+ # open-source-publisher
10
+
11
+ Use this skill to audit whether an OSS repository is ready to publish, then help only with missing or weak pieces: recognizable icon, shareable social image, GitHub Pages site, standardized README, CI/CD hygiene, release readiness, and optional donation links.
12
+
13
+ ## Workflow
14
+
15
+ 1. Inspect the repository before editing:
16
+ - package/tooling files: `go.mod`, `package.json`, `pyproject.toml`, `Cargo.toml`, `Makefile`, etc.
17
+ - current README, docs, website files, images, workflows, releases, license, funding files
18
+ - existing product purpose, author, install paths, examples, and public URLs
19
+ 2. Produce a readiness audit before asking for changes:
20
+ - `Ready`: publish-critical pieces that already exist and look usable
21
+ - `Weak`: existing pieces that are present but incomplete, stale, broken, inconsistent, or below the house standard
22
+ - `Missing`: publish-critical pieces that do not exist
23
+ - `Optional`: nice-to-have pieces such as donations or extra badges
24
+ 3. Classify the repository type before recommending changes:
25
+ - `library`, `CLI`, `web app`, `framework`, `docs site`, or `other`
26
+ - use the type to decide whether governance, packaging, or presentation work should come first
27
+ 4. Identify maintainer identity and public home information when they affect publishing:
28
+ - Ask for the GitHub handle or org name if the repo will have a public owner/maintainer identity, funding links, release notes, or badges
29
+ - Ask for a canonical website/homepage URL if the project needs a homepage, docs site, or public project URL
30
+ - If `homepage`, `author`, or org metadata already exists and looks current, do not ask again
31
+ 5. For existing usable pieces, do not propose replacement by default. Ask a change-oriented question only when useful, for example:
32
+ - "You already have a terminal-style GitHub Pages site. Do you want to keep it or restyle it?"
33
+ - "You already have an icon and social card. Do you want a refresh, or should I leave them as-is?"
34
+ - "You already have release automation. Do you want me to audit only, or also tighten it?"
35
+ 6. Ask only for choices needed to fix missing or weak pieces:
36
+ - If GitHub Pages is missing or weak, ask for style: `oldschool linux`, `terminal`, `modern`, `brutalist`, `glassmorphism`, `y2k`, `hacker`, or custom.
37
+ - If donation wiring is missing, ask whether to enable it: `none`, `GitHub Sponsors`, `Ko-fi`, `Buy Me a Coffee`, `Open Collective`, `Thanks.dev`, or custom URL.
38
+ - If the repo has no clear product essence, ask for a one-sentence positioning statement.
39
+ 7. Implement only approved, missing, or weak work in this order:
40
+ - OSS governance and support files
41
+ - minimal icon
42
+ - social preview image
43
+ - README standard
44
+ - GitHub Pages landing page
45
+ - GitHub Pages analytics setup, if requested
46
+ - CI/CD and release audit/fixes
47
+ - donation wiring, if requested
48
+ 8. Validate locally and with browser/screenshots when possible.
49
+ 9. Commit/push only when the user asks or the current task explicitly requires it.
50
+
51
+ ## Readiness Audit
52
+
53
+ Treat this skill as an OSS publishing readiness checker first and an implementer second. The first response after inspection should be a concise audit with concrete evidence from the repo.
54
+
55
+ Publish-critical checklist:
56
+
57
+ - repository identity: clear project name, description, topic/keywords, author, license
58
+ - install path: package manager, release assets, source build, or direct download instructions
59
+ - maintainer identity: GitHub handle or org name when public identity is relevant
60
+ - public home: canonical website/homepage URL when the project needs one
61
+ - if either field does not exist, proceed without it and mark it as absent
62
+ - OSS governance: `LICENSE`, `CONTRIBUTING.md`, `SECURITY.md`, `CODE_OF_CONDUCT.md`, support policy, issue/PR templates, changelog or release notes path
63
+ - README standard: centered shields, icon, title, short description, horizontal rule, essential sections
64
+ - icon: simple SVG mark plus rendered PNG, both committed in predictable paths
65
+ - social image: 1200x630 image with matching metadata, with both SVG source and rendered PNG committed when practical
66
+ - GitHub Pages or docs site: essential install/examples/links/SEO/Open Graph metadata
67
+ - GitHub Pages analytics: optional setup to track visitor patterns and engagement
68
+ - CI quality gates: formatter, linter/static analysis, tests, build/package check
69
+ - release automation: tags/releases/artifacts/package update flow, docs-only changes excluded where needed
70
+ - security posture: license, security notes or policy, OpenSSF Scorecard or equivalent when appropriate
71
+ - contribution path: issues/PR guidance, support expectations, project status
72
+ - donations: explicitly absent, declined, or configured
73
+
74
+ Audit output format:
75
+
76
+ ```md
77
+ ## OSS Publish Readiness
78
+
79
+ Ready
80
+ - README uses the house top block with test, Go Report Card, and OpenSSF shields.
81
+ - Release workflow builds darwin arm64/amd64 binaries and updates the Homebrew tap.
82
+
83
+ Weak
84
+ - Direct download examples point at a fixed release tag; latest-release URLs would age better.
85
+
86
+ Missing
87
+ - No `.github/FUNDING.yml`; donations are not configured.
88
+
89
+ Questions
90
+ - You already have a terminal-style GitHub Pages site. Keep it, or restyle it?
91
+ - What is the GitHub handle or org name for public attribution?
92
+ - What is the canonical website or homepage URL, if any?
93
+ - Donations are not configured. Enable them or leave them off?
94
+ ```
95
+
96
+ Rules:
97
+
98
+ - Do not ask for style, donations, or redesign choices before the audit.
99
+ - Do not overwrite existing icon, social image, README, site, workflows, or funding files unless the user approves a change or the audit classifies the item as weak.
100
+ - If everything publish-critical is ready, say so and offer only optional improvements.
101
+ - If the user asks to "run the skill" without more detail, audit first, then wait for approval before making non-trivial visual or workflow changes.
102
+ - Keep the audit evidence-based. Reference filenames, workflow names, package metadata, or command outputs.
103
+
104
+ ## Minimal Icon
105
+
106
+ Create a simple, recognizable SVG logo from the repository's essence. Prefer `logo.svg` and also render `logo.png` so the icon can be reused in README assets, release artifacts, and platform-specific previews.
107
+
108
+ Icon rules:
109
+
110
+ - Use one clear metaphor from the project domain, not a collage.
111
+ - Keep the mark readable at 32px.
112
+ - Prefer 1-2 shapes and 1-2 accent colors.
113
+ - Use a simple rounded tile only when it improves favicon readability.
114
+ - Avoid terminal window chrome, decorative dots, random badges, and center glyph clutter unless the project itself is a terminal/window tool.
115
+ - Avoid generic AI tells: glass effects, bokeh/orbs, over-layered gradients, busy shadows, and unrelated emojis.
116
+ - If the repo has a website or homepage, ensure the icon fits that visual system.
117
+
118
+ Good icon pattern for sync/migration tools:
119
+
120
+ ```svg
121
+ <svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512" role="img" aria-labelledby="title desc">
122
+ <title id="title">Project logo</title>
123
+ <desc id="desc">Clean sync icon made from two circular arrows.</desc>
124
+ <defs>
125
+ <linearGradient id="topArrow" x1="142" y1="118" x2="392" y2="250" gradientUnits="userSpaceOnUse">
126
+ <stop offset="0%" stop-color="#22c55e"/>
127
+ <stop offset="100%" stop-color="#38bdf8"/>
128
+ </linearGradient>
129
+ <linearGradient id="bottomArrow" x1="370" y1="394" x2="120" y2="262" gradientUnits="userSpaceOnUse">
130
+ <stop offset="0%" stop-color="#fb7185"/>
131
+ <stop offset="100%" stop-color="#f59e0b"/>
132
+ </linearGradient>
133
+ </defs>
134
+ <rect width="512" height="512" rx="112" fill="#0d1117"/>
135
+ <rect x="42" y="42" width="428" height="428" rx="96" fill="#111827" stroke="#1f2937" stroke-width="8"/>
136
+ <g fill="none" stroke-linecap="round" stroke-linejoin="round">
137
+ <path d="M142 234c13-70 74-122 147-122 52 0 99 27 126 69" stroke="url(#topArrow)" stroke-width="42"/>
138
+ <path d="M389 118l35 67-75 4" stroke="url(#topArrow)" stroke-width="42"/>
139
+ <path d="M370 278c-13 70-74 122-147 122-52 0-99-27-126-69" stroke="url(#bottomArrow)" stroke-width="42"/>
140
+ <path d="M123 394l-35-67 75-4" stroke="url(#bottomArrow)" stroke-width="42"/>
141
+ </g>
142
+ </svg>
143
+ ```
144
+
145
+ Adapt the geometry and metaphor. Do not reuse the sync arrows for unrelated projects.
146
+
147
+ ## Social Image
148
+
149
+ Create a 1200x630 social preview image for GitHub, Twitter/X, Slack, and link unfurls.
150
+
151
+ Recommended files:
152
+
153
+ - `social-card.svg` as the editable source
154
+ - `social-card.png` rendered from the SVG when render tooling is available
155
+ - keep both files in the repo when practical so the preview can be updated without redrawing the whole asset
156
+
157
+ Social image rules:
158
+
159
+ - Include project name, one clear value proposition, and 2-3 concrete capabilities.
160
+ - Keep the composition simple and calm. Large readable type beats dense feature lists.
161
+ - Use actual project language: commands, package name, supported platform, or primary workflow.
162
+ - Match the icon color system.
163
+ - Keep all text inside a safe margin of at least 64px.
164
+ - Use `og:image`, `twitter:image`, width/height meta tags, and meaningful alt text.
165
+ - If the repo has a homepage or canonical website, make the social card and metadata point to that URL consistently.
166
+
167
+ Render checks:
168
+
169
+ ```bash
170
+ rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png
171
+ file social-card.png
172
+ ```
173
+
174
+ Use `magick` or another renderer when `rsvg-convert` is unavailable.
175
+
176
+ ## README Standard
177
+
178
+ Shape the README like the house standard used for Go packages such as `slow-query-detector` and `dcli`.
179
+
180
+ Top block:
181
+
182
+ ```html
183
+ <p align="center">
184
+ <a href="..."><img src="..." alt="tests"></a>
185
+ <a href="..."><img src="..." alt="Go Report Card"></a>
186
+ <a href="..."><img src="..." alt="OpenSSF Scorecard"></a>
187
+ </p>
188
+
189
+ <p align="center">
190
+ <img src="./logo.svg" width="120" height="120" alt="project icon">
191
+ </p>
192
+
193
+ <h1 align="center">project-name</h1>
194
+
195
+ <p align="center">
196
+ Short product description<br>
197
+ <strong>One-line promise</strong>
198
+ </p>
199
+
200
+ ---
201
+ ```
202
+
203
+ Choose shields from the repo's tech:
204
+
205
+ - always: test workflow badge if a test workflow exists
206
+ - Go: Go Report Card, OpenSSF Scorecard
207
+ - Node/npm: npm version, npm downloads, test workflow, OpenSSF Scorecard
208
+ - Python: PyPI version, Python versions, test workflow, OpenSSF Scorecard
209
+ - coverage: only include if coverage service is configured
210
+ - release: only include if releases are automated and meaningful
211
+
212
+ Recommended README sections:
213
+
214
+ 1. Features
215
+ 2. Installation
216
+ 3. Quick Start
217
+ 4. Configuration
218
+ 5. Commands Reference or API Reference
219
+ 6. System Requirements
220
+ 7. Documentation
221
+ 8. Use Cases
222
+ 9. Architecture
223
+ 10. Project Status
224
+ 11. Security Notes
225
+ 12. Contributing
226
+ 13. License
227
+ 14. Author
228
+ 15. centered footer links
229
+
230
+ Rules:
231
+
232
+ - Keep badges centered and compact.
233
+ - Keep the icon centered below shields.
234
+ - Put a horizontal rule after the centered intro.
235
+ - Use current release/download URLs; prefer `/releases/latest/download/...` when stable asset names exist.
236
+ - Do not claim coverage, license, support, CI, or releases that are not actually present.
237
+ - Add or fix `LICENSE` before saying MIT/Apache/etc.
238
+
239
+ ## OSS Governance
240
+
241
+ Treat governance files as first-class publishing work, not optional paperwork.
242
+
243
+ Check for, or add when appropriate:
244
+
245
+ - `LICENSE`
246
+ - `CONTRIBUTING.md`
247
+ - `SECURITY.md`
248
+ - `CODE_OF_CONDUCT.md`
249
+ - `SUPPORT.md`
250
+ - `.github/ISSUE_TEMPLATE/*`
251
+ - `.github/PULL_REQUEST_TEMPLATE.md`
252
+ - `CHANGELOG.md` or a release notes workflow
253
+ - package metadata for homepage, repository, bugs, and funding links
254
+
255
+ Rules:
256
+
257
+ - For libraries and CLIs, prioritize governance and release path before visual polish.
258
+ - For web apps or product sites, keep the governance checks but allow branding and landing page work to happen earlier when the public-facing experience is the main product.
259
+ - If a repo already has governance docs that are good enough, mark them `Ready` and move on.
260
+ - If the project has no maintainer/support policy, ask whether support should be community-only, maintainer-only, or commercial.
261
+
262
+ ## GitHub Pages
263
+
264
+ Create a simple essential GitHub Pages site when the project lacks one or the existing one is weak.
265
+
266
+ Ask the user to choose one style first:
267
+
268
+ - `oldschool linux`
269
+ - `terminal`
270
+ - `modern`
271
+ - `brutalist`
272
+ - `glassmorphism`
273
+ - `y2k`
274
+ - `hacker`
275
+ - custom style
276
+
277
+ Required page content:
278
+
279
+ - project name and icon
280
+ - one-sentence value proposition
281
+ - author link
282
+ - install/download instructions
283
+ - 2-4 short examples
284
+ - feature summary
285
+ - links to GitHub, README, releases, issues
286
+ - SEO meta description and keywords
287
+ - Open Graph and Twitter meta tags
288
+ - social image reference
289
+ - footer with license and optional donation/badge links
290
+
291
+ Implementation defaults:
292
+
293
+ - Use a static `index.html` unless the repo already has a site framework.
294
+ - Add `CNAME` only when the user gives a domain.
295
+ - Add `.github/workflows/pages.yml` when Pages uses GitHub Actions or no deploy path exists.
296
+ - Avoid marketing fluff and oversized hero sections for developer tools. Make the first viewport useful.
297
+ - Use system UI fonts for body text and monospace only for commands, labels, or terminal-specific elements.
298
+
299
+ ## GitHub Pages Analytics
300
+
301
+ Add basic analytics to track site visitor patterns and user behavior when the project has a GitHub Pages site.
302
+
303
+ Setup options:
304
+
305
+ - **Google Analytics** (free, detailed): Add UA or GA4 tracking ID to site `<head>`
306
+ - **Plausible** (simple, privacy-first, paid): Lightweight script alternative
307
+ - **Simple counter** (basic): Visitor count badge using Shields.io or statically-generated endpoint
308
+
309
+ Minimal Google Analytics setup for static sites:
310
+
311
+ ```html
312
+ <script async src="https://www.googletagmanager.com/gtag/js?id=G-YOUR_ID"></script>
313
+ <script>
314
+ window.dataLayer = window.dataLayer || [];
315
+ function gtag(){dataLayer.push(arguments);}
316
+ gtag('js', new Date());
317
+ gtag('config', 'G-YOUR_ID');
318
+ </script>
319
+ ```
320
+
321
+ Track these essential events:
322
+
323
+ - **pageview** (automatic): Site visitors and page sections
324
+ - **download_release**: Clicks on install/download links (track each platform/format)
325
+ - **view_docs**: Navigation to documentation pages
326
+ - **github_click**: Click through to GitHub repo
327
+ - **copy_command**: Code snippet copies in examples
328
+
329
+ Optional custom events for OSS projects:
330
+
331
+ - **search_docs**: If docs site has search
332
+ - **view_example**: Specific example/use-case sections viewed
333
+ - **support_click**: Link clicks to issues, discussions, or support channels
334
+
335
+ Rules:
336
+
337
+ - Add analytics after publishing the site; do not gate site launch on analytics.
338
+ - If the user prefers privacy-first or no analytics, skip this step.
339
+ - Store analytics credentials as GitHub Pages environment secret or site config, never in git.
340
+ - Review monthly to catch unusual patterns or broken tracking links.
341
+
342
+ ## CI/CD And Release Audit
343
+
344
+ Check whether the repository has:
345
+
346
+ - formatter check
347
+ - linter/static analysis
348
+ - tests
349
+ - build/package check
350
+ - dependency review / lockfile integrity checks
351
+ - secret scanning or secret prevention
352
+ - license scanning / OSS compliance scan
353
+ - SBOM or provenance generation where appropriate
354
+ - security scan or OpenSSF Scorecard where appropriate
355
+ - release automation
356
+ - docs/site-only path filters when release runs on `main`
357
+ - docs link checker or markdown validation for repo/docs sites
358
+ - package-specific smoke install / publish dry-run matrix
359
+
360
+ For Go projects, prefer:
361
+
362
+ ```yaml
363
+ - go test ./... -race
364
+ - go vet ./...
365
+ - gofmt check
366
+ - staticcheck ./...
367
+ - go build ./...
368
+ ```
369
+
370
+ For Node projects, prefer existing package manager scripts:
371
+
372
+ ```bash
373
+ npm ci
374
+ npm run lint
375
+ npm test
376
+ npm run build
377
+ ```
378
+
379
+ Release automation rules:
380
+
381
+ - Inspect existing release flow before changing it.
382
+ - Do not create releases for docs/site-only changes.
383
+ - Make Homebrew/package formulas update from real release artifacts and checksums.
384
+ - Use least-privilege secrets and document required secret names.
385
+ - If automation pushes tags, guard against rerun/version reuse.
386
+ - Prefer signed or attestable releases where the ecosystem supports it.
387
+ - Prefer release notes generation from tags or merged PRs instead of hand-written release bodies when the repo is release-heavy.
388
+
389
+ ## Donations
390
+
391
+ Ask whether the user wants donations enabled.
392
+
393
+ If yes:
394
+
395
+ 1. Ask for provider and URL/handle if not inferable.
396
+ 2. Add `.github/FUNDING.yml` for GitHub-supported providers.
397
+ 3. Add a short README Support section or footer link.
398
+ 4. Add site footer/link only if the project has a site.
399
+ 5. Do not invent payment handles.
400
+
401
+ Provider hints:
402
+
403
+ ```yaml
404
+ github: username
405
+ ko_fi: handle
406
+ custom:
407
+ - https://example.com/support
408
+ ```
409
+
410
+ ## Validation
411
+
412
+ Run the checks that match the edits:
413
+
414
+ - SVG syntax: `xmllint --noout logo.svg social-card.svg`
415
+ - Render social image: `rsvg-convert -w 1200 -h 630 social-card.svg -o social-card.png`
416
+ - README links and badge URLs where practical: `curl -I`
417
+ - Site render: local static server plus browser/screenshot when available
418
+ - Repo tests/build/lint
419
+ - Workflow YAML parse, for example with Ruby: `ruby -e 'require "yaml"; YAML.load_file(".github/workflows/ci.yml")'`
420
+ - `git diff --check`
421
+
422
+ Before final response, state:
423
+
424
+ - files changed
425
+ - validation commands run
426
+ - release/donation caveats
427
+ - any secrets the user must configure